PDA

View Full Version : [TUTORIAL SAMP] Crearea unui JOB



~TraNda~
07-11-2016, 03:18 PM
Tutorialul este format din 6 pasi!

Pasul 1.
Jobul vostru trebuie sa aiba un ID diferit fata de cele existente deja (daca aveti job-uri de la 1 la 13 noul job trebuie sa aiba id 14).
In showstats oferiti un nume jobului cu id-ul corespunzator .

Pasul 2.
Adaugati un numar de definitii pentru masinile ce urmeaza sa le adaugati. Ca de exemplu:

new gradinar1,gradinar2,gradinar3 ;

Pasul 3.
Adaugati in callback-ul public OnGameModeInit() masinile :

gradinar1 = AddStaticVehicle(Ex) .... ;
gradinar2 = AddStaticVehicle(Ex) .... ;
gradinar3 = AddStaticVehicle(Ex) .... ;
Nota: Acel Ex este optional nu stiu cum are fiecare GM-ul structurat .

Pasul 4.
Adaugam restrictii pentru cine poate folosi masinile :
In callback-ul public OnPlayerStateChange(playerid, newstate, oldstate) veti gasi if(newstate == PLAYER_STATE_DRIVER) si aici undeva veti adauga :

if(newcar == gradinar1 || newcar == gradinar2 || newcar == gradinar3)
{
if(PlayerInfo[playerid][pJob] == 14) { }
else
{
SendClientMessage(playerid,COLOR_GRAD1,"** You don't have the keys of this car !");
RemovePlayerFromVehicle(playerid);
}
}
In callback-ul public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) veti adauga restrictia pentru noile masinile ale noii factiuni :

if((vehicleid == gradinar1 || vehicleid == gradinar2 || vehicleid == gradinar3) && !ispassenger)
{
if(PlayerInfo[playerid][pJob] == 14) { }
else {
SendClientMessage(playerid, COLOR_GREY, "** Nu nu esti membrul Gradinarilor !");
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
SetPlayerPos(playerid, cx, cy, cz);
}
}

Pasul 5.
Creati pick-up pentru locul de unde se ia job-ul.

Pasul 6.
Creati o comanda pentru jobul vostru ... depinde cu ce se ocupa dar daca trebuie sa urmeze checkpoint-uri adaugati primul checkpoint adica :

CP[playerid] = 1;
Pentru Checkpoint-uri daca doriti sa adaugati , cautati in gamemode public OnPlayerEnterCheckpoint(playerid) si va creati aici checkpoint-urile

if(CP[playerid]==1)
{
DisablePlayerCheckpoint(playerid);
CP[playerid] = 2; - aici adaugati urmatorul cp care trebuie sa-i apara jucatorului
SetPlayerCheckpoint(playerid, 1964.082519,-1878.616821,13.060032, 5.0);
}
else if(CP[playerid]==2)
{
DisablePlayerCheckpoint(playerid);
CP[playerid] = 3;
SetPlayerCheckpoint(playerid, 1963.966796,-1779.863891,13.060076, 5.0);
}
else if(CP[playerid]==3) - aici creati "ultimul" cp care ofera jucatorului banii mesajul si avantajele , introduceti aici ce doriti voi .
{
new pName[24];
new str[128];
GetPlayerName(playerid, pName, 24);
GivePlayerMoney(playerid, 500);
format(str, 128,"[Server]: Felicitari %s ! Bla bla bla .", pName);
SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
DisablePlayerCheckpoint(playerid);
CP[playerid] = 0;
}



Tutorial samp , SA:MP , multiplayer, job, crearea unui job, filterscript job, samp gratuit

Alex Motanu
07-11-2016, 03:23 PM
La ce se refera: "SetPlayerCheckpoint(playerid, 1964.082519,-1878.616821,13.060032, 5.0);" ?

~TraNda~
07-11-2016, 03:32 PM
La ce se refera: "SetPlayerCheckpoint(playerid, 1964.082519,-1878.616821,13.060032, 5.0);" ?

Sunt coordonatele locului unde apare checkpointul.