В данной статье, мы научимся определять тип комнаты, в которой мы находимся и что-то делать в зависимости от этого. Есть множество вариантов использовать это. Например, вы хотите, чтобы какая-то ваша функция работал в одном режиме, но не работала в другом. Ещё пример, рисовать скелеты на противниках (когда мы до этого дойдём). Порядок костей в PvE и PvP разный, поэтому, без определения типа комнаты вам не обойтись.
В игре существует 10 типов комнат:
Лобби игры
Командный бой
Захват флага
Игроки против ботов
Подрыв
Штурм
Каждый сам за себя
Уничтожение
Доминация
Выживание
Для того, чтобы успешно определять тип комнаты в которой мы находимся, нам необходимо посмотреть это через структуру ICvar и смещение в ней. Для типа комнаты, это смещение равно ICvar + 0x600
Добавим в наш код новое смещение
Добавим в перечисление CvarOffsets новое значение
Теперь наше перечисление со смещениями, выглядит так
Добавим в класс ICvar новый метод. Теперь класс ICvar выглядит так
Создадим перечисление со всеми возможными видами комнат
Далее, получение типа комнаты
И всё, что вам остаётся сделать, это сравнить тип комнаты с нужным вам и что-то сделать
Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.