DarkSnowder 899 Опубликовано 12 Июня @abramcumner вот все файлы типа death_generic - может твой глаз сможет разглядеть ошибку. Прописал вроде везде как положено, патроны должны спавниться ток в случае, если НПС вооружён ТТ или ППШ, но на скрине ни того, ни другого на трупе нет, а патронов как в ящике на складе у прапора. Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 12 Июня (изменено) @abramcumner у меня utf8 даже в ванильных файлах ТЧ и ЗП показывает (пользуюсь обычно Нотепадом, но проверка через базовый блокнот показала utf8) Как тогда эту проблему лучше всего решить то (точнее в какую кодировку надо перевести, чтобы все правильно заработало)? Изменено 12 Июня пользователем DarkSnowder Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 12 Июня (изменено) @abramcumner поменял в death_generic во всех секциях патронов x на английскую. Проверка с НИ результата не дала - всё так-же куча патронов спавниться. @I am Dead вот так фалы выглядя в блокноте и в Нотпаде. Причём попытка изменить формат ни к чему не приводит. При новом открытии всё возвращается в utf8. Изменено 12 Июня пользователем DarkSnowder Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 23 Июня (изменено) добрый день господа решил я реализовать квест с Угрюмым и Ко как в билде 2232 (где они по деревне шастают и в итоге от контролёра на водонапорной башне погибали выстреливая себе в голову из пистолета) так то всё работает, но есть одно но - после того, как банда доходит до водонапорки и появляется контролёр, они тупо стреляют куда попало из автоматов, а не садятся на корты и пистолеты к голове подносят (при убийстве ГГ контролёра бойцы как положено подыхают по скрипту, хотя должны сами себя из пистолетов застрелить, когда контролёр спавниться) вот логики контролёра и угрюмого с командой + настройка вай-поинта в конечной точке пути охотника (у всех троих он одинаков) Скрытый текст function mil_controller_dead (actor, npc) local h = hit (); h.power = 1000; h.direction = vector():set( 1, 0, 0 ); h.impulse = 1; h.draftsman = npc; h.type = hit.strike; local hunter = level_object_by_sid (725) if hunter ~= nil and hunter:alive () == true then printf ("KILL STALKER : %s", hunter:name ()) hunter:hit (h) end hunter = level_object_by_sid (726) if hunter ~= nil and hunter:alive () == true then printf ("KILL STALKER : %s", hunter:name ()) hunter:hit (h) end hunter = level_object_by_sid (727) if hunter ~= nil and hunter:alive () == true then printf ("KILL STALKER : %s", hunter:name ()) hunter:hit (h) end end function mil_hunters_psi_hit (actor, npc) --if npc == nil then return end local c = level_object_by_sid (729) if c == nil then return end local h = hit () h.power = 100 h.direction = vector():set( 1, 0, 0 ) h.impulse = 1 h.draftsman = c h.type = hit.telepatic local hunter = level_object_by_sid (725) if hunter ~= nil and hunter:alive () == true then if hunter.psy_health > 0.08 then hunter:hit (h) end end hunter = level_object_by_sid (726) if hunter ~= nil and hunter:alive () == true then if hunter.psy_health > 0.08 then hunter:hit (h) end end hunter = level_object_by_sid (727) if hunter ~= nil and hunter:alive () == true then if hunter.psy_health > 0.08 then hunter:hit (h) end end end Может кто знает, как подправить скрипты так, чтоб всё работало как было задумано (ну или хотя бы сделать так, что срабатывала анимация, когда НПС падали на коленях и брались за головы) Изменено 23 Июня пользователем DarkSnowder Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 23 Июня (изменено) @Balavnik чтобы нормально положение актора поменять (или его спавн сделать на другой локации), надо в СДК это дело творить, через всякие АСДС такие вещи не делаются Изменено 23 Июня пользователем DarkSnowder 1 2 Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 13 Июля комрады, можете подсказать, с чем может быть связана пропажа оружия у НПС? (после начала НИ у некоторых НПС исчезает оружие, и те тупо бегают от врага по сей карте, хотя оружие у них прописано) Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 18 Августа Комрады, кто нить может расшифровать, что лог от меня хочет Скрытый текст [18.08.24 14:54:26.031] [20292] -------------------------------------------------------------------------------- [18.08.24 14:54:26.033] [20292] * [ D3D ]: textures count [2465] [18.08.24 14:54:26.033] [20292] * [ D3D ]: textures[1215037 K] [18.08.24 14:54:26.033] [20292] * [x-ray]: process heap[0 K], render[0 K] [18.08.24 14:54:26.033] [20292] * [x-ray]: economy: strings[9305 K], smem[0 K] [18.08.24 14:54:27.896] [20292] * MEMORY USAGE: 0 K [18.08.24 14:54:27.896] [20292] * End of synchronization A[1] R[1] [18.08.24 14:54:27.910] [20292] * phase time: 1886 ms [18.08.24 14:54:27.910] [20292] * phase cmem: 0 K [18.08.24 14:54:32.918] [20292] @ demo_record 1 [18.08.24 14:54:38.279] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [18.267400]ms, used: [89.804500]ms, free: [-71.537100]ms [18.08.24 14:54:44.987] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [7.762000]ms, used: [219.874500]ms, free: [-212.112500]ms [18.08.24 14:54:45.096] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [5.335600]ms, used: [106.431700]ms, free: [-101.096100]ms [18.08.24 14:54:45.131] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [7.421100]ms, used: [17.278300]ms, free: [-9.857200]ms [18.08.24 14:54:45.294] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [15.759800]ms, used: [98.027600]ms, free: [-82.267800]ms [18.08.24 14:54:45.468] [26884] * [CPatrolPathStorage::safe_path]: path[pri_monolith_patrol6_look] pp[wp09] level_vertex_id[4294967295] -> 306738 [18.08.24 14:54:45.549] [26884] * [CPatrolPathStorage::safe_path]: path[pri_monolith_balcony_sniper1_look] pp[wp03|a=threat] level_vertex_id[4294967295] -> 163351 [18.08.24 14:54:45.566] [26884] * [CPatrolPathStorage::safe_path]: path[pri_monolith_balcony_sniper1_look] pp[wp05|a=threat] level_vertex_id[4294967295] -> 136583 [18.08.24 14:54:45.567] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [17.832800]ms, used: [45.230700]ms, free: [-27.397900]ms [18.08.24 14:54:45.587] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [5.924300]ms, used: [18.091700]ms, free: [-12.167400]ms [18.08.24 14:54:45.908] [19840] ! Can't find texture [wpn_crosshair_red] [18.08.24 14:54:50.695] [20292] ! Single item [stol_8_ph_door] took whole update frame!!! [18.08.24 14:54:55.403] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [17.193600]ms, used: [48.661700]ms, free: [-31.468100]ms [18.08.24 14:55:06.474] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [13.823200]ms, used: [61.041800]ms, free: [-47.218600]ms [18.08.24 14:55:12.921] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [15.649100]ms, used: [49.561900]ms, free: [-33.912800]ms [18.08.24 14:55:14.539] [20292] ##[CRenderDevice::on_idle] Second thread work time is too long! Avail: [18.431800]ms, used: [42.891900]ms, free: [-24.460100]ms [18.08.24 14:55:17.497] [20292] !!****************************[ABORT]********************************* [18.08.24 14:55:17.497] [20292] stack traceback: d:\dreamreader\gamedata\scripts\_g.script:177: in function 'abort' d:\dreamreader\gamedata\scripts\move_mgr.script:599: in function <d:\dreamreader\gamedata\scripts\move_mgr.script:461> [18.08.24 14:55:17.497] [20292] !!log3 failed: bad argument #4 to '?' (number expected, got string) ! stack traceback: ! d:\dreamreader\gamedata\scripts\_g.script:170: in function 'log3' ! d:\dreamreader\gamedata\scripts\_g.script:178: in function 'abort' ! d:\dreamreader\gamedata\scripts\move_mgr.script:599: in function <d:\dreamreader\gamedata\scripts\move_mgr.script:461> [18.08.24 14:55:17.497] [20292] !!******************************************************************** [18.08.24 14:55:17.497] [20292] ********************************************************************************* [18.08.24 14:55:17.497] [20292] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR: d:\dreamreader\gamedata\scripts\_g.script:180: object '%s': path_walk '%s', index %d: cannot find corresponding point(s) on path_look '%s' stack traceback: [C]: at 0x7ff6fd3efec4 [C]: in function 'error' d:\dreamreader\gamedata\scripts\_g.script:180: in function 'abort' d:\dreamreader\gamedata\scripts\move_mgr.script:599: in function <d:\dreamreader\gamedata\scripts\move_mgr.script:461> [18.08.24 14:55:17.497] [20292] ********************************************************************************* [18.08.24 14:55:17.497] [20292] FATAL ERROR [error]Expression : FATAL ERROR [error]Function : CScriptEngine::lua_pcall_failed [error]File : C:\Games\OGSR\ogsr_engine\COMMON_AI\script_engine.cpp [error]Line : 60 [error]Description : [CScriptEngine::lua_pcall_failed]: d:\dreamreader\gamedata\scripts\_g.script:180: object '%s': path_walk '%s', index %d: cannot find corresponding point(s) on path_look '%s' [18.08.24 14:55:17.497] [20292] ***************************[ScriptCrashHandler]********************************** [18.08.24 14:55:17.497] [20292] stack traceback: [C]: at 0x7ff6fd3efec4 [C]: in function 'error' d:\dreamreader\gamedata\scripts\_g.script:180: in function 'abort' d:\dreamreader\gamedata\scripts\move_mgr.script:599: in function <d:\dreamreader\gamedata\scripts\move_mgr.script:461> [18.08.24 14:55:17.497] [20292] Locals: [18.08.24 14:55:17.497] [20292] string (*temporary) : d:\dreamreader\gamedata\scripts\_g.script:180: object '%s': path_walk '%s', index %d: cannot find corresponding point(s) on pat [18.08.24 14:55:17.497] [20292] End [18.08.24 14:55:17.497] [20292] Locals: [18.08.24 14:55:17.497] [20292] string (*temporary) : object '%s': path_walk '%s', index %d: cannot find corresponding point(s) on path_look '%s' [18.08.24 14:55:17.497] [20292] End [18.08.24 14:55:17.498] [20292] Locals: [18.08.24 14:55:17.498] [20292] string fmt : object '%s': path_walk '%s', index %d: cannot find corresponding point(s) on path_look '%s' [18.08.24 14:55:17.498] [20292] End [18.08.24 14:55:17.498] [20292] Locals: [18.08.24 14:55:17.498] [20292] Userdata: self [18.08.24 14:55:17.498] [20292] Table: self.path_look_info [18.08.24 14:55:17.498] [20292] table self.path_look_info.0 : [...] [18.08.24 14:55:17.498] [20292] Can't dump script call stack - Engine corrupted [18.08.24 14:55:17.498] [20292] ******************************************************************************** [18.08.24 14:55:17.498] [20292] !![LogStackTrace] Thread: [X-RAY Primary thread] [18.08.24 14:55:17.515] [20292] !!stack trace: ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD21D595] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD206606] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD206ADC] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD206D07] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD3EFF3D] ! Module: [D:\DreamReader\bin_x64\LuaJIT.dll], AddrPC.Offset: [00007FFA6C2A54E0], Fun: [wscanf_s()] + [12487 byte(s)] ! Module: [D:\DreamReader\bin_x64\LuaJIT.dll], AddrPC.Offset: [00007FFA6C2E3A20], Fun: [wscanf_s()] + [267783 byte(s)] ! Module: [D:\DreamReader\bin_x64\LuaJIT.dll], AddrPC.Offset: [00007FFA6C2E3EA9], Fun: [wscanf_s()] + [268944 byte(s)] ! Module: [D:\DreamReader\bin_x64\LuaJIT.dll], AddrPC.Offset: [00007FFA6C2A54E0], Fun: [wscanf_s()] + [12487 byte(s)] ! Module: [D:\DreamReader\bin_x64\LuaJIT.dll], AddrPC.Offset: [00007FFA6C2AF1BA], Fun: [wscanf_s()] + [52641 byte(s)] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD8B3400] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD4685BE] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD86DB00] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD87A049] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD78DE8E] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD78E1FA] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD757095] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD756DC9] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD512769] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1B871C] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1B86F2] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1B8A5A] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1B4493] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD3A7517] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1E5F6C] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1E5A6E] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1E4B13] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1E57B7] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1AEB24] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1AF219] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD1AF352] ! Module: [D:\DreamReader\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF6FD91EA0E] ! Module: [C:\Windows\System32\KERNEL32.DLL], AddrPC.Offset: [00007FFA72F1257D], Fun: [BaseThreadInitThunk()] + [29 byte(s)] ! Module: [C:\Windows\SYSTEM32\ntdll.dll], AddrPC.Offset: [00007FFA73CCAF28], Fun: [RtlUserThreadStart()] + [40 byte(s)] ! [18.08.24 14:55:17.516] [20292] ******************************************************************************** На скок я понял, проблема в вай-поинтах. Ток вот в чём именно? Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 19 Августа @Labadal Скрытый текст ;*************** pri_monolith ******************* [logic@pri_monolith_leader] active = walker1@pri_monolith_leader [walker1@pri_monolith_leader] path_walk = leader_walk path_look = leader_look [logic@pri_monolith_camper1] active = camper1@pri_monolith [camper1@pri_monolith] path_walk = balcony_sniper1_walk path_look = balcony_sniper1_look [logic@pri_monolith_camper2] active = camper2@pri_monolith [camper2@pri_monolith] path_walk = balcony_sniper2_walk path_look = balcony_sniper2_look [logic@pri_monolith_patrol1] active = patrol1@pri_monolith [patrol1@pri_monolith] path_walk = patrol1_walk path_look = patrol1_look [logic@pri_monolith_patrol3] active = patrol3@pri_monolith [patrol3@pri_monolith] path_walk = patrol3_walk path_look = patrol3_look [logic@pri_monolith_kamp1] active = kamp1@pri_monolith [kamp1@pri_monolith] center_point = kamp5 ;path_walk = kamp5_task radius = 2.4 danger = danger_ignore@pri_monolith on_timer = 150000 | kamp3@pri_monolith [kamp3@pri_monolith] center_point = kamp3 path_walk = kamp3_task radius = 2.4 danger = danger_ignore@pri_monolith on_timer = 150000 | kamp1@pri_monolith [logic@pri_monolith_patrol4] active = patrol4@pri_monolith [patrol4@pri_monolith] path_walk = patrol4_walk path_look = patrol4_look [logic@pri_monolith_kamp2] active = kamp2@pri_monolith [kamp2@pri_monolith] center_point = kamp5 path_walk = kamp5_task radius = 2.4 danger = danger_ignore@pri_monolith [logic@pri_monolith_patrol5] active = patrol5@pri_monolith [patrol5@pri_monolith] path_walk = patrol5_walk path_look = patrol5_look [logic@pri_monolith_patrol6] active = patrol6@pri_monolith [patrol6@pri_monolith] path_walk = patrol6_walk path_look = patrol6_look [logic@pri_monolith_patrol7] active = patrol7@pri_monolith [patrol7@pri_monolith] path_walk = patrol7_walk path_look = patrol7_look [logic@pri_monolith_patrol8] active = patrol8@pri_monolith [patrol8@pri_monolith] path_walk = patrol8_walk path_look = patrol8_look [logic@pri_monolith_patrol10] active = patrol10@pri_monolith [patrol10@pri_monolith] path_walk = patrol10_walk path_look = patrol10_look [logic@pri_monolith_patrol11] active = patrol11@pri_monolith [patrol11@pri_monolith] path_walk = patrol11_walk path_look = patrol11_look [logic@pri_monolith_patrol12] active = patrol12@pri_monolith [patrol12@pri_monolith] path_walk = patrol12_walk path_look = patrol12_look [logic@pri_monolith_patrol14] active = patrol14@pri_monolith [patrol14@pri_monolith] path_walk = patrol14_walk path_look = patrol14_look [logic@pri_monolith_walker1] active = walker1@pri_monolith [walker1@pri_monolith] path_walk = prayer1_walk path_look = prayer_look2 [logic@pri_monolith_walker2] active = walker2@pri_monolith [walker2@pri_monolith] path_walk = prayer2_walk path_look = prayer_look2 [logic@pri_monolith_walker3] active = walker3@pri_monolith [walker3@pri_monolith] path_walk = prayer3_walk path_look = prayer_look2 [logic@pri_monolith_walker4] active = walker4@pri_monolith [walker4@pri_monolith] path_walk = prayer4_walk path_look = prayer_look1 [logic@pri_monolith_walker5] active = walker5@pri_monolith [walker5@pri_monolith] path_walk = prayer5_walk path_look = prayer_look1 [logic@pri_monolith_walker6] active = walker6@pri_monolith [walker6@pri_monolith] path_walk = prayer6_walk path_look = prayer_look1 [danger_ignore@pri_monolith] ignore_distance = 5 Скрытый текст --' Главная база монолита (обновлённая) if type == "pri_monolith" then t = { section = "logic@pri_monolith_leader", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "", position_threshold = 600, predicate = function(obj_info) return obj_info.profile_name == "pri_monolith_leader" end } table.insert(sj, t) t = { section = "logic@pri_monolith_camper1", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_camper2", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol1", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol3", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_kamp1", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol4", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_kamp2", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol5", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol6", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol7", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol8", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol10", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol11", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol12", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_patrol14", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_walker1", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_walker2", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_walker3", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_walker4", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_walker5", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@pri_monolith_walker6", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) end end вот сами точки в редакторе Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 25 Августа Столкнулся с такой проблемой - прописал в вай-поинтах код на проигрывание фразы у НПС, когда он к этой точке подходит Скрытый текст wp02|a=walk|s=chern_patogenic1 В конфиге script_sound тоже фразу прописал Скрытый текст [chern_patogenic1_seq] stalker = 0,characters_voice\human_02\bandit\states\health\health_1 В sound_theme скрипт тоже прописал Скрытый текст chern_patogenic1 = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}, но Бот в упор не хоче ничего произносить. Где косяк допустил, не подскажите? Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 25 Августа Народ, такой вопросец - прописал значит монстру такую логику Скрытый текст [logic] active = mob_camp1 on_combat = mob_combat on_death = mob_death@cher_izlom_ded [mob_combat] on_info = nil %=disable_combat_handler% [mob_camp1] path_home = cher_izlom_walk path_look = cher_izlom_look state = invis ;friendly = true on_actor_dist_le = 3 | mob_camp2 %=monster_berserk% on_info = {+cher_pathogenic_search_novice_izlom} mob_camp2 %=monster_berserk% [mob_camp2] path_home = cher_izlom_attack_walk path_look = cher_izlom_attack_look state = vis ;on_actor_dist_le = 3 | nil ;friendly = true ;on_signal = arrived | nil [mob_death@cher_izlom_ded] on_info = %+cher_izlom_hunt_dead% В итоге при переходе с camp1 на camp2 вылетает с жалобой на "invis" Скрытый текст [25.08.24 20:12:58.918] [38852] !!****************************[ABORT]********************************* [25.08.24 20:12:58.918] [38852] stack traceback: d:\dreamreader\gamedata\scripts\_g.script:177: in function 'abort' d:\dreamreader\gamedata\scripts\mob_state_mgr.script:40: in function 'set_state' d:\dreamreader\gamedata\scripts\mob_camp.script:28: in function <d:\dreamreader\gamedata\scripts\mob_camp.script:24> d:\dreamreader\gamedata\scripts\xr_logic.script:498: in function 'issue_event' d:\dreamreader\gamedata\scripts\xr_logic.script:385: in function 'activate_by_section' d:\dreamreader\gamedata\scripts\xr_logic.script:1436: in function 'initialize_obj' d:\dreamreader\gamedata\scripts\xr_gulag.script:1189: in function 'setup_gulag_and_logic_on_spawn' d:\dreamreader\gamedata\scripts\bind_monster.script:139: in function <d:\dreamreader\gamedata\scripts\bind_monster.script:132> [25.08.24 20:12:58.918] [38852] mob_state_mgr: object ''cher_fracture_weak_guest'': unknown state ''invis'' requested [25.08.24 20:12:58.918] [38852] !!******************************************************************** [25.08.24 20:12:58.918] [38852] ********************************************************************************* [25.08.24 20:12:58.918] [38852] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR: d:\dreamreader\gamedata\scripts\_g.script:180: mob_state_mgr: object '%s': unknown state '%s' requested stack traceback: [C]: at 0x7ff687e9fec4 [C]: in function 'error' d:\dreamreader\gamedata\scripts\_g.script:180: in function 'abort' d:\dreamreader\gamedata\scripts\mob_state_mgr.script:40: in function 'set_state' d:\dreamreader\gamedata\scripts\mob_camp.script:28: in function <d:\dreamreader\gamedata\scripts\mob_camp.script:24> d:\dreamreader\gamedata\scripts\xr_logic.script:498: in function 'issue_event' d:\dreamreader\gamedata\scripts\xr_logic.script:385: in function 'activate_by_section' d:\dreamreader\gamedata\scripts\xr_logic.script:1436: in function 'initialize_obj' d:\dreamreader\gamedata\scripts\xr_gulag.script:1189: in function 'setup_gulag_and_logic_on_spawn' d:\dreamreader\gamedata\scripts\bind_monster.script:139: in function <d:\dreamreader\gamedata\scripts\bind_monster.script:132> [25.08.24 20:12:58.918] [38852] ********************************************************************************* [25.08.24 20:12:58.918] [38852] FATAL ERROR [error]Expression : FATAL ERROR [error]Function : CScriptEngine::lua_pcall_failed [error]File : C:\Games\OGSR\ogsr_engine\COMMON_AI\script_engine.cpp [error]Line : 60 [error]Description : [CScriptEngine::lua_pcall_failed]: d:\dreamreader\gamedata\scripts\_g.script:180: mob_state_mgr: object '%s': unknown state '%s' requested [25.08.24 20:12:58.918] [38852] ******************************************************************************** [25.08.24 20:12:58.918] [38852] !![LogStackTrace] Thread: [TTAPI thread 6] [25.08.24 20:12:58.945] [38852] !!stack trace: Причём у другого моба с таким же state вылета нет (ну помните того сосыча в ТД, который на новиса Меченого ловил) Я так понял state = invis-vis отвечает за видимость моба (типа в camp1 он невидим, а во втором уже видим) Мне как раз надо, чтоб сцена засады работала нормально, но вот чёт крашиться. Может кто совет по логике подсказать? Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 27 Августа (изменено) Народ, может я что-то путаю - есть ли логика, которая заставляет НПС включать фонарики вне зависимости от времени суток, ну чтоб в подземельях НПС с включёнными фонарями ходили? Изменено 27 Августа пользователем DarkSnowder Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 8 Сентября (изменено) Всем чистого неба коллеги вопросец - в секции торговли для соответсвующих НПС есть такие строки Скрытый текст buy_condition = trade_generic_buy sell_condition = {+mil_lukash_dolg_task_complete} trade_friend_sell, trade_generic_sell buy_supplies = {+mil_leader_quest2_complete} supplies_exp_2,{+mil_lukash_dolg_task_complete} supplies_exp_1, supplies_generic сдесь как говориться записаны поршни, по которым происходит смена асортимента. Вопрос - можно ли заменить зависимость от поршней зависмостью от ранга ГГ и от его отношении с группировкой (ну чтоб если ГГ свободе друг, (не обязательно он должен состоять в группировке), цены были меньше, а если ГГ ранга ветеран - менялся асортимент? Если да - то какие данные нужно писать взамен инфопоршней? Изменено 8 Сентября пользователем DarkSnowder Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 9 Сентября @Norman Eisenherz в кондишине стоят проверки на ранг ботов, под ранг ГГ ничё такого нет зато в диалог.скрипт есть упоминания на проверку ранга ГГ Скрытый текст function gar_actor_rank_newbie(actor,npc) local actor = db.actor if actor:character_rank() < 300 then return true end end по идее, можно на основании такой функции выдавать инфопоршень, который и будет активировать доп.хабар в торговлю. Ток как такую функцию прописать, а главное, потом её вызвать (хоть через тот-же инфопоршень хотя бы)? Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 10 Сентября @Norman Eisenherz не всё так просто походу вот прописал в конфигах продавца условия Скрытый текст [trader] buy_condition = trade_generic_buy sell_condition = {=actor_friend} trade_friend_sell, trade_generic_sell buy_supplies = {=actor_rank_veteran} supplies_exp_2, {=actor_rank_experienced} supplies_exp_1, supplies_generic Скрытый текст -- функции на проверку ранга актора function actor_rank_newbie() return db.actor:character_rank() < 300 end function actor_rank_experienced() return db.actor:character_rank() < 600 end function actor_rank_veteran() return db.actor:character_rank() < 900 end function actor_rank_master() return db.actor:character_rank() > 900 end на старте у меня ГГ новичок, но в продаже появляются предметы, что должны ток на ранге опытный и ветеран появлятся 1 Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 10 Сентября @abramcumner в игре ранговая система вроде как такая от 0 до 300 - новичок, от 300 до 600 - опытный, от 600 да 900 ветеран, а все кто свыше 900 мастера то бишь как я хочу сделать - если ГГ новичок (то бишь его ранг не достиг 300 - продавать по таблице supplies_generic, если ранг ГГ опытный (от 300 до 600) - асортимент идёт по таблице supplies_exp_1, на а если свыше 600 - то продавать по supplies_exp_2. Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 11 Сентября @abramcumner ну чёт не срабатывает проверка видимо Скрытый текст buy_condition = trade_generic_buy sell_condition = {!actor_friend} trade_friend_sell, trade_generic_sell buy_supplies = {!actor_rank_veteran} supplies_exp_2, {!actor_rank_experienced} supplies_exp_1, supplies_generic Скрытый текст -- функции на проверку ранга актора function actor_rank_newbie(actor, npc) return db.actor:character_rank() < 300 end function actor_rank_experienced() local rank = db.actor:character_rank(actor, npc) return rank >= 300 and rank < 600 end function actor_rank_veteran(actor, npc) local rank = db.actor:character_rank() return rank >= 600 and rank < 900 end function actor_rank_master(actor, npc) return db.actor:character_rank() >= 900 end ГГ спавнится с рангом 0, а всё равно в продаже предметы, что должны появляться при условии опытный и ветеран Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 13 Сентября народ, подскажите по братски сделал пару циклических квестов на поиски предметов, добавил нужный диалог торгашу, в итоге наблюдаю такое список есть, а взять их невозможно Скрытый текст [jaba_find_item_1] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_1_text description = st_jaba_recover_item_1_descr parent = jaba target = cher_quest_wpn_pm_1 reward_money = 1500 reward_reputation = +15 reward_rank = 2 time = 86400 [jaba_find_item_2] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_2_text description = st_jaba_recover_item_2_descr parent = jaba target = cher_quest_wpn_ak74u_1 reward_money = 3000 reward_reputation = +15 reward_rank = 5 time = 86400 [jaba_find_item_3] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_3_text description = st_jaba_recover_item_3_descr parent = jaba target = cher_quest_af_cristall_flower_1 reward_money = 6000 reward_reputation = +15 reward_rank = 3 time = 86400 [jaba_find_item_4] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_4_text description = st_jaba_recover_item_4_descr parent = jaba target = cher_quest_scout_pda reward_money = 15000 reward_reputation = +15 reward_rank = 10 time = 86400 [jaba_find_item_5] type = find_item community = actor ;condlist = {+agroprom_military_case_done} text = st_jaba_recover_item_5_text description = st_jaba_recover_item_5_descr parent = jaba target = cher_quest_killer_outfit_1 reward_money = 8000 reward_reputation = +15 reward_rank = 7 time = 86400 Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 20 Сентября всем добра коллеги, есть у меня на полуподземной локация область, накрытая рестриктором с такой логикой Скрытый текст [logic] active = sr_idle@check_in [sr_idle@check_in] on_actor_inside = {-damned_weathers_indoor} sr_idle@check_out %+damned_weathers_indoor =set_weather(sarkofag:true)% [sr_idle@check_out] on_actor_outside = {-damned_weathers_outdoor} sr_idle@t10 %-damned_weathers_indoor +damned_weathers_outdoor =set_weather(default:true)% [sr_idle@t10] on_game_timer = 10 | sr_idle@check_in %-damned_weathers_outdoor% тобишь, чтоб при заходе под землю, погода менялась на подземную и т.д. в эффект.скрипт строка функции тоже прописана Скрытый текст function set_weather(actor, npc, p) if (p[1]) then if (p[2] == "true") then level.set_weather(p[1], true) else level.set_weather(p[1], false) end end end но смены погоды при заходе в зону не происходит. Кто подскажет в чём я прокололся? Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 21 Сентября @Капрал Хикс дык а как в таком случае должна выглядеть логика рестриктора, при входе в которую поршень выдается, а при выходе "забирается"? У меня из подземки выходы на другие уровни есть, да и с других локаций под землю тоже тропы ведут. Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение
DarkSnowder 899 Опубликовано 22 Сентября (изменено) @Marafon6540 ну вообще смысл есть, но подземка довольно разветвлённая, а env_зоны в редакторе только сферические. Изменено 23 Сентября пользователем DarkSnowder Лучше сделать мод с 0, чем пытаться залатать багованный. Поделиться этим сообщением Ссылка на сообщение