Всё о сервере, форум!
Основы программирования
ИНФОРМАЦИОННО-РАЗВЛЕКАТЕЛЬНЫЙ ПОРТАЛ

PrR[ Проект SAMP - Romashka [0.3e] ™18+™

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;
}


Логин: Пароль:
Забыли пароль?Регистрация
При копировании материала с сайта активная ссылка обязательна!
Сайт управляется SiNG cms © 2010-2015