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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Серверная часть (https://forum.zone-game.info/forumdisplay.php?f=148)
-   -   Java EXP (https://forum.zone-game.info/showthread.php?t=7105)

Shema 23.03.2010 21:15

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);

Такое ощущение что приехал в Китай и пытаюсь написать стихотворение на их языке. )))

celler 24.03.2010 14:31

Re: Java EXP
 
Вобщем фигня какая-то. Экспа прописана в 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().get MaxXp();
при компиляции тыкает на ошибку вот в этйо скобке NpcStatsTemplate maxXp = ((Npc) target).getObjectTemplate().getStatsTemplate().get MaxXp()

Поидее если скомпилится, то должно заработать...

zaqwer 24.03.2010 16:27

Re: Java EXP
 
Не NPC а Creature...

Добавлено через 32 секунды
Т.е. ((Creature) target).getObjectTemplate().getStatsTemplate().get MaxXp()

Shema 24.03.2010 17:05

Re: Java EXP
 
Нужно правильно указать класс с символами, а то он просто ни видит этих символов и выдает ошибку.
Нужно в этом классе прописать значение класса NpcStatsTempletes и его внутренней переменной getMaxXp(), тогда все заработает.
Я просто не знаю как синтаксически правильно написать это. Кто в яве шарит, то смогут быстро это сделать. На серверах ,где вобло зарабатываю это уже исправили(( Я просил что б дали скрипт, мне сказали 300 у.е. (( жлобы.

celler 24.03.2010 17:10

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);
}

Shema 24.03.2010 22:01

Re: Java EXP
 
Молодца. Респект и уважуха.

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

Там формулу можно взять их по процентам на разницу лвл. Как всегда просто добавть строку в получении дропа. ))))

ViAl 25.03.2010 09:09

Re: Java EXP
 
Shema, celler, у вас это компилируется?

zaqwer 25.03.2010 09:36

Re: Java EXP
 
У меня нет...

Shema 25.03.2010 09:59

Re: Java EXP
 
Вложений: 1
Все работает. Поменяйте файл перед компиляцией.
C:\ae-go\AE-go_GameServer\src\com\aionemu\gameserver\utils\sta ts

Shema 25.03.2010 13:51

Re: Java EXP
 
Для пати нужно прописать другую формулу. Где
int baseXP = maxXp нужно умножить или поделить (кому как нравится) на количество игроков в пати;
Но где определение количества членов в группе я ни нашел. Если кто знает киньте путь.
И тогда будет правильное распределение экспы.


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

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