Перейти к контенту

Скриптование


Svoboда

Рекомендуемые сообщения

Здравствуйте. Как правильно выдать инфопоршень при использовании предмета в инвентаре (например, хавки)? Пробовал сделать так:

 

function use_n()
if db.actor then
if db.actor:eat(db.actor:object("секция предмета")) then
db.actor:give_info_portion("поршень")
end
end
end

 

не работает. Предмет уже при взятии в инвентарь тут же исчезает, поршня нет. Что нужно изменить?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте. Как определить, что смерть одного монстра (неважно от чего) наступила на определенном расстоянии от другого монстра. Причем они не атаковали друг друга. Можно ли использовать для этого "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

Поделиться этим сообщением


Ссылка на сообщение
Скрытый текст
26 минут назад, UnLoaded сказал:

Прикольно:az1000106:...

Если вырывать фразы из контекста, то да, прикольно...

 

27 минут назад, UnLoaded сказал:

что мешает использовать "distance_to" для любого игрового объекта

Мне не понятно, как в этом случае применить определенную секцию монстра. Не пропишешь же так: pos:distance_to("секция":position()).:)

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение
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

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте. Есть такой код

Скрытый текст

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

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте. Нужно удалить НПС или монстра при попадании в него из оружия. На сколько я знаю, методом :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

Поделиться этим сообщением


Ссылка на сообщение
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

Поделиться этим сообщением


Ссылка на сообщение
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

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте.

Необходимо при выбрасывании предмета А из инвентаря удалить его и заспавнить на его место предмет Б. Функция прописана в колбэк 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

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте!

Кто подскажет, как еще используется функция who_hit_name() кроме случая self.object:who_hit_name()=="single_player"?

И как отследить хит/убийство одного моба другим мобом?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение
16 часов назад, naxac сказал:

Отследить можно в каллбэке на хит

Это понятно. Мне хотелось бы увидеть пример использования who_hit_name() помимо "single_player". В добром десятке модов искал пример, но ничего другого не нашел. Отсюда напрашивается вывод, что либо ничего больше разрабы не придумали для этой функции, либо так уж очень она "нужна" в целом...:pardon:

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение

@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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@Pug-Lover, у меня чинятся все три слота. Было бы неплохо глянуть на твой ui_main_menu.script.

Изменено пользователем Jekyll

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@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?

Изменено пользователем Jekyll

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение

@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

Поделиться этим сообщением


Ссылка на сообщение

@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

Поделиться этим сообщением


Ссылка на сообщение
25.12.2020 в 06:16, Colder сказал:

проверку аномании в определеных метрах

В смысле, определить дистанцию до аномалии? Если чистый ТЧ, то не получится, нужен биндер аномалий (можешь взять из ЗП, файл "bind_anomaly_field.script"). Там на апдейте вписываешь ссылку на свою функцию и радуешься.

 

Вопрос к знатокам: как переместить актора строго по текущему направлению взгляда на нужное расстояние. Как переместить актора к видимому объекту или в нужные координаты - знаю. А тут нужно именно учесть направление, куда смотрит камера в момент перемещения.

  • Полезно 1

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Поделиться этим сообщением


Ссылка на сообщение
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

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте!

Пытался заспавнить аномалию с визуалом ("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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...