Перейти к содержанию
Авторизация  
BORDIR

Макросы

Рекомендуемые сообщения

Всем привет.

 

Довольно долго искал метод или класс, отвечающий за использование макросов, но безуспешно. Нашел только саму структуру макроса, его создание, рестор и удаление.

 

В связи с этим вопрос: Использование макросов - это только клиент часть или же все таки я плохо искал? Мне нужен именно тот код, который выполняется при клике на самом макросе.

 

Исходники First-Team.

 

Всем заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчет вопроса - ответ можно узнать, включив пх, заюзать макрос и глянуть, что шлется при юзе макроса.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет.

 

Довольно долго искал метод или класс, отвечающий за использование макросов, но безуспешно. Нашел только саму структуру макроса, его создание, рестор и удаление.

 

В связи с этим вопрос: Использование макросов - это только клиент часть или же все таки я плохо искал? Мне нужен именно тот код, который выполняется при клике на самом макросе.

 

Исходники First-Team.

 

Всем заранее спасибо.

По-поему gameserver/model/actor/instances/player/Macro.java

А вообще, использование макроса вроде как зависит от клиент части. То есть, проверяются все команды, заданные в макросе, а потом уже отсылается пакет серверу, что нужно юзать эти команды.

Изменено пользователем bodyan2011

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По-поему gameserver/model/actor/instances/player/Macro.java

А вообще, использование макроса вроде как зависит от клиент части. То есть, проверяются все команды, заданные в макросе, а потом уже отсылается пакет серверу, что нужно юзать эти команды.

 

Да, пришел к тому же выводу.

 

Хорошо, задам вопрос по-другому :) Знает кто или имеет какие-нибудь идеи по реализации Бага на откат макросов? Натолкните на правильную мысль, пожалуйста .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, пришел к тому же выводу.

 

Хорошо, задам вопрос по-другому :) Знает кто или имеет какие-нибудь идеи по реализации Бага на откат макросов? Натолкните на правильную мысль, пожалуйста .

Скорей всего тоже где-то в клиенте, так как я про использование макросов тоже ничего в ядре не нашел)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Скорей всего тоже где-то в клиенте, так как я про использование макросов тоже ничего в ядре не нашел)

 

Но ведь, скорее всего, можно же сделать какой-нибудь костыль :) Так как уже не раз видел, как на Ява серверах этот баг специально добавляют, кроме того на ПТС же он работает на ура, а клиент тот же :)

 

Так что теме ап, вроде даже у каких-то полушаровых команд видел подобную реализацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчет вопроса - ответ можно узнать, включив пх, заюзать макрос и глянуть, что шлется при юзе макроса.

 

Посылается сразу magicskilluse, такой же, как и при нажатии на обычный скилл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Взято у скриптов

RequestMakeMacro.java

network.l2.c2s

protected void readImpl()
  {
    int _id = readD();
    String _name = readS(32);
    String _desc = readS(64);
    String _acronym = readS(4);
    int _icon = readC();
    int _count = readC();
    if (_count > 12)
      _count = 12;
    Macro.L2MacroCmd[] commands = new Macro.L2MacroCmd[_count];
    for (int i = 0; i < _count; i++)
    {
      int entry = readC();
      int type = readC();
      int d1 = readD();
      int d2 = readC();
      String command = readS().replace(";", "").replace(",", "");
      if ((type == 1) && (Config.ALLOW_MACROS_REUSE_BUG))
     {
       entry = 3;
        command = ".useskill " + d1;
      }
      commands[i] = new Macro.L2MacroCmd(entry, type, d1, d2, command);
    }
  _macro = new Macro(_id, _icon, _name, _desc, _acronym, commands);
 }

Но у меня работало только для магических скилов. Если откат у скила более 9 сек. то при использовании с макроска -3 сек.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Взято у скриптов

RequestMakeMacro.java

network.l2.c2s

protected void readImpl()
  {
    int _id = readD();
    String _name = readS(32);
    String _desc = readS(64);
    String _acronym = readS(4);
    int _icon = readC();
    int _count = readC();
    if (_count > 12)
      _count = 12;
    Macro.L2MacroCmd[] commands = new Macro.L2MacroCmd[_count];
    for (int i = 0; i < _count; i++)
    {
      int entry = readC();
      int type = readC();
      int d1 = readD();
      int d2 = readC();
      String command = readS().replace(";", "").replace(",", "");
      if ((type == 1) && (Config.ALLOW_MACROS_REUSE_BUG))
     {
       entry = 3;
        command = ".useskill " + d1;
      }
      commands[i] = new Macro.L2MacroCmd(entry, type, d1, d2, command);
    }
  _macro = new Macro(_id, _icon, _name, _desc, _acronym, commands);
 }

Но у меня работало только для магических скилов. Если откат у скила более 9 сек. то при использовании с макроска -3 сек.

 

Спасибо, посмотрю сегодня.

 

докатились блин, уже и офф баги воспроизводить...

 

Что в этом удивительного? :) Это довольно популярная фишка была на топовых Ява серверах. Да и даже когда свой сервак запускал 400+ многие ныли, что этот баг не пашет :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за баг?) в чем его прикол?

Ну это баг с макросами, который по-моему даже на оффе не исправили. Суть заключается в том, что если в макрос запихнуть команду /useskill, скилл, который кастонется, откатится быстрей, чем обычно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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