Tutorial Afk
4/6/2016, 08:23
Tutorial Afk cu TextLabel
Buna ziua, am vazut mai multe tutoriale de genul "afk" si majoritatea erau cu o comanda, dupa ce scriai comanda spunea ca playerul respectiv este afk. Acelea pareau destul de simple.
Sper ca tutorialul meu este mult mai bun si sper sa va fie de ajuor.
Sa incepem:
Pentru inceput va trebui sa puneti acest fisier include in /pawno/includes
OnPlayerPause.inc
Reveal hidden contents
Adaugati la inceputul GM-ului asta
#include <OnPlayerPause> //incarcam pluginul care ne va ajuta mai tarziu
Dupa asta punem la OnPlayerPause urmatorul cod. Puneti acest public undeva in gm, este functia includeului.
public OnPlayerPause(playerid) // forwardul este in include deci nu mai trebuie sa il punem noi
{
afklabel[playerid] = Create3DTextLabel("afk",COLOR_WHITE,0,0,0,50,-1,1);// cream labelul pentru a putea sa il actualizam
Attach3DTextLabelToPlayer(afklabel[playerid], playerid, 0,0,0);// atasam labelul de player pentru a vedea cine este afk
SetTimerEx("PauseTime", 1000, false, "i", playerid);// apelam la functia de contorizare pentru a avea timpul corect de cand jucatorul este afk
return 1;
}
Acum sa cream funcita care contorizeaza timpul afk
forward PauseTime(playerid);
public PauseTime(playerid)
{
if(IsPlayerPaused(playerid))// verificam daca playerul este AFK
{
new strings[40];// adaugam functia strings pentru a putea crea textul
afktime[playerid] ++;// crestem secundele decand este afk
format(strings, sizeof(strings), "Afk De %d:%d minute",afktime[playerid]/60,afktime[playerid]-afktime[playerid]/60*60);// cream stringul, impartim timpul la 60 pentru a vedea cate minute sunt, apoi din timp scadem minutele pentru a obtine restul de secunde
Update3DTextLabelText(afklabel[playerid], COLOR_WHITE, strings); // actualizam textlabelul pentru a afisa corect timpul decand playerul este afk
SetTimerEx("PauseTime", 1000, false, "i", playerid);// apelam iar la aceasta functie pentru a contoriza secundele in continuare
}
return 1; // oprim functia
}
Cam atat, labelul se sterge atunci cand playerul revine in joc este in include, nu trebuie sa mai adaugati, este facuta deja
Reveal hidden contents
Cateva poze pentru a vedea cum arata:
[Trebuie sa fiti inscris si conectat pentru a vedea acest link]
Buna ziua, am vazut mai multe tutoriale de genul "afk" si majoritatea erau cu o comanda, dupa ce scriai comanda spunea ca playerul respectiv este afk. Acelea pareau destul de simple.
Sper ca tutorialul meu este mult mai bun si sper sa va fie de ajuor.
Sa incepem:
Pentru inceput va trebui sa puneti acest fisier include in /pawno/includes
OnPlayerPause.inc
Reveal hidden contents
Adaugati la inceputul GM-ului asta
#include <OnPlayerPause> //incarcam pluginul care ne va ajuta mai tarziu
Dupa asta punem la OnPlayerPause urmatorul cod. Puneti acest public undeva in gm, este functia includeului.
public OnPlayerPause(playerid) // forwardul este in include deci nu mai trebuie sa il punem noi
{
afklabel[playerid] = Create3DTextLabel("afk",COLOR_WHITE,0,0,0,50,-1,1);// cream labelul pentru a putea sa il actualizam
Attach3DTextLabelToPlayer(afklabel[playerid], playerid, 0,0,0);// atasam labelul de player pentru a vedea cine este afk
SetTimerEx("PauseTime", 1000, false, "i", playerid);// apelam la functia de contorizare pentru a avea timpul corect de cand jucatorul este afk
return 1;
}
Acum sa cream funcita care contorizeaza timpul afk
forward PauseTime(playerid);
public PauseTime(playerid)
{
if(IsPlayerPaused(playerid))// verificam daca playerul este AFK
{
new strings[40];// adaugam functia strings pentru a putea crea textul
afktime[playerid] ++;// crestem secundele decand este afk
format(strings, sizeof(strings), "Afk De %d:%d minute",afktime[playerid]/60,afktime[playerid]-afktime[playerid]/60*60);// cream stringul, impartim timpul la 60 pentru a vedea cate minute sunt, apoi din timp scadem minutele pentru a obtine restul de secunde
Update3DTextLabelText(afklabel[playerid], COLOR_WHITE, strings); // actualizam textlabelul pentru a afisa corect timpul decand playerul este afk
SetTimerEx("PauseTime", 1000, false, "i", playerid);// apelam iar la aceasta functie pentru a contoriza secundele in continuare
}
return 1; // oprim functia
}
Cam atat, labelul se sterge atunci cand playerul revine in joc este in include, nu trebuie sa mai adaugati, este facuta deja
Reveal hidden contents
Cateva poze pentru a vedea cum arata:
[Trebuie sa fiti inscris si conectat pentru a vedea acest link]
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum