Добавлен viper1109
Как узнать какой воин был выбран игроком если их несколько?
Принятый ответ
- есть проверка boolean "юнит выделен игроком"
constant native IsUnitSelected takes unit whichUnit, player whichPlayer returns boolean
- есть пик в группу, которая выделяет всех выбранных игроком
native GroupEnumUnitsSelected takes group whichGroup, player whichPlayer, boolexpr filter returns nothing
- событие "юнит выбран игроком"/"юнит не выбран"
call TriggerRegisterPlayerUnitEvent( trig, Player( 0 ), EVENT_PLAYER_UNIT_SELECTED, null )
call TriggerRegisterPlayerUnitEvent( trig, Player( 0 ), EVENT_PLAYER_UNIT_DESELECTED, null )
- В мем хаке можно узнать первого выделенного юнита
много букв
Выдает адрес выделенного юнита, панель интерфейса, которая отображена на экране у локального игрока. Допустим выделив рамкой 2 юнитов: героя и раба, у вас будет отображаться в окне посерединке 2 иконки выделенных юнитов. Но сбоку меню будет переключено на героя (механика вара)
Если взять нажать Tab, можно переключать меню на другого юнита, так с героя на раба
так функции GetActiveUnitInSelection можно было узнать какой юнит нажал кнопку строить
Если взять нажать Tab, можно переключать меню на другого юнита, так с героя на раба
так функции GetActiveUnitInSelection можно было узнать какой юнит нажал кнопку строить
globals
integer pGameUICurrentSelection
integer pConvertUnitAddressToHandleIDNative=0
endglobals
//где-нибудь при инициализации
set pGameClass2 = GameDLL + 0xAB4F80
set pGameUICurrentSelection = RMem(RMem(pGameClass2)+0x3F4) //для выделения юнита
set pConvertUnitAddressToHandleIDNative=GameDLL+0x2DCC40
//конвентирует адрес в handle объекта
//короче обратная сторона ConvertHandle
function ConvertUnitAddressToHandleIDNative takes integer address returns integer
return CallThisCallWith1Args(pConvertUnitAddressToHandleIDNative,address)
endfunction
//конвентирует адрес юнита в юнита
//# +nosemanticerror
function I2Unit takes integer i returns unit
call setInt2Unit(ConvertUnitAddressToHandleIDNative(i))
return l__Int2Unit
endfunction
//возвращает адрес активного юнита
function GetActiveUnitInSelection takes nothing returns integer
return RMem(pGameUICurrentSelection+0x238)
endfunction
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
Если взять нажать Tab, можно переключать меню на другого юнита, так с героя на раба
так функции GetActiveUnitInSelection можно было узнать какой юнит нажал кнопку строить