Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   "Безжалостный mpConsume" и "Варварский Lethal" (https://forum.zone-game.info/showthread.php?t=18193)

finfan 14.02.2012 13:28

"Безжалостный mpConsume" и "Варварский Lethal"
 
Подскажите критину, почему мп жрется именно в еденицах? почему не в %, где происходит процесс её высчитывания. Я облазил формулы но там вообще ничего нет про 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
Если не трудно, будьте добры объясните.

FewG 14.02.2012 13:38

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
Rnd.get(1000) - ренерирует случайную цифру от 0 до 999

finfan 14.02.2012 13:43

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
FewG, я мб и критин, но не на столько :). Я знаю что такое Rnd (Random) и знаю что от 0 до 999, меня интересует почему критический шанс в 100 = 10% а летал в 10 = 10%, хотя rnd стоит 1000.

FewG 14.02.2012 13:51

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
Иначе бы вопроса не было, смотри и считай сам шанс больше 100% быть не может, значит чтобы при макс.шкале в 1000 выбить 100% нужно при рандоме исходить также от шкалы в 1000:

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

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

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

Рассказать, почему такой расчет процентов, а не другой?:

finfan 14.02.2012 14:09

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
да, расскажи, почему от 1000 а не от 100? И где искать расчеты mpConsume на скилл? :)

FewG 14.02.2012 14:25

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
http://joyreactor.ru/pics/comment/%D...D1%85-8389.gif

ExLite 14.02.2012 14:49

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
Цитата:

(skill.getLethalChance1() > 0 && Rnd.get(1000) < calcLethal(activeChar, target, skill.getLethalChance1()))
Функция calcLethal() вернет значение летала умноженное на 10:
Код:

return 10 * activeChar.calcStat(Stats.LETHAL_RATE, chance, target, null);
Можно было сделать хоть Rnd.get(10000), но нужно было бы тогда в возврате calcLethal() сделать умножение на 100.

finfan 14.02.2012 19:41

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
FewG, не о чем товарщь. Впреть я буду благодарен если вы не будете отвечать в созданных мною темах.

Backdoor, коротко и черт бы меня побрал понятно. Поблагодарил.
Быть может знаете где скрывается mpConsume формула? Решил сделать mpConsumePercent на его основе. Ведь как у вас сказанно:
"Хорошее решение, это результат опыта" :Olen':

ExLite 14.02.2012 21:31

Re: "Безжалостный mpConsume" и "Варварский Lethal"
 
По идеи в L2Character, функция onMagicUseTimer, есть строка:
Код:

reduceCurrentMp(mpConsume2, null);
Указывает какое количество мп нужно отнять за каст. Если сделать:
Код:

reduceCurrentMp((getMaxMp()/100)*mpConsume2, null);
То будет забирать % от макс. мп равный mpConsume2.


Текущее время: 11:33. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot