Skripta koju koristim:BERP
Detaljan opis problema: Pravim posao kosac trave. E sada ne bih zeleo da napravim onaj klasican sa CP-ovima jer je on previse dosadan. Hteo bih da napravim da kada se igrac sa kosilicom priblizi travi (koja ce biti ubacena kao neki objekat) ona nestane za sve koji rade posao i da se vrati recimo posle 15 sekundi.
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
Negde pri vrhu definisi.
[pawn]
new Trava[5][MAX_PLAYERS];//objekti trave...broj 5 = broj objekata koje smo dodali
new KosacPosao[MAX_PLAYERS];//treba nam za proveru dali je igraÄ već poÄeo kositi travu
new TravaTimer[MAX_PLAYERS];//trebace nam za uništavanje timera
new Kosilica[3];//kosilice
[/pawn]
Pod OnPlayerConnect
[pawn]
KosacPosao[playerid] = 0;//stavlja igraÄu varijablu za kosenje na 0
[/pawn]
[pawn]Kosilica[0] = AddStaticVehicleEx(572,1956.7000000,-1163.5000000,20.3000000,90.0000000,128,128, 1000);//stvara kosilicu i pamti njegov id u varijabli Kosilica[0]
Kosilica[1] = AddStaticVehicleEx(572,1956.7000000,-1166.3000000,20.3000000,90.0000000,128,128, 1000);//stvara kosilicu i pamti njegov id u varijabli Kosilica[1]
Kosilica[2] = AddStaticVehicleEx(572,1956.7000000,-1169.0000000,20.3000000,90.0000000,128,128, 1000);//stvara kosilicu
[/pawn]
E sada gde su ti ostali stockovi za vozila samo ubaci ovaj.
[pawn]
stock VoziloKosaca(carid)
{
for(new i = 0; i < sizeof(Kosilica); i++)
{
if(carid == Kosilica) return 1;
}
return 0;
}
[/pawn]
Provera u kojoj izbacuje igraca iz vozila (ti definisi po idu koji tb odgovara)
[pawn]
if(newstate == PLAYER_STATE_DRIVER)//provjera dali je na mjestu vozaca
{
if(VoziloKosaca(GetPlayerVehicleID(playerid)) && PlayerInfo[playerid][pPosao] != 1)//provjera dali je igraÄ u kosilici i dali je zaposlen kao kosaÄ trave
{
SendClientMessage(playerid, -1, "GRESKA: Niste zaposleni kao kosac trave!");//Å¡alje igraÄu poruku
RemovePlayerFromVehicle(playerid);//izbacuje igraÄa iz vozila
}
}
[/pawn]
Sada komanda BE koristi YCMD ja msm
[pawn]
YCMD:kosenje(playerid, params[],help)
{
if(PlayerInfo[playerid][pPosao] != 1) return SendClientMessage(playerid, -1, "GRESKA: Niste zaposleni kao kosac trave!");//ukoliko igraÄ nije kosaÄ trave izbacuje mu poruku
if(!VoziloKosaca(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, -1, "GRESKA: Morate biti u kosilici!");//ukoliko igraÄ nije u kosilici izbacuje mu poruku
if(KosacPosao[playerid] == 1) return SendClientMessage(playerid, -1, "GRESKA: Vec ste zapoceli kosenje trave!");//ukoliko je igraÄ već zapoÄeo koÅ¡enje, izbacuje mu poruku
TravaTimer[playerid] = SetTimerEx("TimerTrava", 500, true, "i", playerid);//kreiramo timer od 500 milisekundi koji će provjeravati dali smo blizu objekta trave
SendClientMessage(playerid, -1, "Pokosi travu i zaradi novac.");//šalje igracu poruku
KosacPosao[playerid] = 1;//stavlja igraÄu varijablu za koÅ¡enje na 1, znaÄi da je zapoÄeo kosenje
Trava[0][playerid] = CreatePlayerObject(playerid,864,1952.6000000,-1157.2000000,20.2000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igraÄa
Trava[1][playerid] = CreatePlayerObject(playerid,864,1945.2000000,-1157.8000000,20.5000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igraÄa
Trava[2][playerid] = CreatePlayerObject(playerid,864,1938.0000000,-1158.2000000,20.8000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igraÄa
Trava[3][playerid] = CreatePlayerObject(playerid,864,1929.1000000,-1159.1000000,21.2000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igraÄa
Trava[4][playerid] = CreatePlayerObject(playerid,864,1921.3000000,-1160.4000000,21.7000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igraÄa
return 1;
}
[/pawn]
Dalje ide obican tajmer
[pawn]
forward TimerTrava(playerid);
public TimerTrava(playerid)
{
new Float:Pos[3];//x,y,z pozicije objekata trave
new pokoseno = 0;//broj pokošene trave
for(new i = 0; i < sizeof(Trava); i++)//prolazi kroz sve objekte trave koje smo kreirali
{
GetPlayerObjectPos(playerid, Trava[playerid], Pos[0], Pos[1], Pos[2]);//uzima x,y,z pozicije objekata trave
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos[0], Pos[1], Pos[2]) && VoziloKosaca(GetPlayerVehicleID(playerid)))//provjera dali je igraÄ u blizini objekta trave i dali je u kosilici
{
DestroyPlayerObject(playerid, Trava[playerid]);//unistava objekt trave kroz koji smo prosli
Trava[playerid] = 999;//stavlja varijablu za objekat na 999
}
if(Trava[playerid] == 999)//provjera dali je objekt trave na 999...
{
pokoseno++;//...ako je na 999, povecava broj pokosene trave za 1
}
}
if(pokoseno == 5)//broj pokoÅ¡ene trave nakon koje ce igraÄ dobiti novac (ako je pokosio 5 objekata, zavrÅ¡ava posao)
{
SendClientMessage(playerid, -1, "Zavrsili ste kosenje trave i zaradili 150$!");//Å¡alje igraÄu poruku
KosacPosao[playerid] = 0;//stavlja igraÄu varijablu za kosaca na 0
KillTimer(TravaTimer[playerid]);//uništava timer
GivePlayerMoney(playerid, 150);//daje igraÄu 150$
}
}
[/pawn]
Ovo ubaci gde su ti ostali public. Takodje moras ovo prilagoditi modu a ne samo ubaciti. Ako zapnes javljaj
EDIT: ovo je tut sa drugog foruma pa nisam hteo link kaciti.
Eto Tosic ti je dao tutorial jesi uspeo da sredis sve to ?