Re: Java EXP
Посоветовали здесь добавить скрипт для определения моба с его хпр
C:\ae-go\AE-go_GameServer\src\com\aionemu\gameserver\controlle rs\MonsterController.java Я только не понял как там getOwner() присвоилось к мобу. Мозг летит в топку но чувствую конец близок)) Ща разберусь с этим скриптом только public void doReward(Creature creature) { super.doReward(creature); if(creature instanceof Player) { Player player = (Player) creature; if(player.getPlayerGroup() == null) //solo { long xpReward = StatFunctions.calculateSoloExperienceReward(player , getOwner()); player.getCommonData().addExp(xpReward); Такое ощущение что приехал в Китай и пытаюсь написать стихотворение на их языке. ))) |
Re: Java EXP
Вобщем фигня какая-то. Экспа прописана в NpcStatsTemplate.java,
тут "public static long calculateSoloExperienceReward(Player player, Creature target)" как я понял идет проверка intов в соответствии с файлами "player" и "Creature" остается понять как правильно из NpcStatsTemplate.java выдернуть макс эксп и описать ее чтобы ява поняла... Добавлено через 1 час 1 минуту Написал так: Цитата:
Поидее если скомпилится, то должно заработать... |
Re: Java EXP
Не NPC а Creature...
Добавлено через 32 секунды Т.е. ((Creature) target).getObjectTemplate().getStatsTemplate().get MaxXp() |
Re: Java EXP
Нужно правильно указать класс с символами, а то он просто ни видит этих символов и выдает ошибку.
Нужно в этом классе прописать значение класса NpcStatsTempletes и его внутренней переменной getMaxXp(), тогда все заработает. Я просто не знаю как синтаксически правильно написать это. Кто в яве шарит, то смогут быстро это сделать. На серверах ,где вобло зарабатываю это уже исправили(( Я просил что б дали скрипт, мне сказали 300 у.е. (( жлобы. |
Re: Java EXP
Ну вобщем в StatFunctions чуть ниже есть формулы расчета ДП, там указывается ранк моба. Делаю аналогично для экспы, и вот ошибку с этой скобкой выдает((
Щас проверю еще одну мысль, может получится.. Добавлено через 3 часа 3 минуты Вот же я тупил ппц)) Вобщем мозговой штурм увенчался окончательной победой)) Делаем так, и наслаждаемся: public static long calculateSoloExperienceReward(Player player, Creature target) { int playerLevel = player.getCommonData().getLevel(); int targetLevel = target.getLevel(); int maxXp = ((Npc) target).getObjectTemplate().getStatsTemplate().get MaxXp(); //TODO take baseXP from target object (additional attribute in stats template is needed) int baseXP = maxXp; int xpPercentage = XPRewardEnum.xpRewardFrom(targetLevel - playerLevel); return (int) Math.floor(baseXP * xpPercentage * player.getRates().getXpRate() / 100); } |
Re: Java EXP
Молодца. Респект и уважуха.
Теперь нужно мозг добить со штрафом на дроп по лвл и вооще супер будет. Там формулу можно взять их по процентам на разницу лвл. Как всегда просто добавть строку в получении дропа. )))) |
Re: Java EXP
Shema, celler, у вас это компилируется?
|
Re: Java EXP
У меня нет...
|
Re: Java EXP
Вложений: 1
Все работает. Поменяйте файл перед компиляцией.
C:\ae-go\AE-go_GameServer\src\com\aionemu\gameserver\utils\sta ts |
Re: Java EXP
Для пати нужно прописать другую формулу. Где
int baseXP = maxXp нужно умножить или поделить (кому как нравится) на количество игроков в пати; Но где определение количества членов в группе я ни нашел. Если кто знает киньте путь. И тогда будет правильное распределение экспы. |
Текущее время: 06:46. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot