Jump to content

Cum sa faci Ranks/Vip/Level etc...


Guest PlayON

Recommended Posts

Guest PlayON

Cum sa faci:

Ranks/Vip/Level


Informatii:

Multi cred ca un sistem de VIP sau Admin este foarte greu de facut, din pacate, va inselati, este foarte usor, sa detectezi levelul unui admin, sau atunci cand setezi levelu de VIP al unei persoane, este totul bazat pe Variabile, totul se stocheaza in variabile.

Am sa va arat cum sa folosit adecvat variabilele sa creati tot felu de verificari, sa reusiti sa faceti si singuri un system de VIP.

Pentru inceput:

...Pentru inceput trebuie sa cream variabila pe care o vom folosi sa stocam nivelul jucatorului, si prin care ne vom folosi sa detectam nivelu jucatorului. Variabila trebuie sa contina MAX_PLAYERS deoarece trebuie sa fie facuta pentru un ID de jucator specific. Daca nu folosim MAX_PLAYERS inseamna ca variabila este globala!

Pasul 1: Crearea variabilei

Deci adaugam codul acesta sus in topul scriptului:

new PlayerLevel[ MAX_PLAYERS ];

Pasul 2: Inserirea unei valori in variabila

Cu acest cod v-om seta valoarea variabilei PlayerLevel la numarul 5

Acest cod poate fi luat drept, ca jucatorul respectiv, cui i se aplica aceasta variabila, v-a fi admin level 5, dar inca nu, nu puteam spune ca ne va ajuta in ceva.

PlayerLevel[ playerid ] = 5;

Aceasta 'metoda' poate fi folosita intr-o comanda te testare, de genu.

if ( !strcmp( cmdtext, "/level5" ) )

{

    PlayerLevel[ playerid ] = 5;

    SendClientMessage( playerid, -1, "Valoarea '5' a fost adaugata variabilei 'PlayerLevel'" );

    return 1;

}

Pasul 3: Verificarea valorii variabilei cu o valoare

Cu codul acesta vom verifica daca, variabila noastra, creata mai sus, este mai mare deat 10.

if ( PlayerLevel[ playerid ] > 10 )

Dar din pacate acesta nu v-a fi chemat, deoarece, valoarea curenta a variabilei PlayerLevel este de 5, iar codul nostru v-a merge daca este peste 10.

Exemplu:

if ( PlayerLevel[ playerid ] > 0)

{

    //code code code

}

Codul va merge daca jucatorul are variabila setata mai mare ca 0. Aceasta metoda se paote folosi in unde vrei tu, comenzi/functii/stocuri.

Pasul 4: Egal, mai mic, mai mare, adauga, scade etc...

In acest pas am sa va invat ce inseamna amestecul de simboluri '== != += -= > >= < <='

== - Inseamna X egal cu Y, se poate folosi doar un functiile de verificare a unei valori ( Pasul 3)

Exemplu: if ( PlayerLevel[ playerid ] == 2 )

= - Se foloseste pentru a seta o anumita valoare unei functii

Exemplu: PlayerLevel[ playerid ] = 10;

!= - Punand un '!' un fata la '=' se genereaza efectul invers al '='. Adica, verifici daca X NU este Y.

Exemplu: if ( PlayerLevel[ playerid ] != 0 )

+= - Se foloseste '+' pentru a dauga valoarea setata in plus. Adica, valoarea curenta + valoarea setata.

Exemplu: PlayerLevel[ playerid ] += 1; < - Se adauga 1 valoare in plus variabilei, daca variabila are 3, va avea 4.

-= - Se foloeste '-' pentru a extrage valoarea din variabila.

Exemplu: PlayerLevel[ playerid ] -= 4; < - Se extrage 4 puncte! Daca variabila are 10 va avea 6. Daca variabila ar avea 3 ar veni -1 deoarece merg si negative!

> - Verifici daca X este mai mare ca Y.

Exemplu: if ( PlayerLevel[ playerid ] > 3 )

>= - Verifica daca X este mai mare sau egal cu Y.

Exemplu: if ( PlayerLevel[ playerid ] >= 7 )

< - Verifici daca X este mai mic ca Y.

Exemplu: if ( PlayerLevel[ playerid ] < 3 )

<= - Verifici daca X este mai mic sau egal cu Y.

Exemplu: if ( PlayerLevel[ playerid ] <= 5 )

Pasul 5: Aplicam ce am invatat.

Deci aici am sa aplic tot ce am invatat noi acuma(voi nu eu), am sa fac un MIC sistem de VIP.

//Cream variabila pentru a stoca levelul de VIP.

new VipLevel[ MAX_PLAYERS ];

//Folosim niste comenzi

public OnPlayerCommandText( playerid,  cmdtext[ ] )

{

    //Comparam X cu Y, comparam daca jucatorul a introdus /ak46 in chat, daca da, continua:

    if ( !strcmp( cmdtext, "/ak46" ) )

    {

        //Verificam daca jucatorul nu este level 0.

        if ( VipLevel[ playerid ] != 0 )

        {

              //Daca nu este level 0, da-i o arma.

              GivePlayerWeapon( playerid, WEAPON_AK47, 99999 );

        }

        //else se foloseste daca X nu este adevarat atunci Y este adevarat.

        else

        {

              //Ii dam confirmarea ca nu este VIP.

              SendClientMessage( playerid, -1, "Nu esti membru VIP" );

        }

        //Returnam valoarea de adevar.

        return 1;

    }

    //Comparam iara.

    if ( !strcmp( cmdtext, "/VIP" ) )

    {

        //Verificam daca jucatorul NU este level 5, sa nu se repete comanda!

        if ( VipLevel[ playerid ] != 5 )

        {

              //Setam valoarea de adevar a variabilei VipLevel la 5 (Logic, jucatorul este acum level VIP level 5)

              VipLevel[ playerid ] = 5;

        }

        //else se foloseste daca X nu este adevarat atunci Y este adevarat.

        //deci in cazul acesta, sus fiind !=, else il transforma in ==.

        else

        {

              //Ii dam de stire jucatorului ca deja este level 5.

              SendClientMessage( playerid, -1, "Deja esti VIP level 5!" );

        }

        return 1;

    }

    //Aici returnam 0 ca aceasta functie sa continue.

    return 0;

}

Sfarsit:

Cam atata a fost! Daca aveti intrebari, lasati mesaj si va ajut! Sper ca acuma intelegeti, adevarata fata a unui sistem de VIP sau cine stie ce. Totul este bazat pe variabile si valorile lor, verificari ale valorilor!

Link to comment
Share on other sites

Misto tutorial!

5/5!

Misto aranjarea ;)

Da puteai face si asa:


    if ( !strcmp( cmdtext, "/ak46" ) )

    {

        //Verificam daca jucatorul este level 0 si ii dam confirmarea ca nu este VIP.

        if ( VipLevel[ playerid ] == 0 ) return SendClientMessage( playerid, -1, "Nu esti membru VIP" );

        //Daca nu este level 0, da-i o arma.

        GivePlayerWeapon( playerid, WEAPON_AK47, 99999 );

        //Returnam valoarea de adevar.

        return 1;

    }


142sj0l.png

Underground-GFX

Link to comment
Share on other sites

Guest PlayON

Misto tutorial!

5/5!

Misto aranjarea ;)

Da puteai face si asa:

[h]

    if ( !strcmp( cmdtext, "/ak46" ) )

    {

        //Verificam daca jucatorul este level 0 si ii dam confirmarea ca nu este VIP.

        if ( VipLevel[ playerid ] == 0 ) return SendClientMessage( playerid, -1, "Nu esti membru VIP" );

        //Daca nu este level 0, da-i o arma.

        GivePlayerWeapon( playerid, WEAPON_AK47, 99999 );

        //Returnam valoarea de adevar.

        return 1;

    }

[h]

Asa cum? Nu exista tagurile [pawn] aici pe forum.

Link to comment
Share on other sites

Guest PlayON

Cu return, adica sa verifice direct daca e Level 0 sai zica:


if ( VipLevel[ playerid ] == 0 ) return SendClientMessage( playerid, -1, "Nu esti membru VIP" );


:tongue:

Am facut metoda simpla ca nu toti stiu ca returnand un false opreste continuarea codului si e mai simplu asa.

LaZ link=topic=9982.msg59903#msg59903 date=1299780931]

Nu poti sa adaugi valori unei variabile, o setezi.

Daca vorbesti la plural, nu nu poti sa adaugi valori, dar, ced ca am incurcat "adaug" cu "seteaza" pe cand scriam la +=

Link to comment
Share on other sites

if ( !strcmp( cmdtext, "/level5" ) )

{

    PlayerLevel[ playerid ] = 5;

    SendClientMessage( playerid, -1, "Valoarea '5' a fost adaugata variabilei 'PlayerLevel'" );

    return 1;

}

In acel exemplu, PlayerLevel[ indice ] va primi valoarea 5. Ii important sa precizezi si asta.

* indicele fiind ID-ul jucatorului.

Link to comment
Share on other sites

Guest farse

Eu as opta pentru o variabila 2-D cu un enum,pentru a nu crea N variabile..

Daca nu folosim MAX_PLAYERS inseamna ca variabila este globala!

O variabila este globala atunci cand nu se incadreaza/nu este pusa intr-o functie.Folosind MAX_PLAYERS o transformi in 1-D.

Este cam empiric,dar e bun, Gj  :azn:

Link to comment
Share on other sites

Guest PlayON

Eu as opta pentru o variabila 2-D cu un enum,pentru a nu crea N variabile..

O variabila este globala atunci cand nu se incadreaza/nu este pusa intr-o functie.Folosind MAX_PLAYERS o transformi in 1-D.

Este cam empiric,dar e bun, Gj  :azn:

Tu intelegi ca eu am facut un tutorial pentru "idioti" mai bine zis? E facut simplu ca sa inteleaga.

daca ma puneam sa o fac 3D sau 2D astia ce ce ce?

Link to comment
Share on other sites

  • 1 year later...
  • 2 weeks later...

6/10

Si ce ati invatat? Sa faceti o variabila care nici macar nu se salveaza, nu se incarca.

Scriptul este prea lung, se putea mult mai scurt.

[pawn]public OnPlayerCommandText( playerid,  cmdtext[ ] )

{

    if ( !strcmp( cmdtext, "/ak46" ) ) {

        if ( VipLevel[ playerid ] != 0 ) 

            { GivePlayerWeapon( playerid, WEAPON_AK47, 99999 ); }

        else return SendClientMessage( playerid, -1, "Nu esti membru VIP" );

    }

    if ( !strcmp( cmdtext, "/VIP" ) ) {

        if ( VipLevel[ playerid ] != 5 )

            { VipLevel[ playerid ] = 5; }

        else return SendClientMessage( playerid, -1, "Deja esti VIP level 5!" );

    }

    return 0;

}[/pawn]

Banner_2.png
Link to comment
Share on other sites

  • 3 weeks 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.