Перейти к содержанию

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

 
 

Добрый вечер. Настало время таки действительно проблемных (для меня) вопросов. Пользуюсь функциями АМК на считывание нетпакета оружия с записью в него своих данных.

Спойлер

--------------------------------------------------------------
-- Все функции взяты из АМК в чистом виде --
--------------------------------------------------------------

function get_weapon_data(sobj)
  local stpk=net_packet()
--  local uppk=net_packet()
  sobj:STATE_Write(stpk)
--  sobj:UPDATE_Write(uppk)
  local size=stpk:w_tell()
--  local size1=uppk:w_tell()
  -- amk.mylog("rsp "..size.." "..size1)
  stpk:r_seek(0)
 -- uppk:r_seek(0)
  local t={}
  parse_object_packet(t,stpk,size)--,uppk
  parse_visual_packet(t,stpk,size)--,uppk
  parse_item_packet(t,stpk,size)--,uppk
  parse_item_weapon_packet(t,stpk,size)--,uppk
  -- amk.mylog("rsp "..size.." "..size1.." "..stpk:r_tell())
  return t
end

function set_weapon_data(t,sobj)
  local stpk=net_packet()
    
  fill_object_packet(t,stpk)--,uppk
  fill_visual_packet(t,stpk)--,uppk
  fill_item_packet(t,stpk)--,uppk
  fill_item_weapon_packet(t,stpk)--,uppk
    
  local size=stpk:w_tell()
  stpk:r_seek(0)
  sobj:STATE_Read(stpk,size)

end

function parse_item_weapon_packet(ret,stpk)--,updpk
    ret.ammo_current = stpk:r_u16()
    ret.ammo_elapsed = stpk:r_u16()
    ret.weapon_state = stpk:r_u8()
    ret.addon_flags = stpk:r_u8()
    ret.ammo_type = stpk:r_u8()
    
    --[[ret.updgrenade_mode = updpk:r_u8()
    ret.updcurrent_fire_mode = updpk:r_u8()
    ret.updcondition = updpk:r_u8()
    ret.updweapon_flags = updpk:r_u8()
    ret.updammo_elapsed = updpk:r_u16()
    ret.updaddon_flags = updpk:r_u8()
    ret.updammo_type = updpk:r_u8()
    ret.updweapon_state = updpk:r_u8()
    ret.updweapon_zoom = updpk:r_u8()]]
  return ret
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 parse_item_packet(ret,stpk)--,updpk
    ret.condition=stpk:r_float()
    
    --[[ret.updnum_items=updpk:r_u8()
  ret.updpos={} -- или поставить вектор? ладно потом
  ret.updpos.x=updpk:r_float()
  ret.updpos.y=updpk:r_float()
  ret.updpos.z=updpk:r_float()
    ret.updcse_alife_item__unk1_q8v4=readvu8uN(updpk,4)
    ret.updcse_alife_item__unk2_q8v3=readvu8uN(updpk,3)
    ret.updcse_alife_item__unk3_q8v3=readvu8uN(updpk,3)]]
  return ret
end

function readvu8uN(packet,n)
  local v={}
  for i=1,n,1 do
    table.insert(v,packet:r_u8())
  end
  return v
end

function fill_item_weapon_packet(ret,stpk)--,updpk
    stpk:w_u16(ret.ammo_current)
    stpk:w_u16(ret.ammo_elapsed)
    stpk:w_u8(ret.weapon_state)
    stpk:w_u8(ret.addon_flags)
    stpk:w_u8(ret.ammo_type)
    
    --[[updpk:w_u8(ret.updgrenade_mode)
    updpk:w_u8(ret.updcurrent_fire_mode)
    updpk:w_u8(ret.updcondition)
    updpk:w_u8(ret.updweapon_flags)
    updpk:w_u16(ret.updammo_elapsed)
    updpk:w_u8(ret.updaddon_flags)
    updpk:w_u8(ret.updammo_type)
    updpk:w_u8(ret.updweapon_state)
    updpk:w_u8(ret.updweapon_zoom)]]
  return ret
end

