Jump to content

Gaikotsu

Resident
  • Content Count

    1463
  • Joined

  • Last visited

  • Days Won

    42
  • Feedback

    0%

Gaikotsu last won the day on July 21

Gaikotsu had the most liked content!

Community Reputation

577

About Gaikotsu

  • Rank
    Легенда форума

Информация

  • Пол
    Мужчина

Контакты

Recent Profile Visitors

13487 profile views
  1. составить правильный build.xml, настроить проект и его компиляцию в IDE и вперед З.Ы. только каким местом тут svn я не понял З.З.Ы. судя по "/* */" в началах строк - это у тебя декомпил? ковыряться с декомпилом - последнее дело... неочевидных багов/косяков при декомпиле может в код внестись куча, притом повторной компиляции они мешать не будут, но вот код в итоге может потом криво работать.
  2. ну так ты должен указать javac'у, откуда брать все нужные jar'ки, в которых лежат все классы которые импортятся в этот класс.
  3. Чувака 5 лет на форуме не было, с момента создания этой темы. Ты все еще думаешь что он тебе ответит? и вобще - я вон выше тогда решение писал уже - причина была в пвп-зоне у баюма
  4. а в твоей сборке вобще существует поддержка хтмлок диалогов на разных языках?
  5. я к примеру через батник пакую так @soft\l2encdec -h121 %1 %1.tmp @del %1 @ren %1.tmp %1 где %1 это переданное в батник имя файла, типа pack.cmd pack.utx
  6. При криптовании с 121 версией в процессе крипта/декрипта используется имя файла (кажется как часть ключа), так что если при крипте имя было одно, а при декрипте другое - само собой получим ошибку. Ну а если под криптом подразумевается крипт по своему алгоритму для защиты, но толку от этого мало - поможет разве что от самых полных нубов, т.к. клиент то для работы все равно должен будет эти файлы декриптовать, т.е. в нем все равно будет ключ и т.д. необходимые для расшифровки.
  7. каким местом связаны обычные зоны и инстанс зоны в проверках? ид инстанс зоны - это ид из описания инстанса, по которому и определяется, что это за инстанс и какие настройки и т.д. для него брать.
  8. от сборки зависит к примеру в сервере на базе овера можно в нужные скиллы дописать примерно такое - в данном случае скилл нельзя будет юзать в инстансе с ид 123 <cond msgId="113"> <not> <player instanceZone="123" /> </not> </cond> или же можно вобще запретить использование в любых инстансах <cond msgId="113"> <player instanceZone="0" /> </cond> в данном случае скилл можно будет юзать тоьлко в нулевом инстансе, коим является основной рефлекшн игры.
  9. Я ж говорю - простейшая реализация делается за кратчайшее время... Чисто для примера - набросано меньше чем за час, притом в этот час входит и проверка работоспособности и т.д. Код под овероподобные сборки, под свое адаптировать надеюсь умений хватит - я помогать не буду. Мое дело было подсказать как это можно сделать, а дальше уж сам
  10. Ты даже не указал сборку. И вряд ли кто будет с подобным возиться за "спасибки", хотя в целом дело достаточно простое - под свою сборку, если бы вдруг такое потребовалось, я бы такое в принципе, в простейшем варианте набросал за пару часов.
  11. Ну так тебе прямо указывают где проблема, вплоть до строки в классе. 1. NpcInstance.java:381 - NPE на 381 строке класса, что-то в этой строке равно null 2. SendProtocolVersion.java:45 - попытка в 45 строке класса прочесть данные за пределами того, что пришло в пакете, т.е. проще говоря считать больше байт, чем пришло. скорее всего криво сформированный пакет от клиента или вобще мусор вместо данных в нем.
  12. Советую пробелы воткнуть вокруг переменной - некоторые клиенты без этого в строке байпасса переменную найти не могут.
  13. В итоге будет у тебя в логе что-то типа такого выводить при входе и далее:
  14. ну это ты чисто клиентские коды выводишь, а для полноты картины еще и то что сервер шлет выводить стоит для этого можно вывод в sendPacket класса GameClient добавить, как-то примерно так public void sendPacket(L2GameServerPacket gsp) { if (isConnected()) { if (DevConfig.SHOW_SERVER_PACKET_NAME && gsp != null && !DevConfig.HIDE_SERVER_PACKET_NAME.contains(gsp.getClass().getSimpleName())) _log.info(getLogin() + " <-- [S] " + gsp.getClass().getSimpleName()); getConnection().sendPacket(gsp); } } а для клиентских, более информативное что-то типа такого, в конце handlePacket класса GamePacketHandler, перед return msg; if (DevConfig.SHOW_CLIENT_PACKET_NAME) { if (msg != null) { if (!DevConfig.HIDE_CLIENT_PACKET_NAME.contains(msg.getClass().getSimpleName())) { _log.info(client.getLogin() + " --> [C] " + msg.getClass().getSimpleName()); if (DevConfig.SHOW_CLIENT_PACKET_DUMP && !DevConfig.SHOW_ONLY_UNKNOWN_PACKET_DUMP && buf.remaining() > 0) _log.info("Data [" + buf.remaining() + "]:\n\n" + Util.printData(buf.asReadOnlyBuffer())); } } else if (name != null) { if (!DevConfig.HIDE_CLIENT_PACKET_NAME.contains(name)) { _log.info(client.getLogin() + " --> [C] " + name + " [not implemented]"); if (DevConfig.SHOW_CLIENT_PACKET_DUMP && !DevConfig.SHOW_ONLY_UNKNOWN_PACKET_DUMP && buf.remaining() > 0) _log.info("Data [" + buf.remaining() + "]:\n\n" + Util.printData(buf.asReadOnlyBuffer())); } } }
  15. Вобще по логике, чтобы не было косяков с текстурами одеваемой/снимаемой брони при смене вида целым костюмом, в такой ситуации для всех слотов у которых вид меняется этим костюмом надо слать 0 в качестве одетого предмета. Ну само собой кроме слота chest. Ну типа как вот примерно так (тип 1 - внешка меняет верх + низ, тип 2 - внешка в виде полного костюма): int[] inv = new int[Inventory.PAPERDOLL_ORDER.length]; for (int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) inv[PAPERDOLL_ID] = charInfoPackage.getPaperdollItemId(PAPERDOLL_ID); if (charInfoPackage.getAppearanceType() == 1) { inv[Inventory.PAPERDOLL_LEGS] = 0; } else if (charInfoPackage.getAppearanceType() == 2) { inv[Inventory.PAPERDOLL_LEGS] = 0; inv[Inventory.PAPERDOLL_GLOVES] = 0; inv[Inventory.PAPERDOLL_FEET] = 0; } for (int itemId : inv) writeD(itemId);
×
×
  • Create New...