Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 1 из 11
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » Как получить индекс и userid игрока
Как получить индекс и userid игрока
_wS_ Дата: Понедельник, 14.11.2011, 03:19:48 | Сообщение # 1
Как получить index и userid игрока

Если вы хотите выполнить команду на всех игроках, то это можно сделать с помощью цикла:

Code
for (new i = 1; i <= MaxClients; i++)
{
     if (IsClientInGame(i))
     {
         PrintToServer("Найден игрок %N (его индекс: %d)", i, i);
         PrintToServer("userid = %d", GetClientUserId(i));
     }
}

MaxClients - максимум слотов на сервере (число). Индекс игрока не может быть больше, чем это число.
Вместо IsClientInGame(i) можно использовать IsClientConnected(i).

Получаем индекс и ид родившегося игрока:

Code
#include <sourcemod>

public OnPluginStart()
{
     HookEvent("player_spawn", player_spawn);
}

public player_spawn(Handle:event, const String:name[], bool:dontBroadcast)
{
     new id = GetEventInt(event, "userid");
     new index = GetClientOfUserId(id);

     // Если нам нужен только index, проще сделать так:
     new client = GetClientOfUserId(GetEventInt(event, "userid"));
}

Если вы хотите получить индекс случайного игрока, то есть готовая функция в этой теме.
 
Scarface_slv Дата: Суббота, 21.07.2012, 22:23:58 | Сообщение # 2
Сообщений: 749
Репутация: 61 [ +/- ]
WS это глупый вопрос но я не понимаю что такое "userid" индекс понятно что это но userid нет. И зачем он? чтобы получить индекс игрока?
 
_wS_ Дата: Суббота, 21.07.2012, 22:35:40 | Сообщение # 3
Уникальное число для каждого игрока. Похож на индекс, но возрастает с каждым перезаходом в игру.
Можно увидеть в консоле, прописав status.

Полезно использовать где-то в менюшках например. В меню вписываешь userid, и если не удастся получить индекс с помощью этого userid'а (GetClientOfUserId), значит игрок вышел с сервера. А если бы индекс добавляли в меню, то цель могла измениться, так как мог зайти другой игрок с таким же индексом.
 
Scarface_slv Дата: Воскресенье, 22.07.2012, 00:12:51 | Сообщение # 4
Сообщений: 749
Репутация: 61 [ +/- ]
Все понял спасибо большое)
 
Nahal Дата: Среда, 17.06.2015, 14:08:29 | Сообщение # 5
Сообщений: 205
Репутация: 8 [ +/- ]
_wS_, Как можно по другому написать Handle:event? но при этом функция
new client = GetClientOfUserId(GetEventInt(event, "userid")); будет работать?
 
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » Как получить индекс и userid игрока
Страница 1 из 11
Поиск: