Каким образом можно сделать пассивную способность с перезарядкой и с мана костом. Что-то на подобии пассивной способности Банути Хантера из Dota2, но только, чтобы срабатывало, когда есть мана.4
Если перезарядку можно сделать с помощью экзгумации (спасибо сайту за помощь), то что насчёт мана коста?

вот, последняя версия
Требует вторую версию мемхака.
 function StartAbilityCooldown takes unit whichUnit, integer abilityId, real cd returns boolean
        local integer pAbility = 0
        if GetUnitAbilityLevel( whichUnit, abilityId ) == 0 or cd == 0.00 then
            return false
        endif
        
        set pAbility = GetUnitAbility( whichUnit, abilityId )
        
        if pAbility < 1 then
            return false
        else
            if RMem( pAbility + 0x134 ) == -1 and RMem( pAbility + 0x138 ) == -1 then
                call WMem( pAbility + 0x134, 0 )
                call WMem( pAbility + 0x138, 0 )
                if InGame then
                    call DisplayTextToPlayer( Player(0),0.00,0.00, "!" )
                else
                    call BJDebugMsg( "Start Cooldown WARNING!" )
                    call BJDebugMsg( "ADRESS-VAL1-VAL2" )
                    call BJDebugMsg( Int2Hex(pAbility)+" - "+Int2Hex(RMem( pAbility + 0x134 ))+" - "+Int2Hex(RMem( pAbility + 0x134 )))
                    call BJDebugMsg( "abil-"+Id2String(abilityId) +" owner-"+ Int2Hex(pAbility)  )
                endif
            endif
            set Memory[pReserverdIntArg1 / 4] = mR2I( cd )
            call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
            return IsAbilityOnCooldown( pAbility )
        endif
        return false
    endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
7
ScopteRectuS, если нужно, чтобы способность срабатывала при атаке, то можно использовать способность Сфера замедления ('AIsb')
21
Ige, но там нельзя сделать мана кост. И способность еще затемняется, чтр неекрасиво.
7
ScopteRectuS:
Ige, но там нельзя сделать мана кост. И способность еще затемняется, чтр неекрасиво.
манакост указывается не у сферы, а у способности, которая должна использоваться
Загруженные файлы
21
Ige, интересненько. А с иконкой можно что.то сделать?
7
ScopteRectuS, ну можно попробовать заменить DISBTN иконку на нормальную <- не проверял, т.ч. не уверен
6
Сделай для способности внутри сферы уникальную иконку у которой и BTN и DISBTN или PAS и DISPAS будут одинаковыми (нормальными) . Это можно замутить, например, с помощью button manager - когда создашь PAS иконку, удалишь DISPAS копируешь первую и даёшь копии название DISPAS.
32
ScopteRectuS, Мемхак в помощь, делаем на основе перерождения...
21
quq_CCCP, а можно функцию запуска кд пассивной способности с мана костом на основе перерождения?
32
вот, последняя версия
Требует вторую версию мемхака.
 function StartAbilityCooldown takes unit whichUnit, integer abilityId, real cd returns boolean
        local integer pAbility = 0
        if GetUnitAbilityLevel( whichUnit, abilityId ) == 0 or cd == 0.00 then
            return false
        endif
        
        set pAbility = GetUnitAbility( whichUnit, abilityId )
        
        if pAbility < 1 then
            return false
        else
            if RMem( pAbility + 0x134 ) == -1 and RMem( pAbility + 0x138 ) == -1 then
                call WMem( pAbility + 0x134, 0 )
                call WMem( pAbility + 0x138, 0 )
                if InGame then
                    call DisplayTextToPlayer( Player(0),0.00,0.00, "!" )
                else
                    call BJDebugMsg( "Start Cooldown WARNING!" )
                    call BJDebugMsg( "ADRESS-VAL1-VAL2" )
                    call BJDebugMsg( Int2Hex(pAbility)+" - "+Int2Hex(RMem( pAbility + 0x134 ))+" - "+Int2Hex(RMem( pAbility + 0x134 )))
                    call BJDebugMsg( "abil-"+Id2String(abilityId) +" owner-"+ Int2Hex(pAbility)  )
                endif
            endif
            set Memory[pReserverdIntArg1 / 4] = mR2I( cd )
            call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
            return IsAbilityOnCooldown( pAbility )
        endif
        return false
    endfunction
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.