Всем привет. Не давно меня попросили показать пример того как работает шанс заточки предметов в Lineage2. По факту данная функция реализована во многих играх однотипно не только для заточки, но и для шанса сломать предмет, или его выиграть, скрафтить, найти итд. Давайте разберемся что же такое вообще шанс успеха того или иного действия в играх.
За основу и разбор данной проблемы взята игра Lineage 2 так как ее достаточно много знают людей, она достаточно популярно и посей день, но не многие понимают как работает в этой игре заточка предметов и как сказывается на это параметр удачи.
Теория
Начнем с теоретической части. В игре иногда пишут шанс создать или заточить с успехом в 66% Это говорит о том что из 100 случаев, успех будет только в 66% , а 34% вы терпите не удачу.
Практическая часть
Как это реализовано в играх. За основу берем 100 случаев, генерируем случайное число в диапазоне от 0 до 100. Полученное число сравниваем в каком диапазоне чисел оно лежит от 0 до 66 или от 67 до 100. В результате полученного числа и разбора нахождения диапазона мы можем сделать вывод, произошло ли события или мы потерпели неудачу.
Пример:
Шанс 75% на то что бы заточить предмет. Программным путем генерируем случайно число от 0 до 100. До пустим у нас выпало число 43. Это означает что оно находится в диапазоне от 0 до 75% Соответственно мы попали в этот диапазон шанса, и наш предмет заточился.
Пример код я приведу на языке C#
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public void Сhance(int percent) { Random random = new Random(); int i = random.Next(0, 100); if (i < percent) { Console.WriteLine("Заточили"); } else { Console.WriteLine("Сломали"); } } |
Разберем код, тут ничего сложного, мы просто вызываем метод Chance передаем в него предполагаемый процент «шанс». Генерируем число в диапазоне от 0 до 100 с помощью класса Random. Создаем условие в котором сверяем лежит ли число в этом диапазоне «Шанса» и сообщаем пользователю о том заточился или сломался предмет.
Удача в игре LineAge 2
С параметром шанса мы разобрались, но что же такое за параметр удача в игре LineAge 2.
Как сообщают многие пользователи и тестеры, а так же владельцы серверов. Параметр удача дает 100% шанс создания или заточки в игре, только в том случаи если у вас удача имеет значение 200. Мы знаем что в игре до такой цифры разогнать параметр не возможно, могу ошибаться но этот предел до 100. Соответственно удача в 100 даст прибавку к шансу 50% процентов. Удача в 50 даст прибавку к шансу 25%. В итоге мы при расчете должны сложить шанс удачи и шанс заточки, общая сумма этих параметров и будет складываться в результате вычислений.
Давайте рассмотрим простой пример допустим мы точим агатиона на +4 шанс заточки агатиона с +3 на +4 равен 65%, данные взяты с официального форума игры. Так же предположим у нас параметр Удачи имеет значение равное 50. А это эквивалент 25% шанса. Соответственно мы складываем наши 65% и 25% итоговый шанс получаем в 90% шанс заточки агатиона с +3 на +4. А дальше генерируем число и смотрим находится ли оно в диапазоне от 0 до 90 если да мы заточили агатиона если генерируемое число 90+ значит мы его сломали.
Я написал программу которую вы сами можете использовать в качестве демонстрации, того как работает заточка в игре.
Извините, а в какой версии игры есть параметр «Удача»? Что-то не встречал его конкретно в Lineage2.
И не подскажете как рассчитать шанс заточки два раза подряд? Т.е. есть предмет +0 и с шансом 50% он точится на +1, а затем с шансом 35% точится с +1 на +2. Так вот, какова вероятность, что предмет заточится на +2 с +0 двумя кликами?
начиная с интерлюда и в последней версси руоффа точно есть. А какая разница 1 или 2 если тут чистая математика