-
Публикаций
1684 -
Зарегистрирован
-
Посещение
-
Победитель дней
37
Тип контента
Профили
Форумы
Загрузки
Инструкции
Весь контент zGosu
-
Если нет возможности самому разобраться по готовым гайдам, то сделай тему на поиск исполнителя, которые за небольшую денежку тебе всё настроит. Просто не уверен, что ты найдешь того, кто тебе сделает это за "спасибо".
-
Это уже будет не на помощь похоже, а на "сделай за меня". Для этого как раз придумали инструкции и мануалы, чтобы люди без опыта могли сами себе всё настроить, поэтапно выполняя последовательность действий.
-
У них же вроде как есть документация, как работать с базой данных. Через своё приложение (HeidiSQL) создаешь базу данных и импортируешь туда *.sql файлы сборки. По рейтовке обычно в файле rates.properties (в папке config) настраивается. Чтобы сервера отображались, нужно зарегистрировать ГеймСервер в ЛогинСервере. Обычно либо автоматически регистрируется, либо через RegisterServer.bat какой-нибудь, это от сборки зависит. Эта вся информация гуглится, думаю, сможешь сам разобраться. Обычно все сервера настраиваются +- одинаково. Просто берешь Мануал по запуску сервера и всё.
-
Я тебе скинул выше ссылку на сборку с ботами, там и исходники есть, можешь дописать, что тебе не хватает. А если функционала той сборки не хватит и ты сам не сможешь допилить недостающий функционал, то тебе придется платить программисту, который за тебя всё сделает. В этом случае ты платишь не за игру, а именно за опыт и время специалиста.
-
1. Нельзя вызывать методы вне класса или функции. 2. Посмотри, как реализовано на примере других предметов. Ты явно не в том классе пытаешься это внедрить.
-
В этой сборке вроде как есть fakeplayer (далее боты). Не уверен, что в шаре найдешь нормальный ботов. Можешь еще платные сборки посмотреть, там они лучше должны быть реализованы. Я сам когда-то пробовал в шаре их искать. В итоге брал ботов, которые просто стоят, после чего я дописывал им передвижение, фарм, pvp, экипировку, поход на Олимп и так далее. Тут либо самому писать или отдавать очень много денег, чтобы кто-то тебе их сделал.
-
исходники L2JServer компил, исходы. High Five сервер с допами.
тема ответил zGosu в теме Сборки серверов
Данное сообщение возникает на уровне LoginServer. Если нужно запустить только на локалке, то оставь значения по умолчанию. Возможно тебе нужно патч поменять на чистый, чтобы работало с локалкой. У меня с этим патчем нормально работает (прикрепил во вложении) system.zip -
С исходниками можешь взять любую сборку и допилить ее до ума, чтобы работало всё, что необходимо для х1-х10, например acis.
-
По поводу sql-инъекций я использую такой метод защиты (защита на стороне базы данные, а не приложения): Создаю отдельного пользователя базы данных, который будет использоваться в моем приложении. Ограничиваю ему права на прямое обращение к всем таблицам (INSERT, UPDATE, DELETE, SELECT). В приложении обращение к базе данных делаю только через нужные приложению функции и хранимые процедуры, по остальным объектам права забираю. Создаю нужные мне функции и процедуры, которые будут вызывать нужные мне запросы (внутри объекта вызов будет от другого пользователя с большими правами). Стараюсь нигде не использовать формирование динамического sql-запроса. Таким образом даже при наличии в приложении уязвимости, злоумышленник ничего не сможет сделать, так как при попытке что-то сделать с таблицами ему будет возвращаться ошибка вида "объект не существует или нет доступа".
-
Такая ошибка появляется в случае, если вы подключаетесь к базе с некорректным логином или паролем. См. решение
-
А в каком файле ты ищешь? Он в исходниках или скриптах должен быть. Вот пример одного из скила (предмета скилом): player.broadcastPacket(new MagicSkillUse(player, player, 22217, 1, 0, 0)); Так же может взять в пример реализацию сосок, там обычно явно это указано: SoulShots.java activeChar.broadcastPacket(600, new MagicSkillUse(activeChar, activeChar, skills[0].getId(), skills[0].getLvl(), 0, 0));
-
Прикрепил архивы. Собирал на JDK23 Если хотел сам, то просто в IntelliJ автоматически определяется Ant и ты можешь его сам скомпилировать. aCis_datapack_build.zip aCis_gameserver_build.zip
-
Уже были темы с такой проблемой. Там есть ответ. Вот пример: ссылка на тему
-
Обычно это означает, что gameserver не запущен. В вашем случае такая проблема может быть в некорректном ip-адресе в настройках gameserver. Так же проверь, что в консоли gameserver написано об успешном запуске сервера [имя_сервера] (пример на скринах) Так же (я точно не помню), когда регестрировал сервер, там файлик txt должен появиться был. Его надо добавить и в ЛС и ГС.
-
Неверно указал значения в настройках подключения сервера\логина\l2.ini. Есть еще прикол, что в некоторых патчах строка подключения в l2.ini перенесены в exe или другой файл, поэтому тебе нужна чистая папка system. Т.к. в твоем случае не доходит даже до выбора сервера, то решения 2: 1. Проверить корректность введенных настроек в loginserver или l2.ini 2. Скачать чистую папку system (возможно в твоем патче стоит защита, где строка подключения находится в другом файле).
-
исходники L2JServer компил, исходы. High Five сервер с допами.
тема ответил zGosu в теме Сборки серверов
В клиенте нет этой картинки. Можешь заменить на другую, существующую в твоем клиенте картинку, либо попросить у автора файл с этой картинкой. -
** Оптимизация работы сервера онлайн игры: новые подходы и решения.
тема ответил zGosu в теме Обсуждения
В последнее время решал проблемы с утечкой памяти. Использовал visualvm, просматривал файл дампа и фиксил. -
Посмотри как реализован targethandler AuraCorpseMob в других сборках. У меня например это так: public GameObject[] getTargetList(Skill skill, Creature activeChar, boolean onlyFirst, Creature target) { final List<Creature> targetList = new ArrayList<>(); final int maxTargets = skill.getAffectLimit(); for (final Creature obj : World.getInstance().getAroundCharacters(activeChar, skill.getAffectRange(), 200)) { if ((obj.isAttackable() || obj.isServitor()) && obj.isDead()) { if (onlyFirst) { return new Creature[] { obj }; } if ((maxTargets > 0) && (targetList.size() >= maxTargets)) { break; } targetList.add(obj); } } return targetList.toArray(new Creature[targetList.size()]); } Тут как раз нет условия на target, а берутся окружающие объекты вокруг тебя. for (final Creature obj : World.getInstance().getAroundCharacters(activeChar, skill.getAffectRange(), 200)) Можешь адаптировать это под свою сборку. Если сам не сможешь, то готов взяться за $20.
-
Скил Corpse Burst (у некра) не подходит к твоим задачам? Можешь создать новый тип таргета на основе aura, только без проверки на мертвую цель. Есть костыльный метод - добавить параметр у эффекта твоего скила, который будет отвечать за работу с трупами без таргета.
-
Исходя из того, что мне ответил ИИ, могу предположить, что у тебя не та версия java, под которую делалась сборка: В приведенных вами сообщениях об ошибках есть предупреждения, а не ошибки, и они связаны с использованием пакета `sun.misc.Service`, который является внутренним API и может быть удален в будущих версиях Java. Чтобы исправить эти предупреждения, рекомендуется заменить использование `sun.misc.Service` на стандартные альтернативы. Вот несколько шагов, которые вы можете предпринять: 1. **Замените `sun.misc.Service`:** Ищите альтернативы, которые доступны в стандартной библиотеке Java, например использование `java.util.ServiceLoader`. Этот класс также позволяет загружать сервисы, но является частью публичного API Java. 2. **Пример замены:** Если ваш код использует `sun.misc.Service` так: ```java Iterator<?> it = Service.providers(IExtension.class); ``` Вы можете заменить это на: ```java ServiceLoader<IExtension> loader = ServiceLoader.load(IExtension.class); Iterator<IExtension> it = loader.iterator(); ``` 3. **Проверка кода:** Убедитесь, что код работает так, как ожидается, после этих изменений. 4. **Проверка зависимостей:** Если вы используете какие-либо библиотеки, убедитесь, что они не зависят от внутреннего API. После применения этих изменений ваши предупреждения должны исчезнуть. Удачи!
-
Если нет варианта "только в городе", то можно его добавить в скрипте на КБ (возможно потребуются исходники)
-
Не помню ни одной сборки, где происходит флаг в pvp-зоне, а так же зачисляется убийство. Тут либо менять тип зоны, либо в исходниках добавить возможность флага и зачисление убийства на твоей зоне.
-
нужно в скрипте Community Board Buffer смотреть, откуда значение уровня скила берется. Тут 3 варианта: 1. Из конфига 2. Из таблицы-справочника в базе данных 3. Хардом в коде вписано.
-
Ошибка переводится как "Адрес уже используется". Значит какая-то служба или приложение использует этот адрес. Можете с помощью cmd посмотреть, какие приложения и службы как адрес заняли и найти там свой (см. в гугле команды). Так же скажу, что если у вас логин находится там же, где и ГС, то LogingHostname ставьте 127.0.0.1, а LoginserverHostname = *
-
Для меня странно то, что при использовании другого пользователя у вас до сих пор пишется root. Может в сборке некорректно введен пользователь или (исходя из другой ваши темы) в исходниках хардом введен root без возможности его поменять. Если есть исходники, то посмотрите класс L2DatabaseFactory _source.setDriverClass("com.mysql.jdbc.Driver"); _source.setJdbcUrl(Config.DATABASE_URL); _source.setUser(Config.DATABASE_LOGIN); _source.setPassword(Config.DATABASE_PASSWORD); Если исходников нет, то можете прикрепить ядро, я попробую декомпил сделать и посмотреть, в этом ли проблема. Update: Да не нужен никакой декомпил, я уже решение проблемы отписал. там в конфиге не хватает ' знака, по итогу должно получиться (sql.login')
