Всех с наступившим Новым Годом Heming_Hitrowski, из твоего совета пока понятно всё кроме того, как добавить новую переменную (настройку) в Расширенные возможности. Подскажи, пожалуйста, как это сделать. Возможно, кто-то еще знает. Заранее Спасибо!
Heming_Hitrowski, в общем получилось, спасибо Но есть проблема: не меняется модель WeaponItem, когда запускаешь уровень в игре; если открывать уровень в редакторе, то всё ок, модель выставляется в соответствии с выбранным набором в расширенных настройках. Видимо при запуске уровня через игру игра обращается не к настройкам, а к инфе, заложенной в файле уровня, а при открытии в редакторе - наоборот.
Jack_Stone, если нужно перезагрузить все предметы после начала игры, то проще всего это делается таким образом:
1. Создаёшь новое свойство в CItem:
Код
50 BOOL m_bReloaded = FALSE,
2. Заходишь в процедуру ItemLoop этого класса и делаешь реинициализацию предмета после autowait(0.1f) строки:
Код
if (!m_bReloaded) { m_bReloaded = TRUE; Reinitialize(); return; }
Это пересоздаст все предметы на месте после начала симуляции с новыми моделями и прочим.
Если не нужно это делать для каждого предмета, а только, например, для CWeaponItem, то можно перенести свойство непосредственно в этот класс (но необязательно), а реинициализацию проводить в функции AdjustDifficulty() (если её ещё нет в CWeaponItem, то нужно её добавить по аналогии с CAmmoItem):
Если делаешь это без проверки на флажок m_bReloaded, то предмет будет реинициализироваться и тратить на это ресурсы без надобности каждые 0.1 секунды. По крайней мере мне кажется, что так будет, я точно не знаю.
Можно проверить, вызывая CPrintF() перед реинициализацией и посмотреть, будет ли вывод в консоль производиться переодически вместо единого раза.
Сообщение отредактировалST27 - Четверг, 11.01.2024, 10:03
ST27, я так понял, ты имел в виду, что сообщение в консоли должно появляться вновь и вновь. Я попробовал, оно появляется только один раз при старте уровня.