Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 (изменено) Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском.Возможно, ответ на Ваш вопрос уже есть.Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. Изменено 23 Февраля 2016 пользователем warwer 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
boneset-jq 0 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 (изменено) 18 часов назад, mole venomous сказал: ЕМНИП, это проигрывается постпроцесс "agr_u_fade". Если по-хорошему, то убрать ф-ию его вызова из all.spawn: Скрыть Рестриктор 'trader_zone_task' оригинал on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger =run_postprocess(agr_u_fade)% правлено on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger% Спасибо тебе огромное чел, без тебя бы не справился! Ещё вопрос можно? Как сделать выдачу квеста при старте игры? Изменено 13 Мая 2023 пользователем boneset-jq Добавлено Опричник, 13 Мая 2023 Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/ Ссылка на комментарий
mole venomous 2 996 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 (изменено) 36 минут назад, boneset-jq сказал: Как сделать выдачу квеста при старте игры? Речь про стартовый сюжетный квест? На первый взгляд, всё так же: Скрытый текст Имея распакованные конфиги/скрипты, возможность поиска файлов с указанным текстом (Total Commander), начальные навыки в ковырянии и понимание, что ты делаешь, можно пошагово выявить, что где убрать/отключить/переместить и пр. Первый диалог с Сидоровичем - "escape_trader_start_dialog", в этом диалоге выдаётся инфопоршень, "толкающий" первое задание - "tutorial_wounded_start". Можно выдать этот инфо прямо на старте, в том же рестрикторе, где отключили затемнение: on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger +tutorial_wounded_start% Однако, стоит понимать, что нужно теперь убрать паузу, пока говорит Сидор, его анимации и озвучку, а так же "открыть" дверь бункера и чёрт его знает, что ещё. Очень важно понимать, что ускоряя ход событий такими шагами, мы рискуем где-нибудь что-нибудь упустить. Например, если в диалоге выдаётся инфо или вызывается какая-то функция (кроме того, что "по-быстрому" сейчас перенесли), не все условия для выполнения квеста (и не только) могут будут быть выполнены... Изменено 13 Мая 2023 пользователем mole venomous 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Купер 2 299 Опубликовано 13 Мая 2023 Поделиться Опубликовано 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 Ссылка на комментарий
mole venomous 2 996 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 (изменено) @Купер , это как и с прекондишенами: Скрытый текст -- Лукаш t = {section = "logic@mil_freedom_lukash", idle = 0, prior = 20, state = {0, 3}, squad = squad, group = groups[0], in_rest = "mil_freedom_wall_restrictor", out_rest = "", position_threshold = 600, predicate = function (info) return info.profile_name == "mil_Svoboda_leader" and info.story_id == 707 end } table.insert(sj, t) *** Хотя, ты уже в курсе) https://www.amk-team.ru/forum/topic/14288-soc-kovyryaemsya-v-faylah/?do=findComment&comment=1381521 @Купер , на самом деле, только два варианта думаю: Разные люди делали и оставили так и этак. А может, что бы наверняка... Но что может такого случится в штатном режиме, что бы один из вариантов не сработал?.. Изменено 13 Мая 2023 пользователем mole venomous 1 Здесь могла быть ваша реклама. Ссылка на комментарий
stalkersd23134 0 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 Я вчера начал делать новый квест для моего мода. Это заняло весь день. При заходе в игру у меня были две ошибки, я их конечно исправил и подумал, что всё нормально. После этих двух ошибок я смог запустить тч. Я начал новую игру и на синхронизации у меня вылетает жук. Вот лог: Скрытый текст Клиент: Синхронизация... * phase time: 10 ms * phase cmem: 300837 K * [win32]: free[2384324 K], reserved[216456 K], committed[1593460 K] * [ D3D ]: textures[858870 K] * [x-ray]: crt heap[300837 K], process heap[1067023 K], game lua[25699 K], engine lua[253 K], render[0 K] * [x-ray]: economy: strings[3802 K], smem[28537 K] [16-9] get_xml_name for[game_tutorials.xml] returns [game_tutorials.xml] [16-9] get_xml_name for[ui_credits.xml] returns [ui_credits.xml] [16-9] get_xml_name for[ui_movies.xml] returns [ui_movies.xml] [16-9] get_xml_name for[map_spots.xml] returns [map_spots.xml] [16-9] get_xml_name for[map_spots_escape.xml] returns [map_spots_escape.xml] [16-9] get_xml_name for[map_spots_garbage.xml] returns [map_spots_garbage.xml] [16-9] get_xml_name for[map_spots_agroprom.xml] returns [map_spots_agroprom.xml] [16-9] get_xml_name for[map_spots_darkvalley.xml] returns [map_spots_darkvalley.xml] [16-9] get_xml_name for[map_spots_bar.xml] returns [map_spots_bar.xml] [16-9] get_xml_name for[map_spots_military.xml] returns [map_spots_military.xml] [16-9] get_xml_name for[map_spots_radar.xml] returns [map_spots_radar.xml] [16-9] get_xml_name for[map_spots_mp.xml] returns [map_spots_mp.xml] [16-9] get_xml_name for[map_spots_relations.xml] returns [map_spots_relations.xml] [16-9] get_xml_name for[map_spots_lchangers.xml] returns [map_spots_lchangers.xml] ! Invalid ogg-comment version, file: c:\program files (x86)\games\s.t.a.l.k.e.r. Тень Чернобыля\gamedata\sounds\weapons\generic_sounds\generic_close.ogg ! Invalid ogg-comment version, file: c:\program files (x86)\games\s.t.a.l.k.e.r. Тень Чернобыля\gamedata\sounds\weapons\knife\knife_kick_2.ogg FATAL ERROR [error]Expression : start_node && path [error]Function : CXml::NavigateToNode [error]File : E:\stalker\sources\trunk\xrXMLParser\xrXMLParser.cpp [error]Line : 97 [error]Description : NavigateToNode failed in XML file [error]Arguments : gameplay\game_tasks.xml Скрипт: <objective> <text>task_2_1</text> - ошибка <map_location_type>green_location</map_location_type> <object_story_id>Escape_anomaly_field</object_story_id> </objective> <objective> И причём, игра эту ошибку нашла сначала в том скрипте, которого не было. А это значит, что где то в диалогах проблема. Я долго рылся и ничего не нашёл. Помогите мне, пожалуйста, сталкеры. Добавлено Murarius, 13 Мая 2023 Перемещено Ссылка на комментарий
mole venomous 2 996 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 Откуда информация, что здесь ошибка? 2 часа назад, stalkersd23134 сказал: <text>task_2_1</text> - ошибка На форуме ошибка Line 97: https://www.amk-team.ru/forum/faq/5-spravochnik-vyletov-line-1-line-100/#elQuestion-68 Цитата: В указанном файле в одном из диалогов игра не может найти первую фразу 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Nowislaw 5 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 Доброго времени суток, дорогие форумчане. Очень надеюсь, что пишу в нужную тему. Подскажите, пожалуйста, что означают параметры: Team, Squad и Group в параметрах Сталкера-НПС в СДК? Скрытый текст Так же хочется узнать, что такое stay и groups в параметрах general_lager/lair. Заранее низкий поклон за все ответы. Скрытый текст Хочу сделать продвинутый general_lager/lair для НПС. Чтобы они раз в какое-то время занимали работы, иногда менялись и тд. 1 Z690 GAMING X DDR4, 12th Gen Intel(R) Core(TM) i7-12700KF, NVIDIA GeForce RTX 2060 SUPER, Windows 11. Ссылка на комментарий
boneset-jq 0 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 @mole venomous Нет, я имел в виду выдачу при старте именно игры, а не у сидоровича. Тоесть у меня спавн ГГ не у сидора. Нужно чтобы квест выдавался типо как квест со стрелком при начале игры. 7 минут назад, boneset-jq сказал: @mole venomous Нет, я имел в виду выдачу при старте именно игры, а не у сидоровича. Тоесть у меня спавн ГГ не у сидора. Нужно чтобы квест выдавался типо как квест со стрелком при начале игры. Короче, я сам догадался. Надо было в инфопоршне по выдаче квеста Стрелка просто свой квест прописать и готово! Цитата <info_portion id="esc_kill_gunslinger"> <task>storyline_eliminate_gunslinger</task> <task>test_quest</task> - Мой квест <article>about_enciclopedia</article> <article>sl_beginning</article> </info_portion> Ссылка на комментарий
mole venomous 2 996 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 @boneset-jq , квест про "спасти Шустрого и всё остальное" выдаётся следом за инфопоршеном 8 часов назад, mole venomous сказал: "tutorial_wounded_start" А уж как ты этот инфопоршен получишь... Зависит от фантазии. В этом варианте 8 часов назад, mole venomous сказал: on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger +tutorial_wounded_start% он выдаётся в рестрикторе, что в бункере Сидоровича. Перемести рестриктор на координаты ГГ. Или вызывай из скрипта bind_stalker Скрытый текст Вот здесь: https://disk.yandex.ru/i/nPuBGvy4uYH4aQ *** Дверь в бункер всё равно не откроется Здесь могла быть ваша реклама. Ссылка на комментарий
Купер 2 299 Опубликовано 13 Мая 2023 Поделиться Опубликовано 13 Мая 2023 @Nowislaw , вот тут и дальше. Хмм... а вот тоже почитал бы с интересом на внятном языке как это всё работает . 1 2 Ссылка на комментарий
Nowislaw 5 Опубликовано 14 Мая 2023 Поделиться Опубликовано 14 Мая 2023 8 часов назад, Купер сказал: тут и дальше Благодарю за ответ. Жаль, что в этой "мини-вики" представлено сухое описание, а не более развёрнутый ответ. Еще бы хотелось узнать про следующие элементы: 1. Way-Point'ы типа raid. Как они работают и что делают. 2. Функции switch_X в схемах некоторых лагерей. Пример ниже. Скрытый текст [smart_terrain] type = general_lager switch_0 = {=gulag_empty(gar_smart_bandit3)} switch_1 = {=gulag_population_comed_ge(gar_smart_bandit_2:5) !gulag_empty(gar_smart_bandit3)} capacity = 5 communities = bandit cond = {+agroprom_military_case_done -bar_darklab_document_done} stay = medium groups = 7 Z690 GAMING X DDR4, 12th Gen Intel(R) Core(TM) i7-12700KF, NVIDIA GeForce RTX 2060 SUPER, Windows 11. Ссылка на комментарий
Это популярное сообщение. dsh 3 820 Опубликовано 14 Мая 2023 Это популярное сообщение. Поделиться Опубликовано 14 Мая 2023 @Купер если я ничего не путаю, team - это что-то вроде внутреннего представления группировки. Каждая группировка - это team. Squad - вроде просто содержит groups. Не помню, что бы сквады в ТЧ использовались ещё для чего нибудь. А вот groups - это самое нужное. Неписи из одной группы обмениваются информацией о врагах. Поэтому в смартах нужно указывать группы правильно, с учётом этого обмена. А иначе вынесли бандитов в одном лагере, а в другом бандиты уже на стреме. @Nowislaw опять таки если ничего не путаю, switch_ - это условия перехода лагеря в состояние 0 или 1, т.е. в соответствующие states. 1 1 3 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Hind 29 Опубликовано 14 Мая 2023 Поделиться Опубликовано 14 Мая 2023 Мужики, по ОГСМ на ТЧ подскажите, из-за чего может быть такое, что в какой то момент после того как юзаешь его, засыпаешь, гг просыпается, при этом прошло не то время сна, которое ты указывал, и после всё игровое время останавливается - застывает просто, вечная ночь. А при повторном использовании спальника - он просто исчезает, хотя сам "зевок" персонажа есть Решил намутить магнитофон из золотого шара, всё прикрутил, как надо, он ставится, музычка играет, но при попытке взять его игра вылетает. Скрытый текст [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ....a.l.k.e.r. hum 1.1\gamedata\scripts\xr_logic.script:612: attempt to call field '?' (a nil value) Скрытый текст [logic] active = ph_idle [ph_idle] tips = magnitofon_use on_use = %=give_items_to_actor(magnitofon_portable) =play_snd(characters_voice\scenario\afscanner_off) =delme% Hind Upgrade Mod Ссылка на комментарий
mole venomous 2 996 Опубликовано 14 Мая 2023 Поделиться Опубликовано 14 Мая 2023 (изменено) 13.05.2023 в 18:28, stalkersd23134 сказал: игра эту ошибку нашла сначала в том скрипте, которого не было Думаю, в файле game_tasks.xml отсутствует задание (или нет инклуда к новому файлу с новыми заданиями) с нужным идентификатором. Под нужным идентификатором подразумеваю тот, который указан вот здесь (к примеру): Цепочка выглядит так: Диалог --> Инфопоршень --> Задание Ошибка в структуре инфопоршена или id квеста . Изменено 14 Мая 2023 пользователем mole venomous 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Hind 29 Опубликовано 14 Мая 2023 Поделиться Опубликовано 14 Мая 2023 Скрытый текст [logic] active = ph_sound [ph_sound] snd = script_magnitofon_music6 looped = true on_info = {=actor_has_item(magnitofon_portable)} ph_sound@stop [ph_sound@stop] snd = silence on_signal = sound_end|nil %=delme% Подскажите, всё ли чисто в этом коде? ----- Забуксовал я короче, на вводе магнитофона. Потянуло меня его состряпать, прикольно же - пришел в свой лагерь в заднице зоны, включил приемник, музычка играет, сидишь у костра и читаешь ПДА, паралелльно за окном раздолбанной хаты наступают сумерки. Ладно, это я в лирику ушёл. Решил всё слямзить у многоуважаемого Жекана из мода "Золотой Шар: завершение". Как идёт система: при "сьедании" магнитофона, он пропадает из инвентаря, вместе с этим спавнится 2 обьекта - сам магнитофон (script_magnitofon) и точка (script_magnitofon_point#), проигрывающая музычку. Если нам надо закругляться с дискотекой - тыкаем на рестриктор вокруг приемника, и он складывается в инвентарь. При чем точка, проигрывающая музычку убирается при получении инфы, что у нас в инвентаре появился магнитофон. Собственно проблема в чём - я всё сделал как надо, всё везде подключил. Магнитофон выдается при начале новой игры, тыкаю - появляется панелька, там тыкаешь на те кнопки, которые доступны (при наличии соответствующих кассет), и под ногами спавнится магнитофон, начиная проигрывать музычку. Однако при попытке свернуть его обратно в инвентарь, после нажатия кнопки действия, игра вылетает с логом Итак, ниже моя писанина с кодом Скрытый текст function magnitofon_interface() local spwn = script_magnitofon(get_hud()) level.start_stop_menu(spwn,true) end class "script_magnitofon" (CUIScriptWnd) function script_magnitofon:__init(owner) super() self.dlg = self self.owner = owner self:InitControls() self:InitCallBacks() end function script_magnitofon:__finalize() end function script_magnitofon:InitControls() -- здесь определяем координаты левого верхнего угла и ширину-высоту self:Init(0,0,1024,768) -- файл-описатель наших элементов local xml = CScriptXmlInit() xml:ParseFile("script_magnitofon.xml") -- текстура xml:InitStatic("ramka", self) xml:InitStatic("name", self) xml:InitStatic("text1", self) -- кнопки self.btn_1 = xml:Init3tButton("btn_1", self) self:Register(self.btn_1, "btn_1") self.btn_1:Enable(false) self.btn_2 = xml:Init3tButton("btn_2", self) self:Register(self.btn_2, "btn_2") self.btn_2:Enable(false) self.btn_3 = xml:Init3tButton("btn_3", self) self:Register(self.btn_3, "btn_3") self.btn_3:Enable(false) self.btn_4 = xml:Init3tButton("btn_4", self) self:Register(self.btn_4, "btn_4") self.btn_4:Enable(false) self.btn_5 = xml:Init3tButton("btn_5", self) self:Register(self.btn_5, "btn_5") self.btn_5:Enable(false) self.btn_6 = xml:Init3tButton("btn_6", self) self:Register(self.btn_6, "btn_6") self.btn_6:Enable(false) self.btn_7 = xml:Init3tButton("btn_7", self) self:Register(self.btn_7, "btn_7") self.btn_7:Enable(false) self.btn_8 = xml:Init3tButton("btn_8", self) self:Register(self.btn_8, "btn_8") self.btn_8:Enable(false) self.btn_9 = xml:Init3tButton("btn_9", self) self:Register(self.btn_9, "btn_9") self.btn_9:Enable(false) self.btn_10 = xml:Init3tButton("btn_10", self) self:Register(self.btn_10, "btn_10") self.btn_10:Enable(false) -- кнопка офф self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") -- определяем доступность кнопки if db.actor:object("casette_1") ~= nil then self.btn_1:Enable(true) end if db.actor:object("casette_2") ~= nil then self.btn_2:Enable(true) end if db.actor:object("casette_3") ~= nil then self.btn_3:Enable(true) end if db.actor:object("casette_4") ~= nil then self.btn_4:Enable(true) end if db.actor:object("casette_5") ~= nil then self.btn_5:Enable(true) end if db.actor:object("casette_6") ~= nil then self.btn_6:Enable(true) end if db.actor:object("casette_7") ~= nil then self.btn_7:Enable(true) end if db.actor:object("casette_8") ~= nil then self.btn_8:Enable(true) end if db.actor:object("casette_9") ~= nil then self.btn_9:Enable(true) end if db.actor:object("casette_10") ~= nil then self.btn_10:Enable(true) end end function script_magnitofon:InitCallBacks() -- тут интерактивные элементы, при определенном действии выполняется заданная ф-ия self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.btn1, self) self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.btn2, self) self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.btn3, self) self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.btn4, self) self:AddCallback("btn_5", ui_events.BUTTON_CLICKED, self.btn5, self) self:AddCallback("btn_6", ui_events.BUTTON_CLICKED, self.btn6, self) self:AddCallback("btn_7", ui_events.BUTTON_CLICKED, self.btn7, self) self:AddCallback("btn_8", ui_events.BUTTON_CLICKED, self.btn8, self) self:AddCallback("btn_9", ui_events.BUTTON_CLICKED, self.btn9, self) self:AddCallback("btn_10", ui_events.BUTTON_CLICKED, self.btn10, self) self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) end function script_magnitofon:btn1() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point1', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn2() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point2', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn3() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point3', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn4() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point4', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn5() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point5', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn6() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point6', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn7() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point7', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn8() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point8', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn9() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point9', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:btn10() self:on_quit() alife():create('script_magnitofon', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) alife():create('script_magnitofon_point10', db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) amk.remove_item(db.actor:object("magnitofon_portable")) HUM_food.actor_disable_inventory() end function script_magnitofon:on_quit() self:GetHolder():start_stop_menu (self,true) self.dlg = nil collectgarbage("collect") end Скрытый текст [logic] active = ph_sound [ph_sound] snd = script_magnitofon_music1 looped = true on_info = {=actor_has_item(magnitofon_portable)} ph_sound@stop [ph_sound@stop] snd = silence on_signal = sound_end|nil %=delme% Скрытый текст [logic] active = ph_idle [ph_idle] tips = magnitofon_use on_use = %=give_items_to_actor(magnitofon_portable) =play_snd(characters_voice\scenario\afscanner_off)% Скрытый текст [script_magnitofon]:magnitofon_script visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon.ltx [script_magnitofon_point1]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point1.ltx [script_magnitofon_point2]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point2.ltx [script_magnitofon_point3]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point3.ltx [script_magnitofon_point4]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point4.ltx [script_magnitofon_point5]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point5.ltx [script_magnitofon_point6]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point6.ltx [script_magnitofon_point7]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point7.ltx [script_magnitofon_point8]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point8.ltx [script_magnitofon_point9]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point9.ltx [script_magnitofon_point10]:place_sleep visual = physics\decor\priemnik_gorizont.ogf radius = 1 custom_data = scripts\HUM\script_magnitofon_point10.ltx Ну и плюс файлы типо items.ltx devices.ltx, sound_theme.script, я их подредачил, в первых двух сделал сами предметы, в последнем вгрузил всё музло. При этом всё соотвествует тому, чему надо. Если подитожить - при поднятии магнитофона, идёт вылет, с логом: Скрытый текст [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ....a.l.k.e.r. hum 1.1\gamedata\scripts\xr_logic.script:612: attempt to call field '?' (a nil value) По-мо-ги-те! Не то, чтобы это смертельно, магнитофон всё таки больше фича, но я реально не вкуриваю, где я ошибся Hind Upgrade Mod Ссылка на комментарий
Ali_Babai_45 19 Опубликовано 15 Мая 2023 Поделиться Опубликовано 15 Мая 2023 Доброго времени суток Всем! Скачал ТЧ 1.0006 от Хаттаба. Перёс в файл ui_main_menu.script функцию ремонта из припасённого ui_main_menu.script от ТЧ 1.0004. Функцию когда-то выдернул из мода на ремкомплекты, только ремонт стал производиться по нажатии клавиши. При этом на экран выводится текст с результатами ремонта. Проблема в том, что вместо русского текста отображаются кракозябры. Я думал, что дело в кодировке. Файл из 6 патча показывает кодировку в UTF-8, а из 4 патча - кириллица макинтош. Пробовал конвертировать и исходный файл из 4 патча в UTF-8, и измененный файл из 6 патча - толку никакого. С файлами работаю в редакторе Notepad++. Если что, Винда 10. Пробовал исправить кириллицу в Региональных стандартах и через реестр. Не помогло. Ссылка на комментарий
Купер 2 299 Опубликовано 15 Мая 2023 Поделиться Опубликовано 15 Мая 2023 @Ali_Babai_45 , 1. Стандартный блокнот в новых версиях Win (8+) по умолчанию как раз сохраняет файлы в "неправильной" для Сталкера кодировке. UTF with BOM (на всякий случай). 2. У N++, к сожалению, очень давно поломано автоопределение кодировки при открытии (есть такая настройка у него) - кодировка открываемого файла определяется наобум. ANSI / Windows 1251 для скриптов. Вот это вот: "кириллица макинтош" точно жуть. тынц тынц тынц 3. Вообще, кириллица в скриптах - дичайший моветон на самом деле, хотя мы все так и делаем . game.translate_string("...") - почему бы не использовать? 1 2 1 Ссылка на комментарий
Hind 29 Опубликовано 18 Мая 2023 Поделиться Опубликовано 18 Мая 2023 Подскажите, есть ли какой то способ, изменить "зрение" неписей, через скрипт? Вот, чтобы надел ты костюм - и у всех неписей зрение уменьшилось, чтобы тебя не палили.... Hind Upgrade Mod Ссылка на комментарий
Norman Eisenherz 225 Опубликовано 19 Мая 2023 Поделиться Опубликовано 19 Мая 2023 Маскировочный экзоскелет в "солянке" работает через npc:set_range(num) По умолчанию 80 метров, 3–5 метров достаточно для обхода противников вблизи. При значении 0 с ними даже говорить можно. Применять в онлайне. Есть еще какой-то мод с переодеванием, который правит логику поведения NPC добавлением условий "костюм такой-то = не считать врагом" с высшим приоритетом. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Hind 29 Опубликовано 19 Мая 2023 Поделиться Опубликовано 19 Мая 2023 Возникла идея сделать систему "захоронения" трупов. Обьясню, как оно должно работать: При юзании лопаты в инвентаре, открывается текстовое поле, в котором можно написать что угодно. По нажатии на кнопку "Похоронить" в радиусе 5 метров от игрока убираются все трупы, спавнится крест, при наведении на который надпись, которую мы ввели. Конкретно интересует - как строку, получаемую из текстового поля скрипта, запрячь в строку, которая будет выводится как tip в логике? 1 Hind Upgrade Mod Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти