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

lvlkoo

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

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

  • Посещение

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

    35
  • Отзывы

    0%

Сообщения, опубликованные lvlkoo


  1. @b1rd1983 для того чтобы Вам помочь необходимного немного больше информации.

    Вам необходимо запустить скрипт-запуска вашей сборки (.bat файл)  напрямую из командной строки (cmd), это позволит оставить консольное окно открытым и увидеть логи, если они будут.

    1. Откройте командную строку, Win+R -> cmd -> Enter

    2. Пропишите путь к папке где лежит скрипт запуска c помощью команды "cd" , например cd C:\path\to\server\loginserver

    3. Пропишите в командной строке название скрипта запуска, в соновном это StartLoginServer.bat (тот файл которы у вас вылетает и не запускаеться)

    • Like 1

  2. Из того что видел в реализации в разных исходниках и что отлично налазит на глобус и похоже на правду:

    1. Просчет угла атаки, на угол защиты щитом могут влиять как и  базовые показатели класса так и какието пассивки\активки

    2. Если попали в угол - просчет шанса блокировки щитом, на который также могут влияет особенности каждого щита или активные и пасивные скилы

    3. Если попали в шанс - то в момент просчета урона берем значение защиты щита и добавляем к показателю физ или маг защиты персонажа в зависимости от типа урона. 

    4. При соблюдение условий выше - есть 5% шанс полность заблокировать (уменьшить до 1 урона) как физическую так и магическую атаку

    5. У физического или магического скила может быть свойство "игнорировать щит" - соотвествено все вышеописанное не считаеться

    • Like 1

  3. Сам клиент это поддерживает. Но возможно в вашей сборке нету необходимой реализации, и неообходимо доарабатывать ядро.

    При выборе сервера в БД необходимо запомнить для аккаунта этот выбор, далее в пакете ServerList - ид выбраного сервера отправляется 3-тим байтом.

    writeByte(0x4); //op code for ServerList packet
    writeByte(serverList.size()); //servers list size
    writeByte(selectedServer); //selected server id

  4. 7 часов назад, Saltfire сказал:

    Вы прям серьезно сейчас? Хорошую в шаре. (Бери любую хорошую в шаре) 
    Они все одинаково дырявые.:)

    Вы прям серьезно сейчас?  Отвечать на пост годичной давности?

    В 18.09.2023 в 11:03, Freuxes сказал:

    эти сборки, рабочие?

    Да там все рабочее, но напомню, что там только исходный код, который необходимо скомпилить и собрать, чтобы получить "сборку"


  5. Скорее всего Вам нужно избавляться от 

    Цитата

    while (true)

    и

    Цитата
    
    Thread.sleep(150)

    Поищите в вашей сборке механизмы которые используют т.н шедулинг таски, реализацию Runnable.

    У вас должна быть обвертка над ThreadPoolExecutor\ScheduledThreadPoolExecutor, которая скорее всего называеться что-то вроде ThreadPoolManager

    Там с помощью методов schedule(..) можно запускать фоновые задачи которые будут выполняться в асинхронном режиме в пуле.

    Все действия  по автофарму и задержки между ними реализовуйте с помощью этих тасок,


  6. В каком то из исходных файлов есть не совпадение кодировки (исходник в кодировке отличной от установленой UTF-8), либо строки с символами в которых не совпадает кодировка.

    Помимо ошибки компилятор должен еще сообщать с каким файлом проблемма


  7. 19 часов назад, siriys2009 сказал:

    роутером

    Самое главное: Вам нужно позвонить провайдеру и узнать предоставляют ли они Вам "выделенный ИП адрес", очень часто это является дополнительной платной услугой. Если выделеного ИП нет, то все нижеописанное не имеет смысла. Нужно пользоваться програмными тунелями по типу хамачи и т.п

    Если же выделеный ИП есть, или вам его подключили\подключат то:

    Для начала Вам нужно пробросить порт на вашем роутере на ИП вашего ПК.

    Как это сделать - нужно смотреть для конкретной модели, этот функционал может называться как "Виртуальные серверы" или "Port Forwarding", поищите в панеле настроек роутера.

    Вам нужно выяснить какой локальный ИП получил Ваш ПК от роутера, посмотреть это можно в настройках сетевого подключения, например это может быть 192.168.0.* или 192.168.1.*

    Далее на этот ИП вам нужно пробросить порты 2106 и 7777.

    image.png.338611b228b9dbc77891a72e9ca28dab.png

    Так же необходимые порты нужно разрешить в вашем фаерволе, например на windows - это брандмауер (если он включен), как это сделать можете поискать в интернете, информации очень много

    image.thumb.png.c7d9b6576d1c715df22565147620ba0f.png


  8. 8 часов назад, Saltfire сказал:

    Вы предлагаете открыть порты, без слушателя? Серьезно? Это угроза безопасности, на этот порт сможет стукнуть любой ип, а не тот который на нем зарегистрирован.
    Нельзя открывать порты в ручную, они открываются автоматически, после, когда слушатель запущен, без слушателя, порты должны быть закрыты.
    Не в коем случае не открывайте их вручную, вы подвергните себя риску, если слушатель упадет, появится прямой доступ.

    Порт не нельзя открыть без сокета, а не возможно. Пожалуйста перечитайте еще раз мое сообщение, уловите контекст в котором оно написано и не противоречте сами себе, открыть - читайте разрешить доступ, более понятным, для обычного обывателя, языком. Пока трафик дойдет дойдет до конкретного сокета - по пути может быть куча пограничного обрудования, фаерволов и маршрутизаторов на которых нужно произвести соотвествующие настройки с маршрутами и доступом к определенному порту.

    @siriys2009 Дабы Вам помочь нужно получить ответ на вопрос, который я уже задавал выше.

    Вы пользуетесь роутером? Или ваш WAN кабель подключен напрямую к ПК?


  9. 17 часов назад, siriys2009 сказал:

    заранее извиняюсь за заезженную тему но все равно подскажите пожалуйста, не могу ни как друзей пустить на сервер через интернет, что я где неправильно написал?

    Роутером пользуетесь? Там все нужные порты открыты\проброшены?

    Уверены что провайдер продоставляет Вам  выделенный, "белый", IP адрес без NAT?

    • Like 1

  10. 1 час назад, doloto сказал:

    Можно ли вписывать домен вместо IP адреса в файл l2.ini

    Можно

    1 час назад, doloto сказал:

    Или есть какие то подводные камни?

    Только то, что Вы становитесь зависмы от доступности днс сервера

    • Like 1

  11. Можно попробывать сделать пассивный скилл (OP_PASSIVE)

    C эффектом кубика по аналогии

    <effect name="Cubic" stackType="vampiric_cubic" stackOrder="1" time="900"> 
      <def name="cubicId" val="2"/>  
      <def name="cubicLevel" val="#cubicLevel"/>  
      <player cubic="2"/> 
    </effect>

    Далее добавить скилл предмету через

    <skills>
    	<skill id="..." level="1"/>
    </skills>

     


  12. Батник, а именно .bat файл это всеголишь набор команд, в котором скорее всего было прописано то что я написал выше, а именно выполнение

    ant

    из текущей дерриктории

    Запустит команду можно ив ручную, скачайте ant, выполние команду

    cd путь\к\вашим\исходникам

    И запустите ant

    Вот как пример

    image.thumb.png.8cdf4668e977d76a53593e84f58eaf8a.png

    Полностью процесс билда не пройду т.к у меня сейчас не стоит нужной для мобиуса 17-ой явы

    • Like 1

  13. Вы смешали все в одну кучу. Компилятор (в ява) это javac (Java Compiler) - программа которая преобразовует ява-код в байт-код соответсвующий спецификации JVM.

    То "что" появлялось у вас на рабочем столе - это скорее всего собраное ява приложение в пакет .jar + непобходимые зависимости, этим занимался сброщик, который автоматизирует всю работу, запускает компилятор, берет байт код, запаковует файлы и т.д.

    В большенстве случаев, команды разработчиков, используют ant (наверное по привычке, или по не желанию использовать аналоги) - утилита позволяющая собирать ява приложение, приложение так же можно собрать с помощью других утилит, например maven, gradle или с помощью внутрених средств IDE типа eclipse или IntelliJ IDEA

    Мобиус на сколько я помню предоставляет build.xml для сброки приложения с помощью ant, выполнение которого можно запустить командой

    ant -buildfile путь\к\вашему\файлу\build.xml

    Или просто 

    ant

    В дерриктории в которой есть build.xml

    ant сооветсвенно должен быть установлен на пашем ПК

    • Like 1

  14. 23 часа назад, Gaikotsu сказал:

    используется режим сборщика мусора, который в используемой версии явы объявлен устаревшим

    поправь опции запуска в батнике запуска гейма (вроде как -XX:+UseConcMarkSweepGC), ну или запускай под более старой явой.

    deprecated же не значит что его нельзя использовать. Это просто предупреждение о том что скоро CMS будет удален.

    В 09.03.2023 в 10:41, arturkainfo сказал:

    В чем может быть проблема? Заранее Спасибо!

    Возможно там какой-то ексепшн другой, посмотрите внимательнее, также посмотрите stdout.log и java.log файлы если такие имеються

    Если консоль закрываеться сразу и возможные ошибки прочитать не успеваете - откройте CMD, пропиште "cd путь\к\вашей\" и запустите оттуда StartGameServer.bat


  15. MySQL ERROR 1130: Host is not allowed to connect to this MySQL server.

    Если у вас база сервера и сайт на разных хоста, соотвественно нужно серверу БД разрешить доступ для ИП хостинга вашего сайта.

    Вы должны создать пользователя вида "username@YOU_WEB_SITE_IP" и выдать ему все необходимые права для БД

    • Like 1

  16. Вы не можете просто так поменять ИП адресс на внешний, если используете роутер, либо провайдер использует NAT.

    В конфигах адрес биндинга должен быть тот, который получил Ваш пк

    Если используете роутер - это будет адрес от роутера, что-то вроде 192.68.0.2, если интернет-кабель подведен на прямую, то нужно смотреть что вам раздает провайдер, к тому же стоит учитывать момент, что провайдер может не разрешать прямое подключение и это может быть отдельно услугой  "Выделеный ИП" за доп. плату.

    В настройках логинсервера

    LoginserverHostname = ИП_ПОЛУЧЕНЫЙ_ОТ_РОУТЕРА либо звездочка (*), это адресс на котором открывается сокет

     

    В настройках геймсервера

    GameserverHostname = ИП_ПОЛУЧЕНЫЙ_ОТ_РОУТЕРА либо звездочка (*), это адресс на котором открывается сокет

    ExternalHostname = ВАШ_ВНЕШНИЙ_ИП, это адресс который передается игрокам при выборе сервера

    InternalHostname = ИП_АДРЕСС_В_ЛОКАЛЬНОЙ_СЕТИ_ПОЛУЧЕНЫЙ_ОТ_РОУТЕРА или 127.0.0.1, это адресс который передается игрокам при выборе сервера в локальной сети

     

    При это должны быть соблюдены условия

    1. Вы корректно настроили на роутере проброску портов 2106 и 7777 на ИП_ПОЛУЧЕНЫЙ_ВАШИМ_ПК_ОТ_РОУТЕРА

    2. Провайдер предоставляет вам т.н "Белый" или "Выделеный" ИП-адрес, т.е к нему есть доступ из вне и не блокируеться фаерволами провайдера

    3. Открыли нужные порты в локальном фаерволе (брандмауер, если Вы на винде)


  17. А раздачу то можно? 166 RU жду уже пару дней :(

    Или писать тулзовинку которая рекурсивно тянуть файлы будет?

     

    Так же вопросик к @Akumu не удалось ли найти 288 RU?

×
×
  • Создать...