SAIL - Używanie artefaktu

Gotowe kody SAIL'a, informacje na temat moddingu, itd.

Moderator: zoNE

Post Reply
User avatar
zoNE
The Great Uniter & Site Administrator
The Great Uniter & Site Administrator
Posts: 2059
Joined: Fri Feb 17, 2006 3:44 pm
Location: Poland
Contact:

SAIL - Używanie artefaktu

Post by zoNE »

Serpent wrote:Jeżeli chodzi o położenia na mapie samego artefaktu to jest taka funkcja:

Code: Select all

FindArtifact(art_num); // art_num oznacza numer artefaktu.

// można z niej wydobyć koordy w taki sposób:
x := FindArtifact(1)[1];
y := FindArtifact(1)[2];

Natomiast jeżeli chodzi o użycie to patrz niżej.

Funkcja SetArtifactUse przyjmuje 4 argumenty:

Code: Select all

SetArtifactUse(side, art_icon, art_behav, building);
Pierwszy argument to strona dla której ma być użyty artefakt.

Drugi argument oznacza daną ikonkę:
Spoiler:

Code: Select all

art_exp_left
art_exp_mid
art_exp_right
art_use_atom
art_use_cube
art_use_dead
art_use_exclamation
art_use_eye
art_use_hand
art_use_human
art_use_power
art_use_sibdestruct
art_use_sibexplosion
art_use_tau
art_use_teleport
Wygląd ikonek można sprawdzić w buttons.tga.
Każda ikonka ma swoją unikalną pozycje i wygląd.

Trzeci argument oznacza typ (zachowanie) ikonki:
Spoiler:

Code: Select all

art_no -> Usuwa guzik.
art_gray -> Guzik staje się szary (niedostępny).
art_instant -> Guzik zachowuje się jak zwykłe badanie w laboratorium, po kliknięciu następuje akcja.
art_place -> Po kliknięciu gracz musi wskazać miejsce na mapie.
art_unit -> Po kliknięciu trzeba wskazać daną jednostkę na której ma być wywołany efekt.
Czwarty argument to budynek laboratorium.


Co do twojego problemu, jak przekazać koordy po użyciu artefaktu (art_place) to wystarczy użyć eventu ArtifactUse który przyjmuje 4 parametry:
Spoiler:

Code: Select all

Pierwszy parametr wskazuje na stronę która użyła artefaktu.
Drugi parametr wskazuje jaki typ guzika został użyty.
Trzeci i Czwarty zwracają rzeczy związane z zachowaniem guzika. 
Dla art_instant oba zwracają 0. 
Dla art_unit trzeci parametr zwraca identyfikator jednostki na której został użyty artefakt.
Dla art_place trzeci argument przyjmuje x, a czwarty argument przyjmuje y.

Ta wiedza wystarczy aby okodować działanie artefaktu ;)
Author: Serpent
Topic: https://forum.original-war.net/viewtopi ... =42&t=4542
Post Reply