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

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


Rolan

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

Привет. Visual Studio 2013, X-ray 1.6, качал с какого-то репо, сейчас уже не упомню с какого именно.

Не могу скомпилировать xrGame. Debug и Mixed на первом скриншоте, Release - на втором. В Realese сборка идёт не смотря на ошибки, но валится позже, ссылаясь на отсутствие xrCore.lib. Опыт работы со студией у меня почти нулевой, но предполагаю, что дело в каких-то путях. Прошу помощи. 

 

122.jpg ascx.jpg

 

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


Ссылка на сообщение
  19.03.2017 в 10:24, abramcumner сказал:

Попробуй сначала собрать xrCore, потом xrGame.

Всё получилось, спасибо. OpenXray посмотрю.

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


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

Привет. Кто-нибудь работал с мультиплеером в ЧН-ЗП? Не могу разобраться как добавить rpoints для своего режима. Я так понимаю, что даже не обязательно редактировать исходники ЛевелЭдитора, надо лишь в секции объекта в spawn.part указать нужный game_type

 

  Показать

 

Но я понятия не имею какой game_type присваивается моему режиму и где это можно посмотреть.

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

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


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

Всё таки пришлось дописывать свой режим в исходниках Эдитора. Если кому-то нужно будет добавить только rpoint'ы, то нужно всего лишь добавить чекбокс для своего режима в xrEProps по аналогии со стандартными, там буквально 4 файла. Сам level_editor трогать не надо.

  • Полезно 1

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


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

Кто-нибудь знает, alSourcePlay(source) да и вообще другие методы от openal32 работают в Сталкере? Или надо юзать надстройки XRAY? Просто вроде всё по документации делаю, но не получается. Вот и думаю - у меня руки кривые или оно так и должно быть.

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


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

Никто не знает как в ЧН/ЗП в сетевой игре включить возможность использования камер cam_2 и cam_3?

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


Ссылка на сообщение
  28.10.2017 в 11:37, jargon сказал:

Твоё действие:

Выпилить этот код с этих двух файлов к чертовой бабушке.

А разве простое удаление условия не поможет?

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


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

Ещё один вопрос по поводу мультиплеера. Чистое Небо 1.5.10.

Экспериментирую с ai в мультиплеере. Подключил alife и смог заспавнить монстров. Есть несколько проблем, но самая актуальная - клиент валится на синхронизации, последовательность методов такая

  Показать

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

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

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


Ссылка на сообщение
  31.10.2017 в 20:55, drksnc сказал:

Подскажите куда копать.

Сам отвечу на свой вопрос: нужно научить клиента загружать граф и АИ-сетку, дополнив метод GameSpecific_Before класса CLevel. Пример можно увидеть в исходниках soProject. Клиент исправно получает хиты и может убивать NPC и монстров. Вот только с синхронизацией положения и поворотов не могу разобраться - как что откуда и куда надо передавать, исходники soProject не помогают:(. Единственное предположение - надо передавать tNetPacket.w_vec3 (o_Position) и все остальные данные из нужного класса в xrServer_Objects_Alife_Monsters.cpp, а потом в клиентском классе (напр. CAI_Stalker(?)) делать set_State с этими данными. Но как такое провернуть - не знаю.

EOAU7YipH-k.jpg

 

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


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

@_Призрак_ да, что интерполяцию надо будет подключить - понятно. Но я имею ввиду конкретно способ передачи позиции от сервера к клиенту. Нужно же как-то сначала передавать позицию, а потом применять интерполяцию на клиенте. А вот как именно передавать - я хз.

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


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

Почему клиент только два раза получает серверную координату в самом начале? Я вроде бы один в один переписал код с soProject.

Клиентский ai_stalker.cpp

  Показать

 

CSE_AlifeHumanStalker

  Показать

 

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


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

И ещё вопрос вдогонку. Вот этот код означает что в метод PHGetSyncItem класса EntityAlive в кач-ве аргумента передаётся 0?

    if(pEntityAlive__PHGetSyncItem)
    {
        // get sync item
        _asm
        {
            push 0
            mov ecx, pClass
            call pEntityAlive__PHGetSyncItem
            mov PHCharacter, eax
        };

 

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

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


Ссылка на сообщение
  15.11.2017 в 23:56, drksnc сказал:

Почему клиент только два раза получает серверную координату в самом начале?

Клиент получает её один раз, просто сталкеров было двое :biggrin:. Причем у клиента координата оказывается в классе CSE_AlifeHumanStalker. Откуда она там берётся, если как я понял, в сопроджекте, откуда я скопипастил весь код, серверный клиент получает позицию из CAI_Stalker, отправляет её в CSE_AlifeHumanStalker, а тот в свою очередь раскидывает пакет нелокальным клиентам, данные из которых должны применяться в их CAI_Stalker. Причем клиент похоже делает успешный Set_state с этими данными вот здесь:

CPHCharacter* Char; 
Char->set_State(NetState); 

потому что в консоли клиента куча таких сообщений

current_state 5
next_state 5
item_sect wpn_ak74_up2
H_Parent stalker

:angry:

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


Ссылка на сообщение
  Цитата
current_state 5
next_state 5
item_sect wpn_ak74_up2
H_Parent stalker

А, нет. это сообщения от PHGetSyncItem(0). Но почему их ТАК много.

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


Ссылка на сообщение
  17.11.2017 в 02:06, drksnc сказал:

Клиент получает её один раз, просто сталкеров было двое :biggrin:.

С позицией и поворотами разобрался. Теперь косяк с анимацией - на клиенте после вызова PlayCycle, даже с включеным лупом, анимка останавливается на последнем кадре (вроде), причем на сервере с такими же параметрами все замечательно пашет. 

Еще есть animation().update(), но результат его работы оставляет желать лучшего :( 

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

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


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

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