Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Muzafir 19 Опубликовано 20 Сентября 2020 Поделиться Опубликовано 20 Сентября 2020 16.09.2020 в 19:17, Houdini_one сказал: файлы gulag_xxx.scripts регистрируются в xr_gulag.scripts в level_gulags Зарегистрировал - получил вылет с руганью на g.script. Посмотрел повнимательней, увидел ниже ссылку на gulag.tasks. Добавил туда инклюд - получил вылет без лога. Знаю, что безлоговые вылеты обычно из-за ошибок в путях нпс или диалогах. Диалоги отпадают - я их не трогал. Пути проверил - там всего 3 человека для теста. В связи с чем вопрос: может я еще где-то что-то не прописал? Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 21 Сентября 2020 Поделиться Опубликовано 21 Сентября 2020 @Muzafir, показал бы, как зарегистрировал. ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
NL-Vincenz 12 Опубликовано 21 Сентября 2020 Поделиться Опубликовано 21 Сентября 2020 Доброго времени суток, можно ли с помощью какого либо скрипта более подробней узнать причину вылета. К примеру на чистом ТЧ стал ловить вылет: Скрытый текст * loading script sr_danger.script * loading script mob_camp.script * loading script mob_state_mgr.script [16-9] get_xml_name for[ui_mm_main.xml] returns [ui_mm_main.xml] [16-9] get_xml_name for[scroll_bar.xml] returns [scroll_bar.xml] stack trace: 0023:00464970 XR_3DA.exe, CKinematicsAnimated::LL_GetMotionDef() 0023:044617D3 xrGame.dll 0023:0445B4DE xrGame.dll 0023:1001A0F6 xrCore.dll, CInifile::r_string() 0023:0445B3F5 xrGame.dll 0023:00436144 XR_3DA.exe, CObjectList::Create() 0023:0450DD52 xrGame.dll 0023:76ED53BE ntdll.dll, RtlAllocateHeap() 0023:76ED50E8 ntdll.dll, RtlDosSearchPath_Ustr() 0023:66757F65 MSVCR80.dll, mbsnbcpy_s_l() 0023:68096C10 atiumdag.dll, XdxInitXopAdapterServices() 0023:6806755F atiumdag.dll, OpenAdapter() 0023:68068DE4 atiumdag.dll, OpenAdapter() Я так понял причина в какой-то модели, но все модели стандартные родные. Ссылка на комментарий
Muzafir 19 Опубликовано 21 Сентября 2020 Поделиться Опубликовано 21 Сентября 2020 @Houdini_one, а как показать? Я с радостью - очень хочется понять проблему. Файл приложить или еще как-то Ссылка на комментарий
Graff46 598 Опубликовано 21 Сентября 2020 Поделиться Опубликовано 21 Сентября 2020 Я в ТЧ в х16 поменял всех зомби на военных, сменил им пути до звуков в xml, но военные иногда издают звуки характерные зомби, в чем может быть причина? Ссылка на комментарий
Libery 0 Опубликовано 21 Сентября 2020 Поделиться Опубликовано 21 Сентября 2020 Я нуб! Подскажите пж как правильно на поднятие любых тип патронов function on_item_take(obj) if obj:section() == "ammo_section" then send_tip2(game.translate_string("name")) end end Ссылка на комментарий
AndreySol 215 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 @Libery Если я правильно понял, то надо отслеживать любые патроны? Тогда так: if obj:clsid() == clsid.wpn_ammo then 1 Ссылка на комментарий
Muzafir 19 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 Попробовал снова переделать гулаг. Поставил смарт, в нем бандоса, указал в кастом дата принадлежность к этому СТ. Пока нет логики в файлах gulag.ltx и gulag.script, игра грузится нормально, нпс гуляет поблизости. Как только добавляю логику, спустя сек 15-20 происходит вылет: 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: C stack overflow Прочитал, что переполнение вызывается какой-либо функцией, которая вызывается бесконечное кол-во раз. Получается винить можно только мой gulag.script. Гляньте, кто разбирается, что там может так падлить: Скрытый текст local t = {} function load_job(sj, gname, type, squad, groups) --' Simeiz gsk lager if type == "simeiz_gsk_lager" then t = { section = "logic@simeiz_gsk_lager_kamp", idle = 0, prior = 6, state = {0,1}, in_rest = "", out_rest = "" } table.insert(sj, t) end end function load_states(gname, type) if type == "simeiz_gsk_lager" then return function(gulag) local actor = db.actor if not actor then return gulag.state end if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then return 0 -- день else return 1 -- ночь end end end end -------------------------------------------------------------------------- -- Dynamic ltx -------------------------------------------------------------------------- function load_ltx(gname, type) return nil end function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "simeiz_gsk_lager" then return npc_community == "bandit" end return false end Кажется нашел: лишний end в функции function load_states. Так? Ссылка на комментарий
mole venomous 3 433 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 (изменено) Вопрос для расширения кругозора, так сказать... Имеется НПС, который спавнится через all.spawn по выдаче инфопоршня. В ходе тестов он мне понадобился и я заспавнил его скриптом, не вызывая нужный поршень. Всё нормально, НПС появился. В стартовом диалоге последняя фраза повлекла за собой выдачу инфопоршня на доступ к циклическим заданиям и ... СМС об ошибке из _g.script (код из ОПы, вроде): Скрытый текст function abort(fmt, ...) local reason = (...==nil and fmt) or string.format(fmt, ...) if db and db.actor then local msg = "!!!АХТУНГ!!!".."\\n%c[255,255,0,0]"..reason db.actor:give_game_news(msg, "ui\\ui_iconsTotal", Frect():set(913,752,83,47), 0, 80000) end get_console():execute("load ~~~ "..reason) get_console():execute("flush") end А при попытке вновь заговорить (должен появиться диалог на первый из циклических квестов) вылет с ссылкой на строку "for k,v in pairs(self.task_id_by_parent[parent]) do" в функции CRandomTask:parent_can_task(actor, npc, p1, p2, p3) из task_manager.script. Там вроде всё нормально, но на всякий... Скрытый текст function CRandomTask:parent_can_task(actor, npc, p1, p2, p3) local parent = self:get_parent(npc) local avail = false self:task_avail(actor, npc, nil, nil, nil, "reset") for k,v in pairs(self.task_id_by_parent[parent]) do if self:task_avail(actor, npc, nil, nil, self.task_info[v].init_phrase_id, true) then avail = true end end return avail end К слову, циклические квесты для НПС прописаны правильно, никакого кондлиста на стартовый из них нет и если спаунить чувака своевременно, т.е. по инфопоршню, никаких проблем нет. Собственно вопрос, неужели вылеты были из-за попытки завести диалог за цикл. квест в то время, когда НПС уже заспаунен до выдачи нужного инфо? Изменено 22 Сентября 2020 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 @Muzafir, если не ошибаюсь, то нужно ещё обязательно поставить проверку check_monster. Попробуй такое: local t = {} function load_job(sj, gname, type, squad, groups) --' Simeiz gsk lager if type == "simeiz_gsk_lager" then t = { section = "logic@simeiz_gsk_lager_kamp", idle = 0, prior = 6, state = {0,1}, in_rest = "", out_rest = "" } table.insert(sj, t) end end function load_states(gname, type) if type == "simeiz_gsk_lager" then return function(gulag) if db.actor ~= nil then if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then return 0 -- день else return 1 -- ночь end else return gulag.state end end end end -------------------------------------------------------------------------- -- Dynamic ltx -------------------------------------------------------------------------- function load_ltx(gname, type) return nil end function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "simeiz_gsk_lager" then return npc_community == "bandit" end return false end function checkMonster(npc_community, gulag_type) return false end 1 1 ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
mole venomous 3 433 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 12 минут назад, mole venomous сказал: и привязать её в скриптах к гулагу? Пардон,это у тебя есть... 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Libery 0 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 @AndreySol, Не получается пробую так вылетает function on_item_take(obj) if obj:clsid() == clsid.wpn_ammo then new_test.send_tip2(game.translate_string(system_ini():r_string(sect,"inv_name_short")) end end Ссылка на комментарий
mole venomous 3 433 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 7 минут назад, Libery сказал: new_test.send_tip2(game.translate_string(system_ini():r_string(sect,"inv_name_short")) в самом конце этого кода явно не хватает круглой скобки ) 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Libery 0 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 не помогает вот так тоже не работает function on_item_take(obj) if obj:clsid() == clsid.wpn_ammo then local name = tostring(system_ini():r_string(sect,"inv_name_short")) local text = "\\n%c[white]"..game.translate_string(tostring(name)) db.actor:give_game_news(text,"ui\\ui_iconstotal_new",Frect():set(664,329,83,47),50,5000) end end Ссылка на комментарий
AndreySol 215 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 @Libery Писать код наугад - плохая затея. Лог вылета посмотрите, сразу поймете где ошибка. 1 Ссылка на комментарий
Libery 0 Опубликовано 22 Сентября 2020 Поделиться Опубликовано 22 Сентября 2020 вылет один и тот же invalid_parameter_handler Ссылка на комментарий
AndreySol 215 Опубликовано 23 Сентября 2020 Поделиться Опубликовано 23 Сентября 2020 function on_item_take(obj) if obj:clsid() == clsid.wpn_ammo then local name = tostring(system_ini():r_string(sect, "inv_name_short")) ..... Выделенный параметр ф-ции - необъявленная выше и не инициализированная правильным значением переменная. Исправить можно двумя способами: local sect = obj:section() - если эта переменная будет нужна далее по коду local name = tostring(system_ini():r_string(obj:section(),"inv_name_short")) - чтоб не плодить не нужные переменные 1 Ссылка на комментарий
LAKIRO 0 Опубликовано 23 Сентября 2020 Поделиться Опубликовано 23 Сентября 2020 Expression : fatal error Function : CInifile::r_string File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp Line : 352 Description : <no expression> Arguments : Can't find variable MaxHealthValue in [m_trader] Я новичек на сайте, может не туда и пишу. Подскажите где найти значение этой ошибки и как ее исправить? Пытаюсь модернизировать Stalker ТЧ v1.4. Уже много поправил себе, но вот с этой ошибкой стою в тупике. Добавлено HellRatz, 23 Сентября 2020 Перемещено. Ссылка на комментарий
AndrewMor 527 Опубликовано 23 Сентября 2020 Поделиться Опубликовано 23 Сентября 2020 @LAKIRO, Не найдена переменная с именем MaxHealthValue в конфиге m_trader, соответственно нужно ее прописать. Сталкер - наше всё! Ссылка на комментарий
AndreySol 215 Опубликовано 23 Сентября 2020 Поделиться Опубликовано 23 Сентября 2020 @LAKIRO Неплохо бы еще увидеть код, который эту ошибку вызывает. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти