Zaključano

[Pomoc] I

pre 13 godina
498
pregleda
5
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
marx
Shot Caller
pre 13 godina
Skripta koju koristim: OG:RPG
Detaljan opis problema:Izbaci mi ovo ko na slici
Dio skripte:
11372 foreach (Player,i)
11370 public
To su linije
Neke slike/video za lakse dobivanje pomoci(neobavezno):


XavierX
Wheel Man
pre 13 godina
11372 ti je vjerojatno 'loop u loopu' što moraš izbjegavati. Završi prvi loop koji koristi varijablu "i" pa pokreni drugi loop ako su već potrebna 2.

11370 ne razumijem, međutim ako samo piše "public" kako si napisao, to ne znači ništa. Public funkcija mora imati ime ?
marx
Shot Caller
pre 13 godina
Objasnis kako

11372 ti je vjerojatno 'loop u loopu' što moraš izbjegavati. Završi prvi loop koji koristi varijablu "i" pa pokreni drugi loop ako su već potrebna 2.
XavierX
Wheel Man
pre 13 godina
Primjetio sam da u definicijama u skripti imaš macro definirani za loopove, te po tome zaključujem da vjerojatno znaš pretvoriti moj primjer u svoj macro.

Loop:

Dio koda kojim definiramo broj ponavljanja izvođenja nekih funkcija. Naprimjer for loop, while loop, do while loop.

Pretpostavljam da ti koristiš for loop.

Imaš naprimjer:
for( new i = 0; i < 10; i++ )

Ovo radi na sljedećem principu. Sa 'new i = 0' si rekao da želiš kreirati varijablu 'i' koja iznosi 0. i < 10 znači da će se funkcija u loopu izvoditi 10 puta, odnosno tako dugo dok 'i' ne bude 10. Sa i++ si rekao da želiš da se varijabla 'i' svakim izvođenjem povećava za 1.

Zatim možeš napraviti sljedeće:
for( new i = 0; i < 10; i++ ) printf( "%d", i );
- Ovaj dio koda će ispisati brojeve od 0 do 10 u konzolu.

Tvoj problem je što si *vjerojatno napravio nešto slično ovome.
for( new i = 0; i < 10; i++ ) { // Početak prvog loopa

printf( "%d", i );
// Neki tvoj kod

for( new i = 0; i < 5; i++ ) { // Početak drugog loopa

print( "Moram obrisati ovaj loop ovdje!" );
// Neki tvoj drugi kod
} // Kraj drugog loopa
} // Ovdje si tek zatvorio prvi loop, što znači da je i ovaj drugi u prvom.


Greška ti je u tome što si već definirao varijablu 'i' u prošlom loopu, znači u loopu koji je u gornjem nivou funkcije. Plus, loop u loopu nije dobra ideja zbog toga što compiler mora 10 puta vršiti funkciju u kojoj se po 5 puta vrše neke druge funkcije. Nadam se da ti ovo ima smisla.

Pravilan način za ovaj gornji kod bi bio:
for( new i = 0; i < 10; i++ ) {

printf( "%d", i );
// Neki tvoj kod

} // Ovdje smo zatvorili prvi loop

for( new i = 0; i < 5; i++ ) {

print( "Ovaj loop sada ima svoju 'i' varijablu!" );
// Neki tvoj drugi kod
} // Ovdje smo zatvorili drugi loop


Probaj provjeriti po svojoj skripti dal imaÅ¡ ovakvih problema pa ih probaj rjeÅ¡iti stvarima naučenim iz ovog posta 🙂

Xavier
marx
Shot Caller
pre 13 godina
Rijeseno moze lock Hvalla

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava