Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
"Безжалостный mpConsume" и "Варварский Lethal"
#1
Подскажите критину, почему мп жрется именно в еденицах? почему не в %, где происходит процесс её высчитывания. Я облазил формулы но там вообще ничего нет про mpConsume, где она прячется?

И еще вопрос:

(skill.getLethalChance1() > 0 && Rnd.get(1000) < calcLethal(activeChar, target, skill.getLethalChance1()))

1000 - это 100% так? тогда как она преобразуется в 100% при создании скила в .xml
Ведь если прописать там Lethal2 val="100", то это 100%
Мне бы было глубоко по*уй, но у шанса критической атаки 1000 = 100%
и чтобы он был 100% нужно писать именно 1000 а не 100.

У летала надо писать 100 у шанса крита 1000, когда у убоих стоит rnd(1000) >.<! Бошка уже трещит =D
Если не трудно, будьте добры объясните.
Ответ
#2
Rnd.get(1000) - ренерирует случайную цифру от 0 до 999
Пропаченные Боты для Игр: Ботва, Понаехали, тут! и пр. Пиши в ПМ.
Ответ
#3
FewG, я мб и критин, но не на столько Smile. Я знаю что такое Rnd (Random) и знаю что от 0 до 999, меня интересует почему критический шанс в 100 = 10% а летал в 10 = 10%, хотя rnd стоит 1000.
Ответ
#4
Иначе бы вопроса не было, смотри и считай сам шанс больше 100% быть не может, значит чтобы при макс.шкале в 1000 выбить 100% нужно при рандоме исходить также от шкалы в 1000:

10 - 1%
100 - 10%
1000 - 100%

Величина самого шанса может быть и больше 100%. На этом и расчитывается все шкала в данном примере - > снова в 1000 единиц.

200 - 200%
300 - 300%
500 - 500%
и тд.тп.

Рассказать, почему такой расчет процентов, а не другой?:
Пропаченные Боты для Игр: Ботва, Понаехали, тут! и пр. Пиши в ПМ.
Ответ
#5
да, расскажи, почему от 1000 а не от 100? И где искать расчеты mpConsume на скилл? Smile
Ответ
#6
[Изображение: %D1%83%D0%BD%D1%8B%D0%BB%D0%B0%D1%8F-%D1...5-8389.gif]
Пропаченные Боты для Игр: Ботва, Понаехали, тут! и пр. Пиши в ПМ.
Ответ
#7
Цитата:(skill.getLethalChance1() > 0 && Rnd.get(1000) < calcLethal(activeChar, target, skill.getLethalChance1()))
Функция calcLethal() вернет значение летала умноженное на 10:
Код:
return [B][color=Red]10[/color][/B] * activeChar.calcStat(Stats.LETHAL_RATE, chance, target, null);
Можно было сделать хоть Rnd.get(10000), но нужно было бы тогда в возврате calcLethal() сделать умножение на 100.
Ответ
#8
FewG, не о чем товарщь. Впреть я буду благодарен если вы не будете отвечать в созданных мною темах.

Backdoor, коротко и черт бы меня побрал понятно. Поблагодарил.
Быть может знаете где скрывается mpConsume формула? Решил сделать mpConsumePercent на его основе. Ведь как у вас сказанно:
"Хорошее решение, это результат опыта" :Olen':
Ответ
#9
По идеи в L2Character, функция onMagicUseTimer, есть строка:
Код:
reduceCurrentMp(mpConsume2, null);
Указывает какое количество мп нужно отнять за каст. Если сделать:
Код:
reduceCurrentMp((getMaxMp()/100)*mpConsume2, null);
То будет забирать % от макс. мп равный mpConsume2.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)