Postów:
248
Dołączył:
2009-06-27
Napisano dnia: 2010-12-02 16:19:42
Jaki jest ich cel, jak ich poprawnie używać? Zauważyłem, że są co najmniej 3 typy:
Kod:
04D8: set_actor 0@(30@,3i) drowns_in_water 0
@180v ...
@30s ...
I mniej więcej coś takiego:
Kod:
$OBJECT[110f]
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-02 17:38:13
O ile się nie mylę, to zmienna 0@ zawiera tablicę, a pozostałe wartości to indeksy tej tablicy. Dlatego ostatecznie, zostaje tam umieszczona zmienna aktora.
Najlepiej zaczekać na odpowiedź Silenta, on zna składnię skryptów SCM w szczegółach :)
___________________
Administrator
Postów:
248
Dołączył:
2009-06-27
Napisano dnia: 2010-12-02 21:06:32
no dobra.. a co oznaczają litery przy tych tablicach (co one wogóle oznaczają)?
Wydaje mi się że typ zmiennych, bo w opcodach z udziałem mp3 tylko takie zmienne nie powodują crashu gry.
___________________
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2010-12-02 21:56:06
Kod:
04D8: set_actor 0@(30@,3i) drowns_in_water 0
Tak jak MakG napisał, to jest tablica. Najprościej opisać to na przykładzie:
Gdy mamy zmienną 0@(4@,1i) (liczba przy i, f, s albo v jest nieistotna, zawsze może być 1) i 4@ wynosi 5, wtedy operujemy na zmiennej 0+5@. Odsyłam do tego poradnika (tym razem nie GTAG, poradnik tam wymaga aktualizacji):
http://www.gtaforums.com/index.php?showtopic=403594&view=findpost&p=1059266820
0@s i 0@v to są po prostu zmienne dla kolejno krótkich i długich ciągów znaków (czyli kolejno short string oznaczane ' ', i long string; " "). Wtedy 0@s zajmuje zmienne 0@ i 1@ (7 znaków + /0), a 0@v 0@, 1@, 2@ i 3# (max 15 znaków + /0).
___________________
Moderator
Postów:
248
Dołączył:
2009-06-27
Napisano dnia: 2010-12-02 22:26:44
Powiedzmy że rozumiem, ale jeszcze muszę mieć czas, żeby to ogarnąć :-). Ale dzięki za odpowiedź.
___________________