function fill_item_packet(ret,stpk)--,updpk
    stpk:w_float(ret.condition)
    --[[updpk:w_u8(ret.updnum_items)
  updpk:w_float(ret.updpos.x)
  updpk:w_float(ret.updpos.y)
  updpk:w_float(ret.updpos.z)
--    readvu8uN(updpk,ret.updcse_alife_item__unk1_q8v4)        --  было в оригинале
--    readvu8uN(updpk,ret.updcse_alife_item__unk2_q8v3)        -- единственное, что я поправил
--    readvu8uN(updpk,ret.updcse_alife_item__unk3_q8v3)        -- иначе вылетало
    writevu8uN(updpk,ret.updcse_alife_item__unk1_q8v4)
    writevu8uN(updpk,ret.updcse_alife_item__unk2_q8v3)
    writevu8uN(updpk,ret.updcse_alife_item__unk3_q8v3)]]
  return ret
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)
  return ret
end

function fill_visual_packet(ret,stpk)--,updpk
  stpk:w_stringZ(ret.visual)
  stpk:w_u8(ret.vsu8u1)
  return ret
end

function writevu8uN(pk,v)
  local len=table.getn(v)
  --pk:w_u8(len)
  for i=1,len,1 do
    pk:w_u8(v)
  end
end

 

Собственно, при подмене нетпакетов предмета, который я спавню на земле, всё работает. А вот если предмет спавнить в инвентарь гг - изменения не применяются. Вопрос: почему и что с этим делать? Нужно для реализации многоприцельности и других занятных фич.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
32 минуты назад, Etil сказал:

Нужно для реализации многоприцельности

Для многоприцельности есть нормальные движки, зачем костылить такое? Если уж конечно хочется костылей и ответа на вопрос - код к осмотру.

Изменено пользователем I am dead

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


Ссылка на сообщение
Поделиться на другие сайты
 

Доброго дня! Столкнулся с проблемой при работе с травой на ряде билдовских локаций. Речь в первую очередь идет о кордоне, хотя думаю, это не имеет значения. В общем, после билда в LE и успешного выполнения xrlc, xrdo выдает ошибку:

Спойлер

[15.04.22 16:34:22.482] DEBUG CONTEXT DUMP:
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482]  
[15.04.22 16:34:22.482] Unhandled exception stack trace:
[15.04.22 16:34:22.482] 
[15.04.22 16:34:22.483] 0x00000000D459E12C (0x00000000 0x00000000 0x00000007 0xD45A1855) xrDO_Light.exe

Причем если я удаляю всю траву и делаю с нуля, проблема не исчезает. Может кто-нибудь может подсказать. Был бы очень благодарен.

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


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead ---Тестовый вариант кода, в автоматном слоте находится АКС-74У с разными обвесами и половиной магазина "простых" патронов. Задача - заспавнить такой же в инвентарь ГГ, но с другим типом патронов.

Спойлер

function test()
    local act = db.actor
    local wpn = act:item_in_slot(2)
        local wobj = alife():object(wpn:id())
    local t = weap_data.get_weapon_data(wobj)
    t.ammo_type = 1 --- единица - бронебойные патроны,
    t.updammo_type = 1
    local sobj = alife():create("wpn_ak74u", act:position(),act:level_vertex_id(),act:game_vertex_id(),act:id()) ---если убрать "act:id()", то работает.
    weap_data.set_weapon_data(t, sobj)

end

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Upd: случайно наткнулся на решение на одном из форумов (спавн предмета рядом с гг и трансфер предмета в инвентарь, иначе никак). Решено.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте! такой вопрос можно ли  Перенести как то Gunslinger(Mod) в Тень Чернобыля??

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


Ссылка на сообщение
Поделиться на другие сайты
 

Richerd без правок движка - нет. Тут на огср движок перенесен https://ap-pro.ru/forums/topic/3463-ogsr-gunslinger-addon-obt/


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

1.Что нужно копилировать если ты добавил объекты и источники света в сдк на локацию?

2. Если после декомпиляции локации, в сдк у этой локации нет AI сетки, что это значит?Не правильная декомпиляция с моей стороны или полное отсутствие её на локации?Как проверить была она или нет?

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

КАК МНЕ ВЫЛОЖИТЬ СВОЙ МОД ПРОШУ ОТВЕТИТЬ

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

с чем связан вылет? и как лечить?

Спойлер


FATAL ERROR
 
[error]Expression    : !lst.empty()
[error]Function      : CHudItem::animGet
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\HudItem.cpp
[error]Line          : 295
[error]Description   : shoot1
 
 

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

lewandowski Игра не находит в худ-модели какого-то оружия анимации shoot1.


Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 02.07.2020 в 01:32, Overf1rst сказал:

010cdbd72f.png

Тема посвящена моддингу на платформе Тень Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.

Помогите мне с модом я его до делал теперь мне осталось узнать как выложить его. 


Дополнено 2 минуты спустя
В 02.07.2020 в 01:32, Overf1rst сказал:

010cdbd72f.png

Тема посвящена моддингу на платформе Тень Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.

ПОМОГИТЕ МНЕ Я СОЗДАЛ МОД НО Я НЕЗНАЮ КАК ЕГО ВЫЛОЖИТЬ. 

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

KARVINK в шапке сайта слева от колокольчика и конверта есть пункт "Добавить +".


Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

подскажите пожалуйста, решил перенести детекторы на огср движок, ловлю вылет 371 с таким вот описанием: Can't find variable radius [detector_sipmle1] цифру один добавил, чтобы не было повторения с секцией детектора из тч, которые без худа, с чем может быть связан этот вылет?

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


Ссылка на сообщение
Поделиться на другие сайты
 

STaLKeRoc в секцию "detector_sipmle1" добавьте параметр "radius". Зп-шные что ли переносите? В радиофобии 3 их перенесли. Не знаю, делали ли там свои движковые правки, но может что пригодится

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, vader_33 сказал:

STaLKeRoc в секцию "detector_sipmle1" добавьте параметр "radius". Зп-шные что ли переносите? В радиофобии 3 их перенесли. Не знаю, делали ли там свои движковые правки, но может что пригодится

в радиофобии используется костыль из autumn aurora 2 и они работают скриптами, так как на момент выхода этого мода огср не поддерживал детекторы. Да переношу из зп, то есть мне просто добавить в секцию строчку radius?

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


Ссылка на сообщение
Поделиться на другие сайты
 
12 минут назад, STaLKeRoc сказал:

в радиофобии используется костыль из autumn aurora 2 и они работают скриптами

Разве в АА2 были детекторы как в зп, реагирующие на арты? Прям и велес там был, отображающий на своей модели  арт? Что-то не помню такого. Спавнились только при детекторе - да, это помню, а вот зп-шные детекторы да еще и на скриптах?

12 минут назад, STaLKeRoc сказал:

то есть мне просто добавить в секцию строчку radius?

radius = число 

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, vader_33 сказал:

Разве в АА2 были детекторы как в зп, реагирующие на арты? Прям и велес там был, отображающий на своей модели  арт? Что-то не помню такого. Спавнились только при детекторе - да, это помню, а вот зп-шные детекторы да еще и на скриптах?

radius = число 

ну в радиофобии такая же система почти, но чуть изменённая, там для велеса специальные шейдеры используются из огсе


Дополнено 47 минуты спустя
4 часа назад, vader_33 сказал:

Разве в АА2 были детекторы как в зп, реагирующие на арты? Прям и велес там был, отображающий на своей модели  арт? Что-то не помню такого. Спавнились только при детекторе - да, это помню, а вот зп-шные детекторы да еще и на скриптах?

radius = число 

спасибо большое за подсказку, добавил в секцию эту строчку и заработало, но в руки не берётся почему то, слот пистолетный поставил

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


Ссылка на сообщение
Поделиться на другие сайты
 

STaLKeRoc без самих конфигов гадать долго можно


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

народ, перенёс детекторы на огср, вставляю его в слот, но он не берется в руки, кто нибудь знает с чем это связано?

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


Ссылка на сообщение
Поделиться на другие сайты
 

del

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 03.11.2021 в 23:08, imcrazyhoudini сказал:

При обработке аудио через СДК в игре вылетает с таким логом:

Формат с которым конвертировал в wav. : покажи настройки

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


Ссылка на сообщение
Поделиться на другие сайты
 

кто знает, как активировать слот для шлема в ogsr engine?

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


Ссылка на сообщение
Поделиться на другие сайты
 

STaLKeRoc в external.ltx в "ogse_new_slots" поставить true, но допслоты надо еще прописать в inventory_new....xml (в ogsr mod можно посмотреть, вроде как там пси шлем как раз надевается, но точно не помню)


В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 09.05.2022 в 15:55, vader_33 сказал:

STaLKeRoc в external.ltx в "ogse_new_slots" поставить true, но допслоты надо еще прописать в inventory_new....xml (в ogsr mod можно посмотреть, вроде как там пси шлем как раз надевается, но точно не помню)

спасибо, но что именно нужно прописывать в inventory_new.xml? просто нет времени качать огсе, он довольно много весит


Дополнено 4 минуты спустя
4 минуты назад, STaLKeRoc сказал:

спасибо, но что именно нужно прописывать в inventory_new.xml? просто нет времени качать огсе, он довольно много весит

и где вообще этот файл, не могу найти его...

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу