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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Закрытие возможности использовать баг с CP (https://forum.zone-game.info/showthread.php?t=4152)

PROGRAMMATOR 18.07.2009 21:19

Закрытие возможности использовать баг с CP
 
Автор не я, просто нашел в сети и решил выложить у нас. Вот слова автора (перевод):

Я нашел этот баг в старом 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(getActive Char().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 и накатите с помощью черепахи. (Если не знаете как это делать, напишите, я сделаю мини-гайд).

Tonchi 18.07.2009 21:34

Ответ: Закрытие возможности использовать баг с CP
 
Большое спасибо, у тех кто использует сервер Ребилион етот баг исправлен.

PROGRAMMATOR 18.07.2009 21:39

Ответ: Закрытие возможности использовать баг с CP
 
Ни кто и не сомневался, что у них пофиксен баг, они же не бесплатно работали, а вот на бесплатных может юзаться. :)


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

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