Goldsrc: Положение сущностей в игровом мире, соответствующее ихнему в редакторе карт
Суть: По-умолчанию если ставить сущность под углом в редакторе карт, то в самой игре она падает по горизонтали. Решение без готового кода.
Стоит обратить взор на функцию "void CBasePlayerItem::FallThink()", в которой имеются такие строки:
pev->angles.x = 0; pev->angles.z = 0;
Эти строки отвечают за горизонтальное положение сущности после её появления в игровом мире, чтобы она там находилась естественно.
Если их закомментировать/убрать, то модель сохранит свои углы, но при этом упадёт до своего "origin".
Есть простое решение в виде создания отдельного параметра, который будет отвечать за отключение/включение падения у сущности. Пусть это будет условное "nophys".
По-умолчанию этот параметр равен "false". В "Spawn" сущности прописываем проверку на "nophys", если он равен "true", то — пишем код, подобный на "FallInit()" (кой в том же "weapons.cpp"), но устанавливаем "movetype = NONE", иначе обычный "FallInit()".
Сущности переписываем собственный "KeyValue" и ловим параметр "nophys" из карты. Как это делается, можно посмотреть в коде различных сущностей.
В редакторе карт нужной сущности прописываем параметр "nophys" со значением "1". Собираем карту и видим, что сущность сохранила своё положение, установленное в редакторе карт.
Прошу оценить заметку; если есть какие-то вопросы и/или пожелания, прошу писать на почтовый ящик "arturaiwasan[@]gmail.com".