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

Редактирование движка X-Ray


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

Товарищи... каким образом из окна инвентаря CUIInventoryWnd можно перезарядить неактивное оружие? которое стоит в слоте?

CUIGameSP* pGameSP = smart_cast<CUIGameSP*>(HUD().GetUI()->UIGame());
pGameSP->InventoryMenu->GetHolder()->StartStopMenu(pGameSP->InventoryMenu,true); //прячем окно инвентаря
m_pInv->ProcessSlotAction(true,weapon->GetSlot()); //делаем активным слот с оружием
//а дальше магия - оружие достается, но не играет ни анимация, ни идет перезарядка.
//не работает так
m_pInv->Items_SetCurrentEntityHud(true);
weapon->Action(kWPN_RELOAD, CMD_START);

//или так
CHudItem* pHudItem = smart_cast<CHudItem*>(m_pInv->ActiveItem());
if (pHudItem) 
{
         pHudItem->OnStateSwitch(CWeapon::eReload);
};

//или так
weapon->OnStateSwitch(CWeapon::eReload); 
//или так
weapon->SetState(CWeapon::eReload);
//или так
weapon->Reload();

если после активации оружия в слоте (оно разряжено) нажать выстрел, зайти/выйти в главное меню - то CWeapon::eReload состояние применяется... а как сделать это кодом?

Ссылка на комментарий

Может кто сказать, что именно нужно добавить в рендер дабы атмосфир заработал?) Насколько я уже понял, там используются врезки в движок, перенести бы всё это в код.

Изменено пользователем Kirgudu
Ссылка на комментарий

@mortan, атмосфир работает без рендера и без правок движка. Лог вылета смотри - там вылет идёт по партиклу выброса - ищи в скриптах и меняй партикл, либо добавляй в xr

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@Дизель, точно? Хм, попробую, но я точно помню что читал что-то про изменение положения солнца и DOF. В чем причина такого вылета?

0023:69704906 d3d11.dll, D3D11CreateDeviceAndSwapChain()

0023:697074F0 d3d11.dll, D3D11CreateDeviceAndSwapChain()
0023:696B3E5A d3d11.dll, D3D11CreateDeviceAndSwapChain()
0023:04524137 xrRender_R3.dll
0023:004366E9 xrEngine.exe, CRenderDevice::on_idle(), c:\xray\x\xray16\src\xrengine\device.cpp, 317
0023:00435F8A xrEngine.exe, CRenderDevice::message_loop(), c:\xray\x\xray16\src\xrengine\device.cpp, 391
0023:00435EDE xrEngine.exe, CRenderDevice::Run(), c:\xray\x\xray16\src\xrengine\device.cpp, 437
0023:0046AE6D xrEngine.exe, Startup(), c:\xray\x\xray16\src\xrengine\x_ray.cpp, 393
0023:00469BC5 xrEngine.exe, WinMain_impl(), c:\xray\x\xray16\src\xrengine\x_ray.cpp, 898
0023:00469716 xrEngine.exe, WinMain(), c:\xray\x\xray16\src\xrengine\x_ray.cpp, 967
0023:00432F43 xrEngine.exe, __tmainCRTStartup(), f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c, 618
0023:76B8338A kernel32.dll, BaseThreadInitThunk()
0023:77AE9F72 ntdll.dll, RtlInitializeExceptionChain()
0023:77AE9F45 ntdll.dll, RtlInitializeExceptionChain()

[error][ 298] : Слишком много попыток занесения события для семафора.

 

Изменено пользователем mortan
Ссылка на комментарий

Такой вот вопрос к знающим - какое число является показателем 100% состояния? Я в сорцах так и не нашёл ответа на этот вопрос. Зачем это нужно - хочу сделать износ для глушителей, и мне нужно знать точные цифры) Хорошо бы конечно заменить состояние вообще на целочисленный показатель и дать возможность моддерам настроить прочность через конфиг.

Ссылка на комментарий

 

 

каким образом из окна инвентаря CUIInventoryWnd можно перезарядить неактивное оружие? которое стоит в слоте?

Может тебе подойдет скриптовый вариант ? Там не сложно...

 

Но если очень хочется в движке сделать, то смотри в сторону экспортированной ф-ции класса game_objectset_ammo_elapsed. В ней происходит установка кол-ва патронов в магазине оружия. Найди реализацию этой ф-ции, ну и дальше по аналогии...

Ссылка на комментарий

@mortan, а глушитель разве не wpn придаток? Я думаю, что износ глушителя можно реализовать, тогда когда глушитель будет самостоятельным объектом.

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@Дизель, можно и без этого - просто добавить ещё одно поле в класс оружия и работать с ним. Примерный план работы у меня уже есть. Сложность связана только с нетпакетами - я так и не понял ломаются ли они если добавить в них новое поле.

Изменено пользователем mortan
Ссылка на комментарий

 

 

я так и не понял ломаются ли они если добавить в них новое поле.

Ну так смотри внимательно - что и куда добавить, глядишь, ничего и не поломается...

Ссылка на комментарий

@UnLoaded, да тут вопрос скорее в другом - есть ли границы для каждого поля внутри пакета? По логике такая граница должна быть - я не видел чтобы инфа из одного поля  попадала в другое случайно. У меня такое было только один раз - нпс при одевании аддона вместо этого поставил апгрейд на него)

Ссылка на комментарий

 

 

По логике такая граница должна быть - я не видел чтобы инфа из одного поля  попадала в другое случайно

Эмм, многого ты еще не видел, однако... Нет-пакет в XRay - это бинарный буфер, для которого не предусмотрено ни каких средств контроля от переполнения или неверной записи данных. Да еще, в придачу, структура нет-пакета меняется в зависимости от объекта, которому он "принадлежит". Это не я придумал, это давно известный факт... Но добавить\считать свои данные в нет-пакет - не проблема, главное сделать это правильно.

Ссылка на комментарий

Есть ли правка для ЗП, которая добавляет классам оружия дополнительный звук перезарядки, если оружие разряжено не полностью (без передергивания затвора)?

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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