Матем. действия в скриптах SA
Математические действия в скриптах
Теперь перейдём к математике.
Для начала объясняю: числа в билдере есть и целые и дробные. И для действий с ними нужны разные опкоды. Сейчас я не буду подробно объяснять каждый обкод, скажу лишь, что с @ начинаються локальные переменные, для чисел, чтоб не забивать память лучше использовать их, а для тачек и актёров - глобальные. Ну, начнём.
Для начала целые числа:
Для сложения я нашёл 2 опкода, кто-нибудь, объясните мне, чем они отличаються:
005E: @1 += @2
0058: @1 += @2
Оба значат, что к @1 надо прибавить @2.
0060: @1 -= @2 - вычитание
0012: @1 *= @2 - умножение
0072: @1 /= @2 - деление
Теперь дробные:
005B: @1 += @2
0063: @1 -= @2
0013: @1 *= @2
0073: @1 /= @2
Замечу, что обе переменные должны быть одного типа, а вместо @2 можно использовать числа, но обезательно того же типа, что и переменная, например
005E: @1 += 5, но если @1 - дробное, то
005B: @1 += 5.0
Также можно присвоить значение переменной.
0004: @1 = 1 - целые
0007: @1 = 1.0 - дробные
Кучу параметров можно получить из игры, но за этим в opcodes.txt. Я расскажу про некоторые:
03C0: $CAR = actor $PLAYER_ACTOR car - привязывает машину игрока к переменной $CAR.
0226: $HEALTH = actor $ACTOR health - привязываем здоровье актёра к $HEALTH.
01C0: $WL = player $PLAYER_CHAR wanted_level - привязать количество звёзд игрока к переменной $WL.
Теперь например чтобы обратиться к машине игрока, достаточно обратиться к переменной $CAR.
Теперь про числовые условия:
Тут понятно без пояснений:
Дробные:
0020: @1 > 0.0 - больше
0030: @1 >= 100.0 - больше или равно
0042: @1 == 0.0 - равно
Целые:
001B: @1 > 20
002B: @1 >= 2000
0038: @1 == 1
Если чесно, то некоторые опкоды могуд быть неправильными, т.к. многое поменялось, и в opcodes.txt стало много вроде бы одинаковых команд с разными опкодами, так что если работать не будет, смотрите этот файл, числовые условия у него в самом начале.
eXPeriMeNTatOR.
1017 Прочтений • [Матем. действия в скриптах SA] [13.05.2012] [Комментариев: 0]