naxac 2 445 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 (изменено) @aka_sektor, наверное, имеешь в виду, разблокированы? Тогда так [logic] active = ph_door@closed Изменено 7 Июня 2019 пользователем naxac 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
aka_sektor 1 476 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 (изменено) @naxac блин, думал только дверью обойтись, но если её пробежать, голос Сидоровича в башке. Может подскажешь, что в логике Сидоровича изменить, чтобы пропустить туториал? [logic] active = {+esc_trader_hello_played} mob_trader@new_idle1, mob_trader@new_start_wait on_trade = mob_trade@new trade = misc\trade_trader.ltx ; ------------------------------------------------------------------------------------------------------ ; ÑÒÀÐÒ ; ------------------------------------------------------------------------------------------------------ ; Æäåì íåìíîãî [mob_trader@new_start_wait] anim_global = chair_hack_idle on_timer = 5000| mob_trader@new_start_intro1 can_talk = false tip_text = ;Ïîäâèãàåìñÿ ê èãðîêó [mob_trader@new_start_intro1] anim_global = chair_hack_to_desk on_signal = animation_end| mob_trader@new_start_intro2 %+esc_trader_hello_played% can_talk = false tip_text = ;Ïåðâàÿ ôðàçà "ÿ òåáÿ ñïàñ..." [mob_trader@new_start_intro2] anim_global = first_phrase anim_head = first_phrase sound_phrase = trader_monolog1 on_signal = animation_end| mob_trader@new_start_intro3 can_talk = false tip_text = ; Æäåì íåìíîãî, âêëþ÷àåì óïðàâëåíèå [mob_trader@new_start_intro3] anim_global = desk_idle tip = tips_esc_trader_how_to_talk on_info = {=talking} mob_trader@new_idle1 on_timer = 5000 | mob_trader@new_start_intro4 ; Ãîâîðèì âòîðóþ ôðàçó (÷òî ñòîèøü? ïîäõîäè) [mob_trader@new_start_intro4] anim_global = desk_talk anim_head = normal sound_phrase = trader_come_here2 on_signal = sound_phrase_end | mob_trader@new_idle1 ;on_info = {=talking} mob_trader@new_idle1 ; îáðûâàòü ôðàçó on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% ;---------------------------------- ;------------- Idle --------------- ;---------------------------------- ;Îñíîâíîé idle (1) - çà ñòîëîì [mob_trader@new_idle1] anim_global = desk_idle on_signal = animation_end| {~25} mob_trader@new_idle1_to_idle3, {~50} mob_trader@new_idle1_to_idle5, {~75} mob_trader@new_idle1_to_idle2, mob_trader@new_idle1_to_idle1 on_info = {=talking} mob_trader@new_idle1_to_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (2) - ïî äèàãîíàëè [mob_trader@new_idle2] anim_global = diagonal_idle on_signal = animation_end| {~25} mob_trader@new_idle2_to_idle3, {~50} mob_trader@new_idle2_to_idle4, {~75} mob_trader@new_idle2_to_idle1, mob_trader@new_idle2_to_idle2 on_info = {=talking} mob_trader@new_idle2_to_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (3) - îòêèíóâøèñü íà ñïèíêó [mob_trader@new_idle3] anim_global = chair_hack_idle on_signal = animation_end| {~30} mob_trader@new_idle3_to_idle2, {~70} mob_trader@new_idle3_to_idle1, mob_trader@new_idle3_to_idle3 on_info = {=talking} mob_trader@new_talking on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (4) - çà êîìïüþòåðîì [mob_trader@new_idle4] anim_global = compute_idle on_signal = animation_end| {~40} mob_trader@new_idle4_to_idle2, mob_trader@new_idle4_to_idle4 on_info = {=talking} mob_trader@new_idle4_to_idle2 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (5) - ÷èòàåò [mob_trader@new_idle5] anim_global = listen_idle on_signal = animation_end| {~45} mob_trader@new_idle5_to_idle1, mob_trader@new_idle5_to_idle5 on_info = {=talking} mob_trader@new_idle5_to_idle1 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ;---------------------------------- ;-------- Àâòîïåðåõîäû -------- ;---------------------------------- ; Ñòîë - ñòîë (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle1_to_idle1] anim_global = desk_idle on_signal = animation_end| mob_trader@new_idle1 ; Äèàãîíàëü - äèàãîíàëü (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle2_to_idle2] anim_global = diagonal_idle on_signal = animation_end| mob_trader@new_idle2 ; Ñïèíêà - ñïèíêà (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle3_to_idle3] anim_global = chair_hack_idle on_signal = animation_end| mob_trader@new_idle3 ; Êîìïüþòåð - êîìïüþòåð (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle4_to_idle4] anim_global = compute_idle on_signal = animation_end| mob_trader@new_idle4 ; ×èòàåò - ÷èòàåò (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle5_to_idle5] anim_global = listen_idle on_signal = animation_end| mob_trader@new_idle5 ;---------------------------------- ;----- Ïåðåõîäû ìåæäó idle-ìè ---- ;---------------------------------- ; Äèàãîíàëü - êîìïüþòåð [mob_trader@new_idle2_to_idle4] anim_global = diagonal_to_compute on_signal = animation_end| mob_trader@new_idle4 ; Êîìïüþòåð - äèàãîíàëü [mob_trader@new_idle4_to_idle2] anim_global = compute_idle_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ; Äèàãîíàëü - ñïèíêà [mob_trader@new_idle2_to_idle3] anim_global = diagonal_to_chair_hack on_signal = animation_end| {=talking} mob_trader@new_talking, mob_trader@new_idle3 ; Ñïèíêà - äèàãîíàëü [mob_trader@new_idle3_to_idle2] anim_global = chair_hack_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ; Ñòîë - ñïèíêà [mob_trader@new_idle1_to_idle3] anim_global = desk_to_chair_hack on_signal = animation_end|{=talking} mob_trader@new_talking, mob_trader@new_idle3 ; Ñïèíêà - ñòîë [mob_trader@new_idle3_to_idle1] anim_global = chair_hack_to_desk on_signal = animation_end| mob_trader@new_idle1 ; Ñòîë - äèàãîíàëü [mob_trader@new_idle1_to_idle2] anim_global = desk_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ; Äèàãîíàëü - ñòîë [mob_trader@new_idle2_to_idle1] anim_global = diagonal_to_desk on_signal = animation_end| mob_trader@new_idle1 ; Ñòîë - ÷èòàåò [mob_trader@new_idle1_to_idle5] anim_global = desk_to_listen on_signal = animation_end| mob_trader@new_idle5 ; ×èòàåò - ñòîë [mob_trader@new_idle5_to_idle1] anim_global = listen_to_desk on_signal = animation_end| mob_trader@new_idle1 ;-------------------------------------- ;------------- Ðàçãîâîð --------------- ;-------------------------------------- [mob_trader@new_talking] anim_global = chair_hack_talk anim_head = normal on_info = {!talking} mob_trader@new_idle3 ;-------------------------------------- ;------------ Òîðãîâëÿ ---------------- ;-------------------------------------- [mob_trade@new] anim_global = chair_hack_idle on_info = {=trading =trade_exchanged} mob_trader@new_trade_exchanged on_info2 = {!trading =trade_exchanged} mob_trader@new_trade_good on_info3 = {!trading !trade_exchanged} mob_trader@new_trade_bad [mob_trader@new_trade_bad] ;anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = angry sound_phrase = trader_bad_trade on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 12 | mob_trader@new_wait [mob_trader@new_trade_exchanged] ;anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = normal sound_phrase = trader_exchanged on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 12 | mob_trader@new_wait [mob_trader@new_trade_good] ;anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = good sound_phrase = trader_good_trade on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 12 | mob_trader@new_wait ;------------------------------------- ;---------- Ïðèâåòñòâèÿ -------------- ;------------------------------------- [mob_trader@new_hello] anim_global = hello anim_head = normal sound_phrase = trader_hello_what_have_you_got on_signal = animation_end | mob_trader@new_idle2 [mob_trader@new_bye] on_actor_dist_ge_nvis = 12 |mob_trader@new_wait anim_global = hello anim_head = normal sound_phrase = trader_bye on_signal = animation_end | mob_trader@new_wait [mob_trader@new_wait] anim_global = diagonal_idle_short on_actor_dist_le_nvis = 3 | {-esc_trader_hello_played} mob_trader@new_hello %+esc_trader_hello_played% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | %-esc_trader_hello_played -esc_trader_bye_played% Изменено 7 Июня 2019 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
AndrewMor 527 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 @AndreySol, Я нашел уже готовый скрипт спавна аномалий. Вот и подумал, а почему бы и Радиацию рандомно не спавнить? А про модуль Артоса читал в свое время, но ничего тогда не понял Сталкер - наше всё! Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 Ребят, спасайте! Не могу понять, это у меня баг или фича такая (хотя одно другому не мешает). В общем после попытки поднять раненого НПС он либо остается другом, либо через какое-то время становится врагом. Трабл в том, что я изначально дружелюбного сталкера, долговца, свободовца если вылечу, то он может стать врагом. Куда смотреть, что подкручивать? Есть мыслишки? Ссылка на комментарий
naxac 2 445 Опубликовано 8 Июня 2019 Поделиться Опубликовано 8 Июня 2019 @aka_sektor, чтобы без "я тебя спас и в благородство играть не буду?". Вот так попробуй active = mob_trader@new_idle1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
aka_sektor 1 476 Опубликовано 8 Июня 2019 Поделиться Опубликовано 8 Июня 2019 @naxac, да, робит. А затемнение экрана эт скриптовое? Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
naxac 2 445 Опубликовано 8 Июня 2019 Поделиться Опубликовано 8 Июня 2019 (изменено) @aka_sektor, это рестриктор в бункере, на месте спавна ГГ. Вот этот: trader_zone_task Скрытый текст [logic] active = sr_idle [sr_idle] on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger =run_postprocess(agr_u_fade)% Так что нужно его либо удалять, либо править спавн. Удалить можно так: Скрытый текст local obj = alife():object("trader_zone_task") if obj then alife():release(obj, true) end Изменено 8 Июня 2019 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndreySol 215 Опубликовано 8 Июня 2019 Поделиться Опубликовано 8 Июня 2019 12 часов назад, AndrewMor сказал: А про модуль Артоса читал в свое время, но ничего тогда не понял Вот тут, я уже тебя не понял - что не понятного в готовом скрипт-модуле для работы с нет-пакетами? Грамотные в этом вопросе люди, обернули все в удобный функционал, и даже справочку не забыли приложить к этому... Ссылка на комментарий
aka_sektor 1 476 Опубликовано 8 Июня 2019 Поделиться Опубликовано 8 Июня 2019 9 часов назад, naxac сказал: Удалить можно так Это куда предлагаешь прописать этот код? Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 8 Июня 2019 Поделиться Опубликовано 8 Июня 2019 Как убрать рандом после воскрешения НПС? Имеется в виду фишка. когда вылеченный тобою НПС либо другом становится, либо врагом. Где копаться, подскажите пожалуйста. Ссылка на комментарий
naxac 2 445 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 (изменено) @aka_sektor, в net_spawn актёра можно (в bind_stalker.script). @_Sk8_AsTeR_, ни в одной из частей игры такого нет, что хоть за мод? Изменено 9 Июня 2019 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 Здрасьте. Существует ли в явном виде переменная, в которой хранится текущий вес предметов в инвентаре? Есть ли способ чтения текущего веса, кроме прямого перебора или специальной функции в X-Ray Extensions? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndrewMor 527 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 20 часов назад, AndreySol сказал: Вот тут, я уже тебя не понял - что не понятного в готовом скрипт-модуле для работы с нет-пакетами? Грамотные в этом вопросе люди, обернули все в удобный функционал, и даже справочку не забыли приложить к этому... Давно уже читал, но на тот момент не разбирался. А сейчас видать настал сей момент, когда все ж таки придется разбираться. Всему свое время, походу, мое время само ко мне пришло... Сталкер - наше всё! Ссылка на комментарий
aka_sektor 1 476 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 (изменено) @naxac, если я правильно понял так: function actor_binder:net_spawn(data) printf("actor net spawn") level.show_indicators() self.bCheckStart = true self.weapon_hide = false -- ñïðÿòàíî èëè íåò îðóæèå ïðè ðàçãîâîðå. weapon_hide = false -- óñòàíàâëèâàåì ãëîáàëüíûé äåôîëòîâûé ôëàã. if object_binder.net_spawn(self,data) == false then return false end db.add_actor(self.object) if self.st.disable_input_time == nil then level.enable_input() end self.weather_manager:reset() -- game_stats.initialize () if(actor_stats.add_to_ranking~=nil)then actor_stats.add_to_ranking(self.object:id()) end --' Çàãðóæàåì íàñòðîéêè äðîïà death_manager.init_drop_settings() return true --' Удаляем рестриктор в бункере Сидоровича, --' который затемняет экран local obj = alife():object("trader_zone_task") if obj then alife():release(obj, true) end end UPD: похоже что нет... Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...alker shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) UPD2: вот так не вылетает, но затемнение осталось. function actor_binder:net_spawn(data) --' Удаляем рестриктор в бункере Сидоровича, --' который затемняет экран local obj = alife():object("trader_zone_task") if obj then alife():release(obj, true) end printf("actor net spawn") level.show_indicators() self.bCheckStart = true self.weapon_hide = false -- спрятано или нет оружие при разговоре. weapon_hide = false -- устанавливаем глобальный дефолтовый флаг. if object_binder.net_spawn(self,data) == false then return false end db.add_actor(self.object) if self.st.disable_input_time == nil then level.enable_input() end self.weather_manager:reset() -- game_stats.initialize () if(actor_stats.add_to_ranking~=nil)then actor_stats.add_to_ranking(self.object:id()) end --' Загружаем настройки дропа death_manager.init_drop_settings() return true end Изменено 9 Июня 2019 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
AndrewMor 527 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 @aka_sektor, попробуй так: Скрытый текст if not has_alife_info("твой инфо") then for a=10,65535,1 do local obj=alife():object(a) if obj and string.find(obj:name(),"trader_zone_task") then alife():release(obj,true) end end db.actor:give_info_portion("твой инфо") end Сталкер - наше всё! Ссылка на комментарий
naxac 2 445 Опубликовано 10 Июня 2019 Поделиться Опубликовано 10 Июня 2019 @aka_sektor, наверное, рестриктор успевает сработать,, т.к. клиентский объект живет ещё какое-то время после удаления серверного. Попробуй в __init этот код запихать. Хотя, по-моему, проще его из спавна в ручную вырезать, все равно же новую игру начинаешь... 2 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 12 Июня 2019 Поделиться Опубликовано 12 Июня 2019 В 09.06.2019 в 04:27, naxac сказал: ни в одной из частей игры такого нет, что хоть за мод? Соль да дмх... Понимаю что ДМХ тут не обсуждается, но надеялся что это фишка соли такая, даже читал о ней в описании. Но не нашел куда копать Ссылка на комментарий
buffy 4 Опубликовано 12 Июня 2019 Поделиться Опубликовано 12 Июня 2019 (изменено) Всем привет! Появилась необходимость распарсить xml. Единственный наиболее удобный для меня вариант, который вспоминается это LuaXML. В версии xrLuaFix для ТЧ я так понял нет функции require, тогда как быть? Изменено 12 Июня 2019 пользователем buffy Ссылка на комментарий
naxac 2 445 Опубликовано 13 Июня 2019 Поделиться Опубликовано 13 Июня 2019 (изменено) @_Sk8_AsTeR_, передача аптечки раненому происходит в файле dialogs.script, функция transfer_medkit. Там же идёт проверка на отношение нпс и ГГ, и если они враги, то в xr_wounded.help_wounded запускается таймер, по истечении которого вылеченный нпс с некоторой вероятностью может снова стать враждебным к ГГ. У тебя, видимо, что-то с проверкой в dialogs.transfer_medkit не так. Изменено 13 Июня 2019 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
aka_sektor 1 476 Опубликовано 14 Июня 2019 Поделиться Опубликовано 14 Июня 2019 (изменено) Кажется давно есть в моде Paradise Lost вылет при загрузке сохранения, почему-то именно на уровне Кордон. Имеет вид: [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: ...shadow of chernobyl\gamedata\scripts\xr_logic.script:1195: attempt to index local 'obj' (a nil value) Открываю скрипт xr_logic, нахожу строку 1195, там следующая функция: function pstor_retrieve(obj, varname, defval) local npc_id = obj:id() if db.storage[npc_id].pstor ~= nil then local val = db.storage[npc_id].pstor[varname] if val ~= nil then return val end end if defval ~= nil then return defval end return nil --' abort("xr_logic: pstor_retrieve: variable '%s' does not exist", varname) end Ругается, на вторую строчку: local npc_id = obj:id() Что же с ней не так? Какая-то ошибка в функции? UPD: вот возможно похожий вылет: https://www.amk-team.ru/forum/topic/8230-cop-kovyryaemsya-v-faylah/?do=findComment&comment=1031683 Дело якобы в логике какого-то NPC. UPD2: вот ещё: https://www.amk-team.ru/forum/topic/8806-cop-kvesty/?do=findComment&comment=369302 Тут уже вроде из-за квеста. UPD3: ещё вариант: https://www.amk-team.ru/forum/topic/5525-soc-kovyryaemsya-v-faylah/?do=findComment&comment=855858 Вроде есть объяснение, но функция другая: В 21.06.2014 в 00:22, AndreySol сказал: в скрипте xr_logic в 126-й строке локальная переменная st равна nil. Открывай в редакторе, который показывает нумерацию строк, ищи 126-ю и гляди че там за nil получился. В оригинальном ТЧ эта строка находится в ф-ции configure_schemes, значит глюк связан с гулагами\логикой НПСов. Изменено 14 Июня 2019 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти