Pretraga

Pritisnite Enter za pretragu ili Escape za zatvaranje

Zaključano

[Pomoc] oko posla

Započeo CoNe998
pre 9 godina
273
pregleda
3
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
CoNe998
Street Runner
pre 9 godina
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): /
expressoboy123
Godfather
pre 9 godina
Negde pri vrhu definisi.

new Trava;//objekti trave...broj 5 = broj objekata koje smo dodali
new KosacPosao;//treba nam za proveru dali je igrač već počeo kositi travu
new TravaTimer;//trebace nam za uništavanje timera
new Kosilica;//kosilice


Pod OnPlayerConnect

KosacPosao = 0;//stavlja igraču varijablu za kosenje na 0

Kosilica = AddStaticVehicleEx(572,1956.7000000,-1163.5000000,20.3000000,90.0000000,128,128, 1000);//stvara kosilicu i pamti njegov id u varijabli Kosilica 
Kosilica = AddStaticVehicleEx(572,1956.7000000,-1166.3000000,20.3000000,90.0000000,128,128, 1000);//stvara kosilicu i pamti njegov id u varijabli Kosilica
Kosilica = AddStaticVehicleEx(572,1956.7000000,-1169.0000000,20.3000000,90.0000000,128,128, 1000);//stvara kosilicu



E sada gde su ti ostali stockovi za vozila samo ubaci ovaj.

stock VoziloKosaca(carid)
{
for(new i = 0; i < sizeof(Kosilica); i++)
{
if(carid == Kosilica) return 1;
}
return 0;
}

Provera u kojoj izbacuje igraca iz vozila (ti definisi po idu koji tb odgovara)

if(newstate == PLAYER_STATE_DRIVER)//provjera dali je na mjestu vozaca
{
if(VoziloKosaca(GetPlayerVehicleID(playerid)) && PlayerInfo != 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
}
}


Sada komanda BE koristi YCMD ja msm

YCMD:kosenje(playerid, params[],help)
{
if(PlayerInfo != 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 == 1) return SendClientMessage(playerid, -1, "GRESKA: Vec ste zapoceli kosenje trave!");//ukoliko je igrač već započeo košenje, izbacuje mu poruku
TravaTimer = 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 = 1;//stavlja igraču varijablu za košenje na 1, znači da je započeo kosenje
Trava = CreatePlayerObject(playerid,864,1952.6000000,-1157.2000000,20.2000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igrača
Trava = CreatePlayerObject(playerid,864,1945.2000000,-1157.8000000,20.5000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igrača
Trava = CreatePlayerObject(playerid,864,1938.0000000,-1158.2000000,20.8000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igrača
Trava = CreatePlayerObject(playerid,864,1929.1000000,-1159.1000000,21.2000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igrača
Trava = CreatePlayerObject(playerid,864,1921.3000000,-1160.4000000,21.7000000,0.00000000,0.00000000,0.00000000);//kreiramo objekt za igrača
return 1;
}


Dalje ide obican tajmer

forward TimerTrava(playerid);
public TimerTrava(playerid)
{
new Float:Pos;//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, Pos, Pos, Pos);//uzima x,y,z pozicije objekata trave
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos) && VoziloKosaca(GetPlayerVehicleID(playerid)))//provjera dali je igrač u blizini objekta trave i dali je u kosilici
{
DestroyPlayerObject(playerid, Trava);//unistava objekt trave kroz koji smo prosli
Trava = 999;//stavlja varijablu za objekat na 999
}
if(Trava == 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 = 0;//stavlja igraču varijablu za kosaca na 0
KillTimer(TravaTimer);//uništava timer
GivePlayerMoney(playerid, 150);//daje igraču 150$
}
}

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.
Rudimental
OG Legend
pre 9 godina
Eto Tosic ti je dao tutorial jesi uspeo da sredis sve to ?

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava