Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий
Garry_Galler 7 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 (изменено) TRAMP14 Свойство это часть структуры класса. У класс могут быть как методы (функции), так и свойства(они же переменные), которые хранят определенные данные об экземпляре класса. Для того, чтобы получить текущее значение свойства определенного экземпляра класса используется запись имя_класса.свойство или экземпляр_класса. свойство . В общем объяснять можно долго - для понимания всего этого нужно изучить основы ООП - объектно-ориентированного программирования. ------------------------------- По радиации - для того, чтобы уменьшить нужно по-моему минуснуть. То есть не db.actor.radiation =0.5, а db.actor.radiation = -0.5 . Тогда из текущего значения радиации ГГ будет вычтено ровно столько же и получиться что радиация равна 0. По крайней мере для здоровья именно так и делается. Чтобы его уменьшить пишут db.actor.health = - 0.1 -- уменьшаем(вычитаем из текущего значения) на 10% Чтобы поднять db.actor.health = 0.1 -- увеличить(прибавить к текущему значению) на 10% Изменено 20 Января 2011 пользователем Garry_Galler Ссылка на комментарий
7.9 174 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 (изменено) Непонял выражение, растолкуйте пожалуйста Например: у объекта TRAMP14 есть свойство "количество пальцев на руках", и есть метод "хранение предметов в кармане"... итдитп. Изменено 20 Января 2011 пользователем Cyclone всё легко Ссылка на комментарий
TRAMP14 1 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 объектно-ориентированного программирования. НАсчёт прогроммирования - я знаю паскаль и мидлет паскаль так что основы есть. Значит вот так должно быть db.actor.radiation ? Без скобоК? Ссылка на комментарий
_Призрак_ 11 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 Пытаюсь создать мутантов которые бы ходили по кругу и ни обращались ни на кого внимания. Создал две логики. И обе не работают [logic@mob_walk1] active = mob_walker@zombi1 monster_job = true combat_ignore_cond = true [mob_walker@zombi1] path_walk = predbannik_zombi_smart_zombi combat_ignore_cond = true [logic@mob_walk] active = mob_home@zombi monster_job = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true actor_friendly = true [mob_home@zombi] path_home = path1 home_min_radius = 1 home_max_radius = 3 combat_ignore_cond = true combat_ignore_keep_when_attacked = true actor_friendly = true Freedom Ссылка на комментарий
Malandrinus 615 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 Garry_Galler, Только принято это делать на аглицком языке. А я всегда на русском пишу. Не настоящий программист, наверное =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
IQDDD 5 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 TRAMP14, возможно, что по luabind вы не нашли информацию, но почитали бы справочник, там всё есть. Обращение к свойствам идёт через точку без скобок. К методам, через двоеточие и скобки (если нужно вызвать функцию) и без скобок, если нужно использовать функцию как переменную. А то, что вы знаете pascall, роли не играет: тут вообще-то Lua. Ссылка на комментарий
Malandrinus 615 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 IQDDD, зачем так категорично? При освоении нового языка программирования знание любого другого весьма помогает. Тем более, что Lua в чём-то близок к Паскалю. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Garry_Galler 7 Опубликовано 20 Января 2011 Поделиться Опубликовано 20 Января 2011 (изменено) malandrinus А я всегда на русском пишу. Не настоящий программист, наверное =) Значит просто с тебя заказчики сей вещи не требуют У меня знакомый программист все свои проекты только с английскими комментариями отправляет заказчикам, так как это - обязательное условие рассмотрения его проекта. Иначе не принимают. Изменено 20 Января 2011 пользователем Garry_Galler Ссылка на комментарий
SkyLoader 53 Опубликовано 21 Января 2011 Поделиться Опубликовано 21 Января 2011 (изменено) Shadows, если ты про кастом статик, то удалять так: get_hud():RemoveCustomStatic("название_статика") ______________________ Есть 2 вопроса: 1) Можно ли сделать плавное появление кастом статика? 2) Включается ли какой-либо шейдерный коллбек при "Загрузке шейдеров"? Изменено 21 Января 2011 пользователем SkyLoader Ссылка на комментарий
Charsi 440 Опубликовано 21 Января 2011 Поделиться Опубликовано 21 Января 2011 плавное появление кастом статика Можно на апдейте менять непрозрачность статика.Так у Руси в "Новой радиации" угасание индикаторов сделано. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
stalker.ni-ko 0 Опубликовано 21 Января 2011 Поделиться Опубликовано 21 Января 2011 Всем доброго времени суток, люди, помогите плиз... Я могу сделать сложную логику НПС, а с мутягами ничего не выходит... Хочу сделать так чтоб новый мутант бегал за ГГ, но что написать в логике? Ведь по путям это не реально сделать, и если прописать в секции walker - target=actor ничего не выйдет, мутяга только зырит на ГГ. Что посоветуете? Ссылка на комментарий
stalker.odinochka 0 Опубликовано 21 Января 2011 Поделиться Опубликовано 21 Января 2011 (изменено) Здравствуйте, подскажите. Какая функция отвечает за открытие ПДА? PS: В другой теме, не ответили, а пост удалить нельзя (( Поэтому пишу тут. Удалил. В следующий раз определяйся с темой сразу. Изменено 21 Января 2011 пользователем Cyclone Срочно ищу опытного скриптёра и модельера, нужна помощь в создании мода. Готовность мода Новый мир 85%. Мод Огнемёт для ЗП v1.0 Скачать Ссылка на комментарий
Garry_Galler 7 Опубликовано 21 Января 2011 Поделиться Опубликовано 21 Января 2011 (изменено) stalker.odinochk... Закрыть то таким способом окно можно, а вот открыть не получится. Окна инвентаря, пда, торговли, обыска создаются движком в ответ на нажатие клавиш, которые к ним прибиндены, доступа к конструктору этих окон из скриптов нет, а сымитровать нажатие клавиши можно разве что через WinAPI, что к скриптам отношения не имеет и весьма сложно к реализации. Изменено 21 Января 2011 пользователем Garry_Galler Ссылка на комментарий
Malandrinus 615 Опубликовано 21 Января 2011 Поделиться Опубликовано 21 Января 2011 Garry_Galler, Закрыть то таким способом окно можно, а вот открыть не получится. Окна инвентаря, пда, торговли, обыска создаются движком С торговлей несколько лучше. Есть метод актора switch_to_trade, который открывает окно торговли из разговора. Ну и разговор можно открыть: run_talk_dialog. пда и прочее - да, это никак. Кстати, знает ли кто, что как-бы пда открыть можно? Делается это в обучалках. "Ка-бы" потому, что толку от этого ноль, поскольку в этом режиме блокируется ввод. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
TRAMP14 1 Опубликовано 22 Января 2011 Поделиться Опубликовано 22 Января 2011 Вопросик: когда я делаю чтото не для актора а для неписей обязательно писать в скобках такое?(actor, npc)? p/s/ В названии функции Ссылка на комментарий
Stalk15 27 Опубликовано 22 Января 2011 Поделиться Опубликовано 22 Января 2011 TRAMP14 Лично я не понял, что ты ваще написал. (actor, npc) - это два аргумента. В диалоге actor - это ГГ, npc - это собеседник ГГ. Ссылка на комментарий
mma 0 Опубликовано 22 Января 2011 Поделиться Опубликовано 22 Января 2011 Где находится файл логики Кузнецова? Подскажите ,как сделать так ,чтобы враги не стреляли до определённых обстоятельств? Ссылка на комментарий
TRAMP14 1 Опубликовано 22 Января 2011 Поделиться Опубликовано 22 Января 2011 Вот пример из скрипта function bandits_die(actor,npc) local actor = db.actor if has_alife_info("esc_kill_bandits_quest_kill") and not has_alife_info("esc_kill_bandits_noquest_kill") then return true end return false end function bandits_die(actor,npc) - эти скобки. Обязательно их так оформлять? Ссылка на комментарий
Якут 0 Опубликовано 22 Января 2011 Поделиться Опубликовано 22 Января 2011 У меня такой вопрос товарищи сталкеры, как выглядит логика НПС который идет за игроком в Зов Припяти? Ссылка на комментарий
gruber 2 481 Опубликовано 22 Января 2011 Поделиться Опубликовано 22 Января 2011 mma, Поставить условие игнорирования боя combat_ignore_cond = {=check_fighting(9609)} --как то так- в скобках ид НПС которого не трогают хотя он враг,можно поставить actor Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти