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

Ky6uk_Py6uk

Правильные пользователи
  • Публикаций

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

  • Посещение

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


  1. День добрый, уважаемые люди, мне нужна помощь, вообщем я создал тут вот такой скрипт "калькулятор" с выбором через какой вариант проводить подсчёт.
     

    $${
    prompt(#x,"$$[numberone]"); 
    prompt(#y,"$$[numbertwo]"); 
    Prompt(&Count,"$$[Count[Plus,Minus,Multiplication,Division]]");
    
    	#b = #x + #y
    	#d = #x - #y
    	#l = #x * #y
    	#a = #x / #y
    
    	IF(%&Count% = "Plus");
    	echo("Plus: %#b%");   
        ELSEIF(%&Count% = "Minus");
    	echo("Minus: %#d%");
        ELSEIF(%&Count% = "Multiplication");
    	echo("Multiplication: %#l%");
        ELSEIF(%&Count% = "Division");
    	echo("Division: %#a%");
    
    		endif;
    	       endif;
    	      endif;
    	     endif;
    
    		wait(500ms);
    	echo("Numbers: %#x% and %#y%");
    }$$

    Дело в том, что я не понимаю, почему у меня не идёт подсчёт цифр в чат. Первым делом я вписываю цифру один в колонку (numberone, переменная #x), далее вписываю цифру два в другую колонку (numbertwo, переменная #y). Далее выбираю из этого "списка" в виде плюса, минуса, умножения и деления. По идеи далее скрипт должен был грубо-говоря выбрать какое действие ему исполнить. Так же в конце скрипта всегда пишутся цифры которые были записаны в переменные в #x и #y. Кстати, вот эта вот деталь, которая показана ниже в середине скрипта олицетворяет что-то по типу выдачи ответов на переменные X и Y.

    #b = #x + #y
    #d = #x - #y
    #l = #x * #y
    #a = #x / #y

    Прошу подсказать, что нужно сделать, чтобы скрипт полностью работал и работала вот эта часть:
     

    	IF(%&Count% = "Plus");
    	 echo("Plus: %#b%");   
        ELSEIF(%&Count% = "Minus");
    	 echo("Minus: %#d%");
        ELSEIF(%&Count% = "Multiplication");
    	 echo("Multiplication: %#l%");
        ELSEIF(%&Count% = "Division");
    	 echo("Division: %#a%");

     


  2. Добрый день обитатели этого форума, не хочется мне уже просить помощи, но как сделать что-то на подобии киллауры в вот-таком скрипте :?
     

    $${
    if(automine);
    log("Auto-attack Disabled");
    unset(automine);
    else;
    log("Auto-attack Enabled");
    set(automine);
    do;
    key(attack);
    wait(90ms);
    while(automine);
    endif;
    }$$

    Просто я сам не понимаю как сделать киллауру, в зоне 6-7-ми блоков, да и ещё впихнуть это в макрос автокликер. Буду крайне благодарен если вы поможете реализовать данную идею 🙂


  3. Возможно ли как-то сделать автокликер на какую-то определённую клавишу, а не только на атаку (key (attack)) или пкм (просто строчку с key (attack) заменить на key (use)) в данном макросе:
     

    $${
    if(automine);
    log("Авто-атака выключена");
    unset(automine);
    else;
    log("Авто-атака включена");
    set(automine);
    do;
    key(attack);
    while(automine);
    endif;
    }$$

    Если да, то прошу помочь.


  4. И снова здравствуйте, меня интересует такая вещь как сделать чтобы например из вот такого скрипта:
     

    $${
    IFMATCHES(%CHATCLEAN%,Решите пример:)
       MATCH(%CHATCLEAN%,Решите пример: (.*) (.) (.*)$,{#x1,&operation,#x2})
            if(%&operation%="-")
                #answer=#x1 - #x2;
                log(%#x1% - %#x2% = %#answer%)
                echo(%#answer%);
            endif;
        ENDIF;
    ENDIF;
    }$$

    сделать что-то по типу игрок пишет: "Пригласи в клан *его ник*"
    А скрипт "пишет" команду: "/invite *его ник*"
    Я сам думаю как это работает, но никак не могу догадаться как это сделать. Единственное до чего я догадался поменять все операции с # на & ну и немного заменить некоторые детали. В итоге всё равно ничего не работает. Прошу помочь.
    За ранее большое спасибо.


  5. Ещё раз здравствуйте, я знаю то что очень много спрашиваю разных вопросов, но тут у меня выявилась проблема, и я не знаю как её решить.
    Как сделать в таком скрипте (он ставится в OnChat) чтобы он реагировал только на мой ник (тк если кто-то напишет :: 10 + 10 то скрипт всё так же будет отвечать) и меня же нельзя было заспамливать сообщением, которое запускает скрипт (если не понятно то сейчас ниже поймёте)?  То есть если я напишу как будет работать скрипт на СЕРВЕРЕ то будет примерно вот так (зачёркнутым написана бесполезная информация, а подчёркнутым более важная):
    [Клан] [Мой ник] -> :: 10 + 10
    Дальше я же отвечаю что-то типа такого:
    Ответ: 20.
    Проблема в том то что на сервере есть такая штука как анти-спам,  думаю понятно зачем. Но я не знаю как сделать между работой этого скрипта что-то типа кулдауна. Мол написал я эту команду (:: 10 + 10) и пошёл кулдаун между тем чтобы можно было опять написать (:: 10 + 10) и сработал скрипт.

    Сам скрипт:

    $${
    IFMATCHES("%CHATCLEAN%",":: (\d+?) ([\+\-\*\/]) (\d+?)$");
    	MATCH("%CHATCLEAN%",":: (.+?) (.) (.+?)$",{#x1,&op,#x2});
    	IF(%&op%="+");
    		#answer = #x1 + #x2; 
    	ELSEIF(%&op%="-");
    		#answer = #x1 - #x2;
    	ELSEIF(%&op%="*");
    		#answer = #x1 * #x2;
    	ELSEIF(%&op%="/");
    		#answer = #x1 / #x2;
    	ENDIF;
    	LOG("%#x1% %&op% %#x2% = %#answer%");
    	WAIT(2500ms);
    	ECHO("Ответ: %#answer%");
    ENDIF;
    }$$

    P. S. Скрипт взял за основу у Оцелота, но использую его немного с другими целями.
    P.S 2. Я знаю то что можно сделать гораздо проще и скорее всего удобнее, но я не люблю искать простых путей >:-)


  6. День добрый.

    Я помню один человек выкладывал ну уж очень подробный и понятный гайд по всяким переменным и т. д. (Он на сколько помню ещё висел в разделе "Полезные ссылки" в самом начале этого раздела). Не помню его ника, но сайт где он написал этот гайд то ли закрылся, или этот гайд просто почему-то удалила администрация.

    Я хочу написать один скрипт, но если спрашиваю кого-то то как это сделать, то я встречаю просто сотни новых понятий и терминов и ничего не понимаю что там написано.
    Не спорю, этот гайд (от LastLife) получился очень даже хорошим для простых-основных скриптов, но если хочешь сделать что-то по серьёзнее, то ты просто не знаешь как это сделать.

    Вообщем в чём суть? Можете посоветовать понятный гайд с подробным объяснением различных команд и т. д.
    Я знаю один сайт где написаны команды и что они делают, но чтобы там понять в какой последовательности они должны быть расположены и где применяются нужно не только хорошо знать английский, но и так скажем "шарить" в моде, а это уж точно не гайд (Сайт mkb.gorlem.ml/wiki/commands). @LastLife.

    За ранее огромное спасибо если у вас есть что-то похожее на гайд 🙂


  7. Доброго времени суток.
    Хочу сделать скрипт на муты на сервере. Взял под основу скрипт LastLife, который позволяет это реализовать (Я ему добавил echo чтобы он сообщение в чат писал, а не просто ничего не делал).
    Сам скрипт выглядит вот так:
     

    Цитата

    $${
    echo(/mute $$[nick] $$[reason[""]]) Причины и время мута я в будущем впишу в ""
    }$$

    Вся проблема находится в том, что сделали зачем-то чтобы в самой команде нельзя было вписывать причину (то есть написал(а) /mute Ник игрока 10m. И отдельным сообщением причину мута).
    Я попытался это дело изменить, но вышла одна проблема, из за которой всё идёт коту под хвост.
     

    Цитата

    $${
    echo(/mute $${prompt(#nick,"$$[nick]"$$[reason[""]])
    }$$

    Скобочка из echo( связывается с скобочкой из #nick,"$$[nick]"). В итоге всё что идёт дальше, не идёт в echo() и просто пишется в самой команде (/mute) не как скрипт, а как текст дальше.
    Чтобы вы знали для чего я хочу добавить переменную, я хочу чтобы после того как я написал ник и выбрал причину, прошла одна секунда (wait(1)) и написалось в чат что-то типа такого сообщения:
    "Было нарушено правило %#reason% игроком %#nick%.
     

    Цитата

    "Было нарушено правило %#reason% игроком %#nick%.

    Не знаю правильно ли я написал, но данная штука была бы очень полезной.
    Ещё я заметил, чтобы мне прописать %#reason% мне нужно сделать так, чтобы $$[reason[""] были в переменной, но на сколько я знаю, через prompt хоть и можно поставить в переменную, но мне нужно чтобы можно было выбирать причину, а как я знаю, в prompt можно только вписывать что либо.
    Как тут:

    Цитата

    $${
    echo(/mute $$[nick] $$[reason[""]]) Причины и время мута я в будущем впишу в ""
    }$$


    Фух. Вроде бы написал всё понятно и правильно.
    Если есть какой-то другой вариант как это сделать, пожалуйста помогите.
    За ранее огромнейшее спасибо!


  8. 3 часа назад, LastLife сказал:

    Запустить бесконечный цикл и в нём выполнять
    ifmatches(%HITID%,"grass|sand");pick("diamond_shovel"); endif;
    ifmatches(%HITID%,"stone|cobblestone");pick("diamond_pickaxe"); endif;

    Как понять, запустить в бесконечный цикл? Я опять же говорю, абсолютно всё забыл напрочь.
    P.S. Теперь я хотя бы догадался что значит заключить в бесконечный цикл, но опять же как?


  9. Доброго времени суток
    Можете подсказать как сделать скрипт, который работает как, если я вижу перед собой например любую руду (камень, редстоун, лазурит, булыжник и.т.д.) то мой персонаж выбирает характерный для этого предмет (например кирку). Если так сделать не получится то я могу просто заранее в определённый слот положить нужный предмет и скрипт будет нажимать на кнопку. Просто я уже тысячу лет не пользовался MKB и абсолютно всё позабыл.
    То есть если я буду видеть перед собой тот же Песок то мой персонаж будет выбирать для этого не кирку, а лопату. Нужные блоки и инструменты для этого я могу и сам добавить только подскажите как именно нужно сделать это.
    За ранее огромнейшее спасибо!

     


  10. В 12.07.2018 в 18:30, OcelotJungle сказал:

    PROMPT(&action,"$$[action[\"Сложение\",\"Вычитание\",\"Умножение\",\"Деление\"]");

    IF(&action="Сложение");

    ...

    ELSEIF(&action="Вычитание");

    ...

    ELSEIF(&action="Умножение");

    ...

    ELSEIF(&action="Деление");

    ...

    ENDIF;

    Оцелот, тут такая проблема, теперь вообще ответ не пишется. То есть ввожу например 50 и потом 25 и нет никакой таблицы чтобы выбирать, и соответственно ничего не пишется. Может ты допустил ошибку где-то?


  11. А как тогда сделать чтобы после того как я написал X и Y можно было выбрать как по типу $$[variant["Сложение","Вычитание" итд.]]
    То есть когда я выбираю "Сложение", срабатывает log(%#b%), когда выбираю "Вычитание", срабатывает log(%#d%) итд. Просто сам не догоняю 


  12. Решил написать своими ручками первый скрипт который будет в виде "калькулятора" (просто по пробовать). Но не знаю как кое что реализовать.
    Так вот, скрипт будет работать по такому принципу:

    #x = 15
    #y = 5 
    #b = #x + #y
    #d = #x - #y
    #l = #x * #y
    #a = #x / #y
    log(%#b%)
    log(%#d%)
    log(%#l%)
    log(%#a%)

    Но я не хочу чтобы мы в самом скрипте меняли цифры, я хочу это реализовать через $$?, то есть, чтобы мы вписывали нам нужную цифру в X, после этого вписывали вторую цифру в Y, дальше мы выбирали варианты: Сложение, Вычитание, Умножение или Деление. Проблема в том то что я не знаю как сделать так чтобы то что мы писали в $$X и $$Y заменялось на цифры, и так же надо сделать такую же штуку с вариантами.

    P.S. Почему-то второй вариант (где написано #d = #x - #y пишется "False", почему?
    CTvwKm8.png


  13. 2 часа назад, LastLife сказал:

    Записывать можно через logto("../../logloglog.txt","wololo")

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

    • Вроттебеноги 1

  14. А возможно ли это сделать через какие-нибудь файлы логов которые даже не обязаны быть latest.log, а просто скриптом который записывает всё в какую-либо папку? По моему где-то _IeRONim_ выкладывал такой модуль который открывает файлы или как-то так.


  15. В 16.04.2017 в 20:32, OcelotJungle сказал:

     

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


  16. @LastLife или @OcelotJungle, Здравствуйте, есть один вопрос, можно ли сделать как-либо слежку разных слов на сервере через событие onsendchatmessage или onChat?
    Пример: Допустим кто-то написал в ЛС или в другие чаты человеку "дебил" или написал "ты дебил", но чтобы не добавлять эти варианты можно как-либо сделать слово "дебил" ключевым (если возможно и главное чтобы мой аккаунт видел это сообщение). Но я стою в АФК и я не вижу этих сообщений, но на сервере есть правила на счёт оскорблений и за них мутят например на 40 минут. То есть мне надо чтобы это сообщение кто-то написал, скрипт сработал и написал /mute ник человека 40m Оскорбление
    Надеюсь такое сделать хотя бы реально, очень полезная штука будет.
    ЗА РАНЕЕ ОГРОМНЕЙШЕЕ СПАСИБО!

    P.S. вот этот скрипт который выкладывал LastLife почему-то у меня не работает!

    ifmatches(%CHATCLEAN%,"^\<.+?\> .*(негодяй|плохиш|редиска).*$"); //регулярка сработает только на дефолтном чате  (этот текст убирал)
    match(%CHATCLEAN%,"^\<(.+?)\> .*$",{&player}); 

    echo("/mute %&player%"); 
    endif

    • Вроттебеноги 1

  17. В 17.11.2016 в 15:57, OcelotJungle сказал:

    Попросил меня тут Гриша написать скрипт подсчёта количества предметов в сундуке. Потом сказал, что мне стоит это скинуть на форум, вещь полезная.

    Ну я и скидываю, берите, кому нужно:

    
    UNSET(&names[]);
    UNSET(#sizes[]);
    #slots = CONTAINERSLOTS-37;
    FOR(#i,0,%#slots%);
      GETSLOTITEM(%#i%,&name,#size,#md);
      INDEXOF(&names[],#index,"%&name%:%#md%");
      IF(&name != "air");
        IF(#index = -1);
        PUT(&names[],"%&name%:%#md%"); ENDIF();
        INDEXOF(&names[],#index,"%&name%:%#md%");
        INC(#sizes[%#index%],%#size%);
      ENDIF;
    NEXT();
    
    LOG("§2Результат подсчёта ресурсов:");
    FOREACH(&names[],&name,#i);
      IF(&name !="air");
        GETITEMINFO(%&name%,&lname)
        IF(%#sizes[%#i%]%>=64);
          #stacks = #sizes[%#i%] / 64;
          #blocks = #sizes[%#i%] - 64 * (#sizes[%#i%] / 64);
          IF(#blocks = 0);
            LOG("§6%&lname% §f= §6%#stacks%$ (%#sizes[%#i%]%)");
          ELSE;
            LOG("§6%&lname% §f= §6%#stacks%$%#blocks% (%#sizes[%#i%]%)");
          ENDIF;
        ELSE;
          LOG("§6%&lname% §f= §6%#sizes[%#i%]%");
        ENDIF;
      ENDIF;
    NEXT();

    Можно вопрос? Вобщем, как установить этот макрос? (я знаю то что он работает в текстовом файле, но я не понимаю как он должен активироваться, по кнопке или по ивенту. В общем помогите!

     

     

    @LastLife если можете, просьба объяснить


  18. В 24.10.2014 в 15:57, LastLife сказал:
    Скрытый текст

     

    GUI. Метки.

    Итак, выше в главе GUI. Кнопки я объяснял как менять GUI и привёл в пример добавление кнопок. Но также в меню добавления, мы видим Метки(Label), Индикаторы и Текст.

    Итак, пойдём по порядку и рассмотрим Метки.
    Их смысл заключается в постоянном отображении заданного текста. Добавляются они аналогично кнопкам, но в настройках видим немного другую картину:

     

    Скриншот:

      Показать контент

    zMdS2ve.png


    Имя - это по сути ID нашей метки, его применение опишу дальше.
    Метка - текст, который показывает метка в данное время
    Привязать - не особо пока что разобрался
    Остальное - думаю всем понятно

    Но полностью статичный текст нам не интересен, поэтому для примера покажу как сделать так, чтобы на метке показывалось текущее игровое время.
    Задать текст метки можно с помощью функции setlabel(<Имя метки>, <текст>). Имя метки, то, что мы задавали в первой строке настроек, текст - это текст :)
    Естественно, сама по себе метка меняться не будет, поэтому нужно совершать какие-либо действия (Нажать на кнопку, написать скрипт для ивента и т.п.)
    Например создадим метку на GUI чата, дадим ей название "test". Запишем на любую кнопку скрипт $${setlabel(test, "$$[Text]")}$$. Теперь при нажатии заданной кнопки будет выдаваться поле для ввода текста, вводим туда текст и он записывается в нашу метку.

    Ну и теперь воспользовавшись знаниями всего гайда можно сделать так, чтобы при открытии чата в заданном месте мы видели текущее игровое время. Нам потребуется: Метка, Ивент onShowGui, Переменная DAYTIME, которая хранит в себе игровое время, на вкус можно ещё добавить кнопку GUI рядом с меткой.
    Итак, по порядку, ставим метку в GUI inChat, Указываем ей нужное имя, например TimeLabel. Далее, в ивент onShowGui, который выполняет действие при смене любого gui, записываем $${setlabel(TimeLabel, "Текущее время %DAYTIME%")}$$
    Готово, теперь, при открывании чата мы будем видеть Игровое время, но только на момент открытия чата, т.е. автоматически каждую секунду меняться текст не будет, только если закрыть и открыть чат снова. Впринципе, как я уже сказал на вкус, можно добавить кнопку "Обновить" рядом с меткой, и записать на неё тот же текст.

     

     

    Вопрос, а как сделать эту самую кнопку "Обновить", но при этом чтобы на неё не надо было тыкать итд?


  19. LastLife, вопрос, а можно ли как-то сделать так чтобы твои "кнопки" появлялись на экране от нажатия какой-либо клавиши?
    Пример: Я нажимаю на кнопку "~", и у меня появлются кнопки на экране, где я могу выбрать мои макросы. (всё тоже как при открытии чата, но тут при нажатии кнопки)


  20. Здравствуйте, появился вопрос, а можно ли как-то сделать так, чтобы все действия макро биндера записывались в какой-нибудь текстовой файл? По типу я кого-то "мучу с помощью биндера", но если его находить стрелочкой (клавиатурной), то ты не найдёшь это действие. Помогите пожалуйста.
    Заранее спасибо!


  21. 2 часа назад, LastLife сказал:

    В этом сообщении я отвечал на примерно такой же вопрос

     

    Не совсем понял.. Обязательно чтоли писать именно =tb ? Я бы так сделал

    /tempban $$[nick] 30m $$[reason["6.3 игрокам запрещено то-то, то-то.","10/10","over9000"]]

    Ну не совсем обязательно, но постоянно вводить /tempban, так сказать "не по фэн-шую". Если вы не поняли, мне надо сделать так чтобы я например писал "=tb ну тот же ник, причина и как было указано выше", но у меня вопрос куда это вписывать? В "onchat" или "onsendchatmessage", или это вобще на клавишу надо биндить???


  22. Здравствуйте, я бы хотел задать такой вопрос, можно ли как-то сделать скрипт, что человек (допустим с ником "dsadadg" пишет 3 одинаковых сообщения (флудит) и в течении минуты этот биндер выдаёт мут на 10 минут (тоесть пишет команду /mute его ник 10m, без какого-либо участия меня. Если возможно то пожалуйста подскажите с этим.

    Ещё один вопрос (на него вы можете не отвечать, если можете ответить), вобщем, можно-ли как-то сделать что ты пишешь например "=tb ник игрока, дальше указываешь причину (тоесть в правилах написано "6.3 игрокам запрещено то-то, то-то. Наказание бан на 30 минут")". Тоесть ты пишешь =tb ник игрока 6.3 и персонаж пишет команду /tempban ник 30m и уже вбивается причина 6.3. (мне главное сделать основу, а потом я просто буду менять причины время итд.

    ЗАРАНЕЕ ВСЕМ СПАСИБО!!!

×