lvlkoo

VIP
  • Публикаций

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

  • Посещение

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

    8
  • Отзывы

    0%

lvlkoo стал победителем дня 9 декабря

lvlkoo имел наиболее популярный контент!

Репутация

70

1 Подписчик

Информация о lvlkoo

Информация

  • Пол
    Мужчина
  • Город
    Днепр, Украина

Контакты

Посетители профиля

2152 просмотра профиля
  1. lvlkoo

    Gameserver

    Ну вы прям палцем в небо:) То что вы выделили цветом абсолютно никак между собой не связано Я вижу 3 возможных решения этой проблемы 1. Вы учите JAVA, учите структуру серверного кода, пробуете решить проблему сами. 2. Вы платите человуку, который знает JAVA, чтобы он решил ваши проблемы. 3. Вы берете другу сборку, в которой все работает. ПС. Как решить проблему я писал на одно сообщение выше, есть желание - пробуйте
  2. Подливает подключение к серверу БД
  3. lvlkoo

    Gameserver

    Ну вполне логично можно догадаться, что один из обьектов в выражении null Либо getActiveChar(), либо attacker, либо player, либо attackerPlayer Костыль - добавить проверку на то, что обьект не нулл на все выражения типо if ((getActiveChar() != null && getActiveChar().isPlayer()) ... итд Не костыль - поставить брейкпоинт, посмотреть что конкретно там null, выяснить почему.
  4. Анонсер анонсеров. Остановите планету, я сойду ПС. Вроде вполне свежая идея, удачи в развитии
  5. Поддерживаю. Хороший вариант за неимением возможности реализовать клиентскую поддержку
  6. Нет, не существует. О чем я и написал в своем сообщении выше.
  7. Большая часть работы в данном плане нужна на клиенте. Отловить клик по окну абнормалов, выяснить ид скила/индекс по клику, создать новый пакет под это дело. На стороне сервера все делаеться очень просто (при наличии исходников, конечно же). Ловим пакет, снимаем ефект. Готовых файлов вам никто не даст. Это не легкая работа. Ищите хорошего мододела, который сможет это реализовать на клиенте.
  8. lvlkoo

    Запуск сборки в режиме отладки

    Приветствую всех начинающих JAVA разработчиков. Гайд предназначен для тех, кто все еще пытается дебажить c помощью System.out.println, но уже осведомлен в целом о JAVA разработке, и немного умеет пользоваться IDE Дебагинг один из важнейших и трудозатратных процессов после самой разработки, и очень важно чтобы этот процесс был максимально удобен для разработчика. Большинство современных IDE имеют встроенный функционал отладки, который позволяет приостаналивать приложение в определенные моменты выполнения и просматривать\изменять память с помощью т.н брейкпоинтов. В данном гайде я расскажу как запускать ява эмулятор или "сборку" в режиме отладки и использовать инструменты отладчика на примере IDE IntelliJ IDEA. Часть #1 - "Быстрый запуск, удаленная отладка" Я расскажу о двух вариантах отладки, первым из них будет "удаленная отладка" Этот вариант, позволяет вашей IDE удаленно подключаться к приложению с помощью спец. инструментов java Пусть слово "удаленная" вас не пугает, формально это будет сетевое подключение, но происходить оно будет локально в пределах вашего ПК. Шаг 1. Параметры запуска. Для того, чтобы запустить Ваш сервер в режиме ожидающий отладки, в параметры запуска ява приложение необходимо добавить следующие значения Это делается соотвественно в .bat или .sh файле -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7456 Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбираем "Remote" Пишем удобное для Вас название (к примеру "DebugGameserverRemote", в поле "Host" вводим "localhost, в поле "Port" - "7456" Сохраняем. Шаг 3. Запуск Перед запуском сборки убедитесь, что исполняться будет последнее собраное ядро (если что-то изменяли, пересоберите ядро и замените в папке с сервером). Запускайте сборку с помощь .bat или .sh файла, вы получите сообщение о том, что ожидаеться подключение дебагера. В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug DebugGameserverRemote" - Или там будет любое название, которое вы написали при создании конфигурации. IDE подключилась к приложению, сборка продолжает запускаться. Можете расставлять брейпоинты и дебажить. После изменения какого либо класса, для того, чтобы брейпоинты в этом классе сработали - нужно соотвественно собрать новое ядро и заменить в папке с вашей тестовой сборкой. Часть #2 - "Автоматизация или "Лень - двигатель прогресса" Каждый раз копировать новое ядро, запускать сборку с помощью .bat\.sh файла - нормально, но со временем понимаешь, что и это не совсем удобно. Следующий вариант запуска в режиме отладки - запуск прямо из IntelliJ IDEA. Дополнительно перед каждым запуском будем автоматически собирать новое ядро Шаг 1. Артефакты. Собирать будем средствами IDE, это еще незывают "сборкой артефакта" В главном меню переходим в раздел File -> Project Structure Выбираем раздел Artifacts, нажимаем на плюсик для создания нового артефакта, выбераем JAR -> From module with dependencies Пишем удобное название ( к примеру "gameserver:jar-test_server") В поле Output Directory указываем путь, где лежит ядро вашей тестовой сборки, в моем случае это "D:\test_server\lib" В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла Сохраняем. Таким образом, можно собирать любые JAR библиотеки, отказывашись от других сборщиков типа ANT Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration (см выше, в первой части) В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбераем "Application" Вводим удобное для Вас название (к примеру "Gameserver-test_server") В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла В поле VM options нужно прописать classpath (-cp) с нужными зависимостями для вашей сборки, а так же другие параметры при необходимости. Подсмотреть эти параметры можно в .bat\.sh файле В поле Working Directory указываем путь, к корневой папке, из которой запускается ваш тестовый гейм-сервер (путь, где лежат .bat\.sh файлы запуска). В моем случае это "D:\test_server\gameserver" Use classpath of module - выбираем модуль с исходниками геймсервера В самом низу окна есть раздел "Before launch" - действия, которые будут выполняться перед запуском (там уже по умолчанию должен быть Build). Нажимаем на зеленый плюсик, выбираем "Build artifacts" в появившемся окне выбираем ранее созданный артефакт "gameserver:jar-test_server" Конфигурация готова, сохраняем ПС. на ворнинг на моем скрине не обращайте внимания, глюк IDE после переименования пакета. У вас ошибок и варнингов быть не должно. Шаг 3. Запуск В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug Gameserver-test_server" - Или там будет любое название, которое вы написали при создании конфигурации (см. пример выше, по аналогии с первой частью) Сборка пересобираеться, затем запускается. Можете расставлять брейпоинты и дебажить. Таким образом можно настроить билд сервера авторизации или настроить различные цепочки событий, чтобы запускать все в 1 клик. Удачи в разработке ПС. Если кому-то будет интересно, могу написать небольшой гайд по самому процессу отладки, брейкпоинтам, условным брейкпоинтам, ватчеру и т.д
  9. Запуск сборки в режиме отладки Приветствую всех начинающих JAVA разработчиков. Гайд предназначен для тех, кто все еще пытается дебажить c помощью System.out.println, но уже осведомлен в целом о JAVA разработке, и немного умеет пользоваться IDE Дебагинг один из важнейших и трудозатратных процессов после самой разработки, и очень важно чтобы этот процесс был максимально удобен для разработчика. Большинство современных IDE имеют встроенный функционал отладки, который позволяет приостаналивать приложение в определенные моменты выполнения и просматривать\изменять память с помощью т.н брейкпоинтов. В данном гайде я расскажу как запускать ява эмулятор или "сборку" в режиме отладки и использовать инструменты отладчика на примере IDE IntelliJ IDEA. Часть #1 - "Быстрый запуск, удаленная отладка" Я расскажу о двух вариантах отладки, первым из них будет "удаленная отладка" Этот вариант, позволяет вашей IDE удаленно подключаться к приложению с помощью спец. инструментов java Пусть слово "удаленная" вас не пугает, формально это будет сетевое подключение, но происходить оно будет локально в пределах вашего ПК. Шаг 1. Параметры запуска. Для того, чтобы запустить Ваш сервер в режиме ожидающий отладки, в параметры запуска ява приложение необходимо добавить следующие значения Это делается соотвественно в .bat или .sh файле -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7456 Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбираем "Remote" Пишем удобное для Вас название (к примеру "DebugGameserverRemote", в поле "Host" вводим "localhost, в поле "Port" - "7456" Сохраняем. Шаг 3. Запуск Перед запуском сборки убедитесь, что исполняться будет последнее собраное ядро. Запускайте сборку с помощь .bat или .sh файла, вы получите сообщение о том, что ожидаеться подключение дебагера. В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug DebugGameserverRemote" - Или там будет любое название, которое вы написали при создании конфигурации. IDE подключилась к приложению, сборка продолжает запускаться. Можете расставлять брейпоинты и дебажить. После изменения какого либо класса, для того, чтобы брейпоинты в этом классе сработали - нужно соотвественно собрать новое ядро и заменить в папке с вашей тестовой сборкой. Часть #2 - "Автоматизация или "Лень - двигатель прогресса" Каждый раз копировать новое ядро, запускать сборку с помощью .bat\.sh файла - нормально, но со временем понимаешь, что и это не совсем удобно. Следующий вариант запуска в режиме отладки - запуск прямо из IntelliJ IDEA. Дополнительно перед каждым запуском будем автоматически собирать новое ядро Шаг 1. Артефакты. Собирать будем средствами IDE, это еще незывают "сборкой артефакта" В главном меню переходим в раздел File -> Project Structure Выбираем раздел Artifacts, нажимаем на плюсик для создания нового артефакта, выбераем JAR -> From module with dependencies Пишем удобное название ( к примеру "gameserver:jar-test_server") В поле Output Directory указываем путь, где лежит ядро вашей тестовой сборки, в моем случае это "D:\test_server\lib" В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла Сохраняем. Таким образом, можно собирать любые JAR библиотеки, отказывашись от других сборщиков типа ANT Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration (см выше, в первой части) В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбераем "Application" Вводим удобное для Вас название (к примеру "Gameserver-test_server") В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла В поле VM options нужно прописать classpath (-cp) с нужными зависимостями для вашей сборки, а так же другие параметры при необходимости. Подсмотреть эти параметры можно в .bat\.sh файле В поле Working Directory указываем путь, к корневой папке, из которой запускается ваш тестовый гейм-сервер (путь, где лежат .bat\.sh файлы запуска). В моем случае это "D:\test_server\gameserver" Use classpath of module - выбираем модуль с исходниками геймсервера В самом низу окна есть раздел "Before launch" - действия, которые будут выполняться перед запуском (там уже по умолчанию должен быть Build). Нажимаем на зеленый плюсик, выбираем "Build artifacts" в появившемся окне выбираем ранее созданный артефакт "gameserver:jar-test_server" Конфигурация готова, сохраняем ПС. на ворнинг на моем скрине не обращайте внимания, глюк IDE после переименования пакета. У вас ошибок и варнингов быть не должно. Шаг 3. Запуск В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug Gameserver-test_server" - Или там будет любое название, которое вы написали при создании конфигурации (см. пример выше, по аналогии с первой частью) Сборка пересобираеться, затем запускается. Можете расставлять брейпоинты и дебажить. Таким образом можно настроить билд сервера авторизации или настроить различные цепочки событий, чтобы запускать все в 1 клик. Удачи в разработке ПС. Если кому-то будет интересно, могу написать небольшой гайд по самому процессу отладки, брейкпоинтам, условным брейкпоинтам, ватчеру и т.д Author lvlkoo Category Ядро Отправлено 12/07/18 18:08  
  10. lvlkoo

    Помогите с костюмами

    Исходники имеете?
  11. Видимо не так закодировали.
  12. lvlkoo

    Quest Script

    Ну логически если подумать то функция переводиться как взятьСлучайногоЧленаПати, а не "взять всех" Вам нуджен метеод, который получает список игроков в пати, и циклом проходиться по нему party = player.getParty() #получаем пати if party : #проверка если пати не пустое for partyMember in party.getPartyMembers().toArray() : #начинаем цикл по игрокам пати pst = partyMember.getQuestState(qn) #получение состояния конкретного игрока #тут интегрируйте ваш код для проверок и получения предметов для игроков пати, и спользуя состояние "pst"
  13. lvlkoo

    Не приходит голд

    С виду по структуре все ок $l2cfg["gs"][$sid]['rb']['table'] == 'items_delayed' Где-то в вашем движке, есть конфиг, в котором указываться таблица - ищите. @leviath возможно это тестовая локальная бд, или стоят проброски портов. Ну а вообще да, в таком случае было бы очень тупо
  14. lvlkoo

    Не приходит голд

    Структуру items_delayed покажите
  15. lvlkoo

    Не приходит голд

    Зависит от сборки. В основном это одни из вариантов: character_items, items_delayed, delayed_items,donate_items и возможные вариации на эти названия. Так же в зависимости от сборки, обработчики могут быть разные. В некоторых сборках висит реалтайм таска, которая просматривает таблицу и обрабатывает новые строки, когда перс в игре, в других же сборках таблица может обрабатываться только тогда, когда персонаж входит в игру. В items тоже можно писать, это крайняя инстанция, но для этого нужно сгенерить новый objectId. В теории max(objectId) + 1 должно хватить. В данном случае, персонажу тоже нужно будет перезайти в игру. Сделайте скриншот списка таблиц вашей бд, посмотрим что там есть