Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Закрытие возможности использовать баг с CP
#1
Автор не я, просто нашел в сети и решил выложить у нас. Вот слова автора (перевод):

Я нашел этот баг в старом L2J C5 сервере. Тогда я решил воспроизвести его на серверах Interlude которые были доступны с HopZone, и он работал на большинстве из них. В последних ревизиях L2jServer его исправили, но зато все так же работает в L2jFree.

Я описал по пунктам как определить, если ли он на вашем сервере.
  • Берем персонажем оружие, которое повышает CP. (Например: Infinity Wing)
  • Ждем пока не восстановится до максимального значения ваш CP
  • Снимаем оружие
  • Если значение CP не сбросилось, значит баг работает

Что бы закрыть возможность использовать баг, нужно применить патчи и скомпилировать java сервер.

[SOURCE="diff"]Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (Revision 2746)
+++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (working copy)

private int _oldMaxHp; // stats watch
private int _oldMaxMp; // stats watch
+ private int _oldMaxCp; // stats watch[/SOURCE]

[SOURCE="diff"]Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (Revision 2746)
+++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (working copy)

super.setLevel(value);
}
}
+ @Override
+ public final int getMaxCp()
+ {
+ int val = super.getMaxCp();
+ if (val != _oldMaxCp)
+ {
+ _oldMaxCp = val;
+ if (getActiveChar().getStatus().getCurrentCp() != val)
+ {
+ getActiveChar().getStatus().setCurrentCp(getActiveChar().getStatus().getCurrentCp());
+ }
+ }
+ return val;
+ }

@Override
public final int getMaxHp()[/SOURCE]

[SOURCE="diff"]Index: java/net/sf/l2j/gameserver/model/actor/stat/CharStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/CharStat.java (Revision 2746)
+++ java/net/sf/l2j/gameserver/model/actor/stat/CharStat.java (working copy)

return _activeChar.getTemplate().baseAtkRange;
}

- public final int getMaxCp()
+ public int getMaxCp()
{
if (_activeChar == null)
{
return 1;
}

return (int) calcStat(Stats.MAX_CP, _activeChar.getTemplate().baseCpMax, null, null);
}[/SOURCE]

Автор исправления: Devon

Патчи вы можете вручную прописать у себя на сервере, тут не много кода, а можете и автоматически пропатчить, просто сохраните эти куски в файл patch.diff и накатите с помощью черепахи. (Если не знаете как это делать, напишите, я сделаю мини-гайд).
Ответ
#2
Большое спасибо, у тех кто использует сервер Ребилион етот баг исправлен.
Ответ
#3
Ни кто и не сомневался, что у них пофиксен баг, они же не бесплатно работали, а вот на бесплатных может юзаться. Smile
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Нет возможности создать персонажа mexan019 14 3,366 04-29-2012, 01:08 AM
Последний пост: mexan019
  Принудительное закрытие диалогов в клиенте cmepw 0 1,478 04-30-2010, 09:50 PM
Последний пост: cmepw

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


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