Tutorial by V01D
6,342
6,342
pregleda
41
41
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 5 godina
Da se ne lažemo - ovo i nije baš fino.
Mogao si u jedan enum da staviš sve Timer IDove i onda samo switch timerid unutar tog tajmera i to je to...
Ali ako ipak hoćeš ovako po 9 mini tajmera, ovo je stvarno katastrofa:
Ovo (važi za sve ostale tajmere):
...je moglo i ovako:
btw mogao je i default case da bude case 0 a poslednji da bude default 😄
I za neke od ovih varijabli poput UTutorialu si mogao da koristiš i PVar jer se koristi jako retko i onda nema potrebe da se pravi varijabla, ovo važi za sve varijable koje ćeš koristiti 2-3 puta 😄
Takodje ne moras posebnu varijablu za svaki delic tutoriala (npr ProveraVojnik{playerid}) nego kreiras jednu varijablu ili PVar za ceo tutorijal i stavljas vrednosti iz enum-a
Isto i ovaj timer moze da se doda jedna varijabla, razlog je sledeci:
- Manje koristis memorije
- Apstraktna masina radi na taj nacin da koristi look-up table za svaku varijablu sto bi znacilo da on mora 5 puta da u ovom primeru pristupa istoj varijabli u globalnoj tabli umesto da kreiras lokalnu varijablu i da lagano pristupi njoj jer ne mora da pretarzuje celu tablu od npr 500 varijabli nego samo direkt pristupi ovoj.
Nadam se da je bilo jasno 🙂
Mogao si u jedan enum da staviš sve Timer IDove i onda samo switch timerid unutar tog tajmera i to je to...
Ali ako ipak hoćeš ovako po 9 mini tajmera, ovo je stvarno katastrofa:
Ovo (važi za sve ostale tajmere):
timer OverLordPricaTimer(playerid)
{
switch(OverLordTimer{playerid})
{
case 5:
{
TutorialMessage(playerid, "OverLord: Bravo-Six ovde OverLord, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 4:
{
TutorialMessage(playerid, "OverLord: Imam metu na vidiku, prijem!");
OverLordTimer{playerid}--;
TogglePlayerControllable(playerid, 0);
defer OverLordPricaTimer(playerid);
return 1;
}
case 3:
{
TutorialMessage(playerid, "OverLord: Trazim dozvolu za pucanje, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 2:
{
TutorialMessage(playerid, "Bravo-Six: OverLord ovde Bravo-Six, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 1:
{
TutorialMessage(playerid, "Bravo-Six: Odobravamo pucanje! Ne zaboravi da pokupis dokumenta, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 0:
{
TogglePlayerControllable(playerid, 1);
TutorialMessage(playerid, "Dobio si dozvolu za pucanje, upucaj metu!");
SetCameraBehindPlayer(playerid);
return 1;
}
}
return 1;
}...je moglo i ovako:
timer OverLordPricaTimer(playerid, step)
{
switch(step)
{
case 1:
{
TutorialMessage(playerid, "OverLord: Imam metu na vidiku, prijem!");
TogglePlayerControllable(playerid, 0);
defer OverLordPricaTimer(playerid, step + 1);
}
case 2:
{
TutorialMessage(playerid, "OverLord: Trazim dozvolu za pucanje, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 3:
{
TutorialMessage(playerid, "Bravo-Six: OverLord ovde Bravo-Six, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 4:
{
TutorialMessage(playerid, "Bravo-Six: Odobravamo pucanje! Ne zaboravi da pokupis dokumenta, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 5:
{
TogglePlayerControllable(playerid, 1);
TutorialMessage(playerid, "Dobio si dozvolu za pucanje, upucaj metu!");
SetCameraBehindPlayer(playerid);
}
default:
{
TutorialMessage(playerid, "OverLord: Bravo-Six ovde OverLord, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
}
}
// Ovako koristis
defer OverLordPricaTimer(playerid);btw mogao je i default case da bude case 0 a poslednji da bude default 😄
I za neke od ovih varijabli poput UTutorialu si mogao da koristiš i PVar jer se koristi jako retko i onda nema potrebe da se pravi varijabla, ovo važi za sve varijable koje ćeš koristiti 2-3 puta 😄
Takodje ne moras posebnu varijablu za svaki delic tutoriala (npr ProveraVojnik{playerid}) nego kreiras jednu varijablu ili PVar za ceo tutorijal i stavljas vrednosti iz enum-a
timer KadaJePaoTimer(playerid)
{
switch(KadaJePao{playerid})
{
case 4:
{
TutorialMessage(playerid, "OverLord: Bravo-Six...");
//TextDrawShowForPlayer(playerid, CrniTD);
//TextDrawBoxColor(CrniTD, 0xFFFFFF15);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 3:
{
TutorialMessage(playerid, "OverLord: Zaseda..");
//TextDrawBoxColor(CrniTD, 0xFFFFFF30);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 2:
{
TutorialMessage(playerid, "Bravo-Six: OverLorde ovde Bravo-Six, ponovi, prijem!");
//TextDrawBoxColor(CrniTD, 0xFFFFFF70);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 1:
{
TutorialMessage(playerid, "Bravo-Six: SVE RASPOLOZIVE JEDINICE NEKA KRENU I IZVUKU DOKUMENTA!");
//TextDrawBoxColor(CrniTD, 0xFFFFFFFF);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 0:
{
TextDrawShowForPlayer(playerid, CrniTD);
TextDrawShowForPlayer(playerid, TeksticTD);
OcistiChatIgracu(playerid);
TextDrawSetString(TeksticTD, "Nakon par dana..");
defer IdeUBolnicuTimer(playerid);
return 1;
}
}
return 1;
}Isto i ovaj timer moze da se doda jedna varijabla, razlog je sledeci:
- Manje koristis memorije
- Apstraktna masina radi na taj nacin da koristi look-up table za svaku varijablu sto bi znacilo da on mora 5 puta da u ovom primeru pristupa istoj varijabli u globalnoj tabli umesto da kreiras lokalnu varijablu i da lagano pristupi njoj jer ne mora da pretarzuje celu tablu od npr 500 varijabli nego samo direkt pristupi ovoj.
Nadam se da je bilo jasno 🙂
pre 5 godina
Alhemičar wrote on July 5, 2020, 9:53 pm:
Da se ne lažemo - ovo i nije baš fino.
Mogao si u jedan enum da staviš sve Timer IDove i onda samo switch timerid unutar tog tajmera i to je to...
Ali ako ipak hoćeš ovako po 9 mini tajmera, ovo je stvarno katastrofa:
Ovo (važi za sve ostale tajmere):
...je moglo i ovako:
btw mogao je i default case da bude case 0 a poslednji da bude default 😄
I za neke od ovih varijabli poput UTutorialu si mogao da koristiš i PVar jer se koristi jako retko i onda nema potrebe da se pravi varijabla, ovo važi za sve varijable koje ćeš koristiti 2-3 puta 😄
Takodje ne moras posebnu varijablu za svaki delic tutoriala (npr ProveraVojnik{playerid}) nego kreiras jednu varijablu ili PVar za ceo tutorijal i stavljas vrednosti iz enum-a
Isto i ovaj timer moze da se doda jedna varijabla, razlog je sledeci:
- Manje koristis memorije
- Apstraktna masina radi na taj nacin da koristi look-up table za svaku varijablu sto bi znacilo da on mora 5 puta da u ovom primeru pristupa istoj varijabli u globalnoj tabli umesto da kreiras lokalnu varijablu i da lagano pristupi njoj jer ne mora da pretarzuje celu tablu od npr 500 varijabli nego samo direkt pristupi ovoj.
Nadam se da je bilo jasno 🙂
Mogao si u jedan enum da staviš sve Timer IDove i onda samo switch timerid unutar tog tajmera i to je to...
Ali ako ipak hoćeš ovako po 9 mini tajmera, ovo je stvarno katastrofa:
Ovo (važi za sve ostale tajmere):
timer OverLordPricaTimer(playerid)
{
switch(OverLordTimer{playerid})
{
case 5:
{
TutorialMessage(playerid, "OverLord: Bravo-Six ovde OverLord, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 4:
{
TutorialMessage(playerid, "OverLord: Imam metu na vidiku, prijem!");
OverLordTimer{playerid}--;
TogglePlayerControllable(playerid, 0);
defer OverLordPricaTimer(playerid);
return 1;
}
case 3:
{
TutorialMessage(playerid, "OverLord: Trazim dozvolu za pucanje, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 2:
{
TutorialMessage(playerid, "Bravo-Six: OverLord ovde Bravo-Six, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 1:
{
TutorialMessage(playerid, "Bravo-Six: Odobravamo pucanje! Ne zaboravi da pokupis dokumenta, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 0:
{
TogglePlayerControllable(playerid, 1);
TutorialMessage(playerid, "Dobio si dozvolu za pucanje, upucaj metu!");
SetCameraBehindPlayer(playerid);
return 1;
}
}
return 1;
}...je moglo i ovako:
timer OverLordPricaTimer(playerid, step)
{
switch(step)
{
case 1:
{
TutorialMessage(playerid, "OverLord: Imam metu na vidiku, prijem!");
TogglePlayerControllable(playerid, 0);
defer OverLordPricaTimer(playerid, step + 1);
}
case 2:
{
TutorialMessage(playerid, "OverLord: Trazim dozvolu za pucanje, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 3:
{
TutorialMessage(playerid, "Bravo-Six: OverLord ovde Bravo-Six, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 4:
{
TutorialMessage(playerid, "Bravo-Six: Odobravamo pucanje! Ne zaboravi da pokupis dokumenta, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 5:
{
TogglePlayerControllable(playerid, 1);
TutorialMessage(playerid, "Dobio si dozvolu za pucanje, upucaj metu!");
SetCameraBehindPlayer(playerid);
}
default:
{
TutorialMessage(playerid, "OverLord: Bravo-Six ovde OverLord, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
}
}
// Ovako koristis
defer OverLordPricaTimer(playerid);btw mogao je i default case da bude case 0 a poslednji da bude default 😄
I za neke od ovih varijabli poput UTutorialu si mogao da koristiš i PVar jer se koristi jako retko i onda nema potrebe da se pravi varijabla, ovo važi za sve varijable koje ćeš koristiti 2-3 puta 😄
Takodje ne moras posebnu varijablu za svaki delic tutoriala (npr ProveraVojnik{playerid}) nego kreiras jednu varijablu ili PVar za ceo tutorijal i stavljas vrednosti iz enum-a
timer KadaJePaoTimer(playerid)
{
switch(KadaJePao{playerid})
{
case 4:
{
TutorialMessage(playerid, "OverLord: Bravo-Six...");
//TextDrawShowForPlayer(playerid, CrniTD);
//TextDrawBoxColor(CrniTD, 0xFFFFFF15);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 3:
{
TutorialMessage(playerid, "OverLord: Zaseda..");
//TextDrawBoxColor(CrniTD, 0xFFFFFF30);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 2:
{
TutorialMessage(playerid, "Bravo-Six: OverLorde ovde Bravo-Six, ponovi, prijem!");
//TextDrawBoxColor(CrniTD, 0xFFFFFF70);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 1:
{
TutorialMessage(playerid, "Bravo-Six: SVE RASPOLOZIVE JEDINICE NEKA KRENU I IZVUKU DOKUMENTA!");
//TextDrawBoxColor(CrniTD, 0xFFFFFFFF);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 0:
{
TextDrawShowForPlayer(playerid, CrniTD);
TextDrawShowForPlayer(playerid, TeksticTD);
OcistiChatIgracu(playerid);
TextDrawSetString(TeksticTD, "Nakon par dana..");
defer IdeUBolnicuTimer(playerid);
return 1;
}
}
return 1;
}Isto i ovaj timer moze da se doda jedna varijabla, razlog je sledeci:
- Manje koristis memorije
- Apstraktna masina radi na taj nacin da koristi look-up table za svaku varijablu sto bi znacilo da on mora 5 puta da u ovom primeru pristupa istoj varijabli u globalnoj tabli umesto da kreiras lokalnu varijablu i da lagano pristupi njoj jer ne mora da pretarzuje celu tablu od npr 500 varijabli nego samo direkt pristupi ovoj.
Nadam se da je bilo jasno 🙂
Pvars je sporije od normalnih varijabli, a sto se tice default-a, to je sve stvar navike.
https://wiki.sa-mp.com/wiki/Per-player_variable_system

Ja bih pvar koristio npr kad mi treba neka varijabla iz main GM u FS, al ovako zamijenim neku varijablu s pvar, ja ne bi.
pre 5 godina
V01D wrote on July 5, 2020, 4:34 pm:
Tip: FS
Slike ili Video: KLIKNI ME NEZNO TATICE
Opis i dodatne informacije: Posto mi je pun kurac tutoriala koji se svode na to da se pokazuju jedne te iste stvari i koje svaki jebeni put preskocim i skuvam kafu dok traju, odlucio sam da napravim nesto malcice zanimljivije, sto ce da sluzi kao sam uvod u pricu i server. Zanemarite kod.. Takodje, ovo je potrebno doraditi i uklopiti sa vasim serverom. Ne bih preporucio da se koristi kao FS vec da se ubaci direktno u skriptu, ali mozete i ovako. Testirano je na grandlarc modu!
Download link: NEZAN KLIK BEBO
Scan link: GitHub..
Credits: GordoN(IDEJA), Neki Stranac za mapu
Slike ili Video: KLIKNI ME NEZNO TATICE
Opis i dodatne informacije: Posto mi je pun kurac tutoriala koji se svode na to da se pokazuju jedne te iste stvari i koje svaki jebeni put preskocim i skuvam kafu dok traju, odlucio sam da napravim nesto malcice zanimljivije, sto ce da sluzi kao sam uvod u pricu i server. Zanemarite kod.. Takodje, ovo je potrebno doraditi i uklopiti sa vasim serverom. Ne bih preporucio da se koristi kao FS vec da se ubaci direktno u skriptu, ali mozete i ovako. Testirano je na grandlarc modu!
Download link: NEZAN KLIK BEBO
Scan link: GitHub..
Credits: GordoN(IDEJA), Neki Stranac za mapu
Lep system tutoriala, BRAVO VO1D-E !
pre 5 godina
Alhemičar wrote on July 5, 2020, 9:53 pm:
Da se ne lažemo - ovo i nije baš fino.
Mogao si u jedan enum da staviš sve Timer IDove i onda samo switch timerid unutar tog tajmera i to je to...
Ali ako ipak hoćeš ovako po 9 mini tajmera, ovo je stvarno katastrofa:
Ovo (važi za sve ostale tajmere):
...je moglo i ovako:
btw mogao je i default case da bude case 0 a poslednji da bude default 😄
I za neke od ovih varijabli poput UTutorialu si mogao da koristiš i PVar jer se koristi jako retko i onda nema potrebe da se pravi varijabla, ovo važi za sve varijable koje ćeš koristiti 2-3 puta 😄
Takodje ne moras posebnu varijablu za svaki delic tutoriala (npr ProveraVojnik{playerid}) nego kreiras jednu varijablu ili PVar za ceo tutorijal i stavljas vrednosti iz enum-a
Isto i ovaj timer moze da se doda jedna varijabla, razlog je sledeci:
- Manje koristis memorije
- Apstraktna masina radi na taj nacin da koristi look-up table za svaku varijablu sto bi znacilo da on mora 5 puta da u ovom primeru pristupa istoj varijabli u globalnoj tabli umesto da kreiras lokalnu varijablu i da lagano pristupi njoj jer ne mora da pretarzuje celu tablu od npr 500 varijabli nego samo direkt pristupi ovoj.
Nadam se da je bilo jasno 🙂
Mogao si u jedan enum da staviš sve Timer IDove i onda samo switch timerid unutar tog tajmera i to je to...
Ali ako ipak hoćeš ovako po 9 mini tajmera, ovo je stvarno katastrofa:
Ovo (važi za sve ostale tajmere):
timer OverLordPricaTimer(playerid)
{
switch(OverLordTimer{playerid})
{
case 5:
{
TutorialMessage(playerid, "OverLord: Bravo-Six ovde OverLord, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 4:
{
TutorialMessage(playerid, "OverLord: Imam metu na vidiku, prijem!");
OverLordTimer{playerid}--;
TogglePlayerControllable(playerid, 0);
defer OverLordPricaTimer(playerid);
return 1;
}
case 3:
{
TutorialMessage(playerid, "OverLord: Trazim dozvolu za pucanje, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 2:
{
TutorialMessage(playerid, "Bravo-Six: OverLord ovde Bravo-Six, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 1:
{
TutorialMessage(playerid, "Bravo-Six: Odobravamo pucanje! Ne zaboravi da pokupis dokumenta, prijem!");
OverLordTimer{playerid}--;
defer OverLordPricaTimer(playerid);
return 1;
}
case 0:
{
TogglePlayerControllable(playerid, 1);
TutorialMessage(playerid, "Dobio si dozvolu za pucanje, upucaj metu!");
SetCameraBehindPlayer(playerid);
return 1;
}
}
return 1;
}...je moglo i ovako:
timer OverLordPricaTimer(playerid, step)
{
switch(step)
{
case 1:
{
TutorialMessage(playerid, "OverLord: Imam metu na vidiku, prijem!");
TogglePlayerControllable(playerid, 0);
defer OverLordPricaTimer(playerid, step + 1);
}
case 2:
{
TutorialMessage(playerid, "OverLord: Trazim dozvolu za pucanje, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 3:
{
TutorialMessage(playerid, "Bravo-Six: OverLord ovde Bravo-Six, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 4:
{
TutorialMessage(playerid, "Bravo-Six: Odobravamo pucanje! Ne zaboravi da pokupis dokumenta, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
case 5:
{
TogglePlayerControllable(playerid, 1);
TutorialMessage(playerid, "Dobio si dozvolu za pucanje, upucaj metu!");
SetCameraBehindPlayer(playerid);
}
default:
{
TutorialMessage(playerid, "OverLord: Bravo-Six ovde OverLord, prijem!");
defer OverLordPricaTimer(playerid, step + 1);
}
}
}
// Ovako koristis
defer OverLordPricaTimer(playerid);btw mogao je i default case da bude case 0 a poslednji da bude default 😄
I za neke od ovih varijabli poput UTutorialu si mogao da koristiš i PVar jer se koristi jako retko i onda nema potrebe da se pravi varijabla, ovo važi za sve varijable koje ćeš koristiti 2-3 puta 😄
Takodje ne moras posebnu varijablu za svaki delic tutoriala (npr ProveraVojnik{playerid}) nego kreiras jednu varijablu ili PVar za ceo tutorijal i stavljas vrednosti iz enum-a
timer KadaJePaoTimer(playerid)
{
switch(KadaJePao{playerid})
{
case 4:
{
TutorialMessage(playerid, "OverLord: Bravo-Six...");
//TextDrawShowForPlayer(playerid, CrniTD);
//TextDrawBoxColor(CrniTD, 0xFFFFFF15);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 3:
{
TutorialMessage(playerid, "OverLord: Zaseda..");
//TextDrawBoxColor(CrniTD, 0xFFFFFF30);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 2:
{
TutorialMessage(playerid, "Bravo-Six: OverLorde ovde Bravo-Six, ponovi, prijem!");
//TextDrawBoxColor(CrniTD, 0xFFFFFF70);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 1:
{
TutorialMessage(playerid, "Bravo-Six: SVE RASPOLOZIVE JEDINICE NEKA KRENU I IZVUKU DOKUMENTA!");
//TextDrawBoxColor(CrniTD, 0xFFFFFFFF);
KadaJePao{playerid}--;
defer KadaJePaoTimer(playerid);
return 1;
}
case 0:
{
TextDrawShowForPlayer(playerid, CrniTD);
TextDrawShowForPlayer(playerid, TeksticTD);
OcistiChatIgracu(playerid);
TextDrawSetString(TeksticTD, "Nakon par dana..");
defer IdeUBolnicuTimer(playerid);
return 1;
}
}
return 1;
}Isto i ovaj timer moze da se doda jedna varijabla, razlog je sledeci:
- Manje koristis memorije
- Apstraktna masina radi na taj nacin da koristi look-up table za svaku varijablu sto bi znacilo da on mora 5 puta da u ovom primeru pristupa istoj varijabli u globalnoj tabli umesto da kreiras lokalnu varijablu i da lagano pristupi njoj jer ne mora da pretarzuje celu tablu od npr 500 varijabli nego samo direkt pristupi ovoj.
Nadam se da je bilo jasno 🙂
Makenzi is that you 😄 ? Hvala, popravicu se sledeci put 😛
pre 5 godina
V01D wrote on July 6, 2020, 4:47 pm:
Makenzi is that you 😄 ? Hvala, popravicu se sledeci put 😛
Koji ga kurac vise otkrivate? Ako vam je nesto korisno napisao, ispostujte to a ne da ga otkrivate i posle on popije ban i opet da pravi novi mail i acc i sve
pre 5 godina
inquisitiveemmett wrote on July 6, 2020, 5:05 pm:
Koji ga kurac vise otkrivate? Ako vam je nesto korisno napisao, ispostujte to a ne da ga otkrivate i posle on popije ban i opet da pravi novi mail i acc i sve
Nije ovo Makenzi jbt, sala zato sto on pise slicno na ovaj fazon.. Makenzi je odustao od ovog foruma..
pre 5 godina
V01D wrote on July 6, 2020, 5:23 pm:
Nije ovo Makenzi jbt, sala zato sto on pise slicno na ovaj fazon.. Makenzi je odustao od ovog foruma..
Njegov je profil rekao mi je ja msm
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava