00087. Таблицы переходов
Таблицы переходов|Всем привет! Сегодняшний урок посвящен таблицам переходов. Это довольно сложная в освоении тема, особенно для тех, кто не встречался со словом "программирование". Но я постараюсь вам предоставить необходимую информацию, чтобы основы этой темы вам запомнились и было понятно, для чего нужны эти таблицы.|wmysterio|wmysterio||||Если у Вас есть опыт в программировании, то слово switch вам говорит о многом. Для тех скриптеров, которые и не видели среды программирования объясню что к чему. Оператор "switch" предназначен для организации выбора из множества различных вариантов. Сами варианты написаны в блоке case...break. Оператор принимает какое то значение, и если оно совпало со значением "case", то выполняется соответственный участок кода. Для примера, вот вам фрагмент кода из C++:
Суть проста. Считываем значение переменной "А". Передаём её в оператор "switch". Дальше идёт сравнение значений "case", которые задаются изначально ( обычно это целые числа ) и если переменная "А" равна значению "case" ( в нашем случае числа 1 и 2 ), то будет выполняться код в этом блоке. Допустим, пользователь ввёл число 1. Далее оператор сравнивает это число со всеми "case". Как видите, переменная "А" равна единице и один из "case" тоже равен единице. Выполняются оба условия, и начинается выполнение блока "case 1 ... break".
Закончили с программированием, перейдём скриптам. Для осуществления подобной операции используется опкод с огромным количеством параметров:
Давайте разбирать, что к чему :)
Здесь: $CHECK - переменная, которая сравнивается с номером метки ( обычно содержит целое число и начинаться, которое начинается нуля ) total_jumps 4 - количество рабочих прыжков, включая прыжок, если ни один из вариантов не подошел default_jump 0 @J_E - прыжок на метку @J_E по-умолчанию. Выполняется тогда, когда переменная $CHECK не соответствует номерам меток. Так же метка является выходом из таблицы переходом 1 @J_1 - **1** это номер метки, **@J_1** сама метка. Максимальное и минимальное количество меток - 7. Если номер поставить в -1, то проверка "$CHECK == номер метки?" выполнятся не будет, а саму метку пишут в качестве метки-выхода
Давайте напишем пример, который, в зависимости от вы нажатой клавиши, меняет скин игрока:
Результат:
Естественно можно было куда легче сделать этот скрипт, однако этот пример отлично подходит для темы этого урока. Если разобраться что куда ставить, то можно сделать очень много полезных вещей для ваших модификций. Например, в глобальных скриптовых модах можно организовать различные концовки игры.
Теперь собственно задание для самоконтроля - организовать выбор стилей борьбы для CJ. Пример у Вас есть, так что особой сложности в написании не должно возникнуть. Если всёже есть вопросы по этой теме - обращайтесь на форум :)|1168|1|0|39868936png
600360
400`240``||tablicy_perekhodov|1500713685
Last updated
Was this helpful?