David Dark Opublikowano 27 Kwietnia 2008 Udostępnij Opublikowano 27 Kwietnia 2008 Czesc, chce sobie uproscic i zoptymalizowac kod, mam takie co do petli ktorych wczesniej wogole nie uzywalem: petla szuka wolnego miejsca w plecaku, miejsc jest 32, mysle ze skrypt jest calkiem czytelny GML for (ii = 0; ii < 32; ii+=1) global.inventory[ii,1] = ii+1; { if global.inventory[ii,1] = false//jesli miejsce jest wolne { x = global.inventory[ii,2];//pozycja slota y = global.inventory[ii,3]; in_inventory = 1; global.inventory[ii,1] = true;// miejsce jest 'zajete' persistent = true; depth = -999991; takedepth = -999991; slot = ii;//itemek pobiera informacje w ktorym jest slocie } } Skrypt przeszukuje wolnego slota w plecaku, jednak jak zrobic aby zatrzymal sie gdy natrafi na wolnego slota? bo jak narazie to nawet gdy go znajdzie dalej szuka i przedmiot konczy w ostatnim miejscu w plecaku. Probowalem break ale nie dziala. Dzieki za pomoc :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 27 Kwietnia 2008 Udostępnij Opublikowano 27 Kwietnia 2008 GML for (ii = 0; ii < 32; ii+=1) // global.inventory[ii,1] = ii+1; lol? { if global.inventory[ii,1] = false//jesli miejsce jest wolne { x = global.inventory[ii,2];//pozycja slota y = global.inventory[ii,3]; in_inventory = 1; global.inventory[ii,1] = true;// miejsce jest 'zajete' persistent = true; depth = -999991; takedepth = -999991; slot = ii;//itemek pobiera informacje w ktorym jest slocie break; // Zatrzymujemy pętle :P } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 27 Kwietnia 2008 Autor Udostępnij Opublikowano 27 Kwietnia 2008 break nie dziala juz mowilem :jezor: petla sie nie zatrzymuje i przedmiot i tak konczy w ostatnim slocie. Troche to dla mnie dziwne myslalem ze to zalatwi sprawe, dlatego pisze tego posta. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 27 Kwietnia 2008 Udostępnij Opublikowano 27 Kwietnia 2008 Zauważyłem że dałeś: GML for (ii = 0; ii < 32; ii+=1) global.inventory[ii,1] = ii+1; i to raczej łamie wszystko :P E: I dlatego daje na ostatni slot ponieważ po pętli ii=32 :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 27 Kwietnia 2008 Autor Udostępnij Opublikowano 27 Kwietnia 2008 mozesz wytlumaczyc co mam rozumiec pod tym 'lamie wszystko' to znaczy ze petla jest zbudowana tak ze break; jej nie zatrzyma? Mam ja jakos inaczej skonstrulowac? e wiem. przeciez musi przeszukac wszystkie 32 sloty, ale jak ja zatrzymac gdy znajdzie wolny? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 27 Kwietnia 2008 Udostępnij Opublikowano 27 Kwietnia 2008 Pętla się wykonuje tylko dla tego kodu: GML global.inventory[ii,1] = ii+1; I dlatego gdy dochodzi do klamer for już się skończył i ii=32 :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 27 Kwietnia 2008 Autor Udostępnij Opublikowano 27 Kwietnia 2008 hmm ok, masz jakies rozwiazanie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 27 Kwietnia 2008 Udostępnij Opublikowano 27 Kwietnia 2008 Najpierw napisz po co to jest: GML global.inventory[ii,1] = ii+1; a jeśli sprawdza ( w co wątpię... :P ) to po co to? ( w klamrach ): GML if global.inventory[ii,1] = false E: Logicznie daj tylko: GML for (ii = 0; ii < 32; ii+=1) { if global.inventory[ii,1] = false//jesli miejsce jest wolne { x = global.inventory[ii,2];//pozycja slota y = global.inventory[ii,3]; in_inventory = 1; global.inventory[ii,1] = true;// miejsce jest 'zajete' persistent = true; depth = -999991; takedepth = -999991; slot = ii;//itemek pobiera informacje w ktorym jest slocie break; // Zatrzymujemy pętle tongue2.gif } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 27 Kwietnia 2008 Autor Udostępnij Opublikowano 27 Kwietnia 2008 dzieki Konrad-GM :thumbsup: troche glupio przedstawil to w dokumentacji Mark dlatego nie jarzylem, dziala jak chcialem :) Zamykam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi