Pomoc - [TGF2/MMF2] I am getting sick. Muchomorek - 07-01-2013, 20:14 : Temat postu: [TGF2/MMF2] I am getting sick.
Kulturalnie robię sobie edytor mapek [INI]. Zrobiłem zapisywanie i zaczynam robić wczytywanie
GroupItemValue( "Ini", "Count", "ile")
Wczytywanie
N
Zdarzenia
1
+ Upon pressing a key L
• : Set counter to GroupItemValue( , Count, ile)
Licznik nie ustala się na wartość "ile" w grupie "count", tylko ustawia ile na 0. Może ktoś pomóc? Fadex - 07-01-2013, 22:43 :
Najpierw, na start of frame musisz odwołać się do ścieżki do pliku ini na dysku (set ini file bodajże?).
Ini powinno wyglądać tak:
Kod:
[Count]
ile=3
czyli w nawiasach kwadratowych grupy, a pod nimi wartości.
To nie może nie działać Muchomorek - 08-01-2013, 16:22 :
By nie było niejasności.
Oto mój cały klikod:
Piter - 08-01-2013, 16:31 :
Do zdarzenia LoopIndex("save") >= NObjects("") dodaj warunek On loop "save". Myślę, że tu jest problem. Muchomorek - 08-01-2013, 17:17 :
Wówczas w ini nie pojawia się w ogóle grupa Count. msg - 08-01-2013, 18:13 : http://speedy.sh/eg2CT/iniissue1.mfa
Może masz jakąś literówkę, porównaj sobie z tym co działa (wyżej).
Jedyne co mi przychodzi do głowy to problem z apppath$. Spróbuj to zmienić najpiew na ścieżkę statyczną (np. c:\pliktestowy.ini) a potem jak zadziała to na appdrive$+appdir$ (zamiast apppath$)
EDIT:
A może masz więcej rozszerzeń INI i używasz nie tego?
Kod z pliku powyżej... Czerwony == zapis do pliku, zielony == odczyt.
Fadex - 08-01-2013, 18:18 :
Co mi się nie podoba - zamiast always dałbym spread tylko bezpośrednio przed zdarzeniem wczytującym/zapisującym/przy tworzeniu obiektów, bo to zasobożerne to potrafi być
Poza tym wszystko działa tak jak ma być. Przed odpaleniem pętli "save" jej loopstep wynosi zero, z tego co widzę po kodzie liczba obiektów aktywnych też jest wtedy równa zero, a jak wiemy z wiedzy elementarnej zero JEST większe lub równe zeru.
Zamiast całego tego warunku daj po prostu "upon pressing S" - kolejność zdarzeń zrobi resztę. msg - 08-01-2013, 18:22 :
Fadziu, z tego co ja zrozumiałem, to po naciśnięciu L też się nie pojawia ilość z ile=... A to powinno się stać, niezależnie od tego, czy pętla się uruchomiła, czy nie... Po prostu, L działa tak, że jeśli w ini jest [Count] ile=x, to x powinien pojawić się w liczniku wspomnianym w ostatnim zdarzeniu under-any-circumstances. Fadex - 08-01-2013, 18:26 :
MSG, oprócz czytania ze zrozumieniem przydaje się jeszcze nieco wyobraźni Nie ma żadnego błędu w zdarzeniu które chciałeś poprawić, błąd jest zdarzenie wyżej.
EDIT: Dobra, wyjaśnię jak chcecie. W zdarzeniu wyżej nadpisywana jest wartość "ile" na zero na samym początku ramki. Jako, że domyślnie ustawioną wartością licznika jest zero i nie jest zmieniana w innych warunkach to po wczytaniu tego zera z powrotem z pliku wydaje się, że nic się nie stało - bo przecież wartość licznika się nie zmieniła. Ale oczywiście została wczytana - po prostu ta sama, nadpisana wartość. msg - 08-01-2013, 18:52 :
W takim razie nie wiem, dlaczego w .ini pojawiło się 8, skoro zmienna została wyzerowana "zdarzenie wyżej". W końcu owe "zdarzenie wyżej" zeruje wartość ini, a nie licznik.
Zdarzenie wyżej nie zeruje wartości ini, tylko ustawia ją na wartość liczby obiektów. Więc kiedy liczba obiektów była równa 8 (a loopstep też był równy 8 po zakończeniu pętli) to chyba wiadomo co się stało | Fadex
Tak czy siak możesz mieć rację z tą kolejnością kodu, ale punkt i tak dostałem ja Muchomorek - 08-01-2013, 19:32 :
Akcję przeniosłem do Upon pressing a key - w sumie ty mnie nakierowałeś, nie Fadex. Dzięki !
e: Nie wiedziałem, że krok pętli przed jej odpaleniem wynosi 0. Fadex - 08-01-2013, 19:42 :
...że co?
*foch*
Zamykam, ale następnym razem nie będzie mi się chciało nic pisać, domyślajcie się sami.