UVOD- 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 (http://www.solidfiles.com/d/879d1213462fc1562d16d464e90c8cf9/))
POČETAK- Definirat ćemo varijablu za polaganje, dodajte pri vrhu
new Polaganje[MAX_PLAYERS];
- Za poÄetak trebate dodati na vrh skripte(ukoliko već nemate definirano):
#define SCM SendClientMessage
- I dodajte pod OnPlayerConnect sljedeće
Polaganje[playerid] = 0; //stavlja igraÄu polaganje na 0 pri connectu
VARIJABLE- 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[MAX_PLAYERS][pInfo];
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[playerid][pDozvola] != 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[playerid] = 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[playerid] == 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[playerid] = 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[playerid] == 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[playerid] = 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[playerid] == 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[playerid] = 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[playerid] == 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[playerid] = 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[playerid] = 0; //stavlja igraÄu polaganje na 0
PI[playerid][pDozvola] = 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]; // 2 je broj koliko ima vozila za polaganje
//Ovo dodajte kod ostalih vozila odnosno ispod public OnGameModeInit()
SetVehicleNumberPlate(AutoSkola[0] = 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[0] + postavlja tablice na auto
SetVehicleNumberPlate(AutoSkola[1] = 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[1] + 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[playerid] != 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[playerid][pDozvola] == 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[iIdx] == 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[playerid] > 0 && vAutoskola(carid)) //provjerava dali je polaganje zapoÄeto te dali je u vozilu autoÅ¡kole
{
Polaganje[playerid] = 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.
Pohvale za tutorijal. No imas jednu gresku tj. nisi definirao varijablu Polaganje.
Citat: [SC] - Rıckeη poslato Maj 18, 2013, 14:11:27 POSLE PODNE
Pohvale za tutorijal. No imas jednu gresku tj. nisi definirao varijablu Polaganje.
Hvala što si me podjestio
Dobar tutorijal , pomoći će mnogima.
Dobar TUT!
Nisi napisao gdje da stave te ostale checkpoint-e ;)
Dobar tut :)
dobro objasnjen tut :D
Citat: |_sLaY_| ^_- poslato Maj 19, 2013, 00:53:09 PRE PODNE
Nisi napisao gdje da stave te ostale checkpoint-e ;)
Pa napravio sam 3 checkpointa kao primjer, dalje valjda mogu sami..
Hvala ostali. :)
Lepo opsirno
dobar tut,pomoci ce mnogima
btw nisam te dugo vidio na forumu:P
Citat: [BS:RP]xyzcod2 poslato Maj 19, 2013, 19:10:59 POSLE PODNE
dobar tut,pomoci ce mnogima
btw nisam te dugo vidio na forumu:P
ÄŒesto sam ja na forumu ali rijetko postam pa ti se Äini možda :P
Hvalaa ;)
Dobar tut , pomocice ostalima.
samo napred, nije lose :D
Hvala ;) ;)
Error nemas define polaganje popravi to,dobar je tut samo to popravi
error 017: undefined symbol "idv"
Sta treba definirati pod "idv"?
stavi
idv = GetPlayerVehicleID(playerid);
enum pInfo
{
pDozvola
}:
new PI[MAX_PLAYERS][pInfo];
Poceo sam tek skriptati i niej mi ajsna ova VARIAJBLa,izbaci mi error PI
http://www.zaslike.com/files/ax5bxdtgkkbllkzgpoey.jpg
definiraj gore ovako...to stavi gdje su ti i ostali define
#define PI PlayerInfo
ali pazi nemoj definirati tu ispod gdje si definirao i DIALOGE vec gore negdje stavi gdje su ti boje i ostalo
i jos nesto
tu dvotacku na broju 94 izbrisi,a zagradu ostavi i sve ce biti ok
ne bulazni. PI stavi u PlayerInfo
Ljudi pomagajte, nece da mi prebaci na drugi checkpoint, i znam da sam obnovio temu, ali sta cu moram...
Citajte pravila da ne refreshate teme starije od 10 dana pomoc zatrazi u podforumu Razgovor u vezi Pawn skriptanja.
LOCK