Jekyll 92 Опубликовано 9 Сентября 2016 Здравствуйте. Как правильно выдать инфопоршень при использовании предмета в инвентаре (например, хавки)? Пробовал сделать так: function use_n()if db.actor thenif db.actor:eat(db.actor:object("секция предмета")) thendb.actor:give_info_portion("поршень")endendend не работает. Предмет уже при взятии в инвентарь тут же исчезает, поршня нет. Что нужно изменить? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 3 Июля 2017 Здравствуйте. Как определить, что смерть одного монстра (неважно от чего) наступила на определенном расстоянии от другого монстра. Причем они не атаковали друг друга. Можно ли использовать для этого "distance_to"? Поясню. Если использовать в качестве "целевого монстра" актора, то все понятно и все работает как надо (при этом в смерти монстра актор не виноват), ссылка на сам скрипт в монстрячем death_callback'е. Скрытый текст function test(self) local monstr = self.object local pos = monstr:position() if monstr and monstr:section()=="dog_weak" and pos:distance_to(db.actor:position()) < 5 then .... end end Но как вместо db.actor впихнуть другого монстра? Либо здесь нужен иной подход? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 3 Июля 2017 Скрытый текст 26 минут назад, UnLoaded сказал: Прикольно... Если вырывать фразы из контекста, то да, прикольно... 27 минут назад, UnLoaded сказал: что мешает использовать "distance_to" для любого игрового объекта Мне не понятно, как в этом случае применить определенную секцию монстра. Не пропишешь же так: pos:distance_to("секция":position()). New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 4 Июля 2017 5 часов назад, gam сказал: в файле bind_monster.script для function generic_object_binder:death_callback(victim, who) внутри прописать условие: Хочу уточнить: приведенный здесь пример подразумевает систему "жертва-убийца", когда и жертва, и убийца известны? Точнее когда непосредственно между двумя монстрами (один - "self.object", другой - "who") произошло взаимодействие, закончившееся гибелью одного из них (первого) - так? Извиняйте за стиль изложения - издержки профессии. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 27 Июля 2017 Здравствуйте. Есть такой код Скрытый текст function particle(self) -- прописана в xr_motivator на хит_колбэке local victim = self.object local weapon = db.actor:item_in_slot(2) if db.actor:active_slot()==2 and weapon and weapon:section()=="оружие" then if victim:who_hit_name()=="single_player" and victim.health < 1 then ash_particle(self) end end end function ash_particle(self) local victim = self.object local sect = victim:section() local type = {"stalker","neutral","dolg","freedom","soldier"} -- список значительно сокращен local ash = particles_object("путь_до_партикла") for t = 1,20 do if not string.find(sect,type[t]) then ash:play_at_pos(victim:position()) end end end Задумка в том, чтобы партиклы проигрывались у всех подстреленных, кроме указанных в таблице. При этом если вместо строчки if not string.find(sect,type[t]) then сделать просто перечисление if not (string.find(sect,"stalker") or string.find(sect,"neutral") or string.find(sect,"dolg") or string.find(sect,"freedom") or string.find(sect,"soldier")) then -- соответственно список значительно сокращен то все работает как надо. Что я упустил? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 24 Октября 2017 Здравствуйте. Нужно удалить НПС или монстра при попадании в него из оружия. На сколько я знаю, методом :release() можно удалять только неживые объекты. Есть такой кусочек кода (только не бейте если что): Скрытый текст if mob then if mob:alive() and mob:who_hit_name()=="single_player" then mob:kill(mob) alife():release(alife():object(mob:id()),true) Насколько этот кусочек стабилен и не вызовет ли он в дальнейшем проблем (вроде боя сейвов)? Есть ли способ удалить живой объект без таких последствий? И еще: аналогичен ли способ "mob:kill(mob)" способу "mob.health = 0"? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 25 Октября 2017 8 часов назад, Graff46 сказал: Живые можно удалять так Прошу прощения, может я некорректно задал вопрос, что-то перепутав. Вот здесь автор статьи утверждает обратное (удалить-то живого можно, но к чему это приведет, особенно в массовых случаях?). Впрочем, возможно я слишком заморачиваюсь. 3 часа назад, AndreySol сказал: соответственно метод kill не будет полноценно обработан для объекта, и он будет сразу удален Такой код исправит положение? Скрытый текст if mob then local sim = alife() local sobj = sim:object(mob:id()) if sobj then sim:release(sobj.id, true) end end New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 25 Октября 2017 9 часов назад, Graff46 сказал: Пока еще не вылетало. Да и у меня, в общем-то, не вылетало, разве что несколько раз при использовании именно этого своего скрипта ловил такое: Скрытый текст Expression : assertion failed Function : CALifeSimulator__release File : deep deep in space Line : 666 Description : Object to release is a zero pointer Стремно как-то. 1 час назад, AndreySol сказал: Надо знать, что за монстров Вы будете удалять По задумке - всех подряд, кто под "горячую руку" попадет: и НПС, и монстры... Короче, оружие "на каждый день". Не знаю, как к такому подходу отнесется движок - подозреваю, что у него может случится серьезное "несварение". Кстати, появилось еще несколько вопросов, возможно нубских, но уж как есть: 1) в alife():release(alife():object(mob:id()),true) для чего это самое "true"? 2) в логе могут проскакивать записи вроде "! Invalid ogg-comment version, file:" или "- Critical: SMapLocation binded to non-existent object id". Первая отмечается в консоли красным цветом, вторая - зеленым. О чем в таких случаях говорит цвет записи? 3) насколько серьезны "- Critical: SMapLocation binded to non-existent object id" и "- Critical: CMapLocation::UpdateSpot binded to non-existent object id"? Возникает каждый раз, когда удаляется НПС (вторая изредка). Понимаю, что дело в метках, но как от этого избавиться - не знаю. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 30 Июня 2018 Здравствуйте. Как выполнить проверку на визуал фантома в ТЧ? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 14 Июля 2018 Здравствуйте. Необходимо при выбрасывании предмета А из инвентаря удалить его и заспавнить на его место предмет Б. Функция прописана в колбэк on_item_drop Скрытый текст for k,v in pairs(mf) do if obj and obj:section()==k then local sobj= alife():object(obj:id()) alife():create(v,obj:position(),obj:level_vertex_id(),obj:game_vertex_id()) alife():release(sobj,true) end end Проблема в том, что при "съедании" предмета А происходит вылет (как я понял - потому, что движок пытается удалить несуществующий объект). Как это исправить? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 27 Февраля 2019 Здравствуйте! Кто подскажет, как еще используется функция who_hit_name() кроме случая self.object:who_hit_name()=="single_player"? И как отследить хит/убийство одного моба другим мобом? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 28 Февраля 2019 16 часов назад, naxac сказал: Отследить можно в каллбэке на хит Это понятно. Мне хотелось бы увидеть пример использования who_hit_name() помимо "single_player". В добром десятке модов искал пример, но ничего другого не нашел. Отсюда напрашивается вывод, что либо ничего больше разрабы не придумали для этой функции, либо так уж очень она "нужна" в целом... New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 1 Марта 2019 @Pug-Lover, это где это то самое "туда, куда надо"?:) Тут кусок кода от одной из моих аномалий - чинятся оружейные слоты и броник - применительно к твоему случаю - вклеить в ui_main_menu.script: Скрытый текст if dik==DIK_keys.DIK_R then local slot = {1,2,6} for n = 1,table.getn(slot) do local item = db.actor:item_in_slot(slot[n]) if item ~= nil then item:set_condition(1) end end end после строчки if keyboard_action == ui_events.WINDOW_KEY_PRESSED then Проще по-моему уже некуда. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 1 Марта 2019 (изменено) @Pug-Lover, у меня чинятся все три слота. Было бы неплохо глянуть на твой ui_main_menu.script. Изменено 1 Марта 2019 пользователем Jekyll New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 1 Марта 2019 (изменено) @Pug-Lover, не представляю, как у тебя ЭТО вообще запускается... Попробуй для начала заменить свою функцию function main_menu:OnKeyboard(dik, keyboard_action) --virtual function на эту: Скрытый текст function main_menu:OnKeyboard(dik, keyboard_action) --virtual function CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) local bind = dik_to_bind(dik) local console = get_console() if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik==DIK_keys.DIK_R then local slot = {1,2,6} for n = 1,table.getn(slot) do local item = db.actor:item_in_slot(slot[n]) if item ~= nil then item:set_condition(1) end end end if dik == DIK_keys.DIK_ESCAPE then if level.present() and (db.actor ~= nil) and db.actor:alive() then console:execute("main_menu off") end end end Только бэкап сделай. Что за версия? 1.0006? 1.0004? Изменено 1 Марта 2019 пользователем Jekyll New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 1 Марта 2019 @Pug-Lover, сорян, end пропустил. Попробуй так Скрытый текст function main_menu:OnKeyboard(dik, keyboard_action) --virtual function CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) local bind = dik_to_bind(dik) local console = get_console() if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik==DIK_keys.DIK_R then local slot = {1,2,6} for n = 1,table.getn(slot) do local item = db.actor:item_in_slot(slot[n]) if item ~= nil then item:set_condition(1) end end end if dik == DIK_keys.DIK_ESCAPE then if level.present() and (db.actor ~= nil) and db.actor:alive() then console:execute("main_menu off") end end end end New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 1 Марта 2019 @Pug-Lover, 1) в первоначальном своем скрипте найди строчку function main_menu:amk_options() 2) поднимись чуть выше, к куску Скрытый текст -- раскоментируем и заоодно включим убранное спавн меню if dik == DIK_keys.DIK_S then -- self:OnButton_load_spawn() elseif dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() elseif dik == DIK_keys.DIK_A then if amk.check_game() then self:amk_options() end end end return true end 3) и сделай так Скрытый текст -- раскоментируем и заоодно включим убранное спавн меню if dik == DIK_keys.DIK_S then -- self:OnButton_load_spawn() elseif dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() elseif dik == DIK_keys.DIK_A then if amk.check_game() then self:amk_options() end end if dik==DIK_keys.DIK_R then local slot = {1,2,6} for n = 1,table.getn(slot) do local item = db.actor:item_in_slot(slot[n]) if item ~= nil then item:set_condition(1) end end end end return true end Если это не поможет... New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 26 Декабря 2020 25.12.2020 в 06:16, Colder сказал: проверку аномании в определеных метрах В смысле, определить дистанцию до аномалии? Если чистый ТЧ, то не получится, нужен биндер аномалий (можешь взять из ЗП, файл "bind_anomaly_field.script"). Там на апдейте вписываешь ссылку на свою функцию и радуешься. Вопрос к знатокам: как переместить актора строго по текущему направлению взгляда на нужное расстояние. Как переместить актора к видимому объекту или в нужные координаты - знаю. А тут нужно именно учесть направление, куда смотрит камера в момент перемещения. 1 New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 26 Декабря 2020 4 часа назад, dsh сказал: db.actor:position():mul( db.actor:direction() , dist ) Получается как-то так (ЗП): db.actor:set_actor_position(db.actor:position():add(db.actor:direction():mul(10))) Кто-нибудь может поделиться нормальной функцией спавна аномалий для ЗП? Аналогичной этой функции? Предложенная здесь функция не совсем рабочая, что ли... Например, таймы не работают. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение
Jekyll 92 Опубликовано 4 Января 2021 Здравствуйте! Пытался заспавнить аномалию с визуалом ("zone_burning_fuzz") с помощью такого кода: Скрытый текст function spawn_bf(section,position,lvid,gvid) local sobj = alife():create(section,position,lvid,gvid) repack_visual_zone_bf(sobj) end function repack_visual_zone_bf(sobj) -- burning_fuzz if sobj == nil then return sobj end local data = read_zone_visual_params(sobj) data.shapes[1]={} data.shapes[1].shtype=1 data.shapes[1].v1 = vector():set(1.70797920227051,0,0.0645924285054207) data.shapes[1].v2 = vector():set(0,9.54259395599365,0) data.shapes[1].v3 = vector():set(-0.0645924285054207,0,1.70797920227051) data.shapes[1].offset = vector():set(-0.119056679308414,-2.79967045783997,-0.000208642595680431) data.max_power = 1 data.idle_animation = "idle" data.attack_animation = "idle" write_zone_visual_params(data,sobj) return sobj end function parse_shape_packet(t,stpk,uppk) local shape_count = stpk:r_u8() t.shapes={} for i=1,shape_count do local shape_type = stpk:r_u8() t.shapes[i]={} t.shapes[i].shtype=shape_type if shape_type == 0 then -- sphere t.shapes[i].center = stpk:r_vec3() t.shapes[i].radius = stpk:r_float() else -- box t.shapes[i].v1 = stpk:r_vec3() t.shapes[i].v2 = stpk:r_vec3() t.shapes[i].v3 = stpk:r_vec3() t.shapes[i].offset = stpk:r_vec3() end end end function fill_object_packet(ret,stpk,updpk) stpk:w_u16(ret.gvid) stpk:w_float(ret.obf32u1) stpk:w_s32(ret.obs32u2) stpk:w_s32(ret.lvid) stpk:w_s32(ret.oflags) stpk:w_stringZ(ret.custom) stpk:w_s32(ret.sid) stpk:w_s32(ret.obs32u3) end function fill_shape_packet(t,stpk,updpk) stpk:w_u8(table.getn(t.shapes)) for i=1,table.getn(t.shapes) do stpk:w_u8(t.shapes[i].shtype) if t.shapes[i].shtype == 0 then stpk:w_vec3(t.shapes[i].center) stpk:w_float(t.shapes[i].radius) else stpk:w_vec3(t.shapes[i].v1) stpk:w_vec3(t.shapes[i].v2) stpk:w_vec3(t.shapes[i].v3) stpk:w_vec3(t.shapes[i].offset) end end end function fill_visual_packet(ret,stpk,updpk) stpk:w_stringZ(ret.visual) stpk:w_u8(ret.vsu8u1) end function parse_object_packet(ret,stpk,updpk) ret.gvid=stpk:r_u16() ret.obf32u1=stpk:r_float() ret.obs32u2=stpk:r_s32() ret.lvid=stpk:r_s32() ret.oflags=stpk:r_s32() ret.custom=stpk:r_stringZ() ret.sid=stpk:r_s32() ret.obs32u3=stpk:r_s32() return ret end function parse_visual_packet(ret,stpk,updpk) ret.visual=stpk:r_stringZ() ret.vsu8u1=stpk:r_u8() return ret end function read_zone_visual_params(sobj) local stpk=net_packet() local uppk=net_packet() stpk:w_begin(0) uppk:w_begin(0) sobj:STATE_Write(stpk) sobj:UPDATE_Write(uppk) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(2) uppk:r_seek(2) local t={} parse_object_packet(t,stpk,uppk,size) parse_shape_packet(t,stpk,uppk,size) t.restrictor_type = stpk:r_u8() t.max_power = stpk:r_float() t.owner_id = stpk:r_s32() t.enabled_time = stpk:r_s32() t.disabled_time = stpk:r_s32() t.start_time_shift = stpk:r_s32() t.effective_radius = stpk:r_float() t.offline_interactive_radius = stpk:r_float() t.artefact_spawn_count = stpk:r_u16() t.artefact_position_offset = stpk:r_s32() parse_visual_packet(t,stpk,uppk) t.idle_animation = stpk:r_stringZ() t.attack_animation = stpk:r_stringZ() return t end function write_zone_visual_params(t,sobj) local stpk=net_packet() local uppk=net_packet() fill_object_packet(t,stpk,uppk) fill_shape_packet(t,stpk,uppk) stpk:w_u8(t.restrictor_type) stpk:w_float(t.max_power) stpk:w_s32(t.owner_id) stpk:w_s32(t.enabled_time) stpk:w_s32(t.disabled_time) stpk:w_s32(t.start_time_shift) stpk:w_float(t.effective_radius) stpk:w_float(t.offline_interactive_radius) stpk:w_u16(t.artefact_spawn_count) stpk:w_s32(t.artefact_position_offset) fill_visual_packet(t,stpk,uppk) stpk:w_stringZ(t.idle_animation) stpk:w_stringZ(t.attack_animation) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(2) uppk:r_seek(2) sobj:STATE_Read(stpk,size) sobj:UPDATE_Read(uppk) end Собственно спавн осуществляется через function spawn_bf(section,position,lvid,gvid). Получаю такой лог вылета: Скрытый текст FATAL ERROR [23:25:07.207] [23:25:07.207] [error] Expression : <no expression> [23:25:07.207] [error] Function : CModelPool::Instance_Load [23:25:07.207] [error] File : I:\Demosfen\src\Layers\xrRender\ModelPool.cpp [23:25:07.207] [error] Line : 99 [23:25:07.207] [error] Description : fatal error [23:25:07.207] [error] Arguments : Can't find model file 'Зz№.ogf'. [23:25:07.207] [23:25:07.207] [23:25:07.207] stack trace: [23:25:07.207] [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrCore.dll at 00007FFF131DD81A xrDebug::Fatal() + 122 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrRender_R4.DLL at 00007FFEFCC7ED3B [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrRender_R4.DLL at 00007FFEFCC7F326 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB7BAFAD [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB7BC03A [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB9ECD5D [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB767971 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFBB5E0C2 xrFactory_Destroy() + 40914 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB832534 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB825417 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB8256FC [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBBF2F CRenderDevice::CSecondVPParams::IsSVPFrame() + 179 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB83D CRenderDevice::FrameMove() + 317 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB08D CRenderDevice::on_idle() + 269 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB41F CRenderDevice::message_loop() + 127 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB625 CRenderDevice::Run() + 501 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23E1E244 Startup() + 516 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23E1E9B6 RunApplication() + 1446 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.exe at 00007FF7250F12C7 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.exe at 00007FF7250F1384 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.exe at 00007FF7250F162E [23:25:07.220] C:\Windows\System32\KERNEL32.DLL at 00007FFF3F777974 BaseThreadInitThunk() + 20 byte(s) [23:25:07.220] C:\Windows\SYSTEM32\ntdll.dll at 00007FFF3FC7A261 RtlUserThreadStart() + 33 byte(s) [23:25:07.220] [23:25:07.220] Lua Stack Вместо названия модели кракозябры. Кто-нибудь может подсказать, чего этой заразе не хватает? Понимаю, что это не чистая ЗП, но специфика наверняка та же. New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Поделиться этим сообщением Ссылка на сообщение