Jump to content

[Tutorial] Cum sa iti faci propriul sistem VIP


Recommended Posts

Posted
Dupa cum spune si titlul azi m-am hotarat sa va fac un tutorial in care am sa va arat pasii care trebuie parcursi pentru a iti creea un sistem de VIP.
 
 
Cerinte pentru a urmarii acest tutorial:
-Sa ai cel putin 16 ani ca sa intelegi macar limbajul de programare
-Sa stii cu ce se papa scriptingul si mai ales pawno
-Sa fii atent la fiecare pas
 
Step 1
 
Adaugam la enum pInfo langa celelalte
 
pVip,

 

Step 2

 

Mergem la callback-ul OnPlayerConnect si adaugam urmatorul cod langa celelalte

PlayerInfo[playerid][pVip] = 0;

Ne asiguram ca jucatorul care intra pe server / isi inregistreaza un cont sa primeasca automat vip 0.

 

Step 3

 

Mergem la callback-ul OnPlayerRegister si adaugam urmatorul cod langa celelalte

format(var, 32, "VipLevel=%d\n",PlayerInfo[playerid][pVip]);fwrite(hFile, var);

Mergem la callback-ul SavePlayerData si adaugam urmatorul cod langa celelalte

if( strcmp( key , "VipLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pVip] = strval( val ); }

Mergem la callback-ul OnPlayerLogin si adaugam urmatorul cod langa celelalte

if( strcmp( key , "VipLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pVip] = strval( val ); }

Adaugand codurile astea vom stoca si salva desigur aceasta informatie de VIP. Daca va primii VIP level 1,2 etc, jucatorului i se va salva in fisier urmand la relog sa revina cu acelasi VIP level inainte de relog.

 

 

Step 4

 

Creeam comanda pentru a face un 

player simplu in VIP

CMD:makevip(playerid, params[])
{

new string[128], level, giveplayerid, sendername[MAX_PLAYER_NAME] ,giveplayer[MAX_PLAYER_NAME];
if(PlayerInfo[playerid][pAdmin] >= 1338 || PlayerInfo[playerid][pVip] >= 1338)
{
if(sscanf(params, "ui", giveplayerid,level)) return SendClientMessage(playerid, COLOR_ORANGE, "{F97804}USAGE:{B4B5B7}{FFFFFF} /makevip [playerid/PartOfName] [level(1-1338)]");
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GRAD1,"Invalid player !");
if(level > 1338) return SendClientMessage(playerid, COLOR_WHITE, "Minimum Vip level is 1 and maximum 1338");

GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[giveplayerid][pVip] = level;
format(string, sizeof(string), "You have been promoted to a level %d vip by %s.", level, sendername);
SCM(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "[AdmCmd] %s has promoted %s to a level %d vip.", sendername, giveplayer, level);
SendAdminMessage(COLOR_LIGHTRED, string);

}
else
{
SendClientMessage(playerid, COLOR_ORANGE, "DENIED: {FFFFFF}You are not authorized to use that command.");
}
return 1;

}

Step 5

 

Creeam o comanda cu care putem vizualiza cu usurinta vip-urile online

CMD:vips(playerid, params[])
{
new string[256], sendername[MAX_PLAYER_NAME];
SendClientMessage(playerid, 0x95C730FF, "|__Vips Online__|");
        foreach (new i : Player)
{
GetPlayerName(i, sendername, sizeof(sendername));
            if (IsPlayerConnected(i))
            {
                if(PlayerInfo[i][pVip] == 1)
                {
                    GetPlayerName(i, sendername, sizeof(sendername));
                    format(string, 256, "ID: %d | Vip Level 1: %s ", i, sendername);
                    SCM(playerid,COLOR_GRAD1, string);
                }
                if(PlayerInfo[i][pVip] == 2)
                {
                    GetPlayerName(i, sendername, sizeof(sendername));
                    format(string, 256, "ID: %d | Vip Level 2: %s ", i, sendername);
                    SCM(playerid,COLOR_GRAD1, string);
                }
                if(PlayerInfo[i][pVip] == 3)
                {
                    GetPlayerName(i, sendername, sizeof(sendername));
                    format(string, 256, "ID: %d | Vip Level 3: %s ", i, sendername);
                    SCM(playerid,COLOR_GRAD1, string);
                }
                if(PlayerInfo[i][pVip] == 4)
                {
                    GetPlayerName(i, sendername, sizeof(sendername));
                    format(string, 256, "ID: %d | Head Vip: %s ", i, sendername);
                    SCM(playerid,COLOR_GRAD1, string);
                }
            }
        }
        return 1;

}

Sper ca e de ajutor.

  • 1 month later...
Posted

Cine are face un sistem de vip cu 1338 de levele? Si comanda ta nu are o solutie de salvare a contului in baza de date, dupa relog userul cu siguranta nu va mai avea contul vip.

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...