Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×

Recommended Posts

Posted (edited)
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
Posted

Foarte frumos, dar e o mica problema.

Daca eu, ma pun afk, sa zicem 20 secunde, mi se creeaza deasupra capului acel text, iar cand revin dispare. Dar, daca ma pun din nou afk, acel timp continua, nu o ia de la 0:0 .

Posted (edited)

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
Posted

+1 si de la mine.

Respect acestei comunitati, dar mai presus respect membrilor ei !

Posted (edited)

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
Posted

Nu se da +1 numai ca l-am folosit si ca ne place, se da si pentru munca depusa, pentru interesul acordat ... :)

Posted

Este ceva nou, eu unul nu am mai vazut, si de accea merita, poate mai faci si alte tutoriale :>

Respect acestei comunitati, dar mai presus respect membrilor ei !

  • 7 months later...
Posted

Asta : afktime[playerid] = 0;  , trebuie pusa la onplayerconnect si onplayerunpause ( se face bug ) . in rest tutorial 10/10 , felicitari !

  • 4 weeks later...
  • 1 month later...
Posted

Frumos tutorial si de ajutor , felicitari

L-am si folosit si merge ok

default.png

 

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.