[TuT] Donator system

Započeo Hitman, Oktobar 03, 2012, 22:02:22 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 4 gostiju pregledaju ovu temu.

Uvod
  • U ovom tutorialu ću vam pokazati kako napraviti jednostavan donator sistem s bodovima
  • Morate znati kako dodati nove varijable za učitavanje/spremanje jer ja to neću objaÅ¡njavati

Koristimo
  • ZCMD za komande (Download: klik)
  • sscanf kao procesor (Download: klik)

Početak
  • Za početak trebate dodati na vrh skripte(ukoliko već nemate definirano):
#define SCM SendClientMessage
#define SPD ShowPlayerDialog

  • Sada trebamo definirati ID dialoga
#define DIALOG_DONATOR      32//Ja sam stavio ID 32, vi sebi prilagodite

Varijable
  • Vi morate dodati jednu varijablu u svoj enum kako bi skripta pamtila donator bodove
  • Ovako to kod mene izgleda (ako vi imate drukčije morate si prilagoditi):
enum pInfo
{
pBodovi
}:
new PlayerInfo[MAX_PLAYERS][pInfo];


Komanda /ddb
  • Sada ćemo napraviti komandu za davanje bodova igraču
  • Sve je objaÅ¡njeno unutar komande
  • Ukoliko nemate iste nazive varijabli kao ja morate ih zamjeniti sa svojima
CMD:ddb(playerid, params[])
{
    new id, koliko, sendername[MAX_PLAYER_NAME], string[128];
    if(!(PlayerInfo[playerid][pAdmin] >= 1337)) return SCM(playerid, -1,"Nemate ovlasti da koristite ovu komandu!"); //Provjerava dali je igrač 1337 admin, ako nije ispisuje mu poruku
    else if(sscanf(params,"ui", id, koliko)) return SCM(playerid, -1,"Koristi: /ddb [playerid] [bodovi]"); //Ako igrač nije upisao sve potrebne parametre ispisuje mu poruku
    else if(!IsPlayerConnected(id)) return SCM(playerid, -1,"Pogresan ID igraca"); //Provjerava dali je taj igrač online
    else
    {
      PlayerInfo[playerid][pBodovi] += koliko; //Dodaje igraču donator bodove
GetPlayerName(playerid, sendername, sizeof(sendername));
sendername[strfind(sendername,"_")] = ' ';
format(string, sizeof(string),"Admin %s vam je dao %i Donator Bodova", sendername, koliko);
SCM(id, -1, string); //Ispisuje igraču poruku
format(string, sizeof(string),"Trenutno stanje tvojih Donator Bodova je: %d", PlayerInfo[playerid][pBodovi]);
SCM(id, -1, string); //Ispisuje igraču poruku
     }
     return 1;
}
CMD:dajdonatorbodove(playerid, params[]) return cmd_ddb(playerid, params);


Komanda /donator
  • Ova komanda služi za one koji imaju donator bodova
  • Sve je objaÅ¡njeno unutar nje
CMD:donator(playerid, params[])
{
    if(!(PlayerInfo[playerid][pBodovi] >= 1)) return SCM(playerid, -1, "Nemate donator bodove!"); //Ukoliko igrač nema donator bodove ispisuje mu poruku
    {
        SPD(playerid, DIALOG_DONATOR, DIALOG_STYLE_LIST, "Bodovi", "1. 10000$\t(5 bodova)", "Uredu", "Izlaz"); //Otvara igraču dialog
    }
    return 1;
}


Dialog
  • Sada ćemo dodati dialog za donatore
  • Dialog dodajete pod public OnDialogResponse
if(dialogid == DIALOG_DONATOR) //Provjerava id dialoga
{
    if(response)
    {
        if(listitem == 0)
{
new string[128];
if(PlayerInfo[playerid][pBodovi] < 5) return SCM(playerid, -1, "Nemas dovoljno donator bodova za ovo!");//Ukoliko igrač nema dovoljno bodova ispisuje mu ovu poruku
GivePlayerMoney(playerid, 10000); //Daje igraču 10000$
                PlayerInfo[playerid][pBodovi] -= 5;  //Oduzima igraču 5 donator bodova
format(string, sizeof(string),"Odabrali ste 10000$, -5 bodova | Sada imas: %d donator bodova", PlayerInfo[playerid][pBodovi]);
    SCM(playerid, -1, string); //Ispisuje igraču poruku
}
    }
}


Kraj
  • Ako ugledate neku pogreÅ¡ku u tutorialu, javite da ispravim
  • Ukoliko vam neÅ¡to nije jasno slobodno pitajte


Svaka cast ovo si odlicno napravio. Eh da je ovakvih ljudi jos na forumu bilo bi odlcino :). Samo tako nastavi nadam se da ce jos biti tutorijala od tebe :D.

Citat: вιg вÏ...ηηу poslato Oktobar 03, 2012, 22:04:06 POSLE PODNE
Odličan tutorial brate. Svaka čast ;)

Hvala ;)

Citat: pllopen poslato Oktobar 03, 2012, 22:07:26 POSLE PODNE
Svaka cast ovo si odlicno napravio. Eh da je ovakvih ljudi jos na forumu bilo bi odlcino :). Samo tako nastavi nadam se da ce jos biti tutorijala od tebe :D.

Hvala.. Biti će, valjda :)

Vegas.

Bravo Hićo, dosta korisno, 10/10.

super je  ;)



Kad bih ponovo mogao da biram...al' nemozes da biras.
Zajebes jedan minus i ode ceo zadatak u kurac. Ceo fazon brate, nema druge sanse.



Odlicno Hitman  ;) Veoma korisno,konacno jedan tut da se ne ponavlja!
Citat: Marley poslato Jun 16, 2012, 17:11:23 POSLE PODNE
Kurcina  :P

Citat: Dude poslato Jun 16, 2012, 17:14:21 POSLE PODNE
čobane šta je ovo?

Respect for David (Sabljak) A.k.A SABO(T)

Citat: Vegas. poslato Oktobar 03, 2012, 22:39:50 POSLE PODNE
Bravo Hićo, dosta korisno, 10/10.

Dragi vegas ovo jedino moze nekim biti korisno ali trebas to naznacit svi misle da ce tebi biti korisno a ti pro znas sve sam netreba ti pomoc xD :)


odlican tut tako sam nekako i ja radio svoj sys :)