Сегодня я расскажу вам как сделать случайный лут из сундуков без использования сторонних скриптов. Система получилась не такой уж и замысловатой, единственное что не очень удобной в настройках по этому в дальнейшем, возможно, будет модифицирована.
И так, собственно что нам понадобится для организации всего действа? Естественно сундук! Тут можно использовать шаблон:
Однако, его строки придется немного изменить, вот таким вот образом:
Между прочим, можно оставить и обычный локальный переключатель, не меня его на свитч "open" - это нужно было мне, для демки.
Что же, теперь наверно у вас возникнет вопрос, что же за глобальный ивент "random table #1" и почему #1? Начну по порядку. Для того что бы не прописывать каждый раз таблицу с дропом мы выносим её в отдельный ивент и выглядит она у нас вот так:
Да, как я уже говорил, это дело будет настраивать тяжело. Как же всё это работает? Намного проще чем выглядит. В самом начале ивента, мы задаём случайное значение переменной, делается это таким образом:
После чего идут небольшие ветвления, различные лишь числом, которому должна быть равна переменная:
Ну, а после всего этого, в зависимости от числа мы даём предмет игроку, о чем ему и сообщаем. На этом всё.
Однако, я так и не рассказал почему ивент имеет номер, а так же вы наверно заметили, что их два.
Суть в том, что кроме абсолютно случайной генерации мы можем сделать процентную и вот как это будет выглядеть:
Различие не такое уж и большое, да. Мы, точно так же как в первом варианте, задаем случайное значение переменной и дальше смотрим чему она равна, однако вот тут наша таблица и подверглась изменениям. Допустим, шанс получить зелье из сундука равен 30%. Тогда, если переменная меньше либо равна трем, мы даём зелье. Но как же быть дальше? Тут уже придется немного поразмыслить и вспомнить базовые знания в математике. 30% мы уже потратили, а значит у нас осталось 70%. И мы хотим, что бы ручной топор выпадал с шансом 10%. Отчет в этот раз придется начинать не с нуля, ведь он уже занят, а с четырех. Почему именно с них? А потому, что тройка тоже уже занята и если мы включим её в диапазон то можно будет получить и топор и зелье(это тоже возможно, но я рассматриваю случай когда из сундука мы можем получить всего один предмет). Но ведь если мы просто создадим ветвление, где будет проверка: "переменная больше либо равна 4", мы получим не 10%, а все 70. Так что, придется вводить ещё одно ветвление, с новой проверкой: "переменная меньше либо равна 5". Таким образом мы как бы делаем отрезок от 4 до 5, в котором у нас падает топор. Дальше мы действуем по такому же принципу, не забывая об уже используемых значениях.
Надеюсь, я объяснил достаточно понятно. Если возникнут вопросы, комментарии всегда открыты, а так же рекомендую самостоятельно изучить демку, которую скачать можно вот тут ---->
кликать тут
На этом всё, спасибо за внимание!