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

YuraAAA1

Пользователи
  • Публикаций

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

  • Посещение

  • Отзывы

    0%

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

  1. нет. List<Effects> effectsList = getEffectsBySkillId(id); if (effectsList != null && !effectsList.isEmpty()) { ... }
  2. так не понятно что ты хочешь конкретно
  3. Нет, на это количество уменьшается ХП. Нужно проверить, срабатывает ли это событие, или же сразу срабатывает onDeath (ну или как-то так).
  4. GludioGuard причём тут? Это ведь AI гварда.
  5. А чья сборка? У меня валялась l2ft, проверка получаем аттрибуты так: ItemAttributes attributes = player.getInventory().getItemByItemId(itemObjectId).getAttributes(); boolean isFireAttribute = attributes.getFire() > 0; boolean isEarthAttribute = attributes.getEarth() > 0; boolean isWaterAttribute = attributes.getWater() > 0; boolean isWindAttribute = attributes.getWind() > 0; boolean isHolyAttribute = attributes.getHoly() > 0; boolean isUnholyAttribute = attributes.getUnholy() > 0;
  6. if Rnd.get(100) < chance : поменяйте на if Rnd.get(100) < 50 : Это будет 50%. Походу chance оч маленький.
  7. Ещё одно. Shutdown#registerShutdownHandler добавляет в коллекцию runnable'ы, но...больше ничего с ним не делает И в баффере строки Shutdown.getInstance().registerShutdownHandler(saveProfiles); Shutdown.getInstance().registerShutdownHandler(stopBuffTask); становятся абсолютно бессмысленными =)
  8. Тоже посмотрите пожалуйста. А то они появляются с 1/10 ХП.
  9. Посмотрите, не исключено, что я где-то ошибся. Ну ещё каты не заселены. Пришлось руками это делать. Спасибо. Ещё вспомнил. Чемпион появлялся с текущим ХП оригинальным (как у template), а не перемноженным на рейт. Из-за того, что сначала выставлось ХП (mob.setMaxHP кажется), а потом уже определялось, чемпион он или нет. Решается переносом строки setCurrentHp после расчёта чемпиона.
  10. Кстати, всё собирался сказать, Вы чат не проверяли? Может я что-то нечаянно зацепил, но чат обычный не работал. activeChar.getKnownList().getKnownPlayers() был empty. При этом getKnownObjects() (пишу по памяти) был полный. instanceof помог как костыль. А когда будет свеженький сурс?
  11. У меня и так Ваша сборка Кстати, профили не сохраняются (либо раньше не сохранялись) в базу при restart/shutdown, так как не было вызова save в shutdown.
  12. Всем привет. Форумчане, помогите, пожалуйста, найти рабочий TvT и баффера с профилями. Подскажите откуда их можно выдрать или поделитесь, у кого есть. Спасибо.
  13. Возможно onAttack не сработал, а сразу сработал onDie. если его просто ударить? Скопируйте код и покажите. Полностью весь скрипт. Чтобы остались все отступы копируйте лучше на http://pastebin.com/ (не реклама)
  14. YuraAAA1

    Tvt

    Попробуйте в конфигах отключить ауру для твт.
  15. Нет нет нет. Смотрите. Мы с Вами изменили только лишь onAttack метод. Это метод обратного вызова. Грубо говоря, он срабатывает тогда и только тогда, когда Вы лупите сундук. Что же происходит по коду: Рандомно считаем, box это (с точками) или же обычный chest. Если второе, то нам всё равно, код остаётся прежний (лупим игрока или же его пета, смотря кто ударил). А вот если это box, то начинается магия. Мы считаем шанс открытия и открываем в зависимости от шанса. И в любом случае сундук пропадёт. И я уже вижу свою ошибку. Ещё нужно damage проверять, так как сейчас он будет открываться даже при демейдже 1. Ну попробуйте так, если получится, докрутим с Вами расчёт урона.
  16. http://postimg.org/image/rlmad4lp3/ P.S. Не знаю как прикрепить изображение прямо на форум
  17. Не сильно в питоне разбираюсь, но да ладно. Вместо onDecay() в методе onAttack пишем keyLevelNeeded = int(npc.getLevel()/10) levelDiff = keyLevelNeeded - 9 #9 - должен быть уровень скилла видимо. Экспериментируйте if levelDiff < 0 : levelDiff = levelDiff * (-1) chance = BASE_CHANCE - levelDiff * LEVEL_DECREASE # success, pretend-death with rewards: npc.reduceCurrentHp(99999999, player) if Rnd.get(100) < chance : npc.setMustRewardExpSp(False) npc.setSpecialDrop(); npc.reduceCurrentHp(99999999, player) return npc.onDecay() Помните, что python чувствителен к отступам, по-этому Вы должны внимательно всё расставить
  18. Есть какая-нибудь IDE? Вообще можно и без неё. 0. Создаём папку с произвольным названием (пусть будет test). В ней ещё папку с названием xml. В папке xml две папки - output и source. 1. Создаёте файл с именем Runner.java и копируете в папку test. 2. xml файл, который нужно изменить закидываем в test\xml\source. 3. Редактируем, какой дроп нужно изменить: Ищем в начале кода: items.add(57); items.add(4448); и меняем на свои ID-шники, которые надо удалить. 4. Win+R -> cmd. 5. cd путь к папке test. 6. Компилим из командной строки: javac Runner.java 7. Запускаем из командной строки: java Runner
  19. YuraAAA1

    Зависимость Str

    Почитайте про switch-case. Вот так: switch (currentConStat) { case 40: _activeChar.addSkill(SkillTable.getInstance().getInfo(SKILL_ID, SKILL_LEVEL)); break; case 41: //Что-нибудь делаем break; case 42: //Ещё что-нибудь break; }
  20. Т.е. Вам нужно сделать так, что если сундук умирает с одного удара, он должен открыться?
  21. YuraAAA1

    Зависимость Str

    Я не уверен. Поставьте туда логгер и посмотрите когда вызывается
  22. YuraAAA1

    Зависимость Str

    Проверять что-то с периодом времени - кошмар. Для Acis'а можно попробовать сделать так: Ищем класс ChatStat. Находим метод: /** * @return the CON of the L2Character (base+modifier). */ public final int getCON() { if (_activeChar == null) { return 1; } return (int) calcStat(Stats.STAT_CON, _activeChar.getTemplate().getBaseCON(), null, null); } Модифицируем: /** * @return the CON of the L2Character (base+modifier). */ public final int getCON() { if (_activeChar == null) { return 1; } int currentConStat = (int) calcStat(Stats.STAT_CON, _activeChar.getTemplate().getBaseCON(), null, null); switch (currentConStat) { case 40: _activeChar.addSkill(SkillTable.getInstance().getInfo(SKILL_ID, SKILL_LEVEL)); break; } return currentConStat; }
  23. Специально для Acis-а писал http://forummaxi.ru/topic/50255-sposob-vykinut-nenuzhnyj-drop-iz-xml/
  24. Я думаю, это баг. Такого не должно быть.
  25. По acis-у Box не просто исчезает, а кастует "суицид". Т.е. взрывается. Но ни в коем случае он не открывается при атаке.
×
×
  • Создать...