Есть ли способ на гуи отследить куда именно нажата кнопка мыши, мне нужно что бы на нажатие пкм на предмет происходило действие.
`
ОЖИДАНИЕ РЕКЛАМЫ...
18
Вижу событие выбора только для юнитов EVENT_UNIT_SELECTED
27
В рефе можно узнать наведена, ли мышь на юнита через нативку. Там таймером чекаем. Это локально выводит, что игрок выделяет. К сожалению, это не работает на декорации и итемах.
--юнит, на которого навели мышь
function BlzGetMouseFocusUnit() end	-- (native)
Когда кликаешь на итем, отображается информационная панель итема. Или кликаешь на декорацию, отображается информационная панель декорации. Но это не точно, ибо нельзя вынуть информацию безопасно с фрейма, и узнать какой итем выделен. И string не всегда читаются
Можно еще один метод:
Сверять координаты мыши игрока, и проверять клики пкм событием. И потом чекаем попала ли точка в квадрат (декорация это обычна имеет квадратные карты путей. Хотя не факт, модель декора мб 3д, и растянута по высоте, плюс камера наклонена), или итемы (практически кубы все одинаковы)
6
Не знаю на счет гуи, но на жассе так. В EventClick_Actions действие которое должно происходить

	function EventClick_Conditions takes nothing returns boolean
		return // сюда кондишн пишешь
	endfunction

	function EventClick_Actions takes nothing returns nothing
		local real x= GetOrderPointX()
		local real y= GetOrderPointY()

	endfunction

	function InitTrig_EventClick takes nothing returns nothing
		local trigger EventClick= CreateTrigger()
		local integer index
		set index=0
		loop
			call TriggerRegisterPlayerUnitEvent(EventClick, Player(index), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null)
			call TriggerRegisterPlayerUnitEvent(EventClick, Player(index), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null)
			set index=index + 1
			exitwhen index == bj_MAX_PLAYER_SLOTS
		endloop
		call TriggerAddCondition(EventClick, Condition(function EventClick_Conditions))
		call TriggerAddAction(EventClick, function EventClick_Actions)

		set EventClick = null
	endfunction
Чтобы оставить комментарий, пожалуйста, войдите на сайт.