Troels_Segor
Новичок
Зачем это:
Эта функция определяет ID игрока по его имени.
Метод работы функции:
На этапе компиляции будет определен один из наиболее подходящих для вас метод поиска игрока. Конечно же, самым оптимальным вариантом остается использование sscanf(), далее по адекватности в скорости идет использование foreach(), далее уже GetPlayerPoolSize(), ну а последним вариантом остается использование константы MAX_PLAYERS.
Если таковой игрок на сервере в данный момент присутствует - функция вернет его ID, а если же такого игрока нет, то значение константы INVALID_PLAYER_ID.
Использование:
Функция:
Вот и все.
Автор Troels_Segor.
Эта функция определяет ID игрока по его имени.
Метод работы функции:
На этапе компиляции будет определен один из наиболее подходящих для вас метод поиска игрока. Конечно же, самым оптимальным вариантом остается использование sscanf(), далее по адекватности в скорости идет использование foreach(), далее уже GetPlayerPoolSize(), ну а последним вариантом остается использование константы MAX_PLAYERS.
Если таковой игрок на сервере в данный момент присутствует - функция вернет его ID, а если же такого игрока нет, то значение константы INVALID_PLAYER_ID.
Использование:
PHP:
// Допустим, что на сервере есть игрок OX.
new id;
if ((id = GetPlayerID("OX")) != INVALID_PLAYER_ID)
{
SendClientMessage(id, -1, "Привет, OX))");
}
PHP:
/**
* GetPlayerID - получить ID игрока по его имени.
* @name[] - имя игрока.
* @returns - ID игрока или INVALID_PLAYER_ID в случаи его необнаружения.
*/
stock
GetPlayerID(const name[])
{ // by (Troels_Segor) Anton Styazhkin //
#if defined sscanf
new id;
sscanf(name, "r", id);
return id;
#else
new buff[MAX_PLAYER_NAME];
#if defined foreach
foreach (new i:Player)
{
#elseif defined GetPlayerPoolSize
for (new i = GetPlayerPoolSize(); i != -1; i--)
{
if (IsPlayerConnected(i) == 0)
continue;
#else
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnecyed(i) == 0)
continue;
#endif
GetPlayerName(i, buff, sizeof buff);
if (strcmp(buff, name, false) == 0)
return i;
}
return INVALID_PLAYER_ID;
#endif
}
Автор Troels_Segor.
