Započeo V01D
•8. Avg. 2020.Y_ITERATE
3,922
pregleda
14
postova
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
17 / 250 XP
Početnik(1)
2,272
Postovi:
76
Teme:
Pridružio se:Maj 2014
8. Avg. 2020.
Posto sam zapazio da ljudi idalje include-aju nesto, a pritom su to uradili zato sto im je neko rekao, i pored tutoriala koji mozete naci na OVOM LINKU idalje ne koriste jako korisnu stvar, a to su iteratori. Pokusaci sto prostije i sto jasnije da objasnim kako da ih koristite za vase svrhe..
Sta je to Iterator? Prostije objasnjeno, iterator je array(niz ponaski) koji u svojim praznim mestima sadrzi vrednost -1, dok mi ne dodamo svoju neku vrednost koju cemo kasnije moci koristiti. Sta to sve znaci? Ne morate brinuti o tome sada, bice jasnije na primeru!
Ajmo poceti, pre svega, morate include :
Nakon toga moramo deklarisati novi iterator i za to koristimo tag Iterator:
Sada mozemo da koristimo nas iterator i pokazacu jedan klasican primer za ovo, dok je upotreba naravno mnogo sira, u iterator cemo ubacivati administratore koji se konektaju na server..
Sada kada smo dodali ID naseg admina u iterator, i dodace svaki sledeci, mozemo krenuti da koristimo foreach da bi loop-ovali kroz sve admine, ovo moze imati siroku primenu kao sto je slanje poruka svim online adminima i umesto da loopujemo kroz svakog online igraca, mozemo samo loop-ovati kroz admine koji se nalaze u iteratoru Administratori :
Ovo je samo jedan od primera primene iteratora.. Naravno, obavezno je i da admina uklonimo iz iteratora i za to koristimo Iter_Remove :
Jako korisna stvar za nesto drugo moze biti i Iter_Clear koji ce izbrisati svaku vrednost iz iteratora :
Ovo je jedna klasicna primena za iteratore, jako prosta, i nadam se jasna. Pokusao sam objasniti sto bolje mogu, a nesto slozenije mozete videti na tutorialu koji sam ostavio u prvoj recenici tutoriala. Ako sam nesto pogresio, slobodno ispravite. Da napomenem da je ovo tutorial za pocetnike, tako da sam se trudio da koristim malo prostiju terminologiju radi lakseg shvatanja o cemu se ovde radi.. Hvala na paznji i zelim vam toplu vodu <3
P.S. jebes urednost bitna je poruka 😄
Sta je to Iterator? Prostije objasnjeno, iterator je array(niz ponaski) koji u svojim praznim mestima sadrzi vrednost -1, dok mi ne dodamo svoju neku vrednost koju cemo kasnije moci koristiti. Sta to sve znaci? Ne morate brinuti o tome sada, bice jasnije na primeru!
Ajmo poceti, pre svega, morate include :
#include Nakon toga moramo deklarisati novi iterator i za to koristimo tag Iterator:
new Iterator:ImeNasegIteratora;Sada mozemo da koristimo nas iterator i pokazacu jedan klasican primer za ovo, dok je upotreba naravno mnogo sira, u iterator cemo ubacivati administratore koji se konektaju na server..
new Iterator:Administratori; //Deklarisemo novi iterator, naziva Administratori i za velicinu stavimo MAX_PLAYERSpublic OnPlayerConnect(playerid) {
if(PlayerInfo >= 1) Iter_Add(Administratori, playerid); //Znaci, ovde vidimo proveru ako je igrac admin > ili = broju 1, doda ga u iterator
//Ako se jedan igrac konektuje sa id-em 25, pritom je taj igrac admin, u iterator ce se dodati vrednost 25, itd itd
}Sada kada smo dodali ID naseg admina u iterator, i dodace svaki sledeci, mozemo krenuti da koristimo foreach da bi loop-ovali kroz sve admine, ovo moze imati siroku primenu kao sto je slanje poruka svim online adminima i umesto da loopujemo kroz svakog online igraca, mozemo samo loop-ovati kroz admine koji se nalaze u iteratoru Administratori :
foreach(Administratori, i) { //Ovo ce loopovati kroz svakog igraca koji se nalazi u iteratoru Administratori
SendClientMessage(i, 0xC34848FF, "Poruka svakom online adminu!");
}
foreach(Player, i) { //Ovo ce loopovati kroz svakog igraca na serveru, vi procenite sta je brze :)
SendClientMessage(i, 0xC34848FF, "Poruka svakom online adminu!");
}Ovo je samo jedan od primera primene iteratora.. Naravno, obavezno je i da admina uklonimo iz iteratora i za to koristimo Iter_Remove :
public OnPlayerDisconnect(playerid, reason) {
Iter_Remove(Administratori, playerid); //Kada se diskonektuje igrac sa servera, brisemo njegov ID iz iteratora
}Jako korisna stvar za nesto drugo moze biti i Iter_Clear koji ce izbrisati svaku vrednost iz iteratora :
Iter_Clear(Administratori); //Sada ovaj iterator nece imati nijednu vrednost u sebi, ili u nasem slucaju nijedan ID adminaOvo je jedna klasicna primena za iteratore, jako prosta, i nadam se jasna. Pokusao sam objasniti sto bolje mogu, a nesto slozenije mozete videti na tutorialu koji sam ostavio u prvoj recenici tutoriala. Ako sam nesto pogresio, slobodno ispravite. Da napomenem da je ovo tutorial za pocetnike, tako da sam se trudio da koristim malo prostiju terminologiju radi lakseg shvatanja o cemu se ovde radi.. Hvala na paznji i zelim vam toplu vodu <3
P.S. jebes urednost bitna je poruka 😄
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,514
Postovi:
58
Teme:
Pridružio se:Nov. 2016
8. Avg. 2020.
YSI petica Voide ysi petica
btw kada se u foreach loopu koristi Iter_Remove padne server, tada je potrebno da se koristi Iter_SafeRemove
btw kada se u foreach loopu koristi Iter_Remove padne server, tada je potrebno da se koristi Iter_SafeRemove
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
17 / 250 XP
Početnik(1)
2,272
Postovi:
76
Teme:
Pridružio se:Maj 2014
8. Avg. 2020.
//>> Vedran wrote on August 8, 2020, 4:13 pm:
YSI petica Voide ysi petica
btw kada se u foreach loopu koristi Iter_Remove padne server, tada je potrebno da se koristi Iter_SafeRemove
btw kada se u foreach loopu koristi Iter_Remove padne server, tada je potrebno da se koristi Iter_SafeRemove
Auu to sam zaboravio napomenuti, bukvalno se secam kada mi je pao server zbog toga, pa sam se par sati jebavao xDD
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
106
Postovi:
5
Teme:
Pridružio se:Jun 2020
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
116
Postovi:
2
Teme:
Pridružio se:Avg. 2020
8. Avg. 2020.
__vedran.xyz77 wrote on August 8, 2020, 4:13 pm:
YSI petica Voide ysi petica
btw kada se u foreach loopu koristi Iter_Remove padne server, tada je potrebno da se koristi Iter_SafeRemove
btw kada se u foreach loopu koristi Iter_Remove padne server, tada je potrebno da se koristi Iter_SafeRemove
Ja na jednom modu ne koristim YSI5 jer je nestabilna za neke stvari i stvari poput multi languagea i tekst managementa uopšte ne rade u petici i neće skoro
Ne treba toliko siliti YSI5 ako neko prosto ne koristi mogućnosti istog
I imam negativan komentar a to je da ti ne treba pAdmin varijabla uopšte nego sve preko iteratora da se radi
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
116
Postovi:
2
Teme:
Pridružio se:Avg. 2020
8. Avg. 2020.
Da dodam gore da ipak treba pAdmin jer sam zaboravio da ne koristi y_groups budala 😄
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
17 / 250 XP
Početnik(1)
2,272
Postovi:
76
Teme:
Pridružio se:Maj 2014
8. Avg. 2020.
ZABORAVIO SAM JAKO BITNU STVAR
Pisem preko telefona ne zamerite..
public OnPlayerDisconnect(playerid, reason) {
if(Iter_Contains(Administratori, playerid)) Iter_Remove(Administratori, playerid);
}Pisem preko telefona ne zamerite..
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
116
Postovi:
2
Teme:
Pridružio se:Avg. 2020
8. Avg. 2020.
V01D wrote on August 8, 2020, 5:07 pm:
ZABORAVIO SAM JAKO BITNU STVAR
Pisem preko telefona ne zamerite..
public OnPlayerDisconnect(playerid, reason) {
if(Iter_Contains(Administratori, playerid)) Iter_Remove(Administratori, playerid);
}Pisem preko telefona ne zamerite..
Nemoj sve u jednoj liniji nego K&R i dole jebem mu boga 😄
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
9 / 250 XP
Početnik(1)
2,044
Postovi:
55
Teme:
Pridružio se:Sep. 2013
8. Avg. 2020.
public OnPlayerDisconnect(playerid, reason) {
SetTimerEx("OnPlayerDisconnectDelay", 0, false, "d", playerid);
return 1;
}
forward OnPlayerDisconnectDelay(playerid); public OnPlayerDisconnectDelay(playerid) {
if (IsPlayerConnected(playerid)) return;
Iter_Remove(Administratori, playerid);
return 1;
}
* Called AFTER "OnPlayerDisconnect" so that using "Kick" inside a
* "foreach" loop doesn't crash the server due to an OOB error.
Hustler
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
25 / 100 XP
Početnik(0)
96
Postovi:
0
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
Mogao si pokriti i multidimenzionalne iteratore, predefinisane iteratore, malo vise funkcija i primera, definicije, foreachex.
Ovo nije dovoljno da nekog ubedis da koristi, jer skoro svaki y_iterate tutorijal se svodi na ovo... 😄
Ovo nije dovoljno da nekog ubedis da koristi, jer skoro svaki y_iterate tutorijal se svodi na ovo... 😄
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
17 / 250 XP
Početnik(1)
2,272
Postovi:
76
Teme:
Pridružio se:Maj 2014
9. Avg. 2020.
XACK wrote on August 9, 2020, 12:57 am:
Mogao si pokriti i multidimenzionalne iteratore, predefinisane iteratore, malo vise funkcija i primera, definicije, foreachex.
Ovo nije dovoljno da nekog ubedis da koristi, jer skoro svaki y_iterate tutorijal se svodi na ovo... 😄
Ovo nije dovoljno da nekog ubedis da koristi, jer skoro svaki y_iterate tutorijal se svodi na ovo... 😄
Ima i za to razlog. Ovo je za pocetnike i objasnjenje neke primene iteratora koja njima moze da bude jasna, kao sto si i san primetio, ovde dobra vecina ne zna osnove, a hoce da skripta. Sto je po meni veliki problem. Emmet je pravio tutorial, imam osecaj da ga je 10 clanova razumelo, a videlo 300..
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
686
Postovi:
39
Teme:
Pridružio se:Dec. 2018
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
116
Postovi:
2
Teme:
Pridružio se:Avg. 2020
10. Avg. 2020.
Quote from August 10, 2020, 9:11 am:
Dobro je 🙂
Jel moraš da bumpuješ pola foruma?
Idi pa ocenjuje mape i tdove ako ti trebaju postovi, ne razumem
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava
