Walderr
Участник
- Сообщения
- 8
- Реакции
- 38
Такая же возможность есть и для званий, но так как их стиль меняется только в зависимости от режима игры (18+2 обычный, 18+2 напарники и 15+2 опасная зона),
напрямую установить разные стили - нельзя.
Однако есть другой способ заставить эти (да и вообще любые, ограничений нет) звания отображаться.
CSGO отображает звания по их айди, для поддержки других званий, достаточно заставить игру думать что они относятся к тому же режиму, который запущен на сервере на данный момент.
Вытащив из игры нужные звания, нужно переименовать их из wingmanXX/dangerzoneXX в skillgroupXX и отправить клиенту, используя в событии OnMapStart():
AddFileToDownloadsTable("materials/panorama/images/icons/skillgroups/skillgroupXX.svg");
Далее, остается отправить массив с нужными значениями званий в энтити cs_player_manager для их отображения:
C++:
int rankOffset;
int playersRank[MAXPLAYERS+1];
public void OnMapStart()
{
rankOffset = FindSendPropInfo("CCSPlayerResource", "m_iCompetitiveRanking");
SDKHook(FindEntityByClassname(-1, "cs_player_manager"), SDKHook_ThinkPost, Hook_ThinkPost);
}
public void Hook_ThinkPost(int ent)
{
SetEntDataArray(ent, rankOffset, playersRank, MAXPLAYERS+1);
}
public Action Event_PlayerSpawn(Handle event, const char[] name, bool dontBroadcast)
{
playersRank[client] = int yourValue;
}
Значения 0-18 зарезервированы игрой и будут показывать обычные звания.
Для любых других нужно использовать значения, начиная с 19.
Стоит учитывать, что игрок будет загружать звания лишь раз, так что в случае если у него уже есть звание с таким номером, он будет будет видеть его, а не ваше.
Чтобы этого избежать, значения должны быть уникальными. Желательно использовать значения 1000+ (какой предел - не знаю).
Для стандартных же званий, созданы индексы:
C-подобный:
1-18 (Встроены в игру, обычный)
51-68 (Напарники)
71-85 (Опасная зона)
90 - Без звания (обычный)
92 - Без звания(напарники)
94 - Без звания(опасная зона)
91 - Звание истекло (обычный)
93 - Звание истекло(напарники)
95 - Звание истекло(опасная зона)
Они будут использоваться в качестве стандартных авторами большинства плагинов, рекомендую и вам использовать их, чтобы избежать путаницы.
Архив с готовыми стандартными званиями прикреплён.
На сервер их устанавливать не нужно, достаточно на FastDL (materials/panorama/images/icons/skillgroups/).
Примеры:
.
Вложения
Последнее редактирование: