Files
Patryk Gensch df6cf2f3d3
Some checks failed
docs / deploy (push) Has been cancelled
docs / build (push) Has been cancelled
Added part of docs
2026-05-19 20:51:59 +02:00

3.6 KiB

BEHAVIOUR

Procedura. Wykonuje kod zapisany w polu CODE, opcjonalnie obwarowany warunkiem wskazanym w polu CONDITION. Argumenty wywołania dostępne są wewnątrz kodu jako $1, $2, …, opisane szerzej w Argumenty procedur.

Pola

CODE

STRING CODE

Treść procedury — blok kodu w nawiasach klamrowych, zgodny ze składnią opisaną w rozdziale Skrypty.

Przykład:

BEHGOTOTITLE:CODE={BEHSETSCENE^RUN();G_SARCADESCENE^SET("EGIPTLEJ");BEHCSSTART^RUN();}

CONDITION

STRING CONDITION

Nazwa zmiennej typu CONDITION lub COMPLEXCONDITION, używana przez metodę RUNC oraz przez RUNLOOPED jako warunek przerwania pętli. Jeżeli pole nie jest ustawione, metody działają bezwarunkowo.

Metody

RUN

mixed RUN([mixed param1, ..., mixed paramN])

Wykonuje kod procedury. Przekazane argumenty są dostępne w kodzie jako $1, $2, …. Wartość zwracana to wynik wyrażenia @RETURN w ciele procedury, lub NULL, jeżeli @RETURN nie został wywołany.

Parametry

  • param1, …, paramN — argumenty procedury (opcjonalne, dowolnego typu).

Zwraca: wartość zwrócona przez procedurę lub NULL.

Przykłady

__LOAD_SETTINGS__^RUN();
BEHSELECTOBJ^RUN(VARITER);
BEHADDITEM^RUN(SOBJECT|SPARAM0, VARITER);
BEHENTERRABBIT^RUN("ANNHILL0", -1);

RUNC

mixed RUNC([mixed param1, ..., mixed paramN])

Wywołuje procedurę pod warunkiem, że warunek wskazany w polu CONDITION jest spełniony. Jeżeli CONDITION nie jest ustawione, zachowuje się jak RUN. Argumenty i wartość zwracana — jak w RUN.

Parametry

  • param1, …, paramN — argumenty procedury.

Zwraca: wartość zwróconą przez procedurę lub NULL (również, gdy warunek nie był spełniony).

Przykłady

BEHREMOVEMENUITEM^RUNC("CHOMIK");
BEHREMOVEMENUITEM^RUNC(VARSTRINGTEMP);
BEH_HERO_FINISHED_0^RUNC();

RUNLOOPED

void RUNLOOPED(INTEGER start, INTEGER length)
void RUNLOOPED(INTEGER start, INTEGER length, INTEGER step, [mixed extraArg1, ..., mixed extraArgN])

Wywołuje procedurę w pętli for z licznikiem przekazywanym jako $1. Dodatkowe argumenty (od czwartego włącznie) trafiają do procedury jako $2, $3, … . Jeżeli pole CONDITION jest ustawione, jego warunek jest sprawdzany przed każdą iteracją — jeżeli warunek nie jest spełniony, pętla się kończy.

Pętla jest równoważna następującemu pseudokodowi:

for (int i = start; i < start + length; i += step) {
    // wywołanie procedury z $1 = i, $2..$N = extraArgs
}

Jeżeli step jest pomijany lub przekazany jako 0, używana jest wartość 1. Operator @BREAK w ciele procedury kończy pętlę RUNLOOPED (ale nie procedurę wywołującą).

Parametry

  • start — wartość początkowa licznika.
  • length — liczba iteracji do wykonania (startVal < endVal to startVal + length).
  • step — (opcjonalnie) krok licznika. Domyślnie 1.
  • extraArg1, …, extraArgN — (opcjonalnie) dodatkowe argumenty przekazywane do procedury.

Przykłady

BEHSHOWMENU^RUNLOOPED(0, ARRAYWARSZTATMENUPRZEDMIOTY^GETSIZE());
BEHSHOWPIONEK^RUNLOOPED(1, 9);
BEHINITZASLONAX^RUNLOOPED(0, 7, 1, "[80*$1]");

Sygnały

ONINIT

Wywoływany w momencie inicjalizacji procedury.

ONDONE

Wywoływany po zakończeniu wywołania procedury.

ONSIGNAL

Wywoływany po otrzymaniu sygnału (zobacz Zdarzenia i sygnały).