[TuT] Posao

Započeo []Flynâ„¢, Avgust 11, 2011, 03:32:10 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.





U ovom Tutorialu cu pokusati da vam sto bolje objasnim kako napraviti jedan jednostavan posao.
Pa da pocnemo...


Za ovo ce vam trebati sledece:
Include ZCMD - http://forum.sa-mp.com/showthread.php?t=91354



1. Korak



-Za prvi korak je dovoljno da napravimo komandu kojom cemo pokrenuti posao.
-Kako cemo to uraditi?
*Bilo gde u modu, samo da nije u neki callback ili stock dodajte ovu komandu:
*Objasnjenje je pored svakog reda "//"

CMD:kosi(playerid,params[])
{
new vozilo = GetPlayerVehicleID(playerid);//Definiramo "vozilo" koje cemo koristiti dole u komandi.
if(PlayerInfo[playerid][posao] == IDPOSLA)//ovo posao stavite kako je vama.
{
if(!KosacTrave(vozilo)) return SCM(playerid,COLOR_GRAD4,"[Greska]: Moras biti u kosilici.");//Zahteva od igraca da bude u vozilu, ne mozete krenuti sa poslom ukoliko ste na nogama
if(GetPVarInt(playerid,"Kosi") == 1) return SCM(playerid,COLOR_GRAD4,"[ERROR]: Vec kosis travu.");//Ukoliko vec kosite travu, necete moci opet pokrenuti.Ovo vam nece dozvoliti
SetPVarInt(playerid,"Kosi",1);//Postavlja kosenje trave na "1" to znaci da ste poceli da kosite
SetPVarInt(playerid,"CP",3);
SetPlayerCheckpoint(playerid,X,Y,Z,R);//Postavlja CheckPoint na odredjene kordiante
PlayerPlaySound(playerid, 1058, 0, 0, 0);//Zvuk kad prodjete kroz CP
}
else SCM(playerid,COLOR_GRAD4,"Nemas posao.");
return 1;
}


2. Korak



Kada smo kreirali komandu i postavili CheckPoint, sada cemo nastaviti checkpointe i zavrsiti posao.
Kako cemo to uraditi?
- CTRL+F i ukucajte "public OnPlayerEnterCheckPoint"
- Ispod toga dodajte sledece:


if(GetPVarInt(playerid,"Kosi") == 1)//Postavlja kosenje na "1" to znaci da je kosenje zapoceto(da je u toku)
   {
if(GetPVarInt(playerid,"CP") == 3)//ID CheckPointa, ova ID smo takodje stavili u komandi kako bi se prebacio na drugi CP i ID
{
       DisablePlayerCheckpoint(playerid);//Unistava CheckPoint ID 3, kako bi se pojavio ID 4
 SetPVarInt(playerid,"CP",4); //Prebacujemo CP na ID 4
 SetPlayerCheckpoint(playerid,X,Y,Z,R);//Postavljamo CP ID 4
 GivePlayerMoney(playerid,5); //Dajemo novac prolaskom kroz CP
 GameTextForPlayer(playerid, "~g~+ ~r~5$", 1000, 1); //Ispisujemo Text na ekranu da je dobio toliko i toliko novca(u ovom slucaju 5$)
 PlayerPlaySound(playerid, 1138, 0, 0, 0);//Pustamo zvuk.
}
else if(GetPVarInt(playerid,"CP") == 4)
{
       DisablePlayerCheckpoint(playerid);
 SetPVarInt(playerid,"CP",5);
 GivePlayerMoney(playerid,10);
 GameTextForPlayer(playerid, "~g~+ ~r~10$", 1000, 1);
 SetPlayerCheckpoint(playerid,X,Y,Z,R);
 PlayerPlaySound(playerid, 1138, 0, 0, 0);
}
else if(GetPVarInt(playerid,"CP") == 5)
{
       DisablePlayerCheckpoint(playerid);
 SetPVarInt(playerid,"CP",6);
 GivePlayerMoney(playerid,7);
 GameTextForPlayer(playerid, "~g~+ ~r~7$", 1000, 1);
 SetPlayerCheckpoint(playerid,X,Y,Z,R);
 PlayerPlaySound(playerid, 1138, 0, 0, 0);
}
else if(GetPVarInt(playerid,"CP") == 6)  // ZADNJI
{
       DisablePlayerCheckpoint(playerid);//Unistava zadnji CheckPoint
       SetPVarInt(playerid,"Kosi",0);//Stavlja kosenje na "0" to znaci da vise ne kosis.(To mozete koristiti ukoliko ocete da napravite timer za kosenje)
 RemovePlayerFromVehicle(playerid);//Izbacuje igraca iz vozila
 SCM(playerid,COLOR_Text,"Zavrsio si rutu i zaradio nesto novca.");//Ispisuje igracu poruku da je zavrsio rutu.
 PlayerPlaySound(playerid, 1138, 0, 0, 0);
 SetPVarInt(playerid,"CP",0);//Unistava ID CheckPointa, kako bi ga ponovo mogli kreirati sa komandom.
}
return 1;
   }




Takodje mozemo dodati i komandu za prekid posla, ukoliko igrac mora da izadje sa Servera a nije zavrsio posao, napravicemo da moze da ga prekine.

COMMAND:prekini(playerid,params[])
{
if(GetPVarInt(playerid,"Kosi") == 1)//Proverava da li je kosenje pokrenuto tj. da li igrac kosi
{
SetPVarInt(playerid,"Kosi",0);//Stavlja kosenje na 0, tj gasi kosenje
CP[playerid] = 999;//Postavlja CPove na "999" tj unistava sve CPove
GameTextForPlayer(playerid,"~r~Zavrsio si sa kosenjem~n~~g~prekinuo si",5000,4);//Ispisuje Text igracu da je zavrsio sa kosenjem
DisablePlayerCheckpoint(playerid); // Unistava CheckPoint koji mu je zadnji ostao
RemovePlayerFromVehicle(playerid);//Izbacuje igraca iz vozila.
}
return 1;
}




E sad tu vi mozete da dodajete jos mnogo toga i da experimentisete, ovo vam je kao neki kostur posla.



Tutorial by Pacijent_
Poslednja Izmena: Novembar 06, 2011, 23:38:40 POSLE PODNE od -300-

Ljepo :) Korisno je i ljepo sto je za sve modove :)
Trenutno radim novi DeathMatch server... Trazim ljude koji mogu pomoc na bio koji nacin.. Za vise info PM ;)

Hmm,di se igrač zaposli ovde? Nisi to napravio. ;)

dragan12

Nisi definisao SCM
#define SCM SendClientMessage
I ovo nije za sva vozila
if(!KosacTrave(vozilo))
I to nisi objasnio sta to znaci i sta tu da stave.
Inace dobar je tutorial.


Posto sam Low skripter i neznam skoro nista...ja nemam include ZCMD...kako ja da radim?
Koristim Edit GF moda



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.

dragan12

Citat: [BM]Poslednji Don poslato Avgust 11, 2011, 15:03:42 POSLE PODNE
Posto sam Low skripter i neznam skoro nista...ja nemam include ZCMD...kako ja da radim?
Koristim Edit GF moda
http://forum.sa-mp.com/showthread.php?t=91354
Skines include zcmd tako ti je najbolje.
I dodas gore kod ostalih include
#include <zcmd>

rijesio
Poslednja Izmena: Avgust 11, 2011, 17:36:29 POSLE PODNE od [BM]Poslednji Don



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.

mpzete mi pomoc hocu da uradim fs pomocu ovog tuta ali kako u nastimat u fs da se igrac zaposli kako kosac trave