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;
}