Просмотр полной версии : [Вопрос] /id
execution
29.03.2018, 18:05
Команда работает как по нику так и по ид. Когда ввожу ник, то почему-то возвращает [0], даже если игрок в сети.
CMD:id(playerid, params[])
{
new
name[MAX_PLAYER_NAME +1],
count;
if(sscanf(params,"s[25]", name))
return SendClientMessage(playerid, COLOR_RED, !"{FFA500}Используйте: {FFFFFF} /id [name]");
new
ret = strval(name);
if(IsPlayerConnected(ret) && ret != INVALID_PLAYER_ID)
{
format(stringer, sizeof(stringer), "%s [%d]", Name(ret), ret);
return SendClientMessage(playerid, -1, stringer);
}
else SendClientMessage(playerid, -1, !"Такого игрока нет на сервере.");
foreach(new i : Player)
{
if(strfind(Name(i), name, true) != -1)
{
format(stringer, sizeof(stringer), "%d. %s [%d]", ++count, Name(i), i);
SendClientMessage(playerid, -1, stringer);
}
}
return 1;
}
Что ты хотел этим добиться?
strval не превратит ник в ID.
Как я понимаю, вот так всё будет работать так, как тебе надо
CMD:id(playerid, params[])
{
new
name[MAX_PLAYER_NAME +1],
count;
if(sscanf(params,"s[25]", name))
return SendClientMessage(playerid, COLOR_RED, !"{FFA500}Используйте: {FFFFFF} /id [name]");
foreach(new i : Player)
{
if(strfind(Name(i), name, true) != -1)
{
format(stringer, sizeof(stringer), "%d. %s [%d]", ++count, Name(i), i);
SendClientMessage(playerid, -1, stringer);
}
}
return 1;
}
Он хочет чтобы /id работала как по нику так и по иду (аля /id Steven_ - что то нашло, и /id 55 (нашло бы человека с 55 идом)
execution
29.03.2018, 18:25
Он хочет чтобы /id работала как по нику так и по иду (аля /id Steven_ - что то нашло, и /id 55 (нашло бы человека с 55 идом)
Именно. Только когда пишу ник, возвращает 0 и поэтому возникает проблема с 0 идом.
Он хочет чтобы /id работала как по нику так и по иду (аля /id Steven_ - что то нашло, и /id 55 (нашло бы человека с 55 идом)
Да, уже понял. Забыл уже как команда /id работать должна :)
Автор, как-то так:
CMD:id(playerid, params[])
{
new
giveplayerid = INVALID_PLAYER_ID;
sscanf(params, "d", giveplayerid);
if(giveplayerid != INVALID_PLAYER_ID)
{
if(!IsPlayerConnected(giveplayerid))
return SendClientMessage(playerid, -1, !"Такого игрока нет на сервере.");
else
{
GetPlayerName(giveplayerid, stringer, MAX_PLAYER_NAME);
format(stringer, sizeof(stringer), "%s [%d]", Name(giveplayerid), giveplayerid);
return SendClientMessage(playerid, -1, stringer);
}
}
else
{
new
name[MAX_PLAYER_NAME +1],
count;
if(sscanf(params, "s[24]", name))
return SendClientMessage(playerid, COLOR_RED, !"{FFA500}Используйте: {FFFFFF} /id [name]");
foreach(new i : Player)
{
if(strfind(Name(i), name, true) != -1)
{
format(stringer, sizeof(stringer), "%d. %s [%d]", ++count, stringer, i);
SendClientMessage(playerid, -1, stringer);
}
}
if(!count)
return SendClientMessage(playerid, -1, !"Не найдено ни одного игрока.");
}
return 1;
}
execution
29.03.2018, 18:57
Да, уже понял. Забыл уже как команда /id работать должна :)
Автор, как-то так:
CMD:id(playerid, params[])
{
new
giveplayerid = INVALID_PLAYER_ID;
sscanf(params, "d", giveplayerid);
if(giveplayerid != INVALID_PLAYER_ID)
{
if(!IsPlayerConnected(giveplayerid))
return SendClientMessage(playerid, -1, !"Такого игрока нет на сервере.");
else
{
GetPlayerName(giveplayerid, stringer, MAX_PLAYER_NAME);
format(stringer, sizeof(stringer), "%s [%d]", Name(giveplayerid), giveplayerid);
return SendClientMessage(playerid, -1, stringer);
}
}
else
{
new
name[MAX_PLAYER_NAME +1],
count;
if(sscanf(params, "s[24]", name))
return SendClientMessage(playerid, COLOR_RED, !"{FFA500}Используйте: {FFFFFF} /id [name]");
foreach(new i : Player)
{
if(strfind(Name(i), name, true) != -1)
{
format(stringer, sizeof(stringer), "%d. %s [%d]", ++count, stringer, i);
SendClientMessage(playerid, -1, stringer);
}
}
if(!count)
return SendClientMessage(playerid, -1, !"Не найдено ни одного игрока.");
}
return 1;
}
Благодарю.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot