Случайный лут из сундуков [VXAce]

Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71330 от Kian Ni
Простейший скрипт для рандомного дропа вещей из сундука.
Вызов скрипта идет через команду скрипт, в которой нужно просто прописать chest.
Code:
class Game_Interpreter #Содержание сундука def chest item_random = (rand(n) + m + 1).to_i #Где m с какого айди начинается отсчет вещей, n - количество вещей в выборке. if item_random == 7#Последнее число для получения золота values = rand(N) + M).to_i# N - число случайного варьирование дропа, M - константа дропа. $game_party.gain_gold(values) wait_for_message $game_message.background = 1 $game_message.position = 1 $game_message.add("Найдено золота: #{values}") wait_for_message else $game_party.gain_item($data_items[item_random], 1) wait_for_message $game_message.background = 1 $game_message.position = 1 $game_message.add("Найдено:\n#{$data_items[item_random].name}") wait_for_message end end ################################ end
Последнее редактирование: 11 года 9 мес. назад пользователем Kian Ni.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов 2 место
Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71331 от Lipton
Какой-то странный код.
По всей видимости идет привязка к 5-ти уровня сложности в зависимости от которых идет генерация предметов из инвентаря.
Причем либо золото, что редко... либо итем от 1 до зависит от сложности.
Этот скрипт не дает выкидывать армор или оружие.

По сути для полноценной генерации нужно использовать теги. И помечать предметы которые будут использоваться в выборе. Например в тэг предмета писать <level 1> и этот предмет будет участвовать в случайной выборке если сундук открыл персонаж 1 уровня. Или тэг <level all> этот предмет будет участвовать во всех выборках для персонажей любого уровня. Можно даже метки делать для вещей падающих с боссов, что бы отделить генерацию крутого лута от мелкого дропа.

Все что здесь написано было актуально в прошлом топике (до переноса) с полным видом кода...
Последнее редактирование: 11 года 9 мес. назад пользователем Lipton. Причина: Непонятки с переносами =)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 9 мес. назад #71332 от Kian Ni
Та то не полный код, то я случайно копирнул свой код.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 9 мес. назад #71334 от Cerberus
Одно непонятно: откуда берутся эти N, M, n, m?

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 9 мес. назад #71335 от Kian Ni
Ну дык сам их вносишь.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 9 мес. назад - 11 года 9 мес. назад #71336 от Cerberus
А, то есть они туда статически подставляются, а не при запуске. Вот это следовало бы понятнее написать, полагаю :)

Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 11 года 9 мес. назад пользователем Cerberus.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов 2 место
Больше
11 года 9 мес. назад #71337 от Lipton
А может их ставить при вызове.
def chest(n,m,N,M)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 9 мес. назад #71338 от Kian Ni
Можно и так, но так запутанней, самое верное вообще в модуль отдельный вынести.
Спасибо сказали: Cerberus

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.106 секунд
Работает на Kunena форум