Купер 2 992 Опубликовано 3 Февраля 2023 (изменено) 1. В оригинальном варианте: self.idle_time = 24*5 -- (игровые часы) время между выдачами задания повторно, 5 игровых дней 24 * 1час * 5 = 5 суток. (1 час - единица измерения) Вообще, там оно дальше как вызывается (например): task_desc.next_time = game.hours()+self.idle_time Получаем время в часах и прибавляем к нему нашу константу. Т.е., можно и то, что выше даже попробовать ради интереса.. Изменено 3 Февраля 2023 пользователем Купер 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 6 Февраля 2023 @mmindwork , в начале скрипта есть табл. констант поправочных коэффициентов для уровней сложности: -- какую часть патронов оставлять в стволах в зависимости от сложности игры local ammo_dfcy = { default = 0.6, stalker = 0.4, veteran = 0.3, master = 0.2 } 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 8 Марта 2023 @DarkSnowder , при считывании из табл. anom_list получаем недопустимый первый аргумент. На первый-первый погляд ( ! ) что-то странное здесь: function enumerate_anoms() ... --* по идее же, перебираем в цикле игровые id, а что есть 40000 при этом? id же мах = 65535 ? for id=1,40000,1 do ... end Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 17 Марта 2023 @bsanek628 , [wpn_fort_s1]:wpn_fort Все параметры не указанные явно в конфиге дочерней секции [wpn_fort_s1] , будут читаться из конфига родительской секции [wpn_fort]. 1 1 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 17 Марта 2023 @gam , Скрытый текст изменение silencer_status , snd_*, *_particles , боюсь ошибиться, но вполне себе сработает даже при замене "на горячую". Но, да, во избежание, в самом общем случае "... НИ не так уж совсем не дельный совет". Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 23 Марта 2023 По умолчанию - нет. Либо скриптовые костыли с динамической подменой модели оружия, либо кастомные движки, наподобие OGSR. 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 25 Марта 2023 (изменено) Ёжкин бабай, и чего только народ не нароет по сусекам! Дата: 13.12.2010 Платформа: ТЧ 1.0004 @bsanek628 , прекондишены и экшены в upgrade_actions.script. Скрытый текст -- у актора достаточно денег function semenov_actor_upgrade_have_money_to_silence(actor, npc) return actor:money() >= 5000 end -- забираем их у него function semenov_actor_upgrade_give_money_to_silence(actor, npc) dialogs.relocate_money(npc, 5000, "out") end С последующей проверкой в нужных диалогах. dialogs_yantar.xml: Скрытый текст <phrase id="110"> <text>sgm_semenov_modify_dialog_6</text> <precondition>upgrade_actions.semenov_actor_upgrade_have_money_to_silence</precondition> <action>upgrade_actions.semenov_actor_upgrade_give_money_to_silence</action> <action>upgrade_actions.actor_give_groza</action> <next>111</next> SGM_xml_dialogs.xml: Скрытый текст <string id="sgm_semenov_modify_dialog_7"> <text>Установить безшумный комплект...(За 5 тисяч)</text> </string> <string id="sgm_semenov_modify_dialog_8"> <text>Вы выбрали "безшумный комплект"...Теперь давайте денежки и "Гром", и я приступлю к работе!</text> </string> И, соответственно, для каждого механика. В зависимости от конкретного апргейда. Изменено 25 Марта 2023 пользователем Купер 3 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 16 Апреля 2023 @AleksYan , тут. В конце. Чтоб не мучился . Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 16 Апреля 2023 "Это их худые черти Мутят воду во пруду..." (c) IP поменять на "буржуйский". У нас, кстати, gameru.net-ские ресурсы таки разбанили. Хватило ума, как ни странно. Скрытый текст Параметры фонарика Файл находится по следующему пути:config\models\objects\light_night.ltx [torch_definition] range = 30 ; дистанция в метрах. range_r2 = 30 ; дистанция в метрах (для динамического освещения). color = 0.22,0.22,0.22,0.2 ; цвет, из 4 компонентов <r,g,b,a> значением от 0 до 3. color_r2 = 1.1,1.1,1.1,0.0 ; цвет, из 4 компонентов <r,g,b,a> значением от 0 до 3 (для динамического освещения). omni_range = 3 ; дистанция освещения от фонариков неписей в метрах. omni_range_r2 = 3 ; дистанция освещения от фонариков неписей в метрах (для динамического освещения). omni_color = 1.0,1.0,1.0,0.1 ; цвет фонариков неписей, из 4 компонентов <r,g,b,a> значением от 0 до 3. omni_color_r2 = 1.0,1.0,1.0,0.1 ; цвет фонариков неписей, из 4 компонентов <r,g,b,a> значением от 0 до 3 (для динамического освещения). color_animator = empty ; цвет аниматора (empty - аниматор не используется). spot_texture = internalinternal_light_torch_r2 ; текстура яркой точки (для динамического освещения). spot_angle = 45 ; угол освещения в градусах. glow_texture = glowglow_torch_r2 ; текстура свечения фонарика, когда он направлен в глаза (обязательный параметр). glow_radius = 0.3 ; радиус свечения в метрах. guide_bone = lights_bone ; кость, к направлению которой привязывается фонарик (изменять строго не рекомендуется). 1 1 4 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 13 Мая 2023 (изменено) И чего только не найдёшь любопытства ради. Кстати, а зачем ПЫС дублировали вот это вот пресловутое "Убить Стрелка" ? Скрытый текст bind_stalker.script: --* проверка начала игры if self.bCheckStart then printf("SET DEFAULT INFOS") if not has_alife_info("storyline_actor_start") and (level.name() == "l01_escape") then --* поршень с привязаннным таском self.object:give_info_portion("storyline_actor_start") end + info_protions.xml <info_portion id="storyline_actor_start"> <task>storyline_eliminate_gunslinger</task> </info_portion> И тут же рестриктор: Скрытый текст [logic] active = sr_idle [sr_idle] on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger =run_postprocess(agr_u_fade)% info_l01escape.xml <info_portion id="esc_kill_gunslinger"> <task>storyline_eliminate_gunslinger</task> ... </info_portion> --- Скрытый текст Крот, да не смешно на самом деле: интересно, это обычное ПЫС-ское "как всегда" или действительно есть какой-то сермяжный смысл? Изменено 13 Мая 2023 пользователем Купер 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 13 Мая 2023 @Nowislaw , вот тут и дальше. Хмм... а вот тоже почитал бы с интересом на внятном языке как это всё работает . 1 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 15 Мая 2023 @Ali_Babai_45 , 1. Стандартный блокнот в новых версиях Win (8+) по умолчанию как раз сохраняет файлы в "неправильной" для Сталкера кодировке. UTF with BOM (на всякий случай). 2. У N++, к сожалению, очень давно поломано автоопределение кодировки при открытии (есть такая настройка у него) - кодировка открываемого файла определяется наобум. ANSI / Windows 1251 для скриптов. Вот это вот: "кириллица макинтош" точно жуть. тынц тынц тынц 3. Вообще, кириллица в скриптах - дичайший моветон на самом деле, хотя мы все так и делаем . game.translate_string("...") - почему бы не использовать? 1 2 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 26 Мая 2023 (изменено) @boneset-hq , по умолчанию для военных логика схемы meet не назначается. xr_meet.script Скрытый текст elseif npc_community == "military" or npc_community == "monolith" or npc_community == "killer" or npc_community == "bandit" or npc_community == "zombied" then def.meet_state = "" def.meet_state_wpn = "" def.init_meet = "" def.victim = "" def.victim_wpn = "" def.use = "false" def.use_wpn = "false" def.syndata = "" def.precond = "visibility" def.abuse = "false" Перенастроить/добавить для нужного перса обработку этой схемы в соответствии с соответствующими параметрами для требуемой секции логики его логики. gulag_escape.ltx: Скрытый текст [camper@esc_blockpost_commander_day] path_walk = commander_walk path_look = commander_look meet = meet@abc --* примерно так [meet@abc] <--* примерно так meet_state =... meet_state_wpn =... victim =... victim_wpn =... use =... use_wpn =... syndata =... meet_dialog =... Ориентируясь, например, на того же Кузнецова под мостом. Изменено 26 Мая 2023 пользователем Купер 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 28 Мая 2023 26.05.2023 в 13:54, boneset-hq сказал: Что не так сделано? это 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 7 Июля 2023 Требуется помощь зала. Что может быть не так в регулярках вида: %s*([_%w]+)%s*%=%s*([+=-\|}{)(/@_%s%,%.%w]+)%s* и %s*([%\%.-_%w]+)%s*%|%s*([-_%w]+)%s* Используются в качестве шаблонов для функции string.gmatch() Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 7 Июля 2023 (изменено) @agden , гулагу лагеря новичков (gulag_escape.ltx) в настройках прописан диалог при встрече: Скрытый текст [logic@esc_lager_walker1] active = walker1@esc_lager [walker1@esc_lager] path_walk = guard_walk1 path_look = guard_look1 meet = meet@lager <- вот здесь [meet@lager] meet_dialog = esc_lager_no_talk <- сам диалог В самом диалоге настроен прекондишен для начала общения по поршню, полученному ГГ (dialogs_escape.xml): Скрытый текст <dialog id="esc_lager_no_talk"> <phrase id="0"> <text /> <next>1</next> ... </phrase> <phrase id="1"> <text /> это поршень, необходимый для начала диалога <dont_has_info>tutorial_wounded_start</dont_has_info> <next>11</next> </phrase> иначе с ГГ общаться не будем <phrase id="11"> <text>esc_lager_no_talk_11</text> <next>111</next> </phrase> <phrase id="111"> <text>esc_lager_no_talk_111</text> <action>dialogs.break_dialog</action> </phrase> А этот поршень как раз и выдаётся при стартовом диалоге Сидоровича. Скрытый текст <dialog id="escape_trader_start_dialog"> ... <phrase id="199"> <text>escape_trader_start_dialog_199</text> <action>escape_dialog.give_weapon_to_actor</action> <action>escape_dialog.give_knife_to_actor</action> <give_info>esc_trader_direct</give_info> Вот здесь <give_info>tutorial_wounded_start</give_info> <next>1999</next> </phrase> Изменено 7 Июля 2023 пользователем Купер 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 7 Июля 2023 (изменено) @agden , там у ПЫС в начале на самом деле жуткая каша из билдов и релиза. Разгребать которую... В info_01escape.xml к нему привязано задание "Забрать флешку у разведчика" <info_portion id="tutorial_wounded_start"> <task>esc_flash_task</task> <-- здесь <article>sl_first_opinions</article> <!--commented --> </info_portion> Которое тянет в свою очередь свои поршни (получил задание, взял предмет, выполнил задание и т.д.) Т.е., либо убирать выдачу этого задания по получению поршня, либо в диалогах редактировать ветки с прекондишенами по этому поршню. Тут уж - в зависимости от желаемого . Изменено 7 Июля 2023 пользователем Купер Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 17 Июля 2023 (изменено) map_spots.xml <quest_pointer></quest_pointer> p.s.: @imcrazyhoudini, забыл добавить. Сам параметр динамический. ЕМНИП (не помню за давностью лет), теоретически на каждый тип устанавливаемой метки можно назначить свой тип указателя на неё. тип метки - тип указателя <blue_location> для глобальной карты <level_map spot="blue_spot" pointer="quest_pointer"/> для миникарты <mini_map spot="blue_mini_spot" pointer="quest_pointer"/> </blue_location> Изменено 17 Июля 2023 пользователем Купер 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 26 Июля 2023 Скрытый текст @bsanek628 , вообще, оно тут есть. Чтобы не мучиться. Поделиться этим сообщением Ссылка на сообщение
Купер 2 992 Опубликовано 1 Августа 2023 А зачем в ночном состоянии гулага NPC дневные работы, по идее? Т.е., вот это вот: state = {0,1} Поделиться этим сообщением Ссылка на сообщение