FunRace LiveEvent

Skrilew Započeo V01D
pre 5 godina
4,191
pregleda
17
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
Skrilew
Godfather
pre 5 godina
Tip: FS
Slike ili Video: KLIKNI ME VIDEO
Opis i dodatne informacije: Video sam na fejsu lika koji je rekao kako bi voleo videti ovako nesto. Da nije samo klasican event gde vozis nesto sve vreme. Pa sam dosao na ideju da realizujem to, poenta je pratiti checkpointe, malo plivate u pocetku, zatim trcite jako malo, dobijate vozilo bandito, krenete na Mount Chiliad peske, malo kasnije dobijate biciklu i sa isto do vrha. Moguca su 3 pobednika, nazalost sam mogao samo predstaviti samo prvo mesto posto nemam prijatelja sa kojima mogu testati. Tesko je bilo predstaviti ovo slikama, tako da pogledajte video, prebacite na brzinu 2x da se ne smorite 😄
Download link: KLIKNI ME NEZNO
Scan link: GitHub
Credits: Andrija "V01D" Terzic
Teodor
Made Man
pre 5 godina
Nice 😁
Chuffy
Made Man
pre 5 godina
Ništa posebno. Samo kada igrač uđe u checkpoint gdje dobija vozilo da mu angle bude prema cp-u a ne na drugu stranu.  🙂
Skrilew
Godfather
pre 5 godina
Spooky. wrote on April 18, 2020, 11:12 am:
Ništa posebno. Samo kada igrač uđe u checkpoint gdje dobija vozilo da mu angle bude prema cp-u a ne na drugu stranu.  🙂


Prvo sam stavio tako, ali onda sam skontao, bolje ne, ovako kada ga okrene na desnu stranu, proci ce malo vremena dok se okrene na pravi put. Po meni je tako bolje i namerno je tako 😄
Gaucho69
Crime Lord
pre 5 godina
Fino odradjeno 😉
Jaksic
Underboss
pre 5 godina
Bravo mali
Luka Smith
Hustler
pre 5 godina
Odbrojavanje si mogao odraditi sa jednim tajmerom nema potrebe za tolikim tajmerima
Skrilew
Godfather
pre 5 godina
PauLJ wrote on April 18, 2020, 8:39 pm:
Odbrojavanje si mogao odraditi sa jednim tajmerom nema potrebe za tolikim tajmerima


Znam, iz nekog razloga nije radilo prvi put, drugi put nisam imao igraca da testam da li radi(kada ima vise igraca pojebe se iz bog zna kog razloga), tako da sam samo ostavio ovako :/
Trysha
Enforcer
pre 5 godina
Najss , sve pohvale  😎
Unkovic2405
Underboss
pre 5 godina
PauLJ wrote on April 18, 2020, 8:39 pm:
Odbrojavanje si mogao odraditi sa jednim tajmerom nema potrebe za tolikim tajmerima

Naravno da je mogao i sa tajmerima, naravno, ali je mogao i sa drugim stvarima ne ovako.
Nemoj vise ovako da radis sine, pogledaj na koje sve nacine mozes da radis, a ne da loopas kroz igrace.
Plus, ovo za mene nije fs jer nema OnFilterScriptInit, ali dobro to je neka moja politika sad, necu ja da se mesam tebi. Ovo ostalo je okej, plus ove varijable na pocetku mogu drugacije da se uradi, al samo cepaj. I fali ti y_hooks 🙂
Skrilew
Godfather
pre 5 godina
Unkovic wrote on April 18, 2020, 8:54 pm:
Naravno da je mogao i sa tajmerima, naravno, ali je mogao i sa drugim stvarima ne ovako.
Nemoj vise ovako da radis sine, pogledaj na koje sve nacine mozes da radis, a ne da loopas kroz igrace.
Plus, ovo za mene nije fs jer nema OnFilterScriptInit, ali dobro to je neka moja politika sad, necu ja da se mesam tebi. Ovo ostalo je okej, plus ove varijable na pocetku mogu drugacije da se uradi, al samo cepaj. I fali ti y_hooks 🙂


Mozes mi pokazati nacin, ili makar poslati link xD ?

Kontao sam da niko nece ubacivati kao FS, vec direktno u mod, mada nebitna stvar

Koji?

Hvala na kritici, ako mozes ostavi link od toga sto si nabrojao tako da mogu da se popravim 😄
Skrilew
Godfather
pre 5 godina
Unkovic wrote on April 18, 2020, 8:54 pm:
Naravno da je mogao i sa tajmerima, naravno, ali je mogao i sa drugim stvarima ne ovako.
Nemoj vise ovako da radis sine, pogledaj na koje sve nacine mozes da radis, a ne da loopas kroz igrace.
Plus, ovo za mene nije fs jer nema OnFilterScriptInit, ali dobro to je neka moja politika sad, necu ja da se mesam tebi. Ovo ostalo je okej, plus ove varijable na pocetku mogu drugacije da se uradi, al samo cepaj. I fali ti y_hooks 🙂


Sry za DP, ali skontao sam sta si hteo reci, hvala, potrudicu se vise i probacu bolje sledeci put 😄 <3
Unkovic2405
Underboss
pre 5 godina
V01D wrote on April 18, 2020, 9:17 pm:
Mozes mi pokazati nacin, ili makar poslati link xD ?

Kontao sam da niko nece ubacivati kao FS, vec direktno u mod, mada nebitna stvar

Koji?

Hvala na kritici, ako mozes ostavi link od toga sto si nabrojao tako da mogu da se popravim 😄


Pa  y hooks ti treba pri vrhu gore, ne mozes hook callback OnPlayerConnect na taj nacin bez y hooksa includovanog.
Na nacin da ne loopas kroz sve igrace, to se moze na drugacije nacine odraditi, al zamisli da loopas 1000 igraca, znas ono, vec.
algorhitmically
Shot Caller
pre 5 godina
Dobra zamisao, samo imam par saveta koji bi ti mozda koristili.

Ako pravis FS, nema veze sto ce neko mozda prebaciti u mod, trebao bi dodati inicijalizaciju(def filterscript i cb) i za korisnike koji ce ubaciti samo filterskriptu radi testiranja.

Kada pravis filterskripte postaraj se da svaka varijabla ima veze za filterskriptom i da ne prave probleme sa glavnom skriptom. Na primer ZauzetoMesto1 moze imati prefix fr_ i ime Mesto1 radi urednosti.

Na pocetku filterskripte obavezno stavi include fajlove koje ce koristiti filterskripta.

Posto vidim da koristis foreach umesto prolaska kroz sve igrace mogao bi napraviti iterator u koji ces ubacivati ID-eve igraca koji udju na event(i kada izadju na primer sa servera obrises id iz iteratora) i onda koristis taj iterator u foreach-u da prodjes kroz sve igrace koji su na eventu umesto da prolazis kroz bas sve.

Ne moras koristiti pet tajmera, u y_timers imas solidne stvari mada se uvek da resiti i na default nacin. Primer: mozes napraviti jedan timer od 1000 ms koji ce eto raditi kada zapocnes count i neku variablu od koliko sekundi zelis na primer 5 i onda svake sekunde ce ti smanjivati vreme i kada dodje do 0 pokrenes event i unistis tajmer.

Mogao bi dodati i komandu za izlazak sa eventa kada neko ne zeli nastaviti.

Kada se pokrene event(cmd: joinfunrace) kreiraju se objekti za one kapije, ali kada se event zavrsi one nece biti unistene i svaki put ce se kreirati ponovo tako da bi mozda bilo dobro da stavis hook OGMI koji kreira te objekte tada i posle radis sa njima umesto da ih kreiras/unistavas uzastopno.

Takodje, imas redudansu u kodu(u cmd joinfunrace), elem u ovom switchu:

switch(FunRacePokrenut)
{
case 1: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2677.8455,-2646.6814,8.5866); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 2: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2678.4250,-2643.7983,8.1130); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 3: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2680.8767,-2641.5916,7.5605); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 4: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2683.9041,-2641.6577,7.2835); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 5: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2684.1782,-2644.1833,7.6243); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 6: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2684.2847,-2646.4609,7.9450); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 7: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2686.9932,-2646.7605,7.7321); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 8: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2689.6938,-2644.4905,7.1467); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 9: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2690.0769,-2641.4307,6.6661); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 10: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2691.7625,-2647.8364,7.4368); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
}


Posto u gornjem switchu skoro svaka stavka je ista osim pozivanja SetPlayerPos funkcije, mozes uraditi ovako:

SetPlayerVirtualWorld(playerid, 1);
FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!");
FunRace = true;
switch(FunRacePokrenut)
{
case 1: {  SetPlayerPos(playerid, -2677.8455,-2646.6814,8.5866); }
case 2: {  SetPlayerPos(playerid, -2678.4250,-2643.7983,8.1130);  }
case 3: {  SetPlayerPos(playerid, -2680.8767,-2641.5916,7.5605);  }
case 4: {  SetPlayerPos(playerid, -2683.9041,-2641.6577,7.2835);  }
case 5: {  SetPlayerPos(playerid, -2684.1782,-2644.1833,7.6243);  }
case 6: {  SetPlayerPos(playerid, -2684.2847,-2646.4609,7.9450);  }
case 7: {  SetPlayerPos(playerid, -2686.9932,-2646.7605,7.7321);  }
case 8: {  SetPlayerPos(playerid, -2689.6938,-2644.4905,7.1467);  }
case 9: {  SetPlayerPos(playerid, -2690.0769,-2641.4307,6.6661);  }
case 10: {  SetPlayerPos(playerid, -2691.7625,-2647.8364,7.4368);  }
}
FunRacePokrenut++;


Mozda bi bilo zanimljivo da dodas jezicku lokalizaciju u svoje radove i da ih objavljujes na raznim forumima mada sve ovo sto sam napiso su samo saveti i na tebi je da li ces ih praktikovati, jer svako ima svoje principe i nacine rada.
Uzgred, ako ti zatreba pomoc oko testiranja slobodno mi pisi, rado cu ti pomoci, lep pozdrav.
Skrilew
Godfather
pre 5 godina
algorhitmically wrote on April 19, 2020, 4:47 am:
Dobra zamisao, samo imam par saveta koji bi ti mozda koristili.

Ako pravis FS, nema veze sto ce neko mozda prebaciti u mod, trebao bi dodati inicijalizaciju(def filterscript i cb) i za korisnike koji ce ubaciti samo filterskriptu radi testiranja.

Kada pravis filterskripte postaraj se da svaka varijabla ima veze za filterskriptom i da ne prave probleme sa glavnom skriptom. Na primer ZauzetoMesto1 moze imati prefix fr_ i ime Mesto1 radi urednosti.

Na pocetku filterskripte obavezno stavi include fajlove koje ce koristiti filterskripta.

Posto vidim da koristis foreach umesto prolaska kroz sve igrace mogao bi napraviti iterator u koji ces ubacivati ID-eve igraca koji udju na event(i kada izadju na primer sa servera obrises id iz iteratora) i onda koristis taj iterator u foreach-u da prodjes kroz sve igrace koji su na eventu umesto da prolazis kroz bas sve.

Ne moras koristiti pet tajmera, u y_timers imas solidne stvari mada se uvek da resiti i na default nacin. Primer: mozes napraviti jedan timer od 1000 ms koji ce eto raditi kada zapocnes count i neku variablu od koliko sekundi zelis na primer 5 i onda svake sekunde ce ti smanjivati vreme i kada dodje do 0 pokrenes event i unistis tajmer.

Mogao bi dodati i komandu za izlazak sa eventa kada neko ne zeli nastaviti.

Kada se pokrene event(cmd: joinfunrace) kreiraju se objekti za one kapije, ali kada se event zavrsi one nece biti unistene i svaki put ce se kreirati ponovo tako da bi mozda bilo dobro da stavis hook OGMI koji kreira te objekte tada i posle radis sa njima umesto da ih kreiras/unistavas uzastopno.

Takodje, imas redudansu u kodu(u cmd joinfunrace), elem u ovom switchu:

switch(FunRacePokrenut)
{
case 1: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2677.8455,-2646.6814,8.5866); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 2: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2678.4250,-2643.7983,8.1130); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 3: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2680.8767,-2641.5916,7.5605); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 4: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2683.9041,-2641.6577,7.2835); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 5: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2684.1782,-2644.1833,7.6243); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 6: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2684.2847,-2646.4609,7.9450); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 7: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2686.9932,-2646.7605,7.7321); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 8: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2689.6938,-2644.4905,7.1467); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 9: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2690.0769,-2641.4307,6.6661); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
case 10: { SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, -2691.7625,-2647.8364,7.4368); FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!"); FunRace = true; FunRacePokrenut++; }
}


Posto u gornjem switchu skoro svaka stavka je ista osim pozivanja SetPlayerPos funkcije, mozes uraditi ovako:

SetPlayerVirtualWorld(playerid, 1);
FunRaceMessage(playerid, "Usao si u Fun Race!Igra uskoro pocinje, srecno!");
FunRace = true;
switch(FunRacePokrenut)
{
case 1: {  SetPlayerPos(playerid, -2677.8455,-2646.6814,8.5866); }
case 2: {  SetPlayerPos(playerid, -2678.4250,-2643.7983,8.1130);  }
case 3: {  SetPlayerPos(playerid, -2680.8767,-2641.5916,7.5605);  }
case 4: {  SetPlayerPos(playerid, -2683.9041,-2641.6577,7.2835);  }
case 5: {  SetPlayerPos(playerid, -2684.1782,-2644.1833,7.6243);  }
case 6: {  SetPlayerPos(playerid, -2684.2847,-2646.4609,7.9450);  }
case 7: {  SetPlayerPos(playerid, -2686.9932,-2646.7605,7.7321);  }
case 8: {  SetPlayerPos(playerid, -2689.6938,-2644.4905,7.1467);  }
case 9: {  SetPlayerPos(playerid, -2690.0769,-2641.4307,6.6661);  }
case 10: {  SetPlayerPos(playerid, -2691.7625,-2647.8364,7.4368);  }
}
FunRacePokrenut++;


Mozda bi bilo zanimljivo da dodas jezicku lokalizaciju u svoje radove i da ih objavljujes na raznim forumima mada sve ovo sto sam napiso su samo saveti i na tebi je da li ces ih praktikovati, jer svako ima svoje principe i nacine rada.
Uzgred, ako ti zatreba pomoc oko testiranja slobodno mi pisi, rado cu ti pomoci, lep pozdrav.


Hvalaa ti punoo, znaci mi tvoj komentar! Ovo sve sto si rekao, istina, potrudicu se bolje sledeci put 😄 <3

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava