Мike
Компетентный
Привет всем, я собираюсь показать вам, как сделать простой отсчет системы
ресурсы
В этом уроке мы будем использовать:
сценарии
После того как вы вошли как ресурсы, и у вас нет никаких ошибок, продолжить
На вершине OnGameModeInit //добавить следующее:
Теперь добавим таймер в конец вашего мода:
[HR][/HR]Команды на YCMD
ресурсы
В этом уроке мы будем использовать:
Код:
[COLOR=#0000cd][FONT=microsoft sans serif] [URL="http://pastebin.com/aY2cnzhr"]Sscanf - Y_less
[/URL] [URL="http://pastebin.com/MggEywZn"]YCMD - Y_less
[/URL][/FONT][/COLOR]
После того как вы вошли как ресурсы, и у вас нет никаких ошибок, продолжить
На вершине OnGameModeInit //добавить следующее:
PHP:
new iscountactivated = 0; //Creating the variable, to check if someone already started the count down.
new countamount;//Creating the variable, to store how much the count down is.
forward Count();//Forwarding the timer, to check if the count down is activated.
new CountTimer;//So we can disable the timer later on, at the finish of the count down.Некоторые, где в сценарии, а не с помощью обратного вызова (я предлагаю под OnPlayerCommandText) добавить следующие
PHP:
CMD:count(playerid,params[])
{
static amount;/ / создаем переменную, где она будет храниться сумма, что игрок выбрал.
if(sscanf(params,"i",amount)) return SendClientMessage(playerid,-1,"Использование: / Количество <amount> ") ;/ / проверка, если игрок входа любого параметрами, и если его число.
if(iscountactivated == 1) return SendClientMessage(playerid,-1,"Обратный отсчет уже активирован! ") ;/ / Проверка, если кто-то уже начал обратный отсчет.
if(amount > 10 || amount <= 0) return SendClientMessage(playerid,-1,"Сумма не может быть больше 10 ") ;/ / Проверка, если сумма превышает 10
CountTimer = SetTimer("Count",1000,true);/ / Установка таймера для отсчета времени.
countamount = amount;/ / Установка переменной с введенной суммы.
iscountactivated = 1;/ / Установка iscountactivated 1, чтобы предотвратить будущие спама.
return 1;
}
PHP:
public Count()
{
if(!iscountactivated){KillTimer(CountTimer);}//Checking if the timer is activated, if not kill the timer.
else
{
new string[4];
format(string,sizeof(string),"%i",countamount);
GameTextForAll(string,1000,3);
countamount--;
if(countamount == -1) {iscountactivated = 0, GameTextForAll("~g~~h~Go!",1000,3);}
}
return 1;
}
PHP:
YCMD:givegun(playerid, params[] ,help)
{
new string[64];
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, -1, "Нет доступа к этой команде.");//админку заменяем под себя
if(sscanf(params,"uii", params[0], params[1], params[2])) return SendClientMessage(playerid, -1,"{0099FF}x Используйте: {FFFFFF}/givegun {99D938}[playerid] [gunid] [ammo]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Игрока нет в сети.");
else if(params[1] > 47 || params[1] < 1) return SendClientMessage(playerid, -1,"Нет таково оружия.");
else if(params[2] > 1000 || params[2] < 1) return SendClientMessage(playerid, -1,"Не правильное кол-во патрон.");
new sendername[256];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "[GUN]: Администратор %s выдал игроку %s оружие:[ID:%d][AMMO:%d]", sendername, params[0],params[1], params[2]);
MessageToAdmins(0xFFFFFFFF,string);//меняем под себя
GiveWeaponAC(params[0], params[1], params[2]);// опять же меняем под себя
