Посоветовали здесь добавить скрипт для определения моба с его хпр
C:\ae-go\AE-go_GameServer\src\com\aionemu\gameserver\controllers\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);
Такое ощущение что приехал в Китай и пытаюсь написать стихотворение на их языке. )))
03-24-2010, 02:31 PM (Сообщение последний раз редактировалось: 03-24-2010, 03:32 PM celler.)
Вобщем фигня какая-то. Экспа прописана в NpcStatsTemplate.java,
тут "public static long calculateSoloExperienceReward(Player player, Creature target)" как я понял идет проверка intов в соответствии с файлами "player" и "Creature"
остается понять как правильно из NpcStatsTemplate.java выдернуть макс эксп и описать ее чтобы ява поняла...
Добавлено через 1 час 1 минуту
Написал так:
Цитата:public static long calculateSoloExperienceReward(Player player, Creature target)
{
int playerLevel = player.getCommonData().getLevel();
int targetLevel = target.getLevel(); NpcStatsTemplate maxXp = ((Npc) target).getObjectTemplate().getStatsTemplate().getMaxXp();
при компиляции тыкает на ошибку вот в этйо скобке NpcStatsTemplate maxXp = ((Npc) target).getObjectTemplate().getStatsTemplate().getMaxXp()
Нужно правильно указать класс с символами, а то он просто ни видит этих символов и выдает ошибку.
Нужно в этом классе прописать значение класса NpcStatsTempletes и его внутренней переменной getMaxXp(), тогда все заработает.
Я просто не знаю как синтаксически правильно написать это. Кто в яве шарит, то смогут быстро это сделать. На серверах ,где вобло зарабатываю это уже исправили(( Я просил что б дали скрипт, мне сказали 300 у.е. (( жлобы.
03-24-2010, 05:10 PM (Сообщение последний раз редактировалось: 03-24-2010, 08:13 PM celler.)
Ну вобщем в 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().getMaxXp();
//TODO take baseXP from target object (additional attribute in stats template is needed)
int baseXP = maxXp;
int xpPercentage = XPRewardEnum.xpRewardFrom(targetLevel - playerLevel);
Для пати нужно прописать другую формулу. Где
int baseXP = maxXp нужно умножить или поделить (кому как нравится) на количество игроков в пати;
Но где определение количества членов в группе я ни нашел. Если кто знает киньте путь.
И тогда будет правильное распределение экспы.