Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2019-07-26, 08:32


ufoludeq







Wiek: 24
Na forum: 2605 dni
Posty: 21
Nick w MP: UFO

Piwa: 90

Respekt: 60

Czesc tworze sobie system domow i natknalem sie na problem z iteratorem.
Stworzylem sobie na gorze gm cos takiego

Pawn
#define MAX_HOUSES 500
new Iterator:Houses<MAX_HOUSES>;


potem w callbacku gdzie laduje domki cos takiego
Pawn

forward LoadHouses();
public LoadHouses()
{
    new idomid;
    for(0cache_num_rows(); i++)
    {
                cache_get_value_int(i"id"Dom[domid][id]);
                cache_get_value(i"owner"Dom[domid][owner]);
                cache_get_value... itd

                Iter_Add(Housesdomid);
         }
}

I nie wiem czemu ale to nie dziala, bo po stworzeniu cmd domtp i uzyciu
Iter_Random zawsze mnie bedzie teleportowalo do 1 stworzonego domku a nie do losowego
Pawn
CMD:domtp(playerid)
{
    new domekid Iter_Random(Houses);
    SetPlayerPos(playeridDom[domekid ][pos_x],Dom[domekid ][pos_y],Dom[domekid ][pos_z]);
    return 1;
}

Wie ktos moze co robie zle? Za pomoc nagradzam respektem i piwem

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-07-26, 10:06


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Dzieje si? tak dlatego, poniewa? nie przypisujesz ?adnej warto?ci do zmiennej domid, wskutek czego w iteratorze jest tylko jeden dom. Mo?e po prostu usu? zmienn? domid i wstaw za ni? zmienn? i - na pierwszy rzut oka to powinno pom?c. Je?li to nie pomo?e, to poka? zapytanie od dom?w.

Kod:

new i;
for(i = 0; i < cache_num_rows(); i++)


Tak nie powiniene? robi?. Kod b?dzie dzia?a? poprawnie, ale za ka?dym ponownym wykonaniem p?tli b?dzie wywo?ywana funkcja cache_num_rows, kt?ra za ka?dym razem zwr?ci t? sam? liczb?, wi?c lepiej jest u?y? tej funkcji tylko raz.

Kod:

for(new i, rows = cache_num_rows(); i < rows; i += 1)


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
ufoludeq
Wysłany: 2019-07-26, 10:33


ufoludeq







Wiek: 24
Na forum: 2605 dni
Posty: 21
Nick w MP: UFO

Piwa: 90

Respekt: 60

Dziala, dzieki za szybka pomoc :)

Postaw piwo autorowi tego posta
 

 
Tagi: iterator
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Iterator Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku