Гайд по Macro/Keybind mod или как привязать команды к кнопкам в майнкрафте.

Тема в разделе "Руководства", создана пользователем Black_falcon, 7 янв 2015.

  1. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    Что интересно, когда такой скрипт был выложен ранее, чуть ли не весь админсостав его забраковал [smile]
     
  2. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    Ладно, для начала выложу индикатор баланса новый.

    Как это работает:
    Скрипт автоматически посылает команды запроса баланса каждый 5 минут, для отслеживания покупки ваших товаров в МИ.
    Так же он эту команду посылает, если вы решили получить товары с /ichk, если товаров нет - запроса тоже нет.
    Ну и последний случай отправки запроса - использование команд /ws add и /sell this. На каждый экземпляр команды посылается запрос, поэтому отправляйте запросы с интервалом, или вас может выкинуть за спам.

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

    Ну а теперь установка:

    Сначала удаляете старый скрипт money.
    Затем перенастраиваете свои лэйблы с переменный таким образом:
    [​IMG]
    [​IMG]
    Далее вам нужно добавим отредактируем событие перехода в дугой мир, что бы скрипт автообновления выключался, везде, кроме основного мира, и включался при попадании в него обратно:
    [​IMG]
    Добавим скрип обновления в автозагрузку:
    [​IMG]
    И осталось добавить в чатфильтр такие строки:
    Код:
    ifmatches(%CHATCLEAN%,"Balance: (.+?)\.");
      match(%CHATCLEAN%,"Balance: (.+?)\.",{#new_money});
      if(%#new_money% != %@#current_money%);
      @#last_changes_of_money=%#new_money%-%@#current_money%;
      @#current_money=%#new_money%;
      endif;
       
       unset(#new_money);
      filter;
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[Money\] You have sent (.+?) Червонцев to (.+?)\.$");
       match(%CHATCLEAN%,"^\[Money\] You have sent (.+?) Червонцев to (.+?)\.$",{&amount,&nick});
    
       match(%&amount%,"(.+?)\.",{#amount});
       dec(@#current_money,%#amount%);
       @#last_changes_of_money = -%#amount%;
       
       unset(#amount);
       unset(&amount);
       unset(&nick);
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[Money\] (.+?) has sent you (.+?) Червонцев\.$");
       match(%CHATCLEAN%,"^\[Money\] (.+?) has sent you (.+?) Червонцев\.$",{&nick,&amount});
    
       match(%&amount%,"(.+?)\.",{#amount});
       inc(@#current_money,%#amount%);
       @#last_changes_of_money = %#amount%;
       
       unset(#amount);
       unset(&amount);
       unset(&nick);
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[Shop\] You bought %amount (.+?) from (.+?) for (.+?) Червонцев");
       match(%CHATCLEAN%,"^\[Shop\] You bought %amount (.+?) from (.+?) for (.+?) Червонцев",{&product,&nick,&price});
    
       match(%&price%,"(.+?)\.",{#price});
       dec(@#current_money,%#price%);
       @#last_changes_of_money = -%#price%;
       
       unset(&product);
       unset(&price);
       unset(&nick);
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[Shop\] You sold %amount (.+?) to (.+?) for (.+?) Червонцев");
       match(%CHATCLEAN%,"^\[Shop\] You sold %amount (.+?) to (.+?) for (.+?) Червонцев",{&product,&nick,&price});
    
       match(%&price%,"(.+?)\.",{#price});
       inc(@#current_money,%#price%);
       @#last_changes_of_money = %#price%;
       
       unset(&product);
       unset(&price);
       unset(&nick);
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[Shop\] (.+?) sold %amount (.+?) for (.+?) Червонцев to you");
       match(%CHATCLEAN%,"^\[Shop\] (.+?) sold %amount (.+?) for (.+?) Червонцев to you",{&nick,&product,&price});
    
       match(%&price%,"(.+?)\.",{#price});
       inc(@#current_money,%#price%);
       @#last_changes_of_money = %#price%;
       
       unset(&product);
       unset(&price);
       unset(#price);
       unset(&nick);
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[Shop\] (.+?) bought %amount (.+?) for (.+?) Червонцев from you");
       match(%CHATCLEAN%,"^\[Shop\] (.+?) bought %amount (.+?) for (.+?) Червонцев from you",{&nick,&product,&price});
       match(%&price%,"(.+?)\.",{#price});
       dec(@#current_money,%#price%);
       @#last_changes_of_money = -%#price%;
       
       unset(&product);
       unset(&price);
       unset(#price);
       unset(&nick);
    endif;
    
    ifmatches(%CHATCLEAN%,"^Your account has been debited 50$");
    
       dec(@#current_money,50);
       @#last_changes_of_money = -50;
       
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[InventorySQL\] Успешно добавлено$");
       
       echo("/money");
    
    endif;
    
    ifmatches(%CHATCLEAN%,"^You were charged (.+?)\.00 Червонцев");
       match(%CHATCLEAN%,"^You were charged (.+?)\.00 Червонцев",{#price});
       
       dec(@#current_money,%#price%);
       @#last_changes_of_money = -%#price%;
       
       unset(#price);
    endif;
    
    ifmatches(%CHATCLEAN%,"^\[InventorySQL\] (\(.+?)\) (.+?) предметов удалено\, (.+?) предметов добавлено\, (.+?) в очереди$");
    
       echo("/money");
    
    endif;
    
    Не забываем положить прикрепленный файл в папку макросов.
     

    Вложения:

    OOIIOOOO нравится это.
  3. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    А теперь обновленный чат, в него уже входит индикатор баланса, поэтому все описанные выше шаги, кроме изменения чатфильтра надо сделать.

    Установка:

    В новом чате я убрал некоторые не особо важные уведомления, забивающие чат, и перенес их в специальное для них окошко, в котором они показываются лишь на несколько секунд., а значит надо это окошка добавить, поэтому открываем GUI редактор, выбираем окно ingame и добавляем новое текстовое поле. Его положение, размеры и время показа сообщений выможете настроить сами, но имя полю задайте как notice.

    Все, теперь вам осталось убрать из чатфильтра лишнии записи и добавить всего 1 строку:
    $$<chat_custom.txt>;
    Ну соотвественно положить все прикрепленные файлы в папку макросов.

    Теперь к настройке:
    Как изменить форму выдачи новых сообщений я уже говорил в одном из предыдущих постов, но вот цвета теперь меняются более удобно.
    Цвета уведомлений, личных сообщений и системные цвета задаются в файле chat_color_set.txt
    Цвета каналов задаются в файле chat_color_channel_set.txt
    А цвета префиксов, тегов и ников задаются в файле clear_nick.txt
    Как добавить в эти файлы новые каналы, теги, префиксы и ники думаю будет понятно, там ничего сложного нет.

    Задаются цвета не словами, а буквами и цифлами, список которых можно получить командой /color list.
     

    Вложения:

  4. useigor

    useigor
    Подрядчик
    28
    26
    223
    Этот скрипт позволяет узнавать, когда заходил игрок на сайт, не открывая браузера. Минус в том, что гостям не доступен поиск пользователей, поэтому скрипт находит пользователя по его сообщениям. Пример:

    2016-06-19_05.00.29.png

    • Нажимаем Ctrl+R и вводим %appdata%\.minemoscow\MM Classic\MM Classic\liteconfig\common\macros, чтобы открыть папку, куда нужно положить скрипт igraki_mojttzax.txt
    • Там же есть папка Modules, в которую нужно положить module_http_api17_v0.2.jar из одноимённой папки, что находится в zip архиве. Без этого модуля скрипт не сможет скачивать веб-страницы, а значит не будет работать.
    Сам скрипт можно, например, прицепить к клавише. Для это нужно пройти под одному из пути:
    • Настройки > Управление. Далее листаем вниз, чтобы найти кнопку Macro Settings, на которую нужно нажать
    • Нажимаем ~, а затем в нижнем правом углу на 3-тью кнопку слева с названием "Забиндить кнопки"
    Перед нами должна появиться клавиатура (если что-то другое, то в верхнем левом углу нужно нажать 1-2 раза на жёлтую стрелку ). Нажимаем на любую серую клавишу и вводим внизу $${$$<igraki_mojttzax.txt.txt>}$$, а затем нажимаем кнопку Запись справа.

    Код:
    &q        = $$[igrok]
    &url    = http://www.minecraft-moscow.com/search/search?users=%&q%
    &r        = httpget(%&url%,,#status)
    #id        = 0
    
    match(%&r%,"members/%&q%.([0-9]+)",{#id})
    
    if(#id > 0)
        &url    = http://www.minecraft-moscow.com/members/%#id%?card=1
        &r        = httpget(%&url%,,#status)
     
        &datetime = неизвестно когда
        match(%&r%,"class=\"DateTime.*?>(.*?)<",{&datetime})
        log(Игрок %&q% был %&datetime% на сайте)
    else
        log(Не удалось узнать, когда игрок был на сайте)
    endif
    
    unset(&r)
    

    Правка 1:
    Я заметил, что текст, откуда я брал дату, непостоянен и может пропадать. Исправил (там в профиле есть несколько текстов с датами и среди них есть постоянный).
     

    Вложения:

    Последнее редактирование: 19 июн 2016
    humanother нравится это.
  5. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    Есть другйо вариант, можно не искать, а сразу вбивать ник в адресную строку. Потом анализируешь, что выдал скрипт и готово.
     
  6. useigor

    useigor
    Подрядчик
    28
    26
    223
    Black_falcon, не знаю, куда вбивать. Думаю, известно, что имя пользователя (кстати, как и название темы) в url используются для красоты, вместо них можно что угодно писать, потому что переход по адресу осуществляется по номеру пользователя/темы.
     
  7. squirrel

    squirrel
    Заслуженный градостроитель
    3.239
    3.319
    558
    Минус этого скрипта в том что игрок может месяцами не заходить на форум но при этом активно играть [smile]
     
    John_Locke нравится это.
  8. useigor

    useigor
    Подрядчик
    28
    26
    223
    squirrel, ну, так я поэтому и выделил "на сайт". Может быть и наоборот, что игрок заходит на сайт, но не в игру. Кроме того, в игре может не оказаться модераторов, а попытаться хоть какие-нибудь сведения о активности игрока нужно, и единственным быстрым способом остаётся запуск браузера для открытия профиля того игрока, а этот скрипт как раз автоматизирует это действие.
     
  9. squirrel

    squirrel
    Заслуженный градостроитель
    3.239
    3.319
    558
    ну это косвенные данные, я бы сказал что на данный момент просто небыло идей вот и решили это сделать [smile]
     
  10. useigor

    useigor
    Подрядчик
    28
    26
    223
    squirrel, я бы сказал, что читая чат в игре, мне этот скрипт показался нужным. Обычно я пишу скрипт, если появляется нужда, просто так я обычно не пытаюсь придумывать.
     
  11. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    Ты кстати укажи, что для скрипта нужен модуль
     
  12. useigor

    useigor
    Подрядчик
    28
    26
    223
    Black_falcon, да, наверное, так будет понятнее для новичков, хотя он и так есть в том zip архиве.
     
  13. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    Небольшой полезный скриптик на удобную установку честшопов:
    Для установки положите файл в папку, и забиндите на кнопку $$<place_chestshop>.

    Для установки честшопа наведите курсор на место установки и нажмите кнопку. Выбираете нужный предмет, потом задаете количество продаваемых предметов, потом задается цена на продажу вам, затем - цена за покупку у вас и все [smile]
     

    Вложения:

    humanother нравится это.
  14. John_Locke

    John_Locke
    Градостроитель
    1.177
    1.092
    463
    Идея конечно креативная. Я бы немного усложнил (скрипт) и облегчил (использование).
    Например: Держишь нужное количество товара в руке (уже минус две переменные). Само собой табличка так же должна быть в слотах 36-44... вот[smile]
     
  15. Black_falcon

    Black_falcon
    Архитектор
    1.895
    793
    438
    Для моего скрипта зато не нужно иметь в наличии товар [smile]
     
    John_Locke нравится это.
  16. damix_pro

    damix_pro
    Архитектор
    370
    149
    313
    Вот вам скрипт для расслабления и творчества
    MusicMaker_9000_MEGA_ULTRA_.rar
    ну, вы знаете что с этим делать)

    в файле w.txt есть пример как писать разную музыку
    чтобы прослушать готовые примеры, в файле w.txt измените строчку
    exec(Music.txt,Mus,"%&r%"); на %&r2% , %&r3% или %&r4%

    чтобы стартовать ----- $${$$<w.txt>}$$

    итак, Ғайд

    чтобы написать свою милодию, нужно в том же файлике w.txt добавить
    &r = "{ Ноты }";
    вместо { Ноты } пишите ноты:
    1-До
    2-Ре
    3-Ми
    4-Фа
    5-соль
    6-ля
    7-си
    8-до
    и т.д. До 18.
    Всякие Диезы и Бимоли (черные клавиши) тоже идут друг за другом только перед цифрой идет "q"
    q1 - до диез (ре бимоль) (первая черная клавиша после До)
    q2 ... и так далее до q12

    И самое важное - задержка
    она идет в миллисекундах и перед ней ставится "w"
    пример w200 w400 w800 w1600 w1234

    вот и пример: добавьте в файл w.txt такую запись:
    &r6 = "13 w300 10 w300 13 w300 10 w300 13 w300 q9 w300 q9 w500 q9 w300 10 w300 q9 w300 10 w300 q9 w300 13 w300 13 w500 13 w300 10 w300 13 w300 10 w300 13 w300 q9 w300 q9 w500 q9 w300 10 w300 q9 w300 10 w300 q9 w300 13 w500 13 w300 14 w300 14 w120 14 w120 14 w300 14 w300 15 w300 15 w120 15 w120 15 w300 15 w300 15 w300 14 w300 13 w300 q9 w300 13 w300 13 w500 13 w300 14 w300 14 w120 14 w120 14 w300 14 w300 15 w300 15 w120 15 w120 15 w300 15 w300 15 w300 14 w300 13 w300 q9 w300 13";
    (это обязательно должно быть в 1 строку. )
    затем ниже :
    exec(Music.txt,Mus,"%&r6%");

    Теперь послушайте что получилось забиндив на любую кнопку $${$$<w.txt>}$$
    вот и все) но весь кайф в том, чтобы забиндить каждую ноту
    на кнопки и играть как на синтезаторе)))

    Посмотреть вложение 8597
     

    Вложения:

    Последнее редактирование: 2 окт 2016
    small_Ball, BearGrils, Ingwe и ещё 1-му нравится это.
  17. danila115

    danila115
    Подрядчик
    82
    66
    253
    Запили еще чтоб оно на этом схему делало по созданию из муз.блоков для схематика XD
    НУЖНО БОЛЬШЕ СЛОЖНОСТЕЙ!!!
     
  18. John_Locke

    John_Locke
    Градостроитель
    1.177
    1.092
    463
    Для чего так усложнять? Есть небольшая програмка для этих целей, рабочая и довольно понятная с огромными возможностями[smile]
     
  19. damix_pro

    damix_pro
    Архитектор
    370
    149
    313
    угадайте мелодию)
    &m1 = "17 w500 15 w600 15 w200 15 w200 15 w300 14 w200 13 w600 14 w300 14 w200 16 w300 16 w200 15 w300 14 w200 13 w600 13 w300 14 w300 15 w500 15 w500 15 w300 14 w400 12 w400 13 w1500 17 w500 15 w600 15 w200 15 w200 15 w300 14 w200 13 w600 14 w300 14 w200 16 w300 16 w200 15 w300 14 w200 13 w600 13 w300 14 w300 15 w500 15 w500 15 w300 14 w400 12 w400 13";

    Кстати вы можете заменить (добавить) свои звуки (мяуканье какое нибудь или гитара\орган) и так же пользоваться этим скриптом (если добавляете то просто вместо цифр пишите Название самого файла)
    Добавлять в папку macros\sound
    но оно должно быть .OGG
     
    small_Ball и BearGrils нравится это.
  20. damix_pro

    damix_pro
    Архитектор
    370
    149
    313
    че можно сделать прикольного то говорите