[TuT] PayDay poeni[FIXED]

Započeo xyzcod2
18. Apr. 2013. Zaključano
5,767
pregleda
21
postova
xyzcod2
5
Underboss
18. Apr. 2013.
PayDay TuT by xyz

Posto vidim da vecina vise voli radit modove od 0 pa im treba PayDay sistem.Odlucio sam da napravi jedan mali tutorial za njih.
Znaci u ovom tutorialu naucit cete napraviti payday.Radit cemo jednostavan,a izgledat ce ovako:znaci kada igrac sakupi 30 minuta igre dobija 300$,te cemo dodati da igrac moze pogledati broj svojih minuta/payday-a u statsu kada upise /stats.Pa krenimo


POTREBNO:
-SISTEM SPREMANJA-REG/LOG SISTEM PO MOGUCNOSTI SA SPREMANJEM,AKO NEMATE POKUSAJTE NAPRAVITI,PO NEKOM TUT-U
-ZCMD PROCESOR KOMANDI


1. Korak-namjestanje timer-a
Za pocetak cemo pod public OnGameModeInit dodati timer
SetTimer("minute",1000*60,true);//minute=ime timera,*60 koliko sekundi treba za 1 payday poen,mozete umjesto 1000*60 staviti 60000 isto je


Krenimo dalje
2. Korak-zapisivanje PayDay poena u igracev fajl kada izade/ude(INI)
Prvo trebate napraviti enum
enum pInfo
{

pPaytime
};
new PlayerInfo;

ako vec imate enum samo unutar njega dodate(NAPOMENA😛RIPAZITE,ZADNJI ENUM UVIJEK MORA BITI BEZ ZAREZA!)
pPaytime

pa krenimo dalje,sada pod onplayerdisconnect dodajte
new INI:File = INI_Open(UserPath(playerid)); //Zapisuje podatke u igracevu fajl datoteku
INI_SetTag(File,"data"); //Takoder zapisuje podatke u igracevu fajl datoteku
INI_WriteInt(File,"Paytime",PlayerInfo); //Zapisuje koliko igrac ima Paytime-a ,zapisuje ga u igracevu fajl datoteku
return 1;

kod mene je to ovako:
public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(UserPath(playerid)); //Zapisuje podatke u igracevu fajl datoteku
INI_SetTag(File,"data"); //Takoder zapisuje podatke u igracevu fajl datoteku
INI_WriteInt(File,"Paytime",PlayerInfo); //Zapisuje koliko igrac ima Paytime-a ,zapisuje ga u igracevu fajl datoteku
return 1;
}

zatim pod stock gdje spremate podatke dodajte

INI_Int("Paytime",PlayerInfo);
return 1;

kod mene to izgleda ovako:
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
INI_Int("Paytime",PlayerInfo);
return 1;
}

sada pod ondialogresponse gdje vam je register dialog dodate
INI_WriteInt(File,"Paytime",0);

kod mene je to ovako
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registracija","REGISTER TEKS-NEBITAN JE","Registriraj","Odustani"); //Tekst koji se prikazuje prilikom registracije u dialog-nebitan je u ovom tutorialu,naveo sam ga da pokazem kako je to kod mene
new INI:File = INI_Open(UserPath(playerid)); //Otvara/zapisuje u igracevu fajl datoteku(ni sam neznam xd)
INI_SetTag(File,"data"); //Zapisuje u igracevu fajl datoteku
INI_WriteInt(File,"Paytime",0);//Zapisuje u igracevu fajl datoteku
INI_Close(File); //Zatvara fajl
}
}

Zavrsili smo sa spremanjem,sada krecemo da dobivanje place

3. Korak-izrada public-a,dobivanje place
Negdje u modu napravite public
public minute()
{
for(new i=0; i {
if(!IsPlayerConnected(i))continue; //Ako je igrac konektiran na server igracu se broje payday poeni,ako nije,ne broje se
PlayerInfo ++; //Dodaje se 1 payday poen nakon 1 minute
if(PlayerInfo==30) //Broj payday poena koji igrac mora zadovoljavati da bi dobio placu
{
PlayerInfo = 0;
SendClientMessage(i,COLOR_LIGHTBLUE,"Payday. Zaradili ste 300$."); //Ispisuje igracu poruku da je sakupio 30 payday poena te da je dobio 300$
GivePlayerMoney(i,300); //Daje igracu 300$,mozete promjeniti
}
}
return 1;
}

To smo sada zavrsili,sada nam slijedi 4. ujedno i zadnji korak a to je radenje prikaza broja payday poena igracu.

4. Korak-izrada prikaza broja payday poena igracu
Sada cemo napraviti komandu sa ZCMD procesorom.
CMD:stats(playerid,params[]) 
{
new string;
format(string,sizeof(string),"[PayDay: %i]",PlayerInfo);//Iscitava paytime sa igracevog fajla te ispisuje u numerickom obliku
SendClientMessage(playerid,COLOR_LIGHTBLUE,string); //Ispisuje u numerickom obliku
return 1;
}


evo i definicija boje ako nemate
#define COLOR_LIGHTBLUE 0x33CCFFAA


Eto ovo je sve od tutoriala,nadam se da sam vam pomogao,ako imate bilokakvih pitanja,problema obratite se ovdje u topicu ili na PP/PM.
FIXANO!!!-Doraden dio koji falio!
Champa22
5
Underboss
18. Apr. 2013.
dobar
pohvale
bas mi je ovo SAD trebalo 😄
xyzcod2
5
Underboss
18. Apr. 2013.
hvala,nadam se da je pomoglo 😄
Champa22
5
Underboss
18. Apr. 2013.
Stavi da nakom odredjenog broja respekata digne mu se lvl biti ce bolje
xyzcod2
5
Underboss
18. Apr. 2013.
FIXANO !!!
EuroGaming
5
Underboss
19. Apr. 2013.
Lijepo objasnjeno pohvala
xyzcod2
5
Underboss
19. Apr. 2013.
|EG|KuNNa wrote on April 19, 2013, 5:36 am:
Lijepo objasnjeno pohvala

hvala 😄
Faris_Farkias
6
Godfather
🔥30
19. Apr. 2013.
Fino , fino 😎
xyzcod2
5
Underboss
19. Apr. 2013.
Quote from April 19, 2013, 3:23 pm:
Fino , fino 😎

hvala  :-*
Blaeks_Biofor
5
Forum Don
19. Apr. 2013.
vrtis kroz 500 igraca, pa tek onda proveravas da li je igrac konektovan, dok se i dalje vrtis kroz 500 igraca, inace ovako tut nije los, samo ispravi te neke greskice
xyzcod2
5
Underboss
19. Apr. 2013.
Blaeks wrote on April 19, 2013, 4:35 pm:
vrtis kroz 500 igraca, pa tek onda proveravas da li je igrac konektovan, dok se i dalje vrtis kroz 500 igraca, inace ovako tut nije los, samo ispravi te neke greskice

hvala,na sto tocno mislis?nekontam ovo sto si napiso
Blaeks_Biofor
5
Forum Don
19. Apr. 2013.
public minute()
{
for(new i=0; i {
if(!IsPlayerConnected(i))continue; //Ako je igrac konektiran na server igracu se broje payday poeni,ako nije,ne broje se
PlayerInfo ++; //Dodaje se 1 payday poen nakon 1 minute
if(PlayerInfo==30) //Broj payday poena koji igrac mora zadovoljavati da bi dobio placu
{
PlayerInfo = 0;
SendClientMessage(i,COLOR_LIGHTBLUE,"Payday. Zaradili ste 300$."); //Ispisuje igracu poruku da je sakupio 30 payday poena te da je dobio 300$
GivePlayerMoney(i,300); //Daje igracu 300$,mozete promjeniti
}
}
return 1;
}
znaci ovde vrtis 500 igraca
for(new i=0; i
dok si mogao foreachom, onda ispod toga tek proveravas konekciju igraca..
xyzcod2
5
Underboss
19. Apr. 2013.
Blaeks wrote on April 19, 2013, 4:39 pm:
public minute()
{
for(new i=0; i {
if(!IsPlayerConnected(i))continue; //Ako je igrac konektiran na server igracu se broje payday poeni,ako nije,ne broje se
PlayerInfo ++; //Dodaje se 1 payday poen nakon 1 minute
if(PlayerInfo==30) //Broj payday poena koji igrac mora zadovoljavati da bi dobio placu
{
PlayerInfo = 0;
SendClientMessage(i,COLOR_LIGHTBLUE,"Payday. Zaradili ste 300$."); //Ispisuje igracu poruku da je sakupio 30 payday poena te da je dobio 300$
GivePlayerMoney(i,300); //Daje igracu 300$,mozete promjeniti
}
}
return 1;
}
znaci ovde vrtis 500 igraca
for(new i=0; i
dok si mogao foreachom, onda ispod toga tek proveravas konekciju igraca..

hmm,jesi li ovako mislio
public minute()
{
for (new i = 0; i != MAX_PLAYERS; ++i)
{
    if (IsPlayerConnected(i))continue;
{
PlayerInfo ++;
if(PlayerInfo==20)
{
PlayerInfo = 0;
SendClientMessage(i,COLOR_LIGHTBLUE,"Payday. Zaradili ste300$.");
GivePlayerMoney(i,300);
return 1;
}
}
}
return 1;
}
Blaeks_Biofor
5
Forum Don
19. Apr. 2013.
zaboravi, lep tutorial 🙂
xyzcod2
5
Underboss
19. Apr. 2013.
Blaeks wrote on April 19, 2013, 4:51 pm:
zaboravi, lep tutorial 🙂

hvala 😄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha