Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Java EXP
#21
Посоветовали здесь добавить скрипт для определения моба с его хпр
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);

Такое ощущение что приехал в Китай и пытаюсь написать стихотворение на их языке. )))
Ответ
#22
Вобщем фигня какая-то. Экспа прописана в 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()

Поидее если скомпилится, то должно заработать...
Ответ
#23
Не NPC а Creature...

Добавлено через 32 секунды
Т.е. ((Creature) target).getObjectTemplate().getStatsTemplate().get MaxXp()
Ответ
#24
Нужно правильно указать класс с символами, а то он просто ни видит этих символов и выдает ошибку.
Нужно в этом классе прописать значение класса NpcStatsTempletes и его внутренней переменной getMaxXp(), тогда все заработает.
Я просто не знаю как синтаксически правильно написать это. Кто в яве шарит, то смогут быстро это сделать. На серверах ,где вобло зарабатываю это уже исправили(( Я просил что б дали скрипт, мне сказали 300 у.е. (( жлобы.
Ответ
#25
Ну вобщем в 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);

return (int) Math.floor(baseXP * xpPercentage * player.getRates().getXpRate() / 100);
}
Ответ
#26
Молодца. Респект и уважуха.

Теперь нужно мозг добить со штрафом на дроп по лвл и вооще супер будет.

Там формулу можно взять их по процентам на разницу лвл. Как всегда просто добавть строку в получении дропа. ))))
Ответ
#27
Shema, celler, у вас это компилируется?
Ответ
#28
У меня нет...
Ответ
#29
Все работает. Поменяйте файл перед компиляцией.
C:\ae-go\AE-go_GameServer\src\com\aionemu\gameserver\utils\stats


Файлы вложений
.zip   StatFunctions.zip (Размер: 3.9 KB / Загрузок: 10)
Ответ
#30
Для пати нужно прописать другую формулу. Где
int baseXP = maxXp нужно умножить или поделить (кому как нравится) на количество игроков в пати;
Но где определение количества членов в группе я ни нашел. Если кто знает киньте путь.
И тогда будет правильное распределение экспы.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  JDK7 и NpcShoutsService.java - unchecked or unsafe operations. TieLay 8 3,955 11-13-2011, 05:46 PM
Последний пост: Azagthtot
  Aion.Java djavol130 19 5,672 01-25-2011, 10:47 AM
Последний пост: TieLay
  Что случилось с Aion-java Infinity 3 3,155 01-16-2011, 09:50 PM
Последний пост: TieLay
  Компелирование Aion Java 2.1 ошибка rom22207 2 2,828 01-14-2011, 01:35 PM
Последний пост: rom22207
  Судьба Java-эмулятора проекта TieLay 5 2,807 08-14-2010, 11:07 PM
Последний пост: TieLay
  Mysql и Java х64 fonzik 1 2,200 04-07-2010, 07:58 PM
Последний пост: Nemesis
  GoTo.java Hylop 2 2,343 03-10-2010, 10:51 PM
Последний пост: Hylop
  ошибка в SVN или JAVA portotiv 3 5,491 02-13-2010, 10:33 AM
Последний пост: MetaWind
  Java и серверная часть. Koenigwer 12 5,943 01-26-2010, 10:02 AM
Последний пост: Koenigwer
  Java сервер Aion от Aion-Unique версии 301 Вопрос по серверу DarkSalivan 6 6,807 10-20-2009, 02:10 AM
Последний пост: nelegal

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


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