19.10.2011, 18:03
(
Last edited by FireCat; 11/11/2012 at 05:51 PM.
)
Introduction
Hello all, I'm going to show you how to make a simple count down system
Resources
With this tutorial we will be using: Links included ^
Scripting
After you included both of the resources, and you don't have any errors, continue (:
On top of OnGameModeInit add the following:
pawn Code:
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.
pawn Code:
CMD:count(playerid,params[])
{
static amount;//creating the variable, where it will store the amount, that the player chose.
if(sscanf(params,"i",amount)) return SendClientMessage(playerid,-1,"USAGE: /count <amount>");//checking if the player inputs any params, and if its an integer.
if(iscountactivated == 1) return SendClientMessage(playerid,-1,"The countdown is already activated!");//Checking if someone already started a countdown.
if(amount > 10 || amount <= 0) return SendClientMessage(playerid,-1,"The amount can't be greater than 10");//Checking if the amount is higher than 10, so therefor the player can't spam/annoy other players.
CountTimer = SetTimer("Count",1000,true);//Setting the timer, for the count down.
countamount = amount;//Setting the variable countamount to the inputted amount.
iscountactivated = 1;//Setting the iscountactivated to 1 to prevent future spam.
return 1;
}
Add this at the bottom of your game mode:
pawn Code:
public Count()
{
if(!iscountactivated){KillTimer(CountTimer);}//Checking if the timer is activated, if not kill the timer.
else
{
new string[4];//Creating the string variable, where we will store the count down value.
format(string,sizeof(string),"%i",countamount);//Formating it.
GameTextForAll(string,1000,3);//Showing it to everyone.
countamount--;//Counting less 1 to the count down variable.
if(countamount == -1) {iscountactivated = 0, GameTextForAll("~g~~h~Go!",1000,3);}//It's -1, because it was conflicting like, from 2 to Go. Setting the var to 0 if the count down variable reaches -1.
}
return 1;
}