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

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


Rolan

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

подскажите, можно ли получить серверный CSE_ALifeDynamicObject зная его ID? Я вот не могу вспомнить что я для этого делал. Ну или на крайняк мне просто нужно получить серверный класс из клиентского.

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


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

интересно, а можно ли заставить итем полностью сбросить свои изменённые свойства на родные, из конфига?) Я тут делаю удаление апгрейдов из предмета - но вот писать под каждое изменяемое свойство функцию отмены что-то не очень хочется. Можно ли такое сделать если принудительно в оффлайн\онлайн отправить?

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


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

@Winsor, я ничего не менял - все функции написаны ПЫС. Я уже понял что лучше всего писать обратный код либо спавнить новый итем. Я кстати разобрался как получить ID предмета при спавне) Правда почему-то я не могу его найти функцией перебора итемов по id, но да ладно. Свойств у пушек дофига(

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


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

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

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


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

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

XRCORE_API LPSTR _GetItem(LPCSTR, int, LPSTR, u32 const dst_size, char separator = ',', LPCSTR = "", bool trim = true);

но тут свой разделитель задать нельзя. Можно ли просто удалить n-ое кол-во символов из строки?


Сам же отвечу на свой вопрос - в двигле вместо string нужно писать xr_string, вот у неё как раз есть нужная функция удаления erase


Никто не знает как из серверного итема получить клиентский? Я знаю его ID, но функция для поиска итема по уровню

 CObject* itm = Level().Objects.net_Find(id);

ничего не даёт. Мб предмет где-то не регистрируется?

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

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


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

@Winsor, erase я нашёл уже, спасибо, гуглом я тоже пользоваться умею. Только вот в xray вместо string зачем-то сделали xr_string

мдя, я нашёл когда игра создаёт объект для клиента, тут уж никак ты раньше этого срока не сможешь получить объект. Придётся отслеживать как-то этот момент и уже оттуда подавать инфу что объект можно использовать. Очень неудобно спавнить предметы в движке)
Можно ли указать серверному итему при спавне слот в котором он должен заспавниться?

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

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


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

@Дизель, а что за вылет-то? Ни разу такого не видывал

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

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


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

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

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


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

@Дизель, я спецом скачал "чистые" сорцы от лохотрона - там такого нету. Всё же это была ваша опечатка))

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


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

Меня вот такой вопрос интересует - если основной двиг собран в 2013 студии, можно ли к нему подключить рендер который собран, например, в 2008?
P.S. Ну или есть у кого сорцы атмосфира?)

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


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

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

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


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

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

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

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


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

@Дизель, точно? Хм, попробую, но я точно помню что читал что-то про изменение положения солнца и 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% состояния? Я в сорцах так и не нашёл ответа на этот вопрос. Зачем это нужно - хочу сделать износ для глушителей, и мне нужно знать точные цифры) Хорошо бы конечно заменить состояние вообще на целочисленный показатель и дать возможность моддерам настроить прочность через конфиг.

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


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

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

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

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


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

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

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


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

@UnLoaded, вот кто бы и подсказал как это сделать "правильно". Сейчас я добавил все новые поля в конец пакета при чтении\записи\обновлении.

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


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

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

AMK-Team.ru

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