Есть ли функция в мемхаке позволяющий менять атаку. Ибо сферы не подходит так как выбирает постояно индекс 2 если менял его на 1 все равно не меняет.. Вот и ишу способ как менять....

Принятый ответ

че-то действительно, поле вроде бы и отображает активную атаку, но не является её определителем, т.е. менять его бесполезно. ок, тогда пока нет решения на мх
0
32
7 лет назад
0
Есть, можно редактировать атаку по своему хотению, функции выложены на хайве \гитхабе, ссылки есть в теме с мемхаком.
1
16
7 лет назад
1
GetUnitAttackEnabledIndex
по аналогии сделать Set
0
23
7 лет назад
0
DracoL1ch, спасибо! Он работает если юнит ранее созданый или можно редактировать везде?
DracoL1ch, Хоть я с ней недавно изучаю, но правильно ли так??
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id               returns boolean
native IgnoredUnits takes integer unitid returns integer

function GetUnitAttackAbilityForAddress takes integer pConvertedHandle returns integer
	return Memory[pConvertedHandle/4+0x1e8/4]
endfunction

function GetUnitAttackAbility takes unit u returns integer
	return GetUnitAttackAbilityForAddress(ConvertHandle(u))
endfunction

function GetUnitAttackEnabledIndex takes unit u returns integer
	return Memory[GetUnitAttackAbility(u)/4 + 0x104/4]
endfunction

function SetUnitAttackEnabledIndex takes unit u, integer index returns nothing
    call WriteMemory(Memory[GetUnitAttackAbility(u)/4 + 0x104/4], index)
endfunction
0
16
7 лет назад
0
верно, но для работы нужно весь верхний кусок переносить, где и производится вся суть хака. ты лишь выделил функции, которые их расширяют
0
13
7 лет назад
Отредактирован Nelloy
0
И лучше брать хак из последнего коммента в той теме. без деления на 4 который
0
23
7 лет назад
0
Nelloy, не понял суть последнный хак!!!! и чем плохо с делением?
DracoL1ch, чета не пашет фатал еррор!
Сделал так без фатала но не че не происходит с индекс атакой!
function SetUnitAttackIndex takes unit u, integer index returns nothing
        local integer h = ConvertHandle(u)
        if h > 0 then
            call WMem( RMem(h + 0x1e8) + 0x104, index )
        endif
endfunction
Все нашел спасибо
Вот рабочий код
function SetUnitAttackIndex takes unit u, integer index returns nothing
    set LastConvertedHandle = ConvertHandle( u )

    if LastConvertedHandle > 0 then
        call WMem(LastConvertedHandle + 0x1e8, index)
    endif
endfunction
Если задать 0 index то пропадет атака информации но команда атаковать останется в силе это как исправить?
а если число 1 или 2 и любые будет фатал
А также при получение урона у врага они убегают как бродячий!
0
21
7 лет назад
0
дорвались до хака)). Какие-то вещи решаются и без него, разве нет? (я не про сабж, а сопутствующее)
4
12
7 лет назад
4
awesomesk1ll:
дорвались до хака)). Какие-то вещи решаются и без него, разве нет? (я не про сабж, а сопутствующее)
Смена атаки штатными способами имеет известные недостатки
0
16
7 лет назад
0
че-то действительно, поле вроде бы и отображает активную атаку, но не является её определителем, т.е. менять его бесполезно. ок, тогда пока нет решения на мх
Принятый ответ
0
32
7 лет назад
0
А нужно переключение для 1 юнита или 100500? Еще есть возможность морфить одного юнита в другого.
0
23
7 лет назад
0
quq_CCCP, есть уже! Просто думал будет проше без мемхак =) А так морф останет менять 4 героя по тип брони элемента еше умножить тип урона элемента итог 5 * 5 = 25 герой
по 12 герой итог 12 * 25 = 300 герой понимаеш?
А также ближный бой или дальный бой зависит героя
0
32
7 лет назад
0
Viktor19, мб сделать сразу 2 атаки и редактировать цели через мемхак?
0
23
7 лет назад
0
quq_CCCP, так выше писал код оно не пашет =) Пропадет информация атаку а само герой останет прежный атака индекс и при этом кто получит урон убегают как бродячий =)
quq_CCCP, Что то мне нужно это менять героя индекс атаку как у броня менять можно но видимо как и лич сказал видимо ни как!
Чтобы оставить комментарий, пожалуйста, войдите на сайт.