Макрос на выслеживание вкл/откл гуманоидов и зверей

Выслеживание у хантов (и не только) - штука конечно же полезная, но в некоторых случаях очень мешает. Не смотря на то, что звери и люди в моём конкретном случае в выпадающем списке находятся на 1-й и 7-й позициях соответственно, методом научного тыка определил, что для моего случая рабочими будут макросы на:

  • В`ключение слежения за зверями и людьми:

/run SetTracking(3,true)
/run SetTracking(9,true)

  • ВЫ`ключение слежения за зверями и людьми:

/run SetTracking(3,false)
/run SetTracking(9,false)


Отсюда вытекает вопрос шарящим:

  • Как прописать модификаторы, чтобы оба макроса повесить на одну кнопку, и, к примеру, “включение слежения” было без модификатора, а “выключение слежения” было на модификаторе “shift” ?

Всем приятного геймплея :smiley:

Лайков: 1

Попробуй

/run SetTracking(3, not IsShiftKeyDown())
/run SetTracking(9, not IsShiftKeyDown())
3 лайка

Огромная благодарность, всё шикарно работает :+1::+1::+1:

Дабы не создавать отдельную тему с вопросом по той же теме, осмелюсь поднять эту старую.
Вопрос, как организовать одним макросом включение по ЛКМ и выключение по ПКМ отслеживания животных.

Перерыл список API-функций. Нашел по вышеприведенным примерам только триггеры с клавишами клавиатуры: IsAltKeyDown(), IsShiftKeyDown(), IsControlKeyDown(), IsModifierKeyDown(), ну и так далее (отдельно левые/правые клавиши).
С мышью нашел только вот эту функцию: IsMouseButtonDown(“buttonName”).
Проблема в том, что результат этой функции не логического типа. А потому просто вставить в качестве второго аргумента функции SetTracking() не получается, в отличие от вышеприведенных функций обработки нажатия клавиш клавиатуры.
Как можно поставить триггер на определение нажатия мышью по макросу?

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

Извините. Уточняю.
ЛКМ мышью по макросу - Включить отслеживание животных
ПКМ по макросу - Выключить отслеживание животных.

В предложенном выше варианте от Этмерис макрос работает по нажатию с/без клавиши shift. Я привык составлять макросы на нажатие ЛКМ/ПКМ. Потому и задался целью написать похожий макрос, только с обработкой нажатий мышки, а не клавиш-модификаторов.

Так? Чет я намудрил :(((( , люблю скобочки :))))
Включается слежение за животными только нажатием ЛКМ по кнопке макроса и выключается только нажатием ПКМ по кнопке макроса, все это без проверки модификаторов. Если что номера категорий отслеживания поменялись с тех пор. Чет не совпадают.

/run local v = GetMouseButtonClicked() if v then local a,b = v==("LeftButton"),(v=="RightButton") v=((a~=b) and SetTracking(7,(a and (not b))))end  
Лайков: 1

Спасибо за помощь.
Проанализировал запись. Не понял, зачем необходима запись в пер-ную v результат выражения “v=((a~=b) and SetTracking(7,(a and (not b))))”. На мой взгляд, достаточно было просто записать “SetTracking(7,(a and (not b)))”, ведь дальнейшее значение v нас вроде не должно волновать, т.к. все, что нам нужно, получили при инициализации a и b: “local a,b = v==(“LeftButton”),(v==“RightButton”)

P.S. Поэкспериментировал малец с записью кода. Остановился на конструкции

/run SetTracking(7,GetMouseButtonClicked()==“LeftButton”)

Вроде норм работает. ЛКМ - врубает отслеживание. ПКМ - вырубает. Впрочем, по логике работы вырубает отслеживание любое нажатие на макрос, отличное от ЛКМ.

Большое спасибо, что навели на нужную функцию.

Лайков: 1

А это гугл wow api bla bla bla. Еще есть /api s bla bl bla
еще wingrep по стандартному интерфейсу поиск. И /fstack со связкой /dump bla bla bla

По другому записать не получается. Локальные переменные не видны, пришлось так делать проверку там где они видны, другой способ не смог придумать. Просто костыль :frowning:

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

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

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

Ну не знаю. У меня сложности не возникло с копированием. Предложенный вами вариант я просто взял и скопировал с форума в макрос. Проверил - работает. Единственное, что поправил тогда - поставил пробел перед оператором end. И уже потом стал анализировать, при разборе выяснилось, что много лишнего написано в коде, можно основательно сократить. Так и пришел к короткому варианту.

При нажатии на этот макрос, у меня выскакивает предупреждение… Что я пытаюсь запустить сторонний скрипт, что может повлечь потерю персонажа и т.п.
У Вас с этим нет проблем? Вы жмете ОК?

Только что зашел за ханта, для чистоты эксперимента заново создал новый макрос (хотя такой же уже имеется)
/run SetTracking(7,GetMouseButtonClicked()=="LeftButton")
Проверил, работает. Без каких-либо сообщений, предупреждений, регистрации и смс.