Anon
Пользователи-
Публикаций
23 -
Зарегистрирован
-
Посещение
-
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Anon
-
Насколько мне известно, пакеты отправляются в отдельном потоке, когда обновление базы происходит в том же самом. Учитывая что JVM необходимо некоторое время на создание потока, его запуск и исполнение инструкций, то как ни крути запись в БД произойдет раньше, да и к тому же что отправка пакета, что запись в БД, будет требовать от класса только "get" методы. Т.е. информация, что в пакете уйдет клиенту, что будет записываться в БД одинаковая. Но есть интересный вопрос в таком случае. Каким обзаром синхронизация метода updateDatabase в классе L2ItemInstance спасет от того, что если один поток вошел в синхронизированный метод updateDatabase, а другой параллельный поток в этот момент взял и воспользовался например методом setCount, тем самым изменив значения количества предмета. Получается, что в таком случае в БД может записаться одно значение, а вот уже пакетом информация к клиенту уйдет с другим значением.
-
Здравствуйте. Было замечено, что у некоторых методах, например в L2ItemInstance, метод updateDatabase синхронизирован. Вопрос1: целесообразно использовать synchronized в методах, которые считывают/записывают данные в MySQL базу? Вопрос2: в каких ещё случаях в сборках может потребоваться использовать synchronized?
-
Спасибо за направление. Дело действительно оказалось в файле "hennagrp-e.dat" 2 параметра(id и dye_id) в этом файле не совпадали с теми что я завел в базу и в 2 других файла клиента(ItemName-e.dat и etcitemgrp.dat)
-
Я раньше всегда этот параметр использовал, пока не стал все диалоги в community переделывать и все нормально работало. и что ты имел ввиду говоря
-
Если в этом меню выбрать саму краску или нажать на крестик вверху справа Выкидывает из клиента с такой ошибкой Из-за чего такое может быть?
-
Проблему решил своими силами. Если кто-то сталкнется с подобной проблемой, то дело в следующем: <a action="bypass -h xxxxxx">ссылка</a> Убираем из команды параметр "-h", чтобы получилось <a action="bypass xxxxxx">ссылка</a> и проблема решена.
-
Во-первых, на странице нет никаких текстур, там только текст. Во-вторых, страница не не открывается, а просто не показывает сразу текст на ней. Показывает только если нажать на вкладку сверху любую. Сервером, ни как не обрабатываются команды приходящие от клиента при нажатии на вкладки сверху. Поэтому я и не могу понять почему после того как я перешел на другую страницу там пусто и чтобы отобразился текст необходимо сделать впринципе "пустое" действие, которое никак сервером не обрабатывается.
-
Проблема: Если нажать на кнопку для перехода на другую страницу, то, почему-то получаю пустую страницу Но, если нажать снова например на "ТОП" То страница прекрасным образом отображается. Вопрос: Как избежать этого тыкания на верхние кнопки, чтобы текст после нажатия на кнопку сразу отображался?
-
А почему у тебя 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)) { Чтобы убедиться что АИ сюда вообще попадает
-
Так в чем проблема после входа в метод 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); }
-
Я так понял у тебя он 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) для того чтобы понять в какой АИ он переходит.
-
А Instance у твоего моба какой? Просто в Instance есть ещё такой метод как isAttackeble() он переопределяется, возможно в Instance под которым у тебя моб бегает этот метод возвращает false и тогда мобу хоть на прямую говори чтобы он бил он бить не будет
-
Выложи текст ошибки на что компилятор ругается
-
Как вариант можешь когда моб должен идти к новой точке или когда прибежит на точку, делать проверку из KnownList'а типо если в радиусе N есть игроки или игрок бежать бить его. Заставить бить можно хоть напримую через присвоение АИ статуса атаки, либо через методы типо isAutoAttackable(target);
-
В любом случае все сводится к редактированию клиента. Спасибо за направление. Думаю оставлю все как есть.
-
Ну об этом и говорю, что кодом это дело не поправить, это все дело в клиенте
-
Задержку это на атак спид поставить? Тогда будет получаться, что повышай pAtkSpd, что не повышай скорость ударов будет одинаковая... Спасибо за разъяснения, но все равно странно, почему монстры при повышении pAtkSpd делают удар куда быстрее, а персонаж толком даже и не начинает анимацию делать.
-
Клиент Interlude, суть проблемы в том, что при повышении характеристики pAtkSpd анимация ударов на игроке не успевает завершиться, как начинается новый удар. Например при pAtkSpd = 500 анимацию удара видно от начала и до конца, а при 1000 уже видно как он только рукой замахивается, а при 2000 уже только и видно как соски юзаются на оружие Вопрос: можно ли как-то сделать, чтобы анимацию удара можно было видно полностью? Если да то где надо исправлять в клиенте или в ядре? Заметка: мобы, что при 500 значении, что при 2000 успевают полностью завершить удар.
-
Да быть такого не может. Можешь дать эту текстурку и свой weapongrp? Или выложи скрины с тем что ты сделал и как это в игре отоброжается
-
Красным цветом это где меч будет находится у перса, пробуй меня 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 для удара (маг удар) В общем на сборку эти данные никак не виляют, а в игре игрок видит только некоторые из них, это физ\маг урон, грейд, скорость атаки и количество сосок
-
Не большие недочеты программы. Смещены столбцы, в weapongrp.dat Почему-то столбец weight смещено аж на 5 столбцов и каким-то образом оказалось в столбце body_part. Собственно и все остальные столбцы смещены и дезинформируют пользователя.
-
Основа проекта, моя сборка, работал над ней полтора года, создавал уникальный сервер единственный в своём роде, отличающийся от стандартных серверов и динамикой и балансом. Уже как-то открывал с этой сборкой сервер, наверяка найдутся люди знающие сервер l2just.com и подтвердящие его уникальность. Закрыл сервер т.к. тогда финансов не было, да и плюс я сильно изменил сервер уже запущенный и стабильно работающий, что сказалось на балансе и как следствие ухода игроков, а тогда у меня уже времени было не очень много, чтобы в короткие скори доработать свою идею. Перестал над сборкой работать, т.к. есть основная работа и времени на продолжение работы оцень мало. Сам я делать буду всё, как бы странно не звучало, но умею делать все, и текстуры править и код писать и датапак редактировать, так же и сам буду выступать за спонсора. Работать над сборкой лично буду по мере возможности свободного времени. На данный момент для сервера не имеется ничего, т.к. сервер ещё сырой и запускать в какую либо работу его рано.
-
Набираю людей в команду для создания нового Interlude сервера. Требуются: 1. Кодер. 2. Датапакер. О всех подробностсях писать в личку, либо в аську 499 477 798.
-
Я все понял, но через игру каким ты образом посмотриш его радиус, если данные берутся из базы данных сервера а именно из таблицы npc, где я сам забил эти данные как например 10 радиус и 10 высоа, игра мне данные и отобразит. А мне надо знать точный радус и высоту моба, чтобы он нормально кликался(зависит от радуса) и не в земле был(зависит от высоты)
-
Здравствуйте, подскажите как можно узнать какая высота и радиус у NPC, как раз для того чтобы забить эти данные в таблицу?