Сегодня мне бы хотелось продолжить разговор о псевдослучайных событиях в рамках создания вещей непредусмотренных движком RPG Maker VX Ace. Для начала определимся где именно будет использоваться рандом. Для начала он будет выдавать карты соперника и игрока из колоды. Для этого нам нужно занести в переменные значение карт. Условно разделим их на категории.
Скажем будет так:
Для примера нам хватит и таких значений. Создаем условно две такие колонки в разных секциях.
В одной мы будем хранить общее число карт того или иного вида, а во второй будем приравнивать в начале боя, чтобы не раздать больше чем у нас есть в колоде.
Далее мы вызываем общие события, давайте на них остановимся подробнее:
Каждая карта на поле имеет Атаку и Защиту. 4 Для Игрока и 4 для ИИ.
Сравнивая их и вычитая. Мы узнаем какие карты убрать с поля, а какие оставить.
Так же стоит разобрать отдельно скрипт: if $game_variables[383]==2
screen.pictures[$game_variables[383]].show('k01', 0, -52, -50, 50, 50, 255,0)
$game_variables[490]=1
$game_variables[494]=2
end
Если вы знакомы со скриптами, то можете пропустить этот пункт.
screen.pictures[index].show(name, position, x, y, x zoom, y zoom, opacity, blend type)
index - индекс картинки
name - имя файла
позиция - position = [0] по краю, [1] по центру
x, y - координаты
x zoom, y zoom - увеличение по x, y = масштаб
opacity - прозрачность, для непрозрачности ставится 255
смешивание - blend type = [0] обычное, [1] добавление, [2] замещение.
$game_variables[n] = 'text', где n-номер переменной, а text-собственно текст. Можно использовать для паролей, храня их в переменных, а не в именах героев или записать в переменные, например, окончания слов. Тогда можно будет сделать различное обращение к персонажам мужского и женского пола.
$game_variables[383] Этим скриптом мы задаем переменную которая будет накладывать слой картинки.
$game_variables[490]=1 Этим скриптом задаем атаку карты
$game_variables[494]=2 Этим скриптом жизни карты
Очень важно помнить, что из-за наложенного фона, нумерация карт будет сдвинута.
Также нам нужна проверка условия и отображение или исчезновение карты с поля. Для этого служит следующее общее событие:
Разберем по порядку:
Переменные
Card game - регулирует управление цифрами (для этого подключен скрипт Full Keyboard Module Autor: Raizen)
Card steep и Card steep enemy позволяют регулировать ходы игрока и ИИ.
Dex и счетчик карт, запускают событие по вытаскиванию уникальной карты (в нашем случае Фелиса).
Проверяем каждую карту на отсутствие на поле, после чего в нее пишем карту Фелиса. (в случае если карта занята, то добавляем его в скрипт взятия из колоды).
Смотрим на исполнение скрипта, если карты отсутствуют то на их место записываем одну из карт. Можно добавить условие
на шанс выпадения. Скажем задавать диапазон значений. Или сделать выключатель на уникальное выпадение.
После него, можно вызывать событие повторно, с выключателем равным off.
Тогда колода доберется недостающими картами.
После того проверяем остаток карт Игрока и ИИ.
И в зависимости от сложности решаем кто выиграл.
В перспективе можно так же добавить награды, выпадение карт случайным образом и другое.
Demo
cloud.mail.ru/public/3sxZ/4rL8FPyZS