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

Anon

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

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

  • Посещение

  • Отзывы

    0%

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

  1. Anon

    Synchronized В Сборках

    Насколько мне известно, пакеты отправляются в отдельном потоке, когда обновление базы происходит в том же самом. Учитывая что JVM необходимо некоторое время на создание потока, его запуск и исполнение инструкций, то как ни крути запись в БД произойдет раньше, да и к тому же что отправка пакета, что запись в БД, будет требовать от класса только "get" методы. Т.е. информация, что в пакете уйдет клиенту, что будет записываться в БД одинаковая. Но есть интересный вопрос в таком случае. Каким обзаром синхронизация метода updateDatabase в классе L2ItemInstance спасет от того, что если один поток вошел в синхронизированный метод updateDatabase, а другой параллельный поток в этот момент взял и воспользовался например методом setCount, тем самым изменив значения количества предмета. Получается, что в таком случае в БД может записаться одно значение, а вот уже пакетом информация к клиенту уйдет с другим значением.
  2. Здравствуйте. Было замечено, что у некоторых методах, например в L2ItemInstance, метод updateDatabase синхронизирован. Вопрос1: целесообразно использовать synchronized в методах, которые считывают/записывают данные в MySQL базу? Вопрос2: в каких ещё случаях в сборках может потребоваться использовать synchronized?
  3. Спасибо за направление. Дело действительно оказалось в файле "hennagrp-e.dat" 2 параметра(id и dye_id) в этом файле не совпадали с теми что я завел в базу и в 2 других файла клиента(ItemName-e.dat и etcitemgrp.dat)
  4. Я раньше всегда этот параметр использовал, пока не стал все диалоги в community переделывать и все нормально работало. и что ты имел ввиду говоря
  5. Если в этом меню выбрать саму краску или нажать на крестик вверху справа Выкидывает из клиента с такой ошибкой Из-за чего такое может быть?
  6. Проблему решил своими силами. Если кто-то сталкнется с подобной проблемой, то дело в следующем: <a action="bypass -h xxxxxx">ссылка</a> Убираем из команды параметр "-h", чтобы получилось <a action="bypass xxxxxx">ссылка</a> и проблема решена.
  7. Во-первых, на странице нет никаких текстур, там только текст. Во-вторых, страница не не открывается, а просто не показывает сразу текст на ней. Показывает только если нажать на вкладку сверху любую. Сервером, ни как не обрабатываются команды приходящие от клиента при нажатии на вкладки сверху. Поэтому я и не могу понять почему после того как я перешел на другую страницу там пусто и чтобы отобразился текст необходимо сделать впринципе "пустое" действие, которое никак сервером не обрабатывается.
  8. Проблема: Если нажать на кнопку для перехода на другую страницу, то, почему-то получаю пустую страницу Но, если нажать снова например на "ТОП" То страница прекрасным образом отображается. Вопрос: Как избежать этого тыкания на верхние кнопки, чтобы текст после нажатия на кнопку сразу отображался?
  9. Anon

    Walkerai + Attackai

    А почему у тебя setIntention(CtrlIntention.AI_INTENTION_ATTACK); закоменчено? Оно вообще у тебя должно выглядеть как setIntention(CtrlIntention.AI_INTENTION_ATTACK, player, 1); Насколько я осведомлен, последняя цыфра в этом setIntention записывает в агролист игрока, а параментр player нужен для того чтобы АИ знало кого ему атаковать и что _log.info("ATTACK"); не выводит инфу что условия удовлетворяют? а _log.info("ATTACK_OFF"); перемести до условий вот так @Override protected void thinkAttack() { _log.info("ATTACK_OFF"); if (player.isPlayer() && !player.isInRange(loc, 300)) { Чтобы убедиться что АИ сюда вообще попадает
  10. Anon

    Walkerai + Attackai

    Так в чем проблема после входа в метод thinkActive делай что я писал выше про поиск игроков через KnownList что-то типо for (L2PcInstance player : getActor().getKnowList().getKnownPlayerInRadius(2000)) { setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); } реализовывай thinkAttack() а возврат из него делай что-то типо того же самого, только в обратном смысле если игроков нет в радиусе if (getActor().getKnowList().getKnownPlayerInRadius(2000)).isEmpty()) { setIntention(CtrlIntention.AI_INTENTION_ACTIVE); }
  11. Anon

    Walkerai + Attackai

    Я так понял у тебя он CtrlIntention.AI_INTENTION_ACTIVE занимается тем что бегает и с этим проблем нет. Незнаю как там код устроен, но могу посоветовать сделай проверку переходит ли моб которого ты бьешь в другой АИ или только в активе и остается? 1. Сперва вычесли какой objectId моба, можешь сдлеать это через метод setTarget присав себе туда System.out.println(target.getObjectId()) 2. узнав ид моба там где происходит setIntention в АИ делай проверку if (getActor().getObjectId() == ид который узнал) { System.out.println(Intention) } вывод System.out.println(Intention) для того чтобы понять в какой АИ он переходит.
  12. Anon

    Walkerai + Attackai

    А Instance у твоего моба какой? Просто в Instance есть ещё такой метод как isAttackeble() он переопределяется, возможно в Instance под которым у тебя моб бегает этот метод возвращает false и тогда мобу хоть на прямую говори чтобы он бил он бить не будет
  13. Выложи текст ошибки на что компилятор ругается
  14. Anon

    Walkerai + Attackai

    Как вариант можешь когда моб должен идти к новой точке или когда прибежит на точку, делать проверку из KnownList'а типо если в радиусе N есть игроки или игрок бежать бить его. Заставить бить можно хоть напримую через присвоение АИ статуса атаки, либо через методы типо isAutoAttackable(target);
  15. Anon

    Анимация Ударов

    В любом случае все сводится к редактированию клиента. Спасибо за направление. Думаю оставлю все как есть.
  16. Anon

    Анимация Ударов

    Ну об этом и говорю, что кодом это дело не поправить, это все дело в клиенте
  17. Anon

    Анимация Ударов

    Задержку это на атак спид поставить? Тогда будет получаться, что повышай pAtkSpd, что не повышай скорость ударов будет одинаковая... Спасибо за разъяснения, но все равно странно, почему монстры при повышении pAtkSpd делают удар куда быстрее, а персонаж толком даже и не начинает анимацию делать.
  18. Anon

    Анимация Ударов

    Клиент Interlude, суть проблемы в том, что при повышении характеристики pAtkSpd анимация ударов на игроке не успевает завершиться, как начинается новый удар. Например при pAtkSpd = 500 анимацию удара видно от начала и до конца, а при 1000 уже видно как он только рукой замахивается, а при 2000 уже только и видно как соски юзаются на оружие Вопрос: можно ли как-то сделать, чтобы анимацию удара можно было видно полностью? Если да то где надо исправлять в клиенте или в ядре? Заметка: мобы, что при 500 значении, что при 2000 успевают полностью завершить удар.
  19. Anon

    Меч В 2 Руки

    Да быть такого не может. Можешь дать эту текстурку и свой weapongrp? Или выложи скрины с тем что ты сделал и как это в игре отоброжается
  20. Anon

    Меч В 2 Руки

    Красным цветом это где меч будет находится у перса, пробуй меня 7, на 14, и 1 изменить на 2 и пробуй. Желтым цветом по порядку 10 - Random damage (в некоторых собрках это разброс урона) 232 - PAtk 114 - MAtk 1 - weapon type (в данном случае 1 это меч=sword) 5 - grade вещи (5 это S) 8 - critical (шанс крита базовый) 0 - PDef для щита (для меча эти значения не важны) 0 - шанс блока щитов (для меча эти значения не важны) 379 - atak speed базовый который дает меч( в игре на мече будет написано типо "медленно" 0 - затрат маны на удар 1 - количество SS для удара (физ удар) 1 - количество BSS для удара (маг удар) В общем на сборку эти данные никак не виляют, а в игре игрок видит только некоторые из них, это физ\маг урон, грейд, скорость атаки и количество сосок
  21. Anon

    L2Dat Editor - Релиз 1.3

    Не большие недочеты программы. Смещены столбцы, в weapongrp.dat Почему-то столбец weight смещено аж на 5 столбцов и каким-то образом оказалось в столбце body_part. Собственно и все остальные столбцы смещены и дезинформируют пользователя.
  22. Основа проекта, моя сборка, работал над ней полтора года, создавал уникальный сервер единственный в своём роде, отличающийся от стандартных серверов и динамикой и балансом. Уже как-то открывал с этой сборкой сервер, наверяка найдутся люди знающие сервер l2just.com и подтвердящие его уникальность. Закрыл сервер т.к. тогда финансов не было, да и плюс я сильно изменил сервер уже запущенный и стабильно работающий, что сказалось на балансе и как следствие ухода игроков, а тогда у меня уже времени было не очень много, чтобы в короткие скори доработать свою идею. Перестал над сборкой работать, т.к. есть основная работа и времени на продолжение работы оцень мало. Сам я делать буду всё, как бы странно не звучало, но умею делать все, и текстуры править и код писать и датапак редактировать, так же и сам буду выступать за спонсора. Работать над сборкой лично буду по мере возможности свободного времени. На данный момент для сервера не имеется ничего, т.к. сервер ещё сырой и запускать в какую либо работу его рано.
  23. Набираю людей в команду для создания нового Interlude сервера. Требуются: 1. Кодер. 2. Датапакер. О всех подробностсях писать в личку, либо в аську 499 477 798.
  24. Я все понял, но через игру каким ты образом посмотриш его радиус, если данные берутся из базы данных сервера а именно из таблицы npc, где я сам забил эти данные как например 10 радиус и 10 высоа, игра мне данные и отобразит. А мне надо знать точный радус и высоту моба, чтобы он нормально кликался(зависит от радуса) и не в земле был(зависит от высоты)
  25. Здравствуйте, подскажите как можно узнать какая высота и радиус у NPC, как раз для того чтобы забить эти данные в таблицу?
×
×
  • Создать...