Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
lsclon 527 Опубликовано 1 Ноября 2014 Поделиться Опубликовано 1 Ноября 2014 ошибкой "Can't open section..." Если движок ругается, значит у вас нет секции на которую вы хотите переключить логику нпс. Или же не читается ваш файл с логикой. почему не работает от имени Прапора Если начинается диалог со слов "Привет", значит твой стартовый диалог перебивается дефолтным старотовым(dm_hello_dialog). Значит, возможно, либо не выполняются условия твоего диалога, либо в профиле нпс дефолтный диалог стоит первым. Так же такое бывает, если нажать на диалог, когда нпс говорит в ремарке. 1 2 Вообще-то я белая и пушистая... Ссылка на комментарий
AndreySol 215 Опубликовано 2 Ноября 2014 Поделиться Опубликовано 2 Ноября 2014 Если движок ругается, значит у вас нет секции на которую вы хотите переключить логику нпс. Или же не читается ваш файл с логикой. [logic@gar_angar_drug2] active = walker@gar_angar_drug2 [walker@gar_angar_drug2] .......... [kamp@gar_angar_drug2] .......... в таком виде все прекрасно. Делаю так: [logic@gar_angar_drug2] active = {+gar_breakthrough_complete} kamp@gar_angar_drug2, walker@gar_angar_drug2 [walker@gar_angar_drug2] .......... [kamp@gar_angar_drug2] .......... при загрузке сохранения и при начале НИ вылет, с вышеописанной руганью. Тестю это на 1.0005, похоже что для тега active такой способ не поддерживается. Может в 1.0006 добавлено ? Вы на какой версии это проверяли ? 1 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 2 Ноября 2014 Поделиться Опубликовано 2 Ноября 2014 (изменено) function gulag:get_job_path_name( job ) local section = job.section if not self.ltx:line_exist( section, "active" ) then abort( "gulag: ltx=%s no 'active' in section %s", self.ltx_name, section ) end local active_section = self.ltx:r_string( section, "active" ) local path_field for i, v in ipairs( path_fields ) do if self.ltx:line_exist( active_section, v ) then path_field = v break end end if not path_field then abort( "gulag: ltx=%s, there is no path in section %s", self.ltx_name, active_section ) end if path_field == "center_point" then --' TODO убрать затык local path_name = self.name .. "_" .. self.ltx:r_string( active_section, path_field ) if level.patrol_path_exists( path_name .. "_task" ) then return path_name .. "_task" else return path_name end else return self.name .. "_" .. self.ltx:r_string( active_section, path_field ) end end Имеющий да усмотрит. Изменено 2 Ноября 2014 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
_Val_ 2 225 Опубликовано 2 Ноября 2014 Поделиться Опубликовано 2 Ноября 2014 @AndreySol, вообще такой метод работает и на четвертом. Кстати из твоего описания я так и не понял, чего ты хочешь добиться. Чтобы при выдаче поршня непись переходил в другую секцию? У тебя как-то так... [logic@gar_angar_drug3] active = walker@gar_angar_drug3 [walker@gar_angar_drug3] path_walk = drug3_walk path_look = drug3_look on_info = {+gar_breakthrough_rush} walker@gar_angar_rush_drug3 on_info2 = {+gar_breakthrough_complete} kamp@gar_angar_drug3 А я бы сделал так... [logic@gar_angar_drug3] active = {-gar_breakthrough_rush}walker@gar_angar_drug3, {+gar_breakthrough_rush -gar_breakthrough_complete} walker@gar_angar_rush_drug3... [walker@gar_angar_drug3] path_walk = drug3_walk path_look = drug3_look on_info = {+gar_breakthrough_rush} walker@gar_angar_rush_drug3 on_info2 = {+gar_breakthrough_complete} kamp@gar_angar_drug3 Секции актив читаются слева направо с проверкой условий. Непись переходит в секцию, условие для которой будет выполнено первым. И для четкого разграничения условий актив не бойся выдавать дополнительные поршни. Откуда угодно. Из логики непися при переходе в другую секцию, по сигналу из точек пути. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 2 Ноября 2014 Поделиться Опубликовано 2 Ноября 2014 А вы бы таки в приведенный кусочек кода распечаточку-то вставили бы... Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
_Val_ 2 225 Опубликовано 2 Ноября 2014 Поделиться Опубликовано 2 Ноября 2014 с вышеописанной руганью Оффтоп... Вообще вылета быть не должно, если правильно написана секция, в которую нужно переходить. То бишь ....... on_info = {+info} walker@1 [walker@1] ......... Причем тут влияет всё. Например пробел перед скобкой, полученный в результате копипаста. А я один раз, пока не изменил стиль и шрифт Нотепада++ не мог избавится от вылета из-за того, что было написано не look, а 1ook))) Ссылка на комментарий
lsclon 527 Опубликовано 2 Ноября 2014 Поделиться Опубликовано 2 Ноября 2014 похоже что для тега active такой способ не поддерживается Действительно, такой способ для гулагов не поддерживается ни на каком патче. Тогда есть три варианта решения этой проблемы. 1. Менять состояние гулага по этим инфопоршням, не забывая расписывать логику всему гулагу для новых состояний. 2. Не меняя состояние гулага, выдавать логику заданному нпс в соответствии с инфопоршнями. Приблизительно вот так. if type == "esc_blokpost" then if has_alife_info("info1") then t = { section = "logic@esc_blockpost_patrol1",....} else t = { section = "logic@esc_blockpost_patrol2",....} При этом надо будет добавить новые секции логики в .ltx гулага. 3. Открываем xr_gulag.script и добавляем поддержку конд листа. В function gulag:get_job_path_name( job ), вместо строки local active_section = self.ltx:r_string( section, "active" ) пишем вот так: local active_section_cond = xr_logic.cfg_get_condlist(self.ltx, section, "active", self) local active_section = xr_logic.pick_section_from_condlist(db.actor, self, active_section_cond.condlist) 1 Вообще-то я белая и пушистая... Ссылка на комментарий
Zander_driver 10 333 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 А я один раз, пока не изменил стиль и шрифт Нотепада++ не мог избавится от вылета из-за того, что было написано не look, а 1ook))) У меня был случай, вылетало из-за того что было написано не cristall_flower, а cristаll_flower. В чем разница? во втором буква а на кириллице...История отлова этого вылета была долгой. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Wolkodav 0 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 Ребят, есть вопрос по поводу логики... [logic] active = walker@at_hulecombat_ignore = combat_ignoreinv_max_weight = 10000danger = danger_condition@vitek_voron[walker@at_hule]path_walk = bill_1_walkpath_look = bill_1_lookmeet = meet@at_hule[meet@at_hule]meet_state = 4|vitek_voron_talk_free@vitek_voron_hellomeet_state_wpn = 4|vitek_voron_talk_free@vitek_voron_hellovictim = 10|actorvictim_wpn = 10|actoruse = trueuse_wpn = true[danger_condition@vitek_voron]ignore_distance = 0[combat_ignore]combat_ignore_cond = always По этой логики он работает прекрасно, когда подходишь, приветствует фразами vitek_voron_hello_1 и vitek_voron_hello_2, рандомно...К этому вопросов нет. Ну вот в чем собственно вопрос, не могу понять один аспект, перерыл все файлы логики ну так и не разобрался... Для примера сидорович, когда к нему подходишь он говорит фразу приветсвия, и когда отходишь он говорит тип проветришься заходи...Как через мою логику прописать чтобы к примеру если отходишь метров на 10 то он бы тоже говорил фразу? Ссылка на комментарий
Barmolini 1 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 (изменено) @Wolkodav, можно попробовать так: [walker@at_hule] path_walk = bill_1_walk path_look = bill_1_look meet = meet@at_hule on_actor_dist_le = 3|%+say_hello% on_actor_dist_ge = 7|%-say_hello% [meet@at_hule] meet_state = 4|{-say_hello}vitek_voron_talk_free@vitek_voron_hello|6|{+say_hello}vitek_voron_talk_free@vitek_voron_bay meet_state_wpn = 4|{-say_hello}vitek_voron_talk_free@vitek_voron_hello|6|{+say_hello}vitek_voron_talk_free@vitek_voron_bay victim = 10|actor victim_wpn = 10|actor use = true use_wpn = true Но нужно тестировать. Изменено 3 Ноября 2014 пользователем Barmolini Ссылка на комментарий
Карлан 1 049 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 @Wolkodav, если есть рандомные фразы, пиши звуковую схему (удобнее в дальнейшем юзать), если одна фраза, то можно и функцию написать, а по поводу воспроизведения вот у себя взял: on_actor_dist_le = 10 | walker ; когда игрок подойдет ближе 10 м. on_actor_dist_le_nvis = 10 | walker ; то же самое, но без проверки на видимость on_actor_dist_ge = 10 | walker ; когда игрок будет на расстоянии больше 10 м. on_actor_dist_ge_nvis = 10 | walker ; то же самое, но без проверки на видимость Ссылка на комментарий
amik 253 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 (изменено) Wolkodav Я бы попробовал вот так, на тест: [walker@at_hule] path_walk = bill_1_walk path_look = bill_1_look on_actor_dist_le_nvis = 9 | remark@new_wait [remark@new_hello] target = actor snd_anim_synс = true anim = hello snd = trader_hello_what_have_you_got on_signal = action_end | remark@new_wait [remark@new_bye] on_actor_dist_ge_nvis = 12 |remark@new_wait snd_anim_synс = true anim = hello snd = trader_bye on_signal = action_end | remark@new_wait [remark@new_wait] target = actor anim = guard on_actor_dist_le_nvis = 3 | {-voron_hello_played} remark@new_hello %+voron_hello_played% on_actor_dist_ge_nvis = 5 | {-voron_bye_played +voron_hello_played} remark@new_bye %+voron_bye_played% on_actor_dist_ge_nvis = 12 | walker@at_hule %-voron_hello_played -voron_bye_played% Изменено 3 Ноября 2014 пользователем amik Мой архив Сталкером не занимаюсь. Ссылка на комментарий
AndrewMor 527 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 (изменено) [smart_terrain] type = gar_ost capacity = 1 cond = {+freeplay} Ну и где этот самый freeplay выдается ? Этот самый freeplay выдается вручную, для проверки. путь напиши, и проверь существующие. Написать - в каком смысле? А существующие пути вроде правильны. Или их надо в way_l03_agroprom.ltx прописывать? Изменено 3 Ноября 2014 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 Зачем оно вообще в смарте ? А вообще, слона обычно едят по частям. Если убрать все переключения отовсюду, крота сразу прописать эксклюзивом в смарт, он с начала игры в него пойдет ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndrewMor 527 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 Зачем оно вообще в смарте ? Крот должен пойти под этот смарт после выдачи поршня. До его выдачи он должен быть под своей сюжетной логикой. Если убрать все переключения отовсюду, крота сразу прописать эксклюзивом в смарт, он с начала игры в него пойдет ? Не проверял, поэтому не знаю. Сталкер - наше всё! Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 "Крот должен пойти под этот смарт после выдачи поршня." Ну так условие тогда прописывается Кроту, а не смарту. [smart_terrains] none = {-freeplay} gar_ost = {+freeplay} - вполне достаточно. А для поверки вообще оставить gar_ost = true Угум, сначала делаем все сразу , а потом начинаем гадать, что не работает. И, да, предикаты в работах прописываются тогда, когда их много, и сталкеров много. Чтобы ни кто чужую работу не занял. Если смарт на одного сталкера с одной работой - только тормоза лишние, и место для ошибок понаделать. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndreySol 215 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 (изменено) И, да, предикаты в работах прописываются тогда, когда их много, и сталкеров много. Чтобы ни кто чужую работу не занял. А такой вот вопрос: к примеру имеем три работы с одинаковым предикатом, допустим по секции спавна. Приоритеты будут работать для этих предикатных работ ? И что главнее: предикат или приоритет ? Изменено 3 Ноября 2014 пользователем AndreySol Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 3 Ноября 2014 Поделиться Опубликовано 3 Ноября 2014 (изменено) Если предикат не проходит - отлуп: пусть занимает какую-нибудь другую. Далее - по приоритету. Если приоритеты одинаковые... Теоретически - первая в таблице, на практике - там довольно странный и загадочный код переназначения. Гм... Еще раз перечитал, и сам ничего не понял. Если по другому сформулировать, то любой непись стремится занять свободную работу с наибольшим приоритетом. Но, если там есть предикат, и непись не прошел по условию, на эту работу его не пустят. Пример с Кордоном: работа для Волка имеет наивысший приоритет. Поэтому, пока она свободна, на нее пытаются назначить всех подряд. Но подходит только Волк, так что он на ней в итоге и оказывается. Если таких работ будет 3 - Волк займет одну, с максимальным приоритетом, остальные 2 останутся свободными. upd: А, да, самое главное западло: если работа для Волка будет иметь приоритет ниже, чем другие, Волк может попасть на любую, а его работа останется свободной, и, соответственно, кто-то из неписей может оказаться без работы. Просто у работ с предикатами приоритеты должны быть максимальны. И, да, я гулаговый скрипт переписал: там если есть предикат - приоритет автоматически поднимается, + альтернативный формат описания работ. типа вот так: ["esc_lager"] = { -- Лагерь новичков на Кордоне-- "logic@esc_lager_sleeper1" -- бункер доктора-- "logic@esc_lager_sleeper2" -- ближний бункер к Волку-- "logic@esc_lager_sleeper3" -- ближний бункер к Волку-- "logic@esc_lager_sleeper5" -- в развалинах-- "logic@esc_lager_sleeper6" -- бункер доктора-- "logic@esc_lager_sleeper7" -- дом на входе-- "logic@esc_lager_defend1" -- напротив костра -- занято под Фаната-- "logic@esc_lager_defend2" -- за кустом у развалюхи-- "logic@esc_lager_defend3" -- ХРЕНОВЫЙ. чуть дальше и правее 2. Наемники видят !-- "logic@esc_lager_defend4" -- типа за бункером, между ним и кустом. todo: в олспавне сдвинуть чуть дальше.-- "logic@esc_lager_defend5" -- ХРЕНОВЫЙ. Типа за бочкой.-- "logic@esc_lager_defend6" -- ближний бункер к Волку-- "logic@esc_lager_defend7" -- ближний бункер к Волку-- "logic@esc_lager_defend8" -- дальний-- "logic@esc_lager_defend9" -- дальний (Когда-то был Петруха)-- "logic@esc_lager_defend10" -- дальний (Толик. Был.)-- "logic@esc_lager_defend11" -- дальний-- "logic@esc_lager_defend12" -- Фанат. И ему здесь смерть, по тому что он первый, кого видят наймы еще от дороги.-- "logic@esc_lager_defend13" -- дальний, и таки Волк. -- охранники { section = "logic@esc_lager_zoneguard1", -- "logic@esc_lager_zoneguard1", idle = 0, prior = 9, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_zoneguard2", -- "logic@esc_lager_zoneguard2", idle = 0, prior = 9, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_walker3", idle = 0, prior = 8, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_walker4", idle = 0, prior = 8, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend2", idle = 0, prior = 14, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend4", idle = 0, prior = 12, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend6", idle = 0, prior = 10, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend7", idle = 0, prior = 9, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, -- у костра днём { section = "logic@esc_lager_kamp1", idle = 0, prior = 6, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 6, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 6, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, -- спящие ночью { section = "logic@esc_lager_sleeper1", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_sleeper2", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_sleeper3", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend8", idle = 0, prior = 8, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend9", idle = 0, prior = 7, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend10", idle = 0, prior = 7, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, -- спящие ночью и днём { section = "logic@esc_lager_sleeper5", idle = 0, prior = 4, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_sleeper6", idle = 0, prior = 3, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_sleeper7", idle = 0, prior = 3, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend11", idle = 0, prior = 6, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, -- где-то тут был Толик { section = "logic@esc_lager_defend14", -- Волка скорее всего нет idle = 0, prior = 5, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend15", -- если Толик помер. idle = 0, prior = 4, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_sleeper5", -- если все еще не лезет. idle = 0, prior = 3, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, -- Волк, собственной персоной. { section = "logic@esc_lager_volk", idle = 0, prior = 19, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info["profile_name"] == "esc_wolf" end }, { section = "logic@esc_lager_defend13", idle = 0, prior = 20, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info["profile_name"] == "esc_wolf" end }, -- and not (has_alife_info("agroprom_military_case_have") and has_alife_info("esc_fanat_spawn") ) end }, -- Фанат { section = "logic@esc_lager_fanat", idle = 0, prior = 19, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info["profile_name"] == "esc_fanat" end }, { section = "logic@esc_lager_defend12", idle = 0, prior = 20, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info["profile_name"] == "esc_fanat" end }, -- резерв на случай смерти Волкофаната. { section = "logic@esc_lager_sleeper1", idle = 0, prior = 2, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 2, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend5", -- ХРЕНОВЫЙ. Но резерв. idle = 0, prior = 2, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, -- Шустрый { section = "logic@esc_lager_shustryi_sleep", idle = 0, prior = 18, state = {0, 2}, in_rest = "", out_rest = "", predicate = function(obj_info) return ( obj_info["profile_name"] == "esc_shustryi" ) and has_alife_info( "tutorial_wounded_give_info" ) end }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 18, state = {1}, in_rest = "", out_rest = "", predicate = function(obj_info) return ( obj_info["profile_name"] == "esc_shustryi" ) and has_alife_info( "tutorial_wounded_give_info" ) end }, { section = "logic@esc_lager_shustryi", idle = 0, prior = 17, state = {0, 1, 2}, in_rest = "", out_rest = "", predicate = function(obj_info) return ( obj_info["profile_name"] == "esc_shustryi" ) and has_alife_info( "tutorial_wounded_start" ) end }, { section = "logic@esc_lager_shustryi", idle = 0, prior = 16, state = {0, 1, 2}, in_rest = "", out_rest = "", online = false, predicate = function(obj_info) return obj_info["profile_name"] == "esc_shustryi" end }, -- резерв на случай смерти Шустрого { section = "logic@esc_lager_sleeper2", idle = 0, prior = 2, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 2, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend3", -- ХРЕНОВЫЙ. Но резерв. idle = 0, prior = 2, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_kamp1", -- ну наплодили... больше некуда, кроме как к костру idle = 0, prior = 1, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend1", -- Занято под Фаната idle = 0, prior = 1, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend16", -- Толик. Пусть дальше спит. idle = 0, prior = 16, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info["name"] == "esc_vagon_wounded" end }}, - это уже со всеми фиксами типа бегающего Шустрого, вылета по нехватке работ, переключениях при дохлых неписях и т.д. - и все равно гораздо нагляднее. Изменено 19 Января 2015 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Struck 61 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 (изменено) как можно внимательнее выставлять предикаты и приоритеты И это далеко не всегда помогает, вроде смотришь - все логично и хорошо, а на деле нифига не работает. По уму нужно переписывать и xr_gulag и gulag_general и вообще все, так как кривоту работы этого всего барахла не описать. А когда подходишь к финальной стадии правки этой системы перед тобой открывается нечто... Система начинает работать как задумывалось, но не как на деле, и да, при желании можно написать систему жизни как в ЗП (и даже лучше), причем без лишней муки создания кучи гулагов и кучи работ. Ну, да - переписывать нафиг. Но в принципе - работает, кроме странного переназначения, в котором разрыв в приоритетах останавливает цикл. И, да, на самом деле оно не нужно. dc Подскажите, как правильно передать аргументы? Мсье знает толк... Изменено 4 Ноября 2014 пользователем Dennis_Chikin Ссылка на комментарий
alex5773 1 330 Опубликовано 5 Ноября 2014 Поделиться Опубликовано 5 Ноября 2014 (изменено) На кордоне на блок посту военных спавн бочек происходит постоянно, стоит их взорвать и отойти недалеко, и они опять будут стоять, и так постоянно. И это без всякой перезагрузки, отойти до деревни новичков допустим, и обратно прийти. Как убрать это недоразумение(читерство, а то горючка на халяву), не подскажете? Хотя сейчас только два раза заспавнилось. Взорвал три бочки возле кпп, потом ту бочку возле казармы, пришёл к кпп они уже стоят, взорвал пошёл к казарме, тоже стоит, взорвал, пошёл к кпп там уже нет, пошёл к казарме тоже нет. Короче не появились больше. Всего по два раза заспавнились сейчас. Изменено 5 Ноября 2014 пользователем alex5773 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти