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

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


Rolan

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

xrSound\SoundRender_Source_loader.cpp


 

void CSoundRender_Source::load(LPCSTR name)
{
 string_path   fn,N;
 strcpy    (N,name);
 strlwr    (N);
 if(strext(N))  *strext(N) = 0;

 fname    = N;

 strconcat   (sizeof(fn),fn,N,".ogg");
 if(!FS.exist("$level$",fn)) FS.update_path (fn,"$game_sounds$",fn);

 if (!FS.exist(fn))

 {
   Msg("! Can't find sound '%s.ogg'",N);
   FS.update_path (fn,"$game_sounds$","$no_sound.ogg");
 }

   LoadWave   (fn);
   SoundRender->cache.cat_create (CAT, dwBytesTotal);
}

 


 

Изменено пользователем Zagolski
  • Спасибо 1
  • Полезно 1

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


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

 

 

Новый нужен Luaicp.

Вряд ли он будет корректно функционировать на обычном ТЧ движке, если вообще будет.

  • Согласен 1

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


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

А кто-нибудь разбирался с классом CAI_Rat появившимся начиная с ЧН? Не могу понять, в нем столько всего намудрено, что аж целый головной мозг сквадов получился. В игру класс выведен, но не зарегистрирован и нигде не используется. Я его на ТЧ из ЗП ради интереса портировал (вообще это вроде как класс крыс по идее, хотел на него их попробовать повесить), но косяки начались с логикой неписей. Вот сижу разбираюсь. Терзают сомнения, что этот класс к крысам вообще имеет хоть какое-то отношение. Или он просто не доделан.

Изменено пользователем Zagolski
  • Нравится 1

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


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

Кто-нибудь провал добавлять в ЗП мутатнтам инвентарь? Я в тупик зашел, два дня с проблемой вожусь. Делаю вроде все правильно, т.е. наследую соответствующий класс в CBaseMonster и все что с ним связано. В игре все работает как надо, инвентарь у мутантов есть и функционирует как положено, но при переходе любого мутанта в оффлайн (в т.ч. и при загрузке сохранки) дает ошибку в функции xr_delete в IGame_ObjectPool::destroy, т.е. при удалении его. В чем проблема никак не могу разобраться... Кто-то может подскажет, в чем тут дело?

 

Кажется, что проблема на самом деле глубже. Ведь не зря в ЗП у мутантов инвентарь убрали. Видимо косяки с ним были, что не исправить...

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


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

В ЗП построение слотов заметно отличается от ТЧ/ЧН, как и сама реализация UI. Тот способ и близко не подойдет. Сначала добавь их в перечисление в inventory_space.h, а затем придется возиться в UI. Файлы там другие: UIActorMenu.cpp, UIActorMenuInventory.cpp. Конкретнее может кто другой подскажет.

  • Спасибо 1

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


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

Ну вот сюда и добавляй через запятую:

 


 

enum{
 NO_ACTIVE_SLOT = 0,
 KNIFE_SLOT  =
1,//btn1   was
(0)   !!!
 INV_SLOT_2,  //btn2
PISTOL_SLOT was (1)
 INV_SLOT_3,  //btn3
RIFLE_SLOT was (2)
 GRENADE_SLOT, //btn4 GRENADE_SLOT was
(3)
 BINOCULAR_SLOT, //btn5
BINOCULAR_SLOT
 BOLT_SLOT,  //btn6
BOLT_SLOT
 OUTFIT_SLOT, // outfit
 PDA_SLOT,  //
pda
 DETECTOR_SLOT, // detector
 TORCH_SLOT,  //
torch
 ARTEFACT_SLOT, // artefact
 HELMET_SLOT,

 

NEW_SLOT_1,

 

NEW_SLOT_2,

 

NEW_SLOT_3,

 

NEW_SLOT_4,

 

NEW_SLOT_5,

 

LAST_SLOT  = NEW_SLOT_5
};

 

 

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

Размер файлов может заметно отличаться от способа сборки и от включенных оптимизаций.

Изменено пользователем Zagolski
  • Спасибо 1

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


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

Этот файл в ЧН/ЗП перенесен в папку xrServerEntities.

  • Спасибо 1

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


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

Я тут продолжаю копаться с инвентарем у мутантов в ЗП, о проблеме писал чуть выше. Так пока и не разобрался с ошибками по xr_delete. Но кое-что нарыл под дебаггером. Скорее всего виной всему bool переменные m_deadbody_can_take и m_deadbody_closed. Эти свойства добавлены только в ЗП классу CSE_ALifeTraderAbstract, т.е. есть у людей и мутантов. Не совсем понятно для чего они предназначены, в скриптах не используются, есть упоминание в CInventoryOwner в виде пары связанных с ними функций, которые тоже нигде не используются... Но однозначно это связано как раз с инвентарем и обыском (видимо поэтому в ЗП инвентарь у мутантов и убрали). Есть у кого идеи на этот счет?

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


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

WinCap, У тебя с таким скриптом скорее всего будут периодические лаги возникать из-за постоянного перебора всех объектов. В самом движке не пробовал на бесхозном оружии постепенное снижение кондиции реализовать?

  • Спасибо 1

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


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

m_eHitTypeBlowout присваевается тип урона в CCustomZone::Load непосредственно из секции самой аномалии в конфигах.

  • Спасибо 1

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


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

OnUnloaded. В ЧН и ЗП радиоактивные зоны урон тоже через m_eHitTypeBlowout наносят. А в ТЧ многое не так как нужно сделано...

 

Winsor. Для ТЧ делаешь? Если для ТЧ, то вешай сразу на движковый класс, который в clsid определен.

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

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


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

Не нужно ничего в скриптах регистрировать никаких классов. В движке в clsid_game.h новый класс регистрируй как какой-нибудь O_GBOX, на него в игре свой предмет и цепляй. В ТЧ для большинства так нужно делать.

 

upd. А если скриптовые классы создавать, то да, половина глючить начинает. То в онлайн не переводится, то нет-пакеты не читаются. Но в ЧН/ЗП все с этим корректно.

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

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


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

В ЧН/ЗП вызывается can_switch_online для этого дела. А в ТЧ лучше юзать нет-пакет от Артоса, взаимодействовать им напрямую с движковым классом. Я таким вариантом на ТЧ и пользуюсь, потому как тоже встречал проблемы с переходом в онлайн объектов на скриптовых классах. Не работают они корректно на ТЧ. Особо глубоко не разбирался почему, плюнул на них.

Изменено пользователем Zagolski
  • Спасибо 1

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


Ссылка на сообщение
Только что, Карлан сказал:

И вот здесь, что конкретно не так?

Конкретно тут может и так, после того как ты по полочкам все разложил. Касаемо вообще аномалий, то взять хотя бы частое неразрывание тушек в карусели на ТЧ, когда тело остается крутиться в воздухе.

 

Может кто подскажет, при включении саншафтов на зп-шном рендере R4 на дх11 образуется вот это:

5854e426487dt.jpg

 

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

И да, на дх10 этой проблемы не наблюдается.

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

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


Ссылка на сообщение
Только что, Карлан сказал:

И еще, количество потоков никто не сокращал (после упрощения клиент-серверной фиесты)? Какие проблемы были, как решали?

Тут можно поподробнее? Я у себя всю мультиплеерную шнягу повырезал, вот ищу, что еще можно удалить/упростить ненужного для облегчения. Как раз клиент-сервером сейчас занимаюсь. По-хорошему там бы вообще все переделать, от сервер-клиент отказаться, но это уже отдельный разговор.

А ты в Prospectors так и оставил ТЧ-шный вариант сервера или на ЗП переделывал?

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

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


Ссылка на сообщение
В ‎31‎.‎07‎.‎2017 в 00:31, KD87 сказал:

А xrCPU_Pipe даже в ТЧ движок не юзает, неудивительно, что все нормально работает после замены ))

Не, в ЗП он используется для расчета партиклов и освещения (тут не знаю какого именно, возможно тоже что-то с партиклами связанное).

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


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

Shkiper2012 Попробуй удали у непися с которым разговариваешь скриптовые диалоги из его профиля (что-то вроде tm_job и тп) и еще раз проверь. Похоже, что спотыкается при инициализации скриптовых диалогов (а они как раз после основной фазы активируются), да и дело скорее всего в скриптах, а не движке (копай в dialogs.script или task_manager.script).

  • Спасибо 1

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


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

А зачем ты этот шейдер на линзу ставишь? Значит не подходит он для нее. Подобное будет, если и любой из серии x наложить. На линзу лучше transparent делать.

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


Ссылка на сообщение
4 часа назад, dsh сказал:

Это из UICustomItem.cpp, из CUICustomItem::Render(). У кого-нибудь есть идеи, что за магическая константа 0.8333 и что за магические расчеты во второй строке вместо этой константы?

0.8333 - это для формата 16:10. На эту цифру множится ширина текстуры, а также координаты по x на экране, чтобы получить правильные пропорции (от базового 1024х768) и положение на экране. 0.75 - это для 16:9. В ЗП в движке появилась ф-ция get_current_kx() получения нужного кооф. для конкретного формата экрана.

Изменено пользователем Zagolski
  • Спасибо 1
  • Нравится 2
  • Полезно 1

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


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

Этот 0.75 - не конечный результат для формата 16:9 (хотя для него он тоже 0.75), тут они взяли уже готовый 0.75 как результат деления базы (768/1024), это по сути вот это и есть: float res = (h / w) / (UI_BASE_HEIGHT / UI_BASE_WIDTH) из второго случая.

 

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

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


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

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