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 Ссылка на комментарий
Mistaken 0 Опубликовано 30 Января 2018 Поделиться Опубликовано 30 Января 2018 Пытаюсь разобраться в работе логики NPC. Написал новый биндер и тестовую схему, но сталкер стоит на месте как вкопаный. В чем, собственно, может быть причина? В родных скриптах игры каких-то особых манипуляций со сталкерами при добавлении им логики я не нашел. Скрытый текст class "CSchemeEval" (property_evaluator) function CSchemeEval:__init(storage) super(nil, "CSchemeEval") self.st = storage; end function CSchemeEval:evaluate() return self.st.enabled; end class "CSchemeAction" (action_base); function CSchemeAction:__init(storage) super(nil, "CSchemeAction") self.st = storage; end function CSchemeAction:initialize() action_base.initialize(self); self.object:set_dest_level_vertex_id(db.actor:level_vertex_id()); end function CSchemeAction:execute() action_base.execute(self); end function CSchemeAction:finalize() action_base.finalize(self); end local ACTION_BASE = 5000; local EVAL_BASE = 10000; function addToBinder(npc, storage) local manager = npc:motivation_action_manager(); manager:add_evaluator(EVAL_BASE + 1, CSchemeEval(storage)); local action = CSchemeAction(storage); action:add_precondition(world_property(stalker_ids.property_alive, true)); action:add_precondition(world_property(stalker_ids.property_danger, false)); action:add_precondition(world_property(stalker_ids.property_enemy, false)); action:add_precondition(world_property(stalker_ids.property_anomaly, false)); action:add_precondition(world_property(EVAL_BASE + 1, true)); action:add_effect(world_property(EVAL_BASE + 1, false)); manager:add_action(ACTION_BASE + 1, action); action = manager:action(xr_actions_id.alife); action:add_precondition(world_property(EVAL_BASE + 1, false)); end Скрытый текст function bind(object) object:bind_object(CNpcBinder(object)); end class "CNpcBinder" (object_binder) function CNpcBinder:__init(object) super(object) end function CNpcBinder:net_spawn(sobject) self.st = { enabled = true; }; local manager = self.object:motivation_action_manager() manager:remove_evaluator (stalker_ids.property_anomaly) manager:add_evaluator (stalker_ids.property_anomaly, property_evaluator_const(false)); scheme.addToBinder(self.object, self.st); return true; end function CNpcBinder:reinit() self.state_mgr = state_mgr.bind_manager(self.object) self.move_mgr = move_mgr.move_mgr(self.object) self.move_mgr:initialize() end function CNpcBinder:update(delta) if self.state_mgr then if self.object:alive() then self.state_mgr:update() else self.state_mgr = nil; end end end Ссылка на комментарий
alexsimm 373 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 Подскажите, как из консоли включить один погодный цикл или не из консоли, если из консоли невозможно "Народная солянка 2016 в UHD" - мод глобального ретекстура мира СТАЛКЕР ТЧ (мод вышел, качайте) Ссылка на комментарий
scala 1 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 Как сделать чтобы ассортимент торговца не обновлялся при загрузке сейва или смене локации? Очень давно выкладывалась отдельная правка, но не могу найти. Ссылка на комментарий
dsh 3 824 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 @alexsimm что-то смутно припоминаю, какая-то консольная команда sv_weather_что-то_там 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 @alexsimm Через sv_setweather Список погод: Скрытый текст default indoor map mp pripyat radar rain sarkofag stancia test yantar Пример: sv_setweather pripyat Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 @scala Поправь вероятность появления товара в конфигах торговцев в секциях [supplies_start], [supplies_after...]. Пример: Скрытый текст [supplies_start] ;Название предмета = количество, вероятность появления stalker_outfit = 3, 0.7 Ссылка на комментарий
scala 1 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 (изменено) 8 минут назад, TIGER_VLAD сказал: Поправь вероятность Нули поставить? Он тогда вообще не будет меняться? Как сделать чтобы он менялся по таймеру или переходу на другую локацию? Изменено 1 Февраля 2018 пользователем scala Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 @scala 1 поставь. В секции [supplies_after_квест_торговца] указано количество предметов и вероятность появления, после выполнения квеста торговца. Ссылка на комментарий
scala 1 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 Мне нужно не после квеста. А вообще. Чтобы ассортимент менялся не после перезагрузки, а был привязан к какомуто другому условию. Была какаято старая правка очень давно. Ссылка на комментарий
Dennis_Chikin 3 662 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 Суть проблемы расписана здесь: https://www.amk-team.ru/forum/topic/13078-prozektorskaya/?do=findComment&comment=899422 Стол заказов закрыт в связи с отправкой всех телепатов на переаттестацию. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
scala 1 Опубликовано 1 Февраля 2018 Поделиться Опубликовано 1 Февраля 2018 (изменено) 12 минут назад, Dennis_Chikin сказал: Суть проблемы рас Спасибо. Полезная инфа. Можешь на правку ссылку кинуть? Изменено 1 Февраля 2018 пользователем scala Ссылка на комментарий
Graff46 598 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 (изменено) [ТЧ] Подскажите как можно НПС перевести в онлайн, а как загрузится его логика включить "свободный полёт" (когда НПС сам выбирает где ему быть, в онлайне или нет). При условии, что НПС заспавнился за пределами радиуса алайфа? "свободный полёт": local sim = alife() sim:set_switch_online (id, true) sim:set_switch_offline (id, true) Изменено 2 Февраля 2018 пользователем Graff46 Ссылка на комментарий
qwertyuiop 16 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Солянка-2016.У меня убили Киценко, главного кормильца и грозу собак.Также ушли 2 часовых и оставили блокпост назащищенным.Я хочу написать скрипт, чтобы они заспавнивались через некоторое время,если Киценко убит.Заспавнить непись несложно, но как узнать имя секции Киценко? Как узнать, жив ли данный НПС? Прошел Солянку, иду в NLC Ссылка на комментарий
Graff46 598 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Только что, qwertyuiop сказал: Как узнать, жив ли данный НПС? if npc:alive() then -- жив ... end Только что, qwertyuiop сказал: но как узнать имя секции Киценко? В файлах надо искать, ищите "Криценко" ctrl+f Ссылка на комментарий
Graff46 598 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Навеяно аватаркой @qwertyuiop... В ТЧ свободовцам монстры друзья... Есть ли лечение? Ссылка на комментарий
qwertyuiop 16 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 (изменено) Quote <specific_character id="bar_zastava_commander_1" team_default = "1"> <name>bar_kicenko_name</name> <icon>ui_npc_u_stalker_do_balon_1</icon> <map_icon x="0" y="0"></map_icon> <bio>sim_dolg_veteran_bio</bio> <class>bar_zastava_commander</class> Кого спавнить? alife():create(name,p,lv,gv).Пробовал: bar_zastava_commander_1, bar_kicenko_name, bar_zastava_commander - вылет с "Can't open section". Изменено 2 Февраля 2018 пользователем qwertyuiop Прошел Солянку, иду в NLC Ссылка на комментарий
Graff46 598 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Только что, qwertyuiop сказал: Пробовал: bar_zastava_commander_1 Нет, это чарактер, а нужна секция, поищите "bar_zastava_commander_1" в spawn_sections.ltx и в распакованном олл.спавне Ссылка на комментарий
qwertyuiop 16 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Он у меня не распакован.Где взять распаковщик Солянки-2016? Прошел Солянку, иду в NLC Ссылка на комментарий
Graff46 598 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 (изменено) отсюда из шапки, универсал, должен жрать все, главное настрой правильно. " - Народная солянка 2010 от 19.04 (с ключом -nofatal) " Изменено 2 Февраля 2018 пользователем Graff46 Ссылка на комментарий
qwertyuiop 16 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Он не проверен на этой версии, не распаковывает. Quote FATAL ERROR! Function: stkutils::scan::get_class Line: 1919 Description: cannot find clsid for class buddy_psevdopup Прошел Солянку, иду в NLC Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти