- Joined
- May 15, 2013
- Messages
- 3,782
Hello Hivers,
This is my request link of the ability - Aegis Power and Grand Smite
Now I tried making the ability Aegis Power, in GUI and JASS.
Each with their own problems.
A little overview:
Aegis Power - Releases an aura that causes nearby enemies to forcibly attack the caster. He then gains a temporary bonus armor (5/10/15). Lasts 8 seconds.
If Stunning Might is active, he will gain a temporary bonus in attack speed and movement speed (20/25/30%) and doubles the duration (8x2=16).
I have the main ability which will be used for the cast, Aegis Power (based from Taunt)
Then I made a dummy, with its dummy ability, Aegis Power (that gives armor, based from Faerie Fire, reversed effects)
Then another dummy ability, same name, but its effects increases Attack Speed and Movement Speed (based from Slow, reversed effects)
Another dummy ability, it is the same as the first dummy ability, that adds armor, but with doubled duration.
And Stunning Might is the ability that gives the addon, finished by Killcide (check link above)
------------------------------------------------------------------
GUI
All seems good at first cast, it works, but on the next, it doesn't, then so on. It appears the
ability may not loop, and I have no idea where or what part it is found.
The loop was based from Killcide's Shield Rush, (which I requested and he finished, found on the link) but I don't really get the Node parts.
------------------------------------------------------------------
JASS
In Jass, I did a look on some tutorials, and wroted this, actually I prefer GUI since I have no frickin idea why my Warcraft won't run when I test it with this.
Come to think of it, everything that I wrote in Jass don't work, even the ones I just edited (must be my WE or JassNewGenWE)
==================================
Well, I really suck at abilities and spellmaking, so please, help me out
This is my request link of the ability - Aegis Power and Grand Smite
Now I tried making the ability Aegis Power, in GUI and JASS.
Each with their own problems.
A little overview:
Aegis Power - Releases an aura that causes nearby enemies to forcibly attack the caster. He then gains a temporary bonus armor (5/10/15). Lasts 8 seconds.
If Stunning Might is active, he will gain a temporary bonus in attack speed and movement speed (20/25/30%) and doubles the duration (8x2=16).
I have the main ability which will be used for the cast, Aegis Power (based from Taunt)
Then I made a dummy, with its dummy ability, Aegis Power (that gives armor, based from Faerie Fire, reversed effects)
Then another dummy ability, same name, but its effects increases Attack Speed and Movement Speed (based from Slow, reversed effects)
Another dummy ability, it is the same as the first dummy ability, that adds armor, but with doubled duration.
And Stunning Might is the ability that gives the addon, finished by Killcide (check link above)
------------------------------------------------------------------
GUI
-
AP Config
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
Set AP_Ability = Aegis Power
-
Set AP_AbilityASMS = Aegis Power (MS & AS)
-
Set AP_AbilityDefense = Aegis Power (Armor Bonus)
-
Set AP_AbilityDefenseTwice = Aegis Power (Armor Bonus +)
-
Set AP_DummyUnit = AP Dummy
-
-------- --------
-
Set AP_PeriodicTimer = (1.00 / 32.00)
-
Trigger - Add to AP Loop <gen> the event (Time - Every AP_PeriodicTimer seconds of game time)
-
-
-
AP Cast
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to AP_Ability
-
-
Actions
-
-------- --------
-
Set AP_TotalCount = (AP_TotalCount + 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
AP_TotalCount Equal to 1
-
-
Then - Actions
-
Trigger - Turn on AP Loop <gen>
-
-
Else - Actions
-
-
-------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
AP_RecycledSize Equal to 0
-
-
Then - Actions
-
Set AP_MaxIndex = (AP_MaxIndex + 1)
-
Set AP_Spell_ID = AP_MaxIndex
-
-
Else - Actions
-
Set AP_RecycledSize = (AP_RecycledSize - 1)
-
Set AP_Spell_ID = AP_RecycledStack[AP_RecycledSize]
-
-
-
Set AP_NodeNext[AP_Spell_ID] = 0
-
Set AP_NodeNext[AP_NodePrev[0]] = AP_Spell_ID
-
Set AP_NodePrev[AP_Spell_ID] = AP_NodePrev[0]
-
Set AP_NodePrev[0] = AP_Spell_ID
-
-------- --------
-
Set AP_Caster[AP_Spell_ID] = (Triggering unit)
-
Set AP_Owner[AP_Spell_ID] = (Triggering player)
-
Set AP_AbilityLvl[AP_Spell_ID] = (Level of AP_Ability for AP_Caster[AP_Spell_ID])
-
-
-
AP Loop
-
Events
-
Conditions
-
Actions
-
Set AP_Spell_ID = 0
-
For each (Integer AP_Looper) from 1 to AP_TotalCount, do (Actions)
-
Loop - Actions
-
Set AP_Spell_ID = AP_NodeNext[AP_Spell_ID]
-
-------- Checks if there is buff --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(AP_Caster[AP_Spell_ID] is in SM_CasterGroup) Equal to True
-
-
Then - Actions
-
Set AP_TempLoc = (Position of AP_Caster[AP_Spell_ID])
-
Unit - Create 1 AP_DummyUnit for Neutral Passive at AP_TempLoc facing Default building facing degrees
-
Set AP_Dummy[AP_Spell_ID] = (Last created unit)
-
Unit - Add AP_AbilityDefenseTwice to AP_Dummy[AP_Spell_ID]
-
Unit - Create 1 AP_DummyUnit for Neutral Passive at AP_TempLoc facing Default building facing degrees
-
Set AP_DummyMSAS[AP_Spell_ID] = (Last created unit)
-
Unit - Add AP_AbilityASMS to AP_DummyMSAS[AP_Spell_ID]
-
Unit - Set level of AP_AbilityDefenseTwice for AP_Dummy[AP_Spell_ID] to AP_AbilityLvl[AP_Spell_ID]
-
Unit - Set level of AP_AbilityASMS for AP_DummyMSAS[AP_Spell_ID] to AP_AbilityLvl[AP_Spell_ID]
-
Custom script: call RemoveLocation(udg_AP_TempLoc)
-
-------- --------
-
Unit - Order AP_Dummy[AP_Spell_ID] to Night Elf Druid Of The Talon - Faerie Fire AP_Caster[AP_Spell_ID]
-
Unit - Order AP_DummyMSAS[AP_Spell_ID] to Human Sorceress - Slow AP_Caster[AP_Spell_ID]
-
Unit - Remove Slow buff from AP_Caster[AP_Spell_ID]
-
Wait 0.25 seconds
-
Custom script: call RemoveUnit(udg_AP_Dummy[udg_Spell_ID])
-
Custom script: call RemoveUnit(udg_AP_DummyMSAS[udg_Spell_ID])
-
-------- --------
-
Set AP_RecycledStack[AP_RecycledSize] = AP_Spell_ID
-
Set AP_RecycledSize = (AP_RecycledSize + 1)
-
Set AP_NodeNext[AP_NodePrev[AP_Spell_ID]] = AP_NodeNext[AP_Spell_ID]
-
Set AP_NodePrev[AP_NodeNext[AP_Spell_ID]] = AP_NodePrev[AP_Spell_ID]
-
-------- --------
-
Set AP_TotalCount = (AP_TotalCount - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
AP_TotalCount Equal to 0
-
-
Then - Actions
-
Trigger - Turn off AP Loop <gen>
-
-
Else - Actions
-
-
-
Else - Actions
-
Set AP_TempLoc = (Position of AP_Caster[AP_Spell_ID])
-
Unit - Create 1 AP_DummyUnit for Neutral Passive at AP_TempLoc facing Default building facing degrees
-
Set AP_Dummy[AP_Spell_ID] = (Last created unit)
-
Unit - Add AP_AbilityDefense to AP_Dummy[AP_Spell_ID]
-
Unit - Set level of AP_AbilityDefense for AP_Dummy[AP_Spell_ID] to AP_AbilityLvl[AP_Spell_ID]
-
Custom script: call RemoveLocation(udg_AP_TempLoc)
-
-------- --------
-
Unit - Order AP_Dummy[AP_Spell_ID] to Night Elf Druid Of The Talon - Faerie Fire AP_Caster[AP_Spell_ID]
-
Wait 0.25 seconds
-
Custom script: call RemoveUnit(udg_AP_Dummy[udg_Spell_ID])
-
-------- --------
-
Set AP_RecycledStack[AP_RecycledSize] = AP_Spell_ID
-
Set AP_RecycledSize = (AP_RecycledSize + 1)
-
Set AP_NodeNext[AP_NodePrev[AP_Spell_ID]] = AP_NodeNext[AP_Spell_ID]
-
Set AP_NodePrev[AP_NodeNext[AP_Spell_ID]] = AP_NodePrev[AP_Spell_ID]
-
-------- --------
-
Set AP_TotalCount = (AP_TotalCount - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
AP_TotalCount Equal to 0
-
-
Then - Actions
-
Trigger - Turn off AP Loop <gen>
-
-
Else - Actions
-
-
-
-
-
-
-
All seems good at first cast, it works, but on the next, it doesn't, then so on. It appears the
ability may not loop, and I have no idea where or what part it is found.
The loop was based from Killcide's Shield Rush, (which I requested and he finished, found on the link) but I don't really get the Node parts.
------------------------------------------------------------------
JASS
JASS:
library AegisPower initializer Init
function True takes nothing returns boolean
return true
endfunction
function Cons takes nothing returns boolean
if ( not ( GetSpellAbilityId() == udg_AP_Ability ) ) then
return false
endif
return true
endfunction
function AegisPower takes nothing returns nothing
local unit a
local unit b
if (IsUnitInGroup(GetTriggerUnit(), udg_SM_CasterGroup)) == true
call CreateUnitAtLoc(GetTriggerPlayer(), 'h001', GetUnitLoc(GetTriggerUnit), 0.00)
set unit a = GetLastCreatedUnit()
call UnitAddAbility(a, udg_AP_AbilityDefenseTwice)
call CreateUnitAtLoc(GetTriggerPlayer(), 'h001', GetUnitLoc(GetTriggerUnit), 0.00)
set unit b = GetLastCreatedUnit()
call UnitAddAbility(a, udg_AP_AbilityASMS)
call IssueTargetOrder(a, "faeriefire", GetTriggerUnit())
call IssueTargetOrder(b, "slow", GetTriggerUnit())
call RemoveUnit(a)
call RemoveUnit(b)
elseif
call CreateUnitAtLoc(GetTriggerPlayer(), 'h001', GetUnitLoc(GetTriggerUnit), 0.00)
set unit a = GetLastCreatedUnit()
call UnitAddAbility(a, udg_AP_AbilityDefense)
call IssueTargetOrder(a, "faeriefire", GetTriggerUnit())
call RemoveUnit(a)
endif
set unit a = null
set unit b = null
endfunction
//===========================================================================
function Init takes nothing returns nothing
local trigger t = CreateTrigger( )
local integer i = 0
loop
exitwhen i > 15
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, Filter(function True))
set i = i + 1
endloop
call TriggerAddCondition( t, Filter( function Cons ) )
call TriggerAddAction( t, function AegisPower )
endfunction
In Jass, I did a look on some tutorials, and wroted this, actually I prefer GUI since I have no frickin idea why my Warcraft won't run when I test it with this.
Come to think of it, everything that I wrote in Jass don't work, even the ones I just edited (must be my WE or JassNewGenWE)
==================================
Well, I really suck at abilities and spellmaking, so please, help me out