[LUA] alternatywa dla actor_menu

Regulamin forum
Dział "Tworzenie Modyfikacji" służy do zadawania pytań odnośnie tworzenia modyfikacji, edytowania plików gry, oraz pisania tzw. tutoriali, czyli poradników odnośnie modyfikowania gry.
Nie zadajemy tutaj pytań odnośnie modyfikacji gotowych (nie dyskutujemy o nich!), prócz prób ich połączenia etc.


Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

[LUA] alternatywa dla actor_menu

Postprzez Plaargath w 01 Maj 2014, 14:40

Mam kłopot z zakotwiczeniem skyptu, bardzo będę wdzięczny za pomoc.
Chcę, żeby odpalał mi skrypt w momencie, kiedy otwieram menu ekwipunku i nie wiem dokładnie, w którym pliku powinienem się zakotwiczyć.
Dorwałem plik actor_menu.script i wbiłem tam pod linię 49. Dopóki umieszczam tam jakieś maleństwa typu jakaś funkcja testowa na początek (że tylko dźwięk mi odegra, albo napis wyświetli) to jest OK. Ale problem się zaczyna:
- jak umieszczam tam więcej instrukcji (głupi pusty for do dziesięciu już wywala sprawę),
- albo kiedy robię odwołanie do innego pliku *.script, w którym jest już więcej niż dwie-trzy testowe linijki (a to chcę właśnie docelowo osiągnąć),
- albo dopisuje wywoływane funkcje na końcu tego samego pliku.

We wszystkich przypadkach wyskakuje mi taki oto CTD:
Kod: Zaznacz wszystko
Expression    : assertion failed
Function      : CUIActorMenu::CurModeToScript
File          : D:\prog_repository\sources\trunk\xrGame\ui\UIActorMenu_script.cpp
Line          : 97
Description   : ai().script_engine().functor( "actor_menu.actor_menu_mode", funct )

Wnioskuję, że dłuższe operacje jakoś mu zaburzają trzymanie tych mode'ów czy coś. Dlatego zastanawiam się, czy jest jakieś inne miejsce, gdzie mógłbym się wbić, żeby odpalało mój skrypt, jak otwieram inv. Może niekoniecznie actor_menu.script?
Image Image

Merkantylizm, srerkantylizm.
Awatar użytkownika
Plaargath
Weteran

Posty: 655
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 09 Maj 2025, 12:22
Kozaki: 237

Reklamy Google

Re: [LUA] alternatywa dla actor_menu

Postprzez tt44 w 07 Cze 2014, 14:43

Jeśli pytanie wciąż aktualne to użyj w tym celu flagi:
Kod: [ Pobierz ] [ Ukryj ]
-- W skrpycie actor_menu:

local is_inventory_open = false -- dodaj to na początku skryptu

-- W funkcji actor_menu_mode
elseif(mode==1) then
        last_mode = 1
        inventory_wnd_opened()
        is_inventory_open = true

-- W twoim skrypcie, który ma się uaktywnić po otwarciu inwentarza:
        if actor_menu.is_inventory_open == true then
                -- tu daj fragment który ma się wykonać po otwarciu inwentarza
 
tt44
Stalker

Posty: 88
Dołączenie: 12 Lut 2013, 19:02
Ostatnio był: 24 Cze 2017, 19:07
Kozaki: 60


Powróć do Zew Prypeci

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 2 gości