Ovaj tutorial je pretežno za poÄetnike ali može svakome poslužiti
Nisam imao ideju za šta bih mogao napraviti tutorial pa mi je palo na pamet polaganje
Morate znati kako dodati nove varijable za uÄitavanje/spremanje jer ja to neću objaÅ¡njavati
Trebat će nam ZCMD za komande (Download: klik)
POÄŒETAK
Definirat ćemo varijablu za polaganje, dodajte pri vrhu
new Polaganje;Za poÄetak trebate dodati na vrh skripte(ukoliko već nemate definirano):
#define SCM SendClientMessageI dodajte pod OnPlayerConnect sljedeće
Polaganje = 0; //stavlja igraÄu polaganje na 0 pri connectuVARIJABLE
Vi morate dodati varijablu kako bi skripta pamtila da imate vozaÄku
Ovako to kod mene izgleda (ako vi imate drukÄije morate si prilagoditi):
enum pInfo
{
pDozvola
}:
new PI;KOMANDA /polaganje
Sada ćemo napraviti komandu da zapoÄnete polaganje
U ovoj komandi ako nemate iste nazive varijabli kao ja, morate ih zamijeniti svojim nazivima
CMD:polaganje(playerid, params[])
{
if(!IsPlayerInRangeOfPoint(playerid, 1.0, 1426.9076,-2349.7634,13.8703)) return SCM(playerid, -1, "Niste u autoskoli"); //ako niste na mjestu za polaganje izbacit će vam poruku
if(PI != 0) return SCM(playerid, -1, "Vec posjedujete vozacku dozvolu!"); //ako već imate vozaÄku dozvolu izbacit će vam poruku
if(GetPlayerMoney(playerid) < 250) return SCM(playerid, -1, "Nemate 250$ za polaganje"); //ako nemate 250$ za polaganje izbacit će vam poruku
Polaganje = 1; //Stavlja igraÄu polaganje na 1
GivePlayerMoney(playerid, -250); // oduzima igraÄu 250$
SetPlayerCheckpoint(playerid, 1436.3601,-2360.9924,13.3703,3.0); // postavlja igraÄu prvi checkpoint
SCM(playerid, -1, "Udjite u neko od ponudjenih vozila i zapocnite polaganje!");
SCM(playerid, -1, "Zapamtite! Ne smijete napustati vozilo tijekom polaganja!");
SCM(playerid, -1, "Isto tako ne smijete ni malo ostetiti vozilo!");
return 1;
}CHECKPOINT
Sada ćemo napraviti checkpointe za polaganje
Ja ću napraviti samo par poÄetnih checkpointa, vi nastavite dalje sami
if(Polaganje == 1 && IsPlayerInRangeOfPoint(playerid, 3.0, 1436.3601,-2360.9924,13.3703) && vAutoskola(idv)) //ovdje provjerava dali je igraÄ zapoÄeo polaganje te dali je u checkpontu kojeg smo dobili kada smo kucali /polaganje i naravno dali je u vozilu autoÅ¡kole
{
Polaganje = 2; //stavlja igraÄu polaganje na 2
DisablePlayerCheckpoint(playerid); //uklanja igraÄu prethodni checkpoint
SetPlayerCheckpoint(playerid, 1447.5872,-2360.7622,13.3701, 3.0); //postavlja igraÄu novi checkpoint
SCM(playerid, -1, "Za pocetak odvozi jedan slalom"); //Å¡alje igraÄu poruku
return 1;
}
if(Polaganje == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, 1447.5872,-2360.7622,13.3701) && vAutoskola(idv)) //ovdje provjerava dali je igraÄu varijbala za polaganje na 2 te dali je igraÄ u checkpointu iznad i naravno dali je u vozilu autoÅ¡kole
{
Polaganje = 3; //stavlja igraÄu polaganje na 3
DisablePlayerCheckpoint(playerid); //uklanja igraÄu prethodni checkpoint
SetPlayerCheckpoint(playerid, 1444.8232,-2353.9529,13.3676,3.0); //postavlja igraÄu novi checkpoint
return 1;
}
if(Polaganje == 3 && IsPlayerInRangeOfPoint(playerid, 3.0, 1444.8232,-2353.9529,13.3676) && vAutoskola(idv)) //ovdje provjerava dali je igraÄu varijabla za polaganje na 3 te dali je igraÄ u checkpointu iznad i naravno dali je u vozilu autoÅ¡kole
{
Polaganje = 4; //stavlja igraÄu polaganje na 4
DisablePlayerCheckpoint(playerid); //uklanja igraÄu prethodni checkpoint
SetPlayerCheckpoint(playerid, 1439.0577,-2345.6758,13.3644,3.0); //postavlja igraÄu novi checkpoint
return 1;
}
//Sada ćemo napraviti posljednji checkpoint
if(Polaganje == 4 && IsPlayerInRangeOfPoint(playerid, 3.0,1439.0577,-2345.6758,13.3644) && vAutoskola(idv)) //ovdje provjerava dali je igraÄu varijabla za polaganje na 4 te dali je igraÄ u checkpointu iznad i naravno dali je u vozilu autoÅ¡kole
{
new Float:HP;
GetVehicleHealth(GetPlayerVehicleID(playerid), HP); //provjera oštećenja vozila
if(HP < 300.0) //ako vozilo ima ispod 300hp
{
Polaganje = 0; //stavlja igraÄu polaganje na 0
DisablePlayerCheckpoint(playerid); //uklanja igraÄu checkpint
SCM(playerid, -1, "Ostetili ste vozilo, pali ste na vozackom ispitu!"); //Å¡alje igraÄu poruku
SetVehicleToRespawn(GetPlayerVehicleID(playerid)); //respawn vozila s kojim ste polagali
}
else //ako vozilo ima iznad 300hp, znaÄi položio je
{
Polaganje = 0; //stavlja igraÄu polaganje na 0
PI = 1; // igraÄ dobiva dozvolu
DisablePlayerCheckpoint(playerid); //uklanja igraÄu checkpoint
SetVehicleToRespawn(GetPlayerVehicleID(playerid)); //respawn vozila s kojim ste polagali
SCM(playerid, -1, "Uspjesno ste polozili vozacki ispit te dobili vozacku dozvolu!"); //Å¡alje igraÄu poruku
}
return 1;
}
VOZILA AUTÅ KOLE
Sada ćemo napraviti da vozila autoškole mogu voziti samo oni koji trenutno polažu
//Ovo dodajte negdje pri vrhu skripte
new AutoSkola; // 2 je broj koliko ima vozila za polaganje
//Ovo dodajte kod ostalih vozila odnosno ispod public OnGameModeInit()
SetVehicleNumberPlate(AutoSkola = AddStaticVehicleEx(436,1428.19995117,-2366.39990234,13.50000000,270.00000000,103,1,1000), "Autoskola"); //Stvara vozilo autoškole i pamti njegov ID u varijabli AutoSkola + postavlja tablice na auto
SetVehicleNumberPlate(AutoSkola = AddStaticVehicleEx(436,1428.19995117,-2363.10009766,13.50000000,270.00000000,103,1,1000), "Autoskola"); //Stvara vozilo autoškole i pamti njegov ID u varijabli AutoSkola + postavlja tablice na auto
Pronađite public OnPlayerStateChange(playerid, newstate, oldstate) te dodajte ispod
if(newstate == PLAYER_STATE_DRIVER) //mjesto vozaÄa
{
new carid= GetPlayerVehicleID(playerid);
if(vAutoskola(carid) && (Polaganje != 1)) //provjerava dali je ušao u vozilo autškole i da li mu je varijabla za polaganje na 1
{
SCM(playerid, -1, "Ne mozes voziti vozilo od autoskole"); //izbacuje poruku igraÄu
RemovePlayerFromVehicle(playerid); //izbacuje igraÄa iz vozila
}
//Sada ćemo staviti da vam izbaci upozorenje ako uđete u vozilo a nemate dozvolu
if(PI == 0)
{
SCM(playerid, -1, "Nemate vozacku dozvolu, pripazite na policiju!");//šalje poruku
}
Sada ćemo napraviti stock za vozila autoškole
Najbolje ga postavite gdje su vam ostali stockovi
stock vAutoskola(carid)
{
for(new iIdx = 0; iIdx < sizeof(AutoSkola); iIdx++)
{
if (AutoSkola == carid) return 1;
}
return 0;
}
I za kraj ćemo staviti da ukoliko igraÄ izaÄ‘e iz vozila tijekom polaganja da automatski padne polaganje
Pronađite public OnPlayerExitVehicle(playerid, vehicleid) te dodajte ispod
new carid= GetPlayerVehicleID(playerid);
if(Polaganje > 0 && vAutoskola(carid)) //provjerava dali je polaganje zapoÄeto te dali je u vozilu autoÅ¡kole
{
Polaganje = 0; //stavlja igraÄu polaganje na 0
DisablePlayerCheckpoint(playerid); //uklanja igraÄu checkpoint
SetVehicleToRespawn(carid); //respawna vozilo
SCM(playerid, -1, "Niste smjeli napustiti vozilo! Pali ste ispit!"); //izbacuje igraÄu poruku
}
KRAJ
Ovo je samo osnovno, vi možete 'unaprijediti' polaganje.
Ako ugledate neku grešku u tutorialu, javite da ispravim.
Ukoliko vam nešto nije jasno, slobodno pitajte.
