Salutare Sa-Mp.Ro, astazi am venit cu un tutorial destul de usor zic eu.Pentru cei care inca nu stiu cum sa foloseasca un Timer pentru serverul lor vor invata chiar acum.
Ce trebuie sa retineti:
SetTimer("mesajul", 5000, false); sau SetTimer("mesajul", 5000, true);
//SetTimer = Comanda pentru timp.
//1000 = timpul care este controlat de timer se masoara in milisecunde. Deci
// 1 secunda = 1000 milisecunde, 5 secunde = 5000 milisecunde
// false = inseamna ca nu se repeta timer-ul , true = inseamna ca timer-ul se repeta mereu.
Sa incepem cu inceputu'
Avem nevoie de un include denumit foreach , iar acest include puteti sa-l gasiti aici
#include <foreach>
#include <zcmd>//avem nevoie si de zcmd pentru a crea o comanda , sau puteti folosi comanda pawnu-lui
Eu am decis sa cream o comanda pe dialog , deci.
#define DIALOG_SERVERCLOSED 1//Definim un dialog
Trebuie sa fabricam si un new.
new TimpScurs;// este new-ul care ne va ajuta la timp.
Acum cream comanda dorita.
CMD:serverclosed(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_SERVERCLOSED, DIALOG_STYLE_MSGBOX, "Server Closed", "Doriti sa inchideti acest server?", "Ok", "No"); //Este un dialog care l-am creat eu.
return 1;
}
Dupa ce am creat comanda, mergem si facem un public si un forward.
forward mesajul();//Se creaza forward-ul
public mesajul()//cream publicul de care avem nevoie
{
foreach(Player, i)//Pentru a folosi aceasta comanda aveam nevoie de foreach, daca la sendclientmessage scriam playerid, inloc de i imi aparea o eroare
{
SendClientMessage(i, -1, "Ai inchis serverul: Timpul care s-a scurs a fost de 5 secunde");//Dupa ce timpul s-a scurs apare acest mesaj si
SendRconCommand("exit");//se va inchide serverul
}
}
Mergem si la OnDialogResponse(), fiindca avem un dialog de reprezentat.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)//dialogulid care l-am creat noi.
{
if(response)//daca se apasa pe primul buton se vor intampla urmatoarele
{
SendClientMessageToAll(-1, "Serverul se va inchide in 5 secunde");//Se da un messaj la tot serverul , cum ca severul se va inchide dupa 5 minute.
TimpScurs = SetTimer("mesajul", 5000, false);//Aici este new-ul , dupa cum vedeti , TimpScurs = cu comanda timpului.
}
else//Daca se apasa al 2-lea buton ii se inchide dialogul si ii va da un mesaj
{
SendClientMessage(playerid, -1, "Ai anulat!");
}
}
return 1;
}
Si la final se va distruge Timpul , mergem la OnGameModeExit()
public OnGameModeExit()
{
KillTimer(TimpScurs);// KillTimer inseamna ca se va distruge timpul nostru , adica =TimpScurs
return 1;
}
Am realizat un timer cu o comanda . Peste 5 secunde serverul se va inchide prin apasarea unui singur buton.
Asta a fost tutorialul meu ,sper ca va placut si ne revedem data viitoare.
Nu uitati - Tutorial 100% creat de mine ,
Nu uitati - Daca va placut tutorialul puteti da un +1