Jump to content

Tutorial AFK


Mister

Recommended Posts

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

 

Fisierul uploadat nu contine nimic ascuns, tot ce am adaugat este aceasta variabila care va fi folosita mai tarziu

new afktime[MAX_PLAYERS];
new Text3D:afklabel[MAX_PLAYERS];

 

 

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

 

public OnPlayerUnpause(playerid)
 
{	
 
Delete3DTextLabel(afklabel[playerid]);// labelul este sters deci nu va faceti griji

 

 

Cateva poze pentru a vedea cum arata:

http://i.imgur.com/Wsl7CMt.png

http://i.imgur.com/hyNG3Ul.png

 

Edited by Mister
Am facut update la include
  • Upvote 8

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

Trebuie sa pui in include asta

afktime[playerid] = 0;

 

Poftim downloadeaza si pune noul include, am adaugat eu, voi updata si linkul de la postare

 

 
 

 

OnPlayerPause.inc

Edited by Mister
  • Upvote 1

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

Multumesc, nu ma asteptam sa va placa asa de mult  :)

Poate pentru ca am rezolvat asa repede eroare? :D 

Edited by Mister

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 7 months later...
  • 4 weeks later...
  • 1 month later...
  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.