- Сообщений: 1597
- Спасибо получено: 1522
Случайный лут из сундуков [VXAce]
И так, собственно что нам понадобится для организации всего действа? Естественно сундук! Тут можно использовать шаблон:
Однако, его строки придется немного изменить, вот таким вот образом:
Между прочим, можно оставить и обычный локальный переключатель, не меня его на свитч "open" - это нужно было мне, для демки.
Что же, теперь наверно у вас возникнет вопрос, что же за глобальный ивент "random table #1" и почему #1? Начну по порядку. Для того что бы не прописывать каждый раз таблицу с дропом мы выносим её в отдельный ивент и выглядит она у нас вот так:
Да, как я уже говорил, это дело будет настраивать тяжело. Как же всё это работает? Намного проще чем выглядит. В самом начале ивента, мы задаём случайное значение переменной, делается это таким образом:
После чего идут небольшие ветвления, различные лишь числом, которому должна быть равна переменная:
Ну, а после всего этого, в зависимости от числа мы даём предмет игроку, о чем ему и сообщаем. На этом всё.
Однако, я так и не рассказал почему ивент имеет номер, а так же вы наверно заметили, что их два.
Суть в том, что кроме абсолютно случайной генерации мы можем сделать процентную и вот как это будет выглядеть:
Различие не такое уж и большое, да. Мы, точно так же как в первом варианте, задаем случайное значение переменной и дальше смотрим чему она равна, однако вот тут наша таблица и подверглась изменениям. Допустим, шанс получить зелье из сундука равен 30%. Тогда, если переменная меньше либо равна трем, мы даём зелье. Но как же быть дальше? Тут уже придется немного поразмыслить и вспомнить базовые знания в математике. 30% мы уже потратили, а значит у нас осталось 70%. И мы хотим, что бы ручной топор выпадал с шансом 10%. Отчет в этот раз придется начинать не с нуля, ведь он уже занят, а с четырех. Почему именно с них? А потому, что тройка тоже уже занята и если мы включим её в диапазон то можно будет получить и топор и зелье(это тоже возможно, но я рассматриваю случай когда из сундука мы можем получить всего один предмет). Но ведь если мы просто создадим ветвление, где будет проверка: "переменная больше либо равна 4", мы получим не 10%, а все 70. Так что, придется вводить ещё одно ветвление, с новой проверкой: "переменная меньше либо равна 5". Таким образом мы как бы делаем отрезок от 4 до 5, в котором у нас падает топор. Дальше мы действуем по такому же принципу, не забывая об уже используемых значениях.
Надеюсь, я объяснил достаточно понятно. Если возникнут вопросы, комментарии всегда открыты, а так же рекомендую самостоятельно изучить демку, которую скачать можно вот тут ----> кликать тут
На этом всё, спасибо за внимание!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
З.Ы. "Херб отчищения" - это, видимо, люффа, из которой мочалки делают
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
В этой версии есть шанс выпадения одного из типов предметов: денег, оружия, итемов или брони.
Шанс выпадения каждого типа предмета одинаков (нет никаких процентов), зато есть установка диапазона выпадающих предметов по ID из БД с помощью изменения диапазона случайных чисел для переменной Random ID. Для того, чтобы выпадала любая вещь из всего, что только есть в БД, измените диапазон вручную.
Также, в качестве фичи сделал выпадение случайного числа предметов (для каждого типа установил свое значение)
Недостатки: пока не придумал, как показывать сообщение с показом названия предмета (стандартными средствами), но это решается любым скриптом вида Custom Message System.
Скачать демо
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Про этот способ не знал, можно использовать))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Собственно пример в скрине выше, он у меня прекрасно работает.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Lipton пишет: У тебя видимо старая версия асе. В родной версии после патча по моему еще зимой, такая строка прекрасно влезает.
У меня тоже старая наверное. А у тебя "родная" - в смысле стимовская?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
))Кстати неплохо бы еще проверять на существование предмета в бд.
Что нибудь типа
if $data_items[$game_variables[3]] == nil то пропускать присвоение.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Я не стал усложнять, но это условие можно вставить, если ты не помнишь, что у тебя лежит в БД))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Сообщений: 437
- Спасибо получено: 165
(
)Этот форум слишком умный для меня
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
