Перейти к содержанию

Gaikotsu

Постоялец
  • Публикаций

    1569
  • Зарегистрирован

  • Посещение

  • Победитель дней

    62
  • Отзывы

    0%

Весь контент Gaikotsu

  1. я без понятия как там у L2jLovely с этим, может хардкодом в ядре, может в свойствах мобов, может даже в квесте на СА расписано. вот в овере это скажем в параметрах нпс расписано, с какого урвовня по какой есть прокачка, каким методом и каким шансом.
  2. самый примитивный вариант: в нужном конфиге добавляем переменную SpawnCoords с содержимым вида SpawnCoords = x1,y1,z1;x2,y2,z2; ... ;xN,yN,zN далее в Config.java: public static ArrayList<Location> SPAWN_COORDS = new ArrayList<Location>(); ... String str = settings.getProperty("SpawnCoords", ""); if (!str.isEmpty()) { String[] spawnCoordsList = str.split(";"); for (String spawnCoords : spawnCoordsList) { try { Location loc = Location.parseLoc(spawnCoords); SPAWN_COORDS.add(loc); } catch (Exception e) {} } } ну и в итоге сам выбор координат превращается в чето-то типа такого if (!Config.SPAWN_COORDS.isEmpty()) { Location loc = Config.SPAWN_COORDS.get(Rnd.get(Config.SPAWN_COORDS.size())); newChar.setXYZInvisible(loc.getX(), loc.getY(), loc.getZ()); } else newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);
  3. можно и попроще расписать if (Config.SPAWN_CHAR) { switch (Rnd.get(5)) { case 0: newChar.setXYZInvisible(Config.SPAWN_X, Config.SPAWN_Y, Config.SPAWN_Z); break; case 1: newChar.setXYZInvisible(Config.SPAWN2_X, Config.SPAWN2_Y, Config.SPAWN2_Z); break; case 2: newChar.setXYZInvisible(Config.SPAWN3_X, Config.SPAWN3_Y, Config.SPAWN3_Z); break; case 3: newChar.setXYZInvisible(Config.SPAWN4_X, Config.SPAWN4_Y, Config.SPAWN4_Z); break; case 4: newChar.setXYZInvisible(Config.SPAWN5_X, Config.SPAWN5_Y, Config.SPAWN5_Z); break; } } else newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ); З.Ы. Но вобще это извращение - для каждой точки спавна заводить новые параметры в конфиге. лучше уж хранить это в одном параметре, в виде массива строк координат и разбирать это дело при загрузке на отдельные координаты.
  4. а, точно тогда не знаю чего автору хочется - TARGET_AURA же не требуется для работы выделения целей - просто целью являются определенные объекты в заданом радиусе от кастера.
  5. а ничего что СА этих уровней качаются не юзом скилла на цель, а просто шансово при убийстве босса? проверяй, прописана ли для этих боссов прокачка на них СА с 12 до 13 уровня.
  6. для этого не мануалы нужны, а мозги и хоть какое-то знание явы.
  7. Gaikotsu

    Switch -> If{}Else If{}

    ты как будто корейцев не знаешь - ударит им опять что-то в голову и выкинут коленце типа "а давайте пропустим несколько десятков номеров слотов и сделаем новые слоты с номерами ну например с 71".
  8. Gaikotsu

    Lindvior

    у меня такое тоже было, но что-то я сомневаюсь что причина та же у тебя.у меня то причина была из-за того что обработку действий в одном динамическом квесте непроработал как следует и в итоге было веселье с тем что в период работы этого квеста все мобы и нпс на сервере убегали (с последующим суицидом) от игроков.
  9. Gaikotsu

    Switch -> If{}Else If{}

    ну это логично, ибо битовую маску со значениями слотов выше 31 в int не пошлешь. интерестно как будут выкручиваться если внезапно еще слотов добавят и 63 (при long) не хватит ну а мне пока даже на будущее нет смысла делать хранение в long - будут лишь лишние преобразования типов в итоге.
  10. Gaikotsu

    Switch -> If{}Else If{}

    да я в курсе что там есть номера слотов выше 31. но пока мне это не актуально - это у тебя сборка пилится for fun и ты в принципе только пакетку и все что ей сопутствует мучаешь, а у меня сборка, над которой я работаю, уже стоит на серверах на которых играют и посему пока ап до эпиздеона и выше не планируется - пока линдвиор домучивается, притом 531 протокол - выше пока по пакетке даже и не лезу.
  11. Gaikotsu

    Switch -> If{}Else If{}

    а так не пробовал? if(bodySlot == (ItemTemplate.SLOT_L_EAR | ItemTemplate.SLOT_R_EAR)) просто ты в if(bodySlot == ItemTemplate.SLOT_L_EAR | bodySlot == ItemTemplate.SLOT_R_EAR) уже над результатами сравнения производишь битовое сложение. или над ItemTemplate.SLOT_L_EAR и bodySlot - я просто не помнь ща наизусть очередность операций в таком случае.
  12. да тут и исправлять то по идее нечего - напрямую вроде как и нельзя перевести академика в основной состав, только через исключение из клана и обратный прием.
  13. Gaikotsu

    Передача Итема

    экстрасенсы тут не водятся. для начала стоило хотя бы сборку указать.
  14. ага, в свое время тоже долго не мог понять что за нафиг, а оказывается корейцы привязали размер дыры к размеру нпс, кастующей ее. притом для нормального размера дыры надо делать размеры у нпс вобще микроскопичными - тысячные доли.
  15. Gaikotsu

    Ядро

    ну или через ArrayUtils.contains , если вариантов классов много.
  16. ну дак вон VREDNbIi утверждает что он это "делал еще 2 года назад" - так что видимо он тебе и может помочь.
  17. ну на словах тут многие "это делали уже N лет назад без всяких проблем", но только на словах - как-то при просьбе показать "сделанное", внезапно с этим начинаются разные проблемы. продемонстрируй как ты ограничиваясь только правкой датников клиента (ну еще может добавлением новой иконки грейда) добавляешь в него этот самый новый грейд, а не просто меняешь название и иконку существующего. и добавляешь так чтобы ничего в клиенте в итоге не глючило.
  18. в пакете NpcInfo слать ид существующего на сервере клана, с нужным значком
  19. нифига, клиент с сервером никакой информацией о грейде вещи не обмениваются - клиент ее сам смотрит из *grp.dat, руководствуясь только ид предмета, который и прислал сервер.
  20. читай внимательно - я про клиентскую сторону вобще-то говорю, а не серверную
  21. а, ну флаг вам в руки.погляжу я как вы таким методом будете к примеру вещи нового грейда вводить, ид которого клиент не знает и не будет в курсе какую иконку грейда для него показывать.
  22. 1. плохо смотрел - обычно скилл экспертизы прописан в базовых классах персонажей (хуман файтер, хуман маг и т.д.). разве что авторы сборки сделали очередной изврат и выдают экспертизу хардкодом в ядре. 2. новый грейд в клиент ты не добавишь никак, ну как минимум правкой dat-ников и добавлением новой иконки не обойтись - требуются изменения в клиенте на более глубоком уровне (dll-файлы, u-файлы).
  23. править ядро, т.к. скорее всего в методах начисления пвп-очков идет проверка на то, что игрок не в пвп-зоне. проверка вполне логичная, т.к. иначе бы народ активно набивал пвп на тех же аренах или колизее. если нет возможности править ядро - можно вместо battle_zone попробовать сделать нужную зону осадной.
×
×
  • Создать...