| 03-07-2007, 08:13 AM | #1 |
This works wen i use the shortcut key n cast it or click n cast it but it doesnt work wen autocasted... please help the hero is a melee hero JASS:function Dummy_Unit takes nothing returns integer return 'e000' endfunction function Wrath_Abi takes nothing returns integer return 'A007' endfunction function Wrath_Debuff_Abi takes nothing returns integer return 'A002' endfunction function Wrath_Mana_Cost takes nothing returns integer return 15 endfunction function Wrath_Damage takes integer l returns real return 4.*l endfunction function Wrath_Cooldown takes integer l returns real return 3.5 - 0.5*l endfunction function Wrath_learned_cond takes nothing returns boolean return GetLearnedSkill() == Wrath_Abi() endfunction function Wrath_cond takes nothing returns boolean return GetSpellAbilityId() == Wrath_Abi() endfunction function Wrath_add_debuff takes unit c, unit v returns nothing local unit u = CreateUnitAtLoc(GetOwningPlayer(c), Dummy_Unit(), GetUnitLoc(c), 0.) local integer l = GetUnitAbilityLevel(c,Wrath_Abi()) call UnitDamageTarget(c,v,Wrath_Damage(l),true,false, ATTACK_TYPE_HERO, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_WHOKNOWS) call IssueTargetOrder(v, "attack", c) call UnitAddAbility(u, Wrath_Debuff_Abi()) call SetUnitAbilityLevel(u, Wrath_Debuff_Abi(), l) call IssueTargetOrder(u, "acidbomb", v) call UnitApplyTimedLife(u, 'BTFL', 0.6) set u = null endfunction function Wrath_action takes nothing returns nothing local unit c = GetTriggerUnit() local unit v = GetSpellTargetUnit() call Wrath_add_debuff(c,v) set v = null set c = null endfunction function Wrath_autocast_action takes nothing returns nothing local trigger t = null if GetIssuedOrderId() == 852255 then //flamingarrows turn on autocast set t = GetHandleTrigger(GetTriggeringTrigger(), "t") call EnableTrigger(t) call EnableTrigger(GetHandleTrigger(GetTriggeringTrigger(), "f")) if GetUnitState(GetTriggerUnit(), UNIT_STATE_MANA) >= Wrath_Mana_Cost() then call SetHandleBoolean(t, "b", true) endif set t = null endif if GetIssuedOrderId() == 852256 then //flamingarrows turn off autocast call DisableTrigger(GetHandleTrigger(GetTriggeringTrigger(), "t")) call DisableTrigger(GetHandleTrigger(GetTriggeringTrigger(), "f")) endif endfunction function Wrath_Cooldown_timer takes nothing returns nothing local trigger t = GetHandleTrigger(GetExpiredTimer(), "t") call SetHandleHandle(t, "p", null) call FlushHandleLocals(GetExpiredTimer()) call DestroyTimer(GetExpiredTimer()) set t = null endfunction function auto_casted_Wrath_action takes nothing returns nothing local trigger t = GetTriggeringTrigger() local unit c = GetHandleUnit(t, "c") local unit v = GetTriggerUnit() local integer l = GetUnitAbilityLevel(c, Wrath_Abi()) local boolean b = GetHandleBoolean(t, "b") local boolean m local timer p = GetHandleTimer(t, "p") if GetAttacker() == c and p == null and IsUnitEnemy(v, GetOwningPlayer(c)) and not(IsUnitType(v, UNIT_TYPE_STRUCTURE)) and not(IsUnitType(v, UNIT_TYPE_MAGIC_IMMUNE)) then set m = GetUnitState(c, UNIT_STATE_MANA) >= Wrath_Mana_Cost() if b or m then call Wrath_add_debuff(c,v) if not(m) then call SetHandleBoolean(t, "b", false) endif set p = CreateTimer() call SetHandleHandle(t, "p", p) call SetHandleHandle(p, "t", t) call TimerStart(p, Wrath_Cooldown(l), false, function Wrath_Cooldown_timer) set p = null endif endif set t = null set v = null set c = null endfunction function Wrath_autocast_has_mana takes nothing returns nothing local trigger t = GetHandleTrigger(GetTriggeringTrigger(), "t") call SetHandleBoolean(t, "b", true) set t = null endfunction function Wrath_learned_action takes nothing returns nothing local trigger t = CreateTrigger() local trigger p = CreateTrigger() local trigger k = CreateTrigger() local trigger f = CreateTrigger() local trigger r = CreateTrigger() call TriggerRegisterUnitEvent(t, GetTriggerUnit(), EVENT_UNIT_SPELL_EFFECT) call TriggerAddCondition(t, Condition(function Wrath_cond)) call TriggerAddAction(t, function Wrath_action) //used for auto-cast Wrath call TriggerRegisterAnyUnitEventBJ(r, EVENT_PLAYER_UNIT_ATTACKED) call TriggerAddAction(r, function auto_casted_Wrath_action) call SetHandleHandle(r, "c", GetTriggerUnit()) call SetHandleBoolean(r, "b", GetUnitState(GetTriggerUnit(), UNIT_STATE_MANA) >= Wrath_Mana_Cost()) call SetHandleHandle(r, "k", k) call DisableTrigger(r) call TriggerRegisterUnitManaEvent(f, GetTriggerUnit(), GREATER_THAN, Wrath_Mana_Cost() ) call TriggerAddAction(f, function Wrath_autocast_has_mana) call SetHandleHandle(f, "t", t) call TriggerRegisterUnitEvent(k, GetTriggerUnit(), EVENT_UNIT_ISSUED_ORDER) call TriggerAddAction(k, function Wrath_autocast_action) call SetHandleHandle(k, "t", r) call SetHandleHandle(k, "f", f) call DestroyTrigger(GetTriggeringTrigger()) set t = null set p = null endfunction function InitTrig_Wrath takes nothing returns nothing local trigger t = CreateTrigger() call TriggerRegisterUnitEvent(t, gg_unit_H000_0001, EVENT_UNIT_HERO_SKILL ) call TriggerAddCondition(t, Condition (function Wrath_learned_cond)) call TriggerAddAction(t, function Wrath_learned_action) endfunction |
| 03-08-2007, 01:03 AM | #2 |
try remapping the shortcut key. That might work i dunno |
