Закрытие возможности использовать баг с CP
Автор не я, просто нашел в сети и решил выложить у нас. Вот слова автора (перевод):
Я нашел этот баг в старом L2J C5 сервере. Тогда я решил воспроизвести его на серверах Interlude которые были доступны с HopZone, и он работал на большинстве из них. В последних ревизиях L2jServer его исправили, но зато все так же работает в L2jFree. Я описал по пунктам как определить, если ли он на вашем сервере.
Что бы закрыть возможность использовать баг, нужно применить патчи и скомпилировать 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 и накатите с помощью черепахи. (Если не знаете как это делать, напишите, я сделаю мини-гайд). |
Ответ: Закрытие возможности использовать баг с CP
Большое спасибо, у тех кто использует сервер Ребилион етот баг исправлен.
|
Ответ: Закрытие возможности использовать баг с CP
Ни кто и не сомневался, что у них пофиксен баг, они же не бесплатно работали, а вот на бесплатных может юзаться. :)
|
Текущее время: 23:46. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot