Pawn :: Основы скриптинга
Создание сложных команд с помощью dcmd
DCMD - командный процессор, с помощью которого можно более просто (обходя strtok) создавать команды с параметрами после пробела.
Функция создается с помощью константы (#define). В начале скрипта пишем следующее:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) ||
(((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Дальше в начале функции OnPlayerCommandText объявляем новую команду.
Возьмем к примеру команду, которая будет восстанавливать здоровье игрока.
public OnPlayerCommandText(playerid,cmdtext[])
{
dcmd(healplayer,10,cmdtext);
return 1;
}
healplayer - это наша команда.
Дальше мы пишем саму команду, но уже в любой части скрипта, но после OnPlayerCommandText, как будто как новый public.
dcmd_healplayer(playerid,params[])//Создана команда healplayer
{
new player1; //создана переменная
player1 = strval(params[0]);//к player1 присваивается числовое значение params[0]
if(IsPlayerConnected(player1))//Проверка, подключён ли игрок к серверу
{
if(IsPlayerAdmin(playerid))//Проверка, является ли игрок, вводивший команду, rcon-админом
{
SetPlayerHealth(player1,100);//ХП того игрока становиться 100
}
}
return 1;
}
|
|
|