Pomoc - [Fusion] Kolejność akcji że co? creesee - 07-08-2025, 22:20 : Temat postu: [Fusion] Kolejność akcji że co?
Czy w efce zmienili kolejność wykonywania akcji? Czy jakieś nowe ustawienia stringa są?
Aethera - 08-08-2025, 08:52 :
Pytanie... Co robi pętla report?
Albo tu mamy przypadek problemu z reentrantością pętli report, albo...wszystko jest jak trzeba.
Alternatywa #1
skoro używasz pętli jednej pętli "report" to skacze ona losowo albo według wewnętrznych ID obiektów aż do wyczerpania. Ale to nie tłumaczyłoby "C" jako pierwszego dlatego...
Alternatywa #2
Jeśli całą akcję rozbijesz na migawki trwające milisekundy to...
[Start akcji]
[ A ] Start pętli report dla potion
[ B ] Start pętli report dla light potion
[ C ] Ustawienie stringu
...
[ A ] Krok pętli report dla potion
[ B ] Krok pętli report dla light potion
...
(Tu wyczerpała się liczba kroków dla [ B ] bo na przykład liczba B jest mniejsza niż A)
[ A ] Krok pętli report dla potion
...
[Koniec Akcji]
W rezultacie działania dla C zakończyły się jako pierwsze, dla B jako drugie, dla A jako trzecie i output mamy w "odwrotnej kolejności".
Może jakbym wiedziała co mają się te Expression ze stringami w pierwszym punkcie do akcji i pętli w drugim i do outputu w trzecim punkcie, to trochę lepiej bym pomogła
Pozdrawiam Serdecznie! creesee - 09-08-2025, 09:03 :
Wszystkie akcje A, B oraz C to ustawienie ciągu stringa.
Report to pętla foreach, w której - również do stringa - dopisuję info dot. interowanego obiektu: najpierw raport dot. potion (akcja A), później raport potion-light (akcja B).
C - najzwyklejsze dopisanie ilości obiektów, powinno być na samym końcu, tj. w klikodu.
Cytat:
Ale to nie tłumaczyłoby C jako pierwszego dlatego...
No, a właśnie to mnie ciekawi najbardziej. : P
Cytat:
Może jakbym wiedziała co mają się te Expression ze stringami w pierwszym punkcie do akcji i pętli w drugim i do outputu w trzecim punkcie, to trochę lepiej bym pomogła
W jakim sensie "co mają się"? Strings'y mają wyświetlić info dot. iterowanych obiektów. Chyba nie do końca rozumiem.
Spróbuję zrobić przykład od zera, hang on. Dobra, mam: https://limewire.com/d/UoPWj#LA9huo2ugaAethera - 09-08-2025, 23:14 :
Okej, odnosząc się bezpośrednio do przykładu, już wiem o co chodzi. Jest mniej więcej tak jak mówiłam.
Nie możesz patrzeć na "kolejność zdarzeń" kolumnami.
W akcji Start of Frame wykonujesz :
- start pętli raport
- ustawienie stringu na "123"
- ustawienie stringu na aktualny string + "wiadomość na koniec"
A dopiero w linijce poniżej, która jest wykonywana PO wykonaniu linijki z Start of Frame masz wpisaną akcje wykonywaną w każdym kroku pętli for each.
Przez to rezultat taki mamy jaki mamy. - końcowy tekst pojawia się zanim pętla się w ogóle rozpędzi.
Jedno z sugerowanych rozwiązań - sprawdzać koniec pętli i wtedy dodawać końcowy tekst.
Jako że jest to pętla typu for each, to niestety odpada sprawdzanie indexu - to pętla opierająca się na kolekcji, tutaj index nie działa. Ale wystarczy w pętli "raport" oprócz ustawiania stringów zwiększać sobie w każdym kroku jakiś licznik który przypiszemy do pilnowania.
I w kolejnej akcji porównywać - w tym przypadku value( "licznik_pilnujacy" ) = NObjects( "chleb" ) - i tu właśnie ustawić wiadomość na końcu oraz zerować licznik pilnujący.