APLY-ZONE
Bine ai venit vizitatorule, daca vrei sa ai acces la toate resursele forumului trebuie sa detii un cont. Daca nu detii unul deja iti poti face un cont nou aici : http://aply-zone.tequilaforum.net/register?agreed=true&step=2

Cum sa iti faci propriul sistem VIP

In jos

Cum sa iti faci propriul sistem VIP

Mesaj Scris de Versus la data de Dum Aug 11, 2013 9:57 am

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

ATENTIE: Acest tutorial a fost facut dupa gamemode-ul meu. Probabil nu o sa gasiti aceleasi callback-uri in alte gamemode-u

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;

}


Acest tutorial a luat sfarsit. Nu este foarte greu de urmarit acest tutorial, mie unul mi se pare extrem de simplu dar iti trebuie si putina minte pentru asta.

Credite: CaRa ( pentru acest tutorial )
             y_less ( pentru sscanf si foreach )
             Zeex ( pentru zcmd )
avatar
Versus
Fondator
Fondator

Mesaje : 151
Puncte : 448
Reputatie : 1
Data de inscriere : 11/08/2013
Localizare : constanta

Vezi profilul utilizatorului

Sus In jos

Re: Cum sa iti faci propriul sistem VIP

Mesaj Scris de SPeeDStriKe la data de Mier Aug 14, 2013 1:00 pm

Trebuie sa fii atent ca sa reusesti !
avatar
SPeeDStriKe
Membru
Membru

Mesaje : 913
Puncte : 994
Reputatie : 13
Data de inscriere : 12/08/2013
Varsta : 23
Localizare : Bucuresti

Vezi profilul utilizatorului http://aply-zone.myfreeforum.ro/profile?mode=editprofile

Sus In jos

Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum