Выслеживание у хантов (и не только) - штука конечно же полезная, но в некоторых случаях очень мешает. Не смотря на то, что звери и люди в моём конкретном случае в выпадающем списке находятся на 1-й и 7-й позициях соответственно, методом научного тыка определил, что для моего случая рабочими будут макросы на:
- В`ключение слежения за зверями и людьми:
/run SetTracking(3,true)
/run SetTracking(9,true)
- ВЫ`ключение слежения за зверями и людьми:
/run SetTracking(3,false)
/run SetTracking(9,false)
Отсюда вытекает вопрос шарящим:
- Как прописать модификаторы, чтобы оба макроса повесить на одну кнопку, и, к примеру, “включение слежения” было без модификатора, а “выключение слежения” было на модификаторе “shift” ?
Всем приятного геймплея
Лайков: 1
Попробуй
/run SetTracking(3, not IsShiftKeyDown())
/run SetTracking(9, not IsShiftKeyDown())
3 лайка
Дабы не создавать отдельную тему с вопросом по той же теме, осмелюсь поднять эту старую.
Вопрос, как организовать одним макросом включение по ЛКМ и выключение по ПКМ отслеживания животных.
Перерыл список 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
По другому записать не получается. Локальные переменные не видны, пришлось так делать проверку там где они видны, другой способ не смог придумать. Просто костыль
Еще замечание. Скопированный текст скрипта скорей всего будет выдавать ошибку. Обрати внимание на кавычки. Они автоматически трансформируются в другой тип, если не делать форматерование текста, который вов не понимает.
Спасибо. Ваши опасения излишни, т.к. на момент написания примечания к моему прошлому посту я уже прописал этот макрос, который работает. Вобщем-то я тогда отписал по результатам проверки.
Я имею ввиду то, что кто-то может скопировать неотформатированный текст скриптов содержащие кавычки и у них будут вылазить ошибки.
Ну не знаю. У меня сложности не возникло с копированием. Предложенный вами вариант я просто взял и скопировал с форума в макрос. Проверил - работает. Единственное, что поправил тогда - поставил пробел перед оператором end. И уже потом стал анализировать, при разборе выяснилось, что много лишнего написано в коде, можно основательно сократить. Так и пришел к короткому варианту.
При нажатии на этот макрос, у меня выскакивает предупреждение… Что я пытаюсь запустить сторонний скрипт, что может повлечь потерю персонажа и т.п.
У Вас с этим нет проблем? Вы жмете ОК?
Только что зашел за ханта, для чистоты эксперимента заново создал новый макрос (хотя такой же уже имеется)
/run SetTracking(7,GetMouseButtonClicked()=="LeftButton")
Проверил, работает. Без каких-либо сообщений, предупреждений, регистрации и смс.