Здравствуйте, в данной статье Вы узнаете про функции: strval, strtok , strlen.
strtok[/B]]strtok - это функция, используется чтобы определить пробел между командой и параметром. Вам кажется сложным отличать параметры от команды? Этот урок должен вам помочь.
strlen[/B]]strlen - функция, которая возвращает длину строки.
strval[/B]]strval - функция, которая приводит строковый тип в численный, если в строке число.
Вот вам наглядный пример этих функций с объяснениями:
public OnPlayerCommandText(playerid, cmdtext[])
{
new tmp[255], string[255], cmd[255], idx, giveplayerid, sendername, giveplayer;
cmd = strtok(cmdtext, idx);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(strcmp(cmd, "/akill", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x919191FF, "Вы должны быть администратором чтобы использовать эту команду.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0x919191FF, "Использование: \"/akill [ID]\"");
giveplayerid = strval(tmp);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(!IsPlayerConnected(giveplayerid))SendClientMessage(playerid, 0x919191FF, "Игрок с данным ID не подключён.");
SetPlayerHealth(giveplayerid, 0.0);
return 1;
}
}
Объяснение:
giveplayerid = strval(tmp);
Присвоение переменной "giveplayerid", к числовому значение "tmp".(tmp обычная переменная можно другую)
if(!strlen(tmp)) return SendClientMessage(...);
Если "giveplayerid" не был указан (То есть было написано /akill вместо /akill ID)(Создайте переменную и все)
Автор статьи: Игорь19998
Автор переработки статьи: jo1ny
Вот вам наглядный пример этих функций с объяснениями:
public OnPlayerCommandText(playerid, cmdtext[])
{
new tmp[255], string[255], cmd[255], idx, giveplayerid, sendername, giveplayer;
cmd = strtok(cmdtext, idx);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(strcmp(cmd, "/akill", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x919191FF, "Вы должны быть администратором чтобы использовать эту команду.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0x919191FF, "Использование: \"/akill [ID]\"");
giveplayerid = strval(tmp);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(!IsPlayerConnected(giveplayerid))SendClientMessage(playerid, 0x919191FF, "Игрок с данным ID не подключён.");
SetPlayerHealth(giveplayerid, 0.0);
return 1;
}
}
Объяснение:
giveplayerid = strval(tmp);
Присвоение переменной "giveplayerid", к числовому значение "tmp".(tmp обычная переменная можно другую)
if(!strlen(tmp)) return SendClientMessage(...);
Если "giveplayerid" не был указан (То есть было написано /akill вместо /akill ID)(Создайте переменную и все)
Автор статьи: Игорь19998
Автор переработки статьи: jo1ny
Последнее редактирование модератором: