ncsSpawN 45 Опубликовано 30 марта, 2016 не change_class байпас случаем?) через него можно 75 взять 3 профу на пв естественно ) а есть другие ещё ?)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 31 марта, 2016 в общем, такая штука не работает на акисах. Ни через точку, ни со слешом, вообще ничего не происходит На ацисах не работает, там не реализованы воискоманды. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 31 марта, 2016 На ацисах не работает, там не реализованы воискоманды. войс да но не кто не запрещал байпасы ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 31 марта, 2016 войс да но не кто не запрещал байпасы ) А с этого момента по подробней=) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 31 марта, 2016 А с этого момента по подробней=) Да что тут писать просто в html вставляем свои байпасы можно в l2text Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dar1us 18 Опубликовано 4 апреля, 2016 А нельзя это решить путем удаления или запретом команды? Ну типо чтоб только у нпц брали проф? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 4 апреля, 2016 А нельзя это решить путем удаления или запретом команды? Ну типо чтоб только у нпц брали проф?Если запретить команду, не что не помешает подменить байпас в памяти или через клиент. Для этого нужно пилить шифрацию и и реализовать прием только зашифрованных байпасов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dar1us 18 Опубликовано 4 апреля, 2016 Если запретить команду, не что не помешает подменить байпас в памяти или через клиент.Для этого нужно пилить шифрацию и и реализовать прием только зашифрованных байпасов.легче убрать награду)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 4 апреля, 2016 легче убрать награду))Это не выход с положения ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeadForzz 152 Опубликовано 4 апреля, 2016 Прощай один из самых легких багов (((( еще скажи что ты его знал)))))))))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeadForzz 152 Опубликовано 4 апреля, 2016 как такое в 2016 может работать? если в сборках л2ж тот же ла2бейс стоит проверка на лвл level >= 20 && jobLevel == 0 ) || (level >= 40 && jobLevel == 1 ) || (level >= 76 && jobLevel == 2 это вообще бред, команду либо специально такой сделали либо допустили ошибку веселый баг на х100 ты просто не представляешь сколько всего работает))))))))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeadForzz 152 Опубликовано 4 апреля, 2016 (изменено) Да у меня свой проект есть, а фейлить других чтоб потом вернулось в тройне не по мне) Я хотел показать что сервер euro-pvp это просто раскрученный проект, есть сборки намного круче моей или ихней и на них не так много онлайна бегает. Но по моим меркам хоть и с маленьким онлайном именно они лидеры по сборкам. твоя то круче чем у евро, я за день ковыряний в евро нахожу что то 100%, а в твоей с*к за неделю не мог нини найти) Изменено 4 апреля, 2016 пользователем DeadForzz Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lightning 177 Опубликовано 4 апреля, 2016 (изменено) еще скажи что ты его знал)))))))))) Нет не знал, доволен? Ты агр? Теперь будешь выслеживать мои сообщения и цеплять их? Изменено 4 апреля, 2016 пользователем Lightning Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeadForzz 152 Опубликовано 4 апреля, 2016 (изменено) Нет не знал, доволен? Ты агр? Теперь будешь выслеживать мои сообщения и цеплять их? причем тут ты чайка, но на счет цеплять тебя я теперь всегда буду))) тут ты прав, я просто тему спавна читал и вижу твой глупый как и все твои коменты и решил ответить п.с. так что ты меня зря тронул чайка))) Изменено 4 апреля, 2016 пользователем DeadForzz Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 4 апреля, 2016 твоя то круче чем у евро, я за день ковыряний в евро нахожу что то 100%, а в твоей с*к за неделю не мог нини найти)Недавно нашел ещё одну но уже серьезную уязвимость под дюп, работает практически везде на java) И на том же эвро пвп, на пакетном уровне. Везде и всегда можно найти баги, не только в серверах л2 но в тех же банковских системах или обычных домофонах. Пока у нас нет искусственного интеллекта который сможет самообучатся и обрабатывать космические данные за короткий срок времени. У нас всегда будут присутствовать баги и дыры во всем. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lightning 177 Опубликовано 4 апреля, 2016 причем тут ты чайка, но на счет цеплять тебя я теперь всегда буду))) тут ты прав, я просто тему спавна читал и вижу твой глупый как и все твои коменты и решил ответить п.с. так что ты меня зря тронул))) Хороший мальчик, возьми булочку с полки. Когда окончишь школу, покажешь мне аттестат? И может тогда я и вступлю с тобой в дальнейшем в дискуссию, а пока я надеюсь - это будет мое последнее сообщение адресованное тебе. Я не против, что ты полагаешь мои все комментарии тупыми, но, в таком случае считайся с тем, что у тебя сообщений оставленных на форуме куда больше, чем у меня. А сколько реков? верно, на парочку больше чем у меня. А это что означает? Снова верно, что ты дружочек мой меньший, куда больше оставляешь "тупых" и не имеющих смысловой нагрузки сообщений. О чем даже свидетельствует та тема "акуме)". Таким образом, хочу подчеркнуть, что ты послан на три буквы. Удачи. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeadForzz 152 Опубликовано 4 апреля, 2016 (изменено) Хороший мальчик, возьми булочку с полки. Когда окончишь школу, покажешь мне аттестат? И может тогда я и вступлю с тобой в дальнейшем в дискуссию, а пока я надеюсь - это будет мое последнее сообщение адресованное тебе. Я не против, что ты полагаешь мои все комментарии тупыми, но, в таком случае считайся с тем, что у тебя сообщений оставленных на форуме куда больше, чем у меня. А сколько реков? верно, на парочку больше чем у меня. А это что означает? Снова верно, что ты дружочек мой меньший, куда больше оставляешь "тупых" и не имеющих смысловой нагрузки сообщений. О чем даже свидетельствует та тема "акуме)". Таким образом, хочу подчеркнуть, что ты послан на три буквы. Удачи. много букв, ты просто пишешь бред всякий, ты просто меньше набивай сообщений ненужными ответами в теме),все не флуди чайка Изменено 4 апреля, 2016 пользователем DeadForzz Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lightning 177 Опубликовано 4 апреля, 2016 много букв, ты просто пишешь бред всякий, ты просто меньше набивай сообщений ненужными ответами в теме),все не флуди чайка Ты посмотри на дату моей регистрации "Регистрация: 25 Feb 2013" Все еще считаешь, что 730 сообщений в течении 3 лет, это набивание постов? ))) Я же говорю ты гений . Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DeadForzz 152 Опубликовано 4 апреля, 2016 Ты посмотри на дату моей регистрации "Регистрация: 25 Feb 2013" Все еще считаешь, что 730 сообщений в течении 3 лет, это набивание постов? ))) Я же говорю ты гений . я сужу по последних Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
advanced 1 Опубликовано 6 мая, 2016 (изменено) Ищем: for (Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet()) Выше добавляем: if ((((level >= 20 && jobLevel == 0) || (level >= 40 && jobLevel == 1) || (level >= 76 && jobLevel == 2)) && Config.CLASS_MASTER_SETTINGS.isAllowed(newJobLevel))) { Закрываем } перед return process(player, "",false); В итоге к примеру на 40 уровне сс пишем в чат .classmaster 103 получаем: Можно подробнее, нужен именно такой результат, но не могу разобраться. Шифрование и прочее не нужны. Вот код classmaster.java при котором баг воспроизводится: package handlers.voice; import javolution.text.TextBuilder; import ru.catssoftware.Config; import ru.catssoftware.gameserver.communitybbs.CommunityBoard; import ru.catssoftware.gameserver.communitybbs.IBBSHandler; import ru.catssoftware.gameserver.datatables.CharTemplateTable; import ru.catssoftware.gameserver.datatables.ItemTable; import ru.catssoftware.gameserver.handler.IVoicedCommandHandler; import ru.catssoftware.gameserver.handler.VoicedCommandHandler; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.base.ClassId; import ru.catssoftware.gameserver.model.olympiad.Olympiad; import ru.catssoftware.gameserver.network.SystemMessageId; import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage; import ru.catssoftware.gameserver.network.serverpackets.SystemMessage; public class ClassMaster implements IVoicedCommandHandler,IBBSHandler { private static final String NOT_ALLOWED = "<html><body><br><br><center>Not allowed now</center></body></html>"; public ClassMaster() { VoicedCommandHandler.getInstance()._classMasterHandler = this; } @Override public String getDescription(String command) { return "Вызов диалога классмастера"; } @Override public String[] getVoicedCommandList() { return new String[] {"classmaster"}; } @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { NpcHtmlMessage msg = new NpcHtmlMessage(0); try { Integer.parseInt(target); } catch(NumberFormatException e) { target = null; } msg.setHtml(process(activeChar, target,false)); activeChar.sendPacket(msg); return false; } public String process(L2PcInstance player, String args, boolean isBBS) { if (player._event!=null || Olympiad.getInstance().isRegistered(player) || Olympiad.getInstance().isRegisteredInComp(player)) { return NOT_ALLOWED; } if(args==null || args.length()==0) { TextBuilder sb = new TextBuilder(); sb.append("<html><body><center><br><br><br><font color=\"006600\">Class Master:</font><br>"); ClassId classId = player.getClassId(); int level = player.getLevel(); int jobLevel = classId.level(); int newJobLevel = jobLevel + 1; if ((((level >= 20 && jobLevel == 0) || (level >= 40 && jobLevel == 1) || (level >= 76 && jobLevel == 2)) && Config.CLASS_MASTER_SETTINGS.isAllowed(newJobLevel))) { if (((level >= 20 && jobLevel == 0) || (level >= 40 && jobLevel == 1) || (level >= 76 && jobLevel == 2)) && Config.CLASS_MASTER_SETTINGS.isAllowed(newJobLevel)) { sb.append("Avaliable classes:<br>"); for (ClassId child : ClassId.values()) { if (child.childOf(classId) && child.level() == newJobLevel) sb.append("<br><a action=\"bypass " +(isBBS?"_bbschange_class ":"voice_classmaster ") + (child.getId()) + "\"> " + CharTemplateTable.getClassNameById(child.getId()) + "</a>"); } if (Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel) != null && !Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).isEmpty()) { sb.append("<br><br>Required items:"); sb.append("<table width=270>"); for (Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet()) { int _count = Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId); sb.append("<tr><td><font color=\"LEVEL\">" + _count + "</font></td><td>" + ItemTable.getInstance().getTemplate(_itemId).getName() + "</td></tr>"); } sb.append("</table>"); } } sb.append("<br>"); } else { switch (jobLevel) { case 0: if (Config.CLASS_MASTER_SETTINGS.isAllowed(1)) sb.append("Call me after <font color=\"LEVEL\">20</font> level.<br>"); else if (Config.CLASS_MASTER_SETTINGS.isAllowed(2)) sb.append("Call me after 1st class transfer.<br>"); else if (Config.CLASS_MASTER_SETTINGS.isAllowed(3)) sb.append("Call me after 2nd class transfer.<br>"); else sb.append("You can't change your profession.<br>"); break; case 1: if (Config.CLASS_MASTER_SETTINGS.isAllowed(2)) sb.append("Call me after <font color=\"LEVEL\">40</font> level.<br>"); else if (Config.CLASS_MASTER_SETTINGS.isAllowed(3)) sb.append("Call me after 2nd class transfer.<br>"); else sb.append("You can't change your profession.<br>"); break; case 2: if (Config.CLASS_MASTER_SETTINGS.isAllowed(3)) sb.append("Call me after <font color=\"LEVEL\">76</font> level.<br>"); else sb.append("You can't change your profession.<br>"); break; case 3: sb.append("You reach top class.<br>"); break; } sb.append("<br>"); } sb.append("</center></body></html>"); return sb.toString(); } else { int val = Integer.parseInt(args); ClassId classId = player.getClassId(); ClassId newClassId = ClassId.values()[val]; int level = player.getLevel(); int jobLevel = classId.level(); int newJobLevel = newClassId.level(); if (!Config.CLASS_MASTER_SETTINGS.isAllowed(newJobLevel)) return NOT_ALLOWED; if (!newClassId.childOf(classId)) return NOT_ALLOWED; if (newJobLevel != jobLevel + 1) return NOT_ALLOWED; if (level < 20 && newJobLevel > 1) return NOT_ALLOWED; if (level < 40 && newJobLevel > 2) return NOT_ALLOWED; if (level < 76 && newJobLevel > 3) return NOT_ALLOWED; // Weight/Inventory check if(!Config.CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).isEmpty()) { if (player.getWeightPenalty() >= 3 || (player.getInventoryLimit() * 0.8 <= player.getInventory().getSize())) { player.sendPacket(new SystemMessage(SystemMessageId.INVENTORY_LESS_THAN_80_PERCENT)); return NOT_ALLOWED; } } for (Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet()) { int _count = Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId); if (player.getInventory().getInventoryItemCount(_itemId, -1) < _count) { player.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS); return NOT_ALLOWED; } } for (Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet()) { int _count = Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId); player.destroyItemByItemId("ClassMaster", _itemId, _count, player, true); } for (Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).keySet()) { int _count = Config.CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).get(_itemId); player.addItem("ClassMaster", _itemId, _count, player, true); } changeClass(player, val); player.rewardSkills(); if (newJobLevel == 3) player.sendPacket(SystemMessageId.THIRD_CLASS_TRANSFER); else player.sendPacket(SystemMessageId.CLASS_TRANSFER); TextBuilder sb = new TextBuilder(); sb.append("<html><body>"); sb.append("<br><br><center>"); sb.append("Поздравляю, Р’С‹ получили класс: <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>."); sb.append("</center></body></html>"); player.refreshOverloaded(); player.refreshExpertisePenalty(); player.broadcastFullInfo(); return sb.toString(); } } private void changeClass(L2PcInstance player, int val) { player.setClassId(val); if (player.isSubClassActive()) player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); else player.setBaseClass(player.getActiveClass()); player.broadcastUserInfo(); player.broadcastClassIcon(); } @Override public String[] getCommands() { return new String [] {"change_class"}; } @Override public String handleCommand(L2PcInstance activeChar, String command, String args) { return process(activeChar,args,true); } public static void main(String [] args) { if(Config.SPAWN_CLASS_MASTER) { ClassMaster cm = new ClassMaster(); VoicedCommandHandler.getInstance().registerVoicedCommandHandler(cm); CommunityBoard.getInstance().registerBBSHandler(cm); } } } Дело в том, что если искать for (Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet()) то находится 3 таких строки, а Закрываем } перед return process(player, "",false); return process(player, "",false); - такого нет вообще. Если делаю копипасту из шапки, то получаю неработоспособного классмастера и ClassMaster.java.error.log следующего содержания: Error on: X:\SERVER\game\data\scripts\handlers\voice\ClassMaster.java.error.log Line: -1 - Column: -1 compilation failed Изменено 6 мая, 2016 пользователем advanced Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 8 июня, 2016 тоже проблема решил скинь в пм фикс или ктонебуть у кого готово Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 8 июня, 2016 тоже проблема решил скинь в пм фикс или ктонебуть у кого готово Не нужно выдумывать в шапке полностью рабочий скрипт, смотрите лог ошибки если что не так у вас в ядре. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 8 июня, 2016 Не нужно выдумывать в шапке полностью рабочий скрипт, смотрите лог ошибки если что не так у вас в ядре. бьет ошьбку проверял могу вылошить в пм ее поэтому и порасил минемальный фикс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 8 июня, 2016 скиньте лог гс сюда Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 8 июня, 2016 (изменено) глянте Изменено 8 июня, 2016 пользователем Firs Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты