Jump to content

Tutorial record de playeri


Mister

Recommended Posts

Buna ziua astazi va voi arata cum sa faceti un script: Recordul de playeri

 

 

Acest tutorial va fi scurt foarte simplu si in acelasi timp un script mai greut (parerea mea).

Sa incepem:

 

1: Cream variabila cu playerii online de pe server.

 

new Onlineplayers;// cream variabila

 

 

 

2: cream o functie care sa salveze recordul si sa il incarce cand dam un restart la server:

 

forward Saverecord();

 

 

public Saverecord()// aici se salveaza datele ca acestea sa nu se piarda la restart
{
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%d",Onlineplayers );
    new File: file2 = fopen("record.ini", io_write);
    fwrite(file2, coordsstring);
    fclose(file2);
    return 1;
}

 

Functia se salveaza acum dar trebuie sa o incarcam la pornirea serverului

 

 

 

 

 

3: Acum facem incarcarea functiei la pornirea serverului

 

forward Loadrecord();

 

 

public Loadrecord()// incarcam datele pentru a nu reseta recordul de playeri
{
    new arrCoords[64];
    new strFromFile2[256];
    new File: file = fopen("record.ini", io_read);
    if (file)
    {
        fread(file, strFromFile2);
        Onlineplayers = strval(arrCoords);
        fclose(file);
    }
    return 1;
}

 

iar la public OnGameModeInit() punem asta:

Loadrecord();// incarcam datele

 

 

 

 

 

 

 

4: Cream o funtie ajutatoare in care sa salvam playerii intrati pe server pana acum;

new RecordPlayersOn = 0;//cream variabila

 

 la public OnPlayerConnect(playerid) adaugam urmatoarea comanda pentru ca playerii care intra pe server sa fie numarati:
 

 
   RecordPlayersOn ++;// numaram playerul care a intrat pe server

 

 la public OnPlayerDisconnect(playerid,reason)  adaugam urmatoarea comanda pentru ca playerii care parasesc serverul sa poata fi scazuti din numaratoare:

 
   RecordPlayersOn --;//scadem playerul care a parasit serverul

 

 

 

 

 

 

5: la public OnPlayerConnect(playerid) mai adaugam aceasta conditie sa stim cand playerii intrati pe server au batut recordul de playeri intrati vreodata pe server:

   if(RecordPlayersOn > Onlineplayers )// daca playerii online sunt mai multi decat recordul serverului
     {
         format(stringss,sizeof(stringss), "Noul Record de playeri online este acum de %d",RecordPlayersOn );
         SendClientMessageToAll(-1,stringss);// trimitem mesajul la playerii online
         Onlineplayers = RecordPlayersOn ;// acum ii atribuim variabilei care se salveaza(adica recordul nostru   de playeri on) noul record de playeri intrati pe server
        SaveStuff();// si salvam variabila pentru a nu se pierde noul record
    }

 

 


* Iar daca vrem sa resetam recordul de playeri adaugam aceasta comanda la public OnPlayerCommandText(playerid, cmdtext[])
 

 

   

if(strcmp(cmd, "/resetrecord", true) == 0)
{

   if (IsPlayerAdmin(playerid))// verificam daca playerul este ownerul serverului(sau daca cel putin are parola RCON)

   {

      Onlineplayers = 0;

      RecordPlayersOn = 0;

      SendClientMessage(playerid,-1,"Ai resetat recordul");
      SaveStuff();

      return 1;
   }

}

 

 

 

 

Sper ca ati inteles tutorialul si sper sa va fie de folos

Edited by Mister
  • Upvote 3

 

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

  • 9 months later...
8 hours ago, Mihail. said:

Poti face comanda pe CMD:?

Inlocuiesti

if(strcmp(cmd, "/resetrecord", true) == 0) 

Cu 

CMD:resetrecord (playeri,paramas[])

  • Upvote 1

 

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

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.