000181. Условия в Sanny Builder (Часть 4)
Условия в Sanny Builder (Часть 4)|В этом кратком уроке мы рассмотрим некоторые опкоды, которые работают в связке с условиями (0AA0 и 0AA1). Спустя столько времени, нашлось место и для четвёртой части этой темы.|wmysterio|wmysterio||||Привет! Несколько дней назад некоторые опкоды привлекли моё внимание и я решил протестировать их работу. Хоть и обычных инструментов для работы с условиями достаточно, опкоды 0AA0 и 0AA1 оказались довольно простыми в использовании.
Начну с опкода0AA0. Он позволяет выполнить переход на метку с возвратом, если условия не выполнились. Например: мы можем проверить существование актёра. Если он не создан, то сразу создать его:
Смысл думаю понятный. Если актёр "0@" не существует, то делаем переход к метке "CREATE_NEW_ACTOR", создаём актёра, и делаем возврат. После этого созданный актёр будет пытаться убить игрока. Это примерно тоже самое, что и этот код, только короче:
Если Вы читали статью Избавляемся от "ёлочек", то вариант с опкодом 0AA0 позволит ещё и избавляться от конструкций "IF-THEN-END". Вот результат:
Конечно, этот пример достаточно прост, чтобы его переписать привычным для Вас способом. Однако будут "экзотические" ситуации, когда переход в случае не выполнения условий, будет оправдан в полной мере.
Далее поговорим об опкоде0AA1. Он менее полезен, так как используется внутри перехода с возвратом. Давайте рассмотрим следующий пример:
Суть скрипта проста: создаём актёра с вероятностью 50 на 50. Далее устанавливаем ему случайное здоровье и точность. Далее идёт переход к метке. Вот она нас и интересует. В ней мы даём команду убить игрока, если актёр создан и его здоровье минимум стандартное.
Таких условий может быть много. Но суть здесь в том, что мы делаем прыжок на метку "LABEL_END", если эти условия не сработают. Опкод "0AA1: return_if_false" помогает избавится от этой метки, так как он делает возврат, если условие ложно (в опкоде описание какое-то кривое, уместно было бы "0AA1: else_return", но да ладно ).
Давайте теперь перепишем метку уже с использованием нового (надеюсь) для Вас опкода:
Опять же, его полезно использовать в "экзотических" случаях. Надеюсь, эти случаи будут попадаться чаще, чтобы пользоваться опкодом 0AA1.
На этом "экзотический" урок закончен. Спасибо за внимание!
× **ВАЖНО:** Опкоды доступны в библиотеке CLEO 4.0 и старше!|1|1|0|42197446`png`640`384`320`192``\||uslovija_v_sanny_builder_chast_4|1569703253
Last updated