Započeo .ysi
•23. Apr. 2022.Oko posla
595
pregleda
10
postova
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
203
Postovi:
46
Teme:
Pridružio se:Jul 2020
23. Apr. 2022.
Problem(error/warning): Kako da napravim kosaca trave na kojem se trave spavnaju jedna po jedna i kad igrac predje preko trave sa kosilicom da se ta trava obrise i da se druga kreira i sve tako....?
Deo skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem): //
Deo skripte:
//Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
//Slika/video ingame problema(obavezno ako je ingame problem): //
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
419
Postovi:
45
Teme:
Pridružio se:Sep. 2020
23. Apr. 2022.
.ysi wrote on April 23, 2022, 12:34 pm:
Problem(error/warning): Kako da napravim kosaca trave na kojem se trave spavnaju jedna po jedna i kad igrac predje preko trave sa kosilicom da se ta trava obrise i da se druga kreira i sve tako....?
Deo skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem): //
Deo skripte:
//Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
//Slika/video ingame problema(obavezno ako je ingame problem): //
https://gtablkn.gg/forum/tutorijali-u-vezi-sa-mpa/tut-posao-kosaa-trave-sa-objektima-trave
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
203
Postovi:
46
Teme:
Pridružio se:Jul 2020
23. Apr. 2022.
A L M E X wrote on April 23, 2022, 2:14 pm:
malo staro, ali ipak posluzit ce ti
https://gtablkn.gg/forum/tutorijali-u-vezi-sa-mpa/tut-posao-kosaa-trave-sa-objektima-trave
https://gtablkn.gg/forum/tutorijali-u-vezi-sa-mpa/tut-posao-kosaa-trave-sa-objektima-trave
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP Doprinos2
Aktivan Član
106 / 250 XP
Početnik(2)
3,781
Postovi:
192
Teme:
Pridružio se:Jan. 2017
23. Apr. 2022.
.ysi wrote on April 23, 2022, 2:52 pm:
preko ovog sam tutoriala pokusao nesto napraviti al ne ide...
Pošalji nam tvoj kod kako si hteo da napraviš pa ćemo onda i moći da pomognemo. 🙂
Former SA:MP server developer
Founder @ cyformat.rs
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
203
Postovi:
46
Teme:
Pridružio se:Jul 2020
23. Apr. 2022.
Vasic wrote on April 23, 2022, 3:15 pm:
Pošalji nam tvoj kod kako si hteo da napraviš pa ćemo onda i moći da pomognemo. 🙂
ovo se nalazi u komandi
if(!KosenjeVozila(GetPlayerVehicleID(playerid))) return SCM(playerid, -1, ""Sgaa" "BELA"Niste u kosilici!");
TravaTimer = SetTimerEx("TimerTrava", 500, true, "i", playerid);
KosenjeTrave = 1;
Grass = CreateDynamicObject(817, 1560.958007, -2155.465820, 12.857999, 0.000000, 0.000000, 0.000000, object_world, object_int, -1, 300.00, 300.00);
SendClientMessage(playerid, -1, ""col_job"(PfsO): {FFFFFF}Poceli ste sa kosenjem trave.");
evo timer:
forward TimerTrava(playerid);
public TimerTrava(playerid)
{
new Float:Pos;
new pokoseno = 0;
for(new i = 0; i < sizeof(Grass); i++)
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos) && KosenjeVozila(GetPlayerVehicleID(playerid)))
{
DestroyDynamicObject(Grass);
Grass = 999;
}
if(Grass == 999)
{
pokoseno++;
Grass = CreateDynamicObject(817, 1561.155273, -2162.319091, 12.857999, 0.000000, 0.000000, 0.000000, object_world, object_int, -1, 300.00, 300.00); //ovdje sam stao
}
}
if(pokoseno == 21)
{
SendClientMessage(playerid, -1, "uspjesno");
KosenjeTrave = 0;
KillTimer(TravaTimer);
GivePlayerMoney(playerid, 123);
}
}
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP Doprinos2
Aktivan Član
106 / 250 XP
Početnik(2)
3,781
Postovi:
192
Teme:
Pridružio se:Jan. 2017
23. Apr. 2022.
Tajmer ti se poziva svakih 0.5 sekundi i to se ponavlja, a na vrhu funkcije koju pozivas u tajmeru se nalazi varijabla "pokoseno" i dodeljena joj je vrednost 0, sto znaci da se varijabla resetuje na nulu svaki put kada se funkcija pozove - sto dovodi do zakljucka da se uslov koji proverava da li je "pokoseno" jednako 21 nikada nece ispuniti.
Former SA:MP server developer
Founder @ cyformat.rs
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
203
Postovi:
46
Teme:
Pridružio se:Jul 2020
23. Apr. 2022.
Vasic wrote on April 23, 2022, 5:18 pm:
Tajmer ti se poziva svakih 0.5 sekundi i to se ponavlja, a na vrhu funkcije koju pozivas u tajmeru se nalazi varijabla "pokoseno" i dodeljena joj je vrednost 0, sto znaci da se varijabla resetuje na nulu svaki put kada se funkcija pozove - sto dovodi do zakljucka da se uslov koji proverava da li je "pokoseno" jednako 21 nikada nece ispuniti.
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP Doprinos2
Aktivan Član
106 / 250 XP
Početnik(2)
3,781
Postovi:
192
Teme:
Pridružio se:Jan. 2017
23. Apr. 2022.
Uradio sam što jednostavnije da bi skontao, testiraj ovo pošto ja nisam.
Ovo bi mogao još više da pojednostaviš, ali probaj ovako za početak. 🙂
new
MowingStatus,
Grass, // Proširi array za Grass koliko želiš da ti bude
MowingTimer;
cmd:mowing(playerid, params[])
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 572) return SendClientMessage(playerid, -1, "Morate biti u kosilici.");
MowingStatus = 1;
Grass = CreateDynamicObject(817, 1561.155273, -2162.319091, 12.857999, 0.00000, 0.00000, 0.00000, -1, -1, playerid);
MowingTimer = SetTimerEx("Mowing", 500, true, "i", playerid);
SendClientMessage(playerid, "Poceli ste sa kosenjem trave, predjite preko prvog objekta trave.");
return 1;
}
forward Mowing(playerid);
public Mowing(playerid)
{
new Float:Pos;
switch(MowingStatus)
{
case 1:
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos)
{
DestroyDynamicObject(Grass);
Grass = CreateDynamicObject(817, X, Y, Z, 0.00000, 0.00000, 0.00000, -1, -1, playerid);
MowingStatus = 2;
}
}
case 2:
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos)
{
DestroyDynamicObject(Grass);
Grass = CreateDynamicObject(817, X, Y, Z, 0.00000, 0.00000, 0.00000, -1, -1, playerid);
MowingStatus = 3;
}
}
case 3:
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos)
{
KillTimer(MowingTimer);
DestroyDynamicObject(Grass);
MowingStatus = 0;
GivePlayerMoney(playerid, 500);
SendClientMessage(playerid, "Pokosili ste travu i dobili 500$.");
}
}
}
return 1;
}Ovo bi mogao još više da pojednostaviš, ali probaj ovako za početak. 🙂
Former SA:MP server developer
Founder @ cyformat.rs
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
241 / 250 XP
Početnik(0)
2,043
Postovi:
83
Teme:
Pridružio se:Jan. 2014
23. Apr. 2022.
Kreiras niz sa koordinatama i varijablu koja ce storati igracev objekat, kao i varijablu koja ce cuvati zadnju poziciju. Kada zapocne kosenje, resetiras varijable, podesis vrijednost niza varijable na 0, kreiras i prikazes objekat, i kreiras 1 funkciju koja se poziva kada dodje igrac na objekat, u kojoj brises stari, povecavas varijablu koja pokazuje na niz i ujedno vadis sa njom naredne koordinate gdje ces spawnati travu. Kada varijabla dosegne visinu niza (koordinata), posao je zavrsen.
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
203
Postovi:
46
Teme:
Pridružio se:Jul 2020
23. Apr. 2022.
Vasic wrote on April 23, 2022, 7:17 pm:
Uradio sam što jednostavnije da bi skontao, testiraj ovo pošto ja nisam.
Ovo bi mogao još više da pojednostaviš, ali probaj ovako za početak. 🙂
new
MowingStatus,
Grass, // Proširi array za Grass koliko želiš da ti bude
MowingTimer;
cmd:mowing(playerid, params[])
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 572) return SendClientMessage(playerid, -1, "Morate biti u kosilici.");
MowingStatus = 1;
Grass = CreateDynamicObject(817, 1561.155273, -2162.319091, 12.857999, 0.00000, 0.00000, 0.00000, -1, -1, playerid);
MowingTimer = SetTimerEx("Mowing", 500, true, "i", playerid);
SendClientMessage(playerid, "Poceli ste sa kosenjem trave, predjite preko prvog objekta trave.");
return 1;
}
forward Mowing(playerid);
public Mowing(playerid)
{
new Float:Pos;
switch(MowingStatus)
{
case 1:
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos)
{
DestroyDynamicObject(Grass);
Grass = CreateDynamicObject(817, X, Y, Z, 0.00000, 0.00000, 0.00000, -1, -1, playerid);
MowingStatus = 2;
}
}
case 2:
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos)
{
DestroyDynamicObject(Grass);
Grass = CreateDynamicObject(817, X, Y, Z, 0.00000, 0.00000, 0.00000, -1, -1, playerid);
MowingStatus = 3;
}
}
case 3:
{
GetDynamicObjectPos(Grass, Pos, Pos, Pos);
if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos, Pos, Pos)
{
KillTimer(MowingTimer);
DestroyDynamicObject(Grass);
MowingStatus = 0;
GivePlayerMoney(playerid, 500);
SendClientMessage(playerid, "Pokosili ste travu i dobili 500$.");
}
}
}
return 1;
}Ovo bi mogao još više da pojednostaviš, ali probaj ovako za početak. 🙂
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava
