afisakov
You can change this now in User CP.
- Reaction score
- 37
The code is below, and runs every time a building is constructed, I included multiple displaytext prompts to try to debug it but cannot tell why it is failing.
Supposed to store the units atk speed as a real, modify it by abp(1 for now), ad set the new atk speed.
The displayed numbers when tower built are
1.88
0
0
0
1.00
so BlzGetUnitAttackCooldown correctly returns 1.88 initially and abp returns 1, but all the loadreal attempts give 0
I realized it went wrong because towers fail to atk after this trigger added
The reason I need to store the base atk speed in a real like this is because I later want it to run on Cede tower as well, so the hashtable should store Base cooldown too prevent making it faster by ceding back and forth.
Supposed to store the units atk speed as a real, modify it by abp(1 for now), ad set the new atk speed.
Code:
function atk2 takes unit u returns nothing
local integer uid=GetUnitTypeId(u)
local integer pn=1+GetPlayerId(GetOwningPlayer(u))
if LoadReal(udg_mhash,1,uid)==0 then
call SaveReal(udg_mhash,1,uid,BlzGetUnitAttackCooldown(u,0))
call DisplayTimedTextToPlayer(GetOwningPlayer(u),0,0,5,R2S(BlzGetUnitAttackCooldown(u,0))+" , "+R2S(BlzGetUnitAttackCooldown(u,1)) )
call DisplayTimedTextToPlayer(GetOwningPlayer(u),0,0,5,R2S(LoadReal(udg_mhash,1,uid)) )
endif
call BlzSetUnitAttackCooldown(u,LoadReal(udg_mhash,1,uid)/udg_abp[pn],0)
call DisplayTimedTextToPlayer(GetOwningPlayer(u),0,0,5,R2S(LoadReal(udg_mhash,1,uid))+" "+R2S(udg_abp[pn]) )
endfunction
1.88
0
0
0
1.00
so BlzGetUnitAttackCooldown correctly returns 1.88 initially and abp returns 1, but all the loadreal attempts give 0
I realized it went wrong because towers fail to atk after this trigger added
The reason I need to store the base atk speed in a real like this is because I later want it to run on Cede tower as well, so the hashtable should store Base cooldown too prevent making it faster by ceding back and forth.