NukeBoards

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
NZdarzenia
1
+ Upon pressing a key L
EZ-Counter : Set counter to GroupItemValue( EZ-INI , 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ć :P
Muchomorek - 08-01-2013, 16:22
:
By nie było niejasności.
Oto mój cały klikod:




edit:
Spoiler (Zapisane, przed wczytaniem):


Spoiler (Restart ramki, wczytanie):

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ć :P

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 :P 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 :madugly:
Muchomorek - 08-01-2013, 19:32
:
Akcję przeniosłem do Upon pressing a key - w sumie ty mnie nakierowałeś, nie Fadex. Dzięki :3 !


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.