• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Mr_Bean's Spell Workshop

Status
Not open for further replies.
Level 13
Joined
Aug 4, 2012
Messages
1,022









Mana Burst

Type:
Active

Selection:
Area

Targetion:
Ground

Description:
Arcist jump to the targeted area, then burst the area with mana whict removing enemies mana on the area

Active:
Jump atleast with maximum range for 200 / 300 / 400 / 500 range, damaging the targeted 400 area for 8 / 12 / 16 / 20% of your current mana.

Manacost: 8 / 12 / 16 / 20% Of your current mana
Cooldown: 16 Second
Casting Range: 200 / 300 / 400 / 500 Range















Mana Blast

Type:
Active

Selection:
Area

Targetion:
Ground

Description:
Arcist cast a sucker blast, sucking enemy unit on area into the middle area

Active:
Blast targeted area with mana, sucking enemy unit on 450 / 500 / 550 / 600 area into the middle area removing the enemies mana for 4 / 6 / 8 / 10% of max mana

Manacost: 4 / 6 / 8 / 10% Of max mana
Cooldown: 24 Second
Casting Range: 600 Range














Mana Reaction

Type:
Passive

Description:
The Arcist staff will reaction if nearby ally or him self cast spell.

Passive:
Every nearby ally on 300 / 400 / 500 / 600 area or himself cast a spell, gaining the nearby ally or himself mana for 20 / 40 / 60 / 80 mana














Mana Ward

Type:
Active

Selection:
Target

Targetion:
Ground

Description:
Place your staff on the ground, then it will draining nearby enemies mana, also the enemies get slowed a bit while the mana drained

Active:
Place your staff on the ground, it last infine time until you take back the staff, during this, you can't attack or casting any spell, also you don't had mana too. So basicaly you are depent on your staff. The staff is your spell, mana, and attack.
Draining all nearby enemies mana for 20 / 40 / 60 mana per second. Slowing it for 10 / 15 / 20 %

Cooldown: 1 Second
Casting Range: 0 Range ( Melee )







 
Last edited:
Level 5
Joined
Jul 25, 2008
Messages
126
Alright thanks this would be a very good addition to my map.

[System Request]

Part I:

Okay so there is a gate captain and 5 gate guards.

I want it so the gate captain dies last.

So somewhat like ability spirit link how damage is distributed between those linked.

Only difference is that I want any damage inflicted upon the gate captain to be split between the living Gate Guards.

So for example if all 5 guards were alive and 25 damage was inflicted upon the gate captain,

it would do no damage to the gate captain but inflict 5 damage to each guard.

And then of course when all guards are dead then gate captain is attacked normally.

Part II:

I would also like the guards to respawn x seconds after their death for the current owner of the nearest gate captain.

This does not need to respawn gate captains since they change ownership on death.


Additional notes:


-There are 12 gate captains total through the map each having 5 guards
-I have triggered it so the guards and the gate captain cannot leave their regions (approx. 3000 units wide and 3000 units long)
-None of the "Gate Groups" are close to each other so you don't have to worry about them overlapping or anything.
So when the guards respawn you could do something of the effect "respawn guard for owner of gate captain unit-type within 3000 of position of dead guard"
- If possible add buff art to guards and gate captain that can be adjusted


vjass preferred, but Gui is acceptable.
 
Level 20
Joined
Apr 14, 2012
Messages
2,901
Hello; if I may also request some spells:

Coded in: GUI
Number of Levels: 5
Mana Cost: 30
Cooldown: 5 * level
Cast Type: auto-cast
Target Type: unit
Detailed Description:

-Spell Description: the paladin invokes his privilege as a knight of the holy order, causing him to deal (str * level) more damage to enemy units, whilst healing 50% of friendly units around the caster.

-Other details: enemy units struck shall be stunned if (level of ability) >= 3 and shall be dazed other wise.
-Puts a buff on the enemy unit named "Awe"
-Stun/Daze shall last (level of ability) seconds, as well as the buff



Coded in: GUI
Number of Levels: 5
Mana Cost: 40
Cooldown: 8 * level
Cast Type: auto-cast
Target Type: unit
Detailed Description:

-Spell's Description: the paladin invokes his privilege as the lord of the magic council, and therefore allows him to have:

  • a 50% chance to strike again before the enemy does (plays again his attack anim and deals the same damage as his previous attack)
  • a 30% chance to cast divine shield on the caster (divine shield may be the default one, with only 3 levels, as I can always change it myself :D)
  • a 15% chance to deal AoE (100 * level) Damage (if target has "Awe" buff, set Damage = 30 * level, else set Damage = 15* level), then create a holy bolt sfx on those units' chests.


Coded in: GUI/vJASS
Number of Levels: 3
Mana Cost: 50
Cooldown: 15 * level
Cast Type: auto-cast
Target Type: unit
Detailed Description:

-Spell's Description: the paladin invokes his right as the Overlord of all things holy, and therefore allows him to:
  • Have a 60% chance to attack 4 times the enemy (plays his attack anim in 200% animation rate 4 times, dealing double damage from his last attack (including those made with the Overlord's Privilege)
  • Have a 30% chance to cast Divine Shield on all nearby (100 * level = AoE) friendly units and heal them by half their life
  • Have a 10% chance to deal 75% of the target's max life in combat

Additional info: In all instances the effect the spell allows the caster to do, there should be a holy bolt sfx created at the unit's chest.
 
Coded in: GUI
Number of Levels: 5
Mana Cost: 30
Cooldown: 5 * level
Cast Type: auto-cast
Target Type: unit
Detailed Description:

-Spell Description: the paladin invokes his privilege as a knight of the holy order, causing him to deal (str * level) more damage to enemy units, whilst healing 50% of friendly units around the caster.

-Other details: enemy units struck shall be stunned if (level of ability) >= 3 and shall be dazed other wise.
-Puts a buff on the enemy unit named "Awe"
-Stun/Daze shall last (level of ability) seconds, as well as the buff
>Does Daze is like when a unit is knocked from a killed Zeppelin?

Coded in: GUI
Number of Levels: 5
Mana Cost: 40
Cooldown: 8 * level
Cast Type: auto-cast
Target Type: unit
Detailed Description:



-Spell's Description: the paladin invokes his privilege as the lord of the magic council, and therefore allows him to have:
  • a 50% chance to strike again before the enemy does (plays again his attack anim and deals the same damage as his previous attack)
  • a 30% chance to cast divine shield on the caster (divine shield may be the default one, with only 3 levels, as I can always change it myself :D)
  • a 15% chance to deal AoE (100 * level) Damage (if target has "Awe" buff, set Damage = 30 * level, else set Damage = 15* level), then create a holy bolt sfx on those units' chests.
seems easy enough for me.

Coded in: GUI/vJASS
Number of Levels: 3
Mana Cost: 50
Cooldown: 15 * level
Cast Type: auto-cast
Target Type: unit
Detailed Description:



-Spell's Description: the paladin invokes his right as the Overlord of all things holy, and therefore allows him to:
  • Have a 60% chance to attack 4 times the enemy (plays his attack anim in 200% animation rate 4 times, dealing double damage from his last attack (including those made with the Overlord's Privilege)
  • Have a 30% chance to cast Divine Shield on all nearby (100 * level = AoE) friendly units and heal them by half their life
  • Have a 10% chance to deal 75% of the target's max life in combat
Additional info: In all instances the effect the spell allows the caster to do, there should be a holy bolt sfx created at the unit's chest.
I think I will try to configure the "double strike" a bit to make it nice, but overall, seems easy. oh yeah, does this spell and Lord's Privilige stacks between each other?
Also, are these spell Passive? From the details it seems they are passive but it's auto-cast? *confused*

also, MasterTrainer, thanks for the greetings C:
~Daffa the Mage
 
Last edited:
Level 10
Joined
Jun 9, 2012
Messages
826
Lucent Princess Spellpack

No problem :)
Are you happy with the spell pack after the fix?

Love it. It's awesome and once my project finishes i'd like someone to play it out, although i might get a complain of it being imbalance.

Okay, here's the spell.

Name: [1] Leap of Faith
Target Type: Point Target
Levels: 4
Spell Type: Hero

Description: A weak hollow projection of Tyrande is fired upon to the target point, slowing all nearby enemy units hit by 35%. The nearest enemy unit is dealt magical damage as well. Casting this ability increases the Solidification of Tyrande by 10. If Tyrande has a Solidification of at least 30, she launches herself instead of a hollowed projection, further increasing the damage by 50% however lowering the slow duration by 50%.

Increases per level: - Cooldown: 10
- Solidification Cost: -
- Slow Duration: 1.5/2/2.5/3
- Magical Damage: 70/140/210/280 damage
- Solidification Gain: 10/15/20/25
- Range: 1200

Extra: - This spell has no manacost.
- The hollow projection rushes to the target but you can set whether she jumps or not.
- The projection travels until the point it was casted on only.
- Anyone going within 300 aoe from the projection or her launch will be affected by the slow.
- http://www.hiveworkshop.com/forums/icons-541/btnthunderpaw-58224/ could be used for the icon.

vJASS or GUI - True
MUI - True

Name: [2] Eclipse Fade
Target Type: Point Target
Levels: 4
Spell Type: Hero

Description: Tyrande quickly fades and slashes around the target point, dealing moderate physical damage and increasing her Solidification by 5. If Tyrande has a Solidification of at least 25, the damage dealt is doubled but consumes Solidification instead of adding it.

Increases per level: - Base Magical Damage: 100/180/240/320
- Cooldown: 20/18/16/14
- Solidification Cost: 25 (if her solidification is above 25)
- Solidification Gain: 5/10/15/20
Range: 800

Extra: - This spell has no manacost, like the previous one.
- I hope you can set a sfx to make it look cool. If you do, make the damage be dealt after the sfx is finished since there is a slight delay before the spell takes effect.
- The caster is not in the game until the target area is sliced.
- She will re-appear once the spell is complete at the point she casted it on.
- http://www.hiveworkshop.com/forums/icons-541/btnmoonglaive-145315/ could be used for the icon.
- It has a 500 aoe radius.
- Add a sound effect when the enemies are sliced, something like a Blade.

vJASS or GUI - True
MUI - True

Name: [3] Eye of the Moon
Target Type: Area Target
Levels: 4
Spell Type: Hero

Description: A beam of dazzling light showers upon the target area, making all units receive zero magical damage. However, they get 40% increased damage from all other sources. The highest level unit gains a Marked Buff, making them much more susceptible to damage 80%. Tyrande gains 2 Solidification per unit affected and 3 for enemy units that have higher level than hers. If she has at least 50 Solidification, she won't receive any Solidification promised earlier but her enemies will take 80% extra damage from all other sources instead.

Increases per level: - Base Magical Damage: -
- Cooldown: 36/32/28/24
- Solidification Cost: -
- Solidification Gain: Explained above
Range: 450
- Duration: 3/5/7/9

Extra: - This spell has no manacost, like the previous one.
- I hope you can set a sfx to make it look cool. If you do, make the area covered with light and stars.
- No damage is dealt but it interupts non-combat consumables like Clarity Potion and Healing Salve, so perhaps make it 1.
- It's explained now.
- http://www.hiveworkshop.com/forums/icons-541/btnmoonsight-202075/ could be used for the icon.
- It has a 500 aoe radius.

vJASS or GUI - True
MUI - True

Name: [4] Midnight Beats
Target Type: No Target
Levels: 3
Spell Type: Hero

Description: Tyrande chants an ancient tune which doubles her Solidification amount immediately and removes any reduction as long as this ability lasts. Additionally, Tyrande gains bonus movement speed and attack speed.

Increases per level:
- Cooldown: 60
- Solidification Cost: -
- Solidification Gain: Explained above
- Range: -
- Duration: 5/10/15
- Speed Bonus: 30/45/60%

Extra: - This spell has no manacost, like the previous one.
- Add a Starfall channel effect on her as a buff, and yes, it's a buff.
- Add a voice of her talking, either from the campaign or her command voice to match this spell.
- Having this buff removed etc via purge will end the spell.
- http://www.hiveworkshop.com/forums/icons-541/btnspell_nature_moonglow-54700/ could be used for the icon.
- It has a 500 aoe radius.

vJASS or GUI - True
MUI - True

Note: This hero has no mana, only Solidification. It has a limit of 100 so if you could add a system to display the Solidification it would be appreciated and if possible, make it display all the time. It cannot be reduced by other means of casting spells like getting attacked by a mana burning hero nor can it be restored by potions. It's a unique hero that gets to spam her abilities without worries.
 
Last edited:
Level 20
Joined
Apr 14, 2012
Messages
2,901
@Daffa Okay:

-Dazed is the effect War Stomp causes to enemy units.
-Whatever seems most easiest, regarding the stacking.
-They aren't passive, because for example: caster casts PP, cooldown first, then the next autocast. They would really seem passive, but I chose autocast because it's a little more flexible.

Have some motivational rep!
 
Level 5
Joined
Jul 25, 2008
Messages
126
@Lord_JiangWei: We don't usually do systems here. Do you want it in GUI or vJASS? Do you have a damage detection system?


vJass, not sure if this counts, if not I can find one.

I use this for the Gate Captains (uses TimerUtils)
JASS:
    GetEventDamage = Damage Amount
        GetEventDamageSource = Damaging Unit
        GetTriggerUnit = Damaged Unit
    //! endnovjass
    private function Delayed_Heal takes nothing returns nothing
        local timer t = GetExpiredTimer()//get the timer
        local integer i = GetHandleId(t)//get the handle id of the timer
        local unit u = LoadUnitHandle(TimerUtils_ht,0,i)//load the damaged unit
        call SetWidgetLife(u,GetUnitState(u,UNIT_STATE_MAX_LIFE))//set the unit's life
        call SaveInteger(TimerUtils_ht,0,i,0)//used for release timer
        call ReleaseTimer(t)//releases the timer
    endfunction
    private function Conditions takes nothing returns boolean
        local integer i = -1
        local string s = "|cffffcc00" + GetPlayerName(GetOwningPlayer(GetEventDamageSource())) + "|r |cffff0000has secured a gate!|r"
        local timer t
        local unit u = GetTriggerUnit()
        //It's important to know that the EVENT_UNIT_DAMAGED event will register that the unit is taking damage,
        //but this function will run before the damage is applied
        //if you set the damaged unit's life to full now, then it will still get damaged
        //you need to have a small delay between healing the unit for the damage taken, though to avoid
        //it dieing, we'll set it to full anyways
        if GetWidgetLife(u)-GetEventDamage() <= .405 then//check to see if the unit is going to die
            //the unit is going to die
            //restore its life and change the ownership
            call SetWidgetLife(u,GetUnitState(u,UNIT_STATE_MAX_LIFE))
            call SetUnitOwner(u,GetOwningPlayer(GetEventDamageSource()),true)
            //now we need to add a small delay and then heal it to full again to heal the damage taken
            set t = NewTimer()//get a timer from the stack
            call SaveUnitHandle(TimerUtils_ht,0,GetHandleId(t),u)//save the damaged unit
            call TimerStart(t,0,false,function Delayed_Heal)//start the timer
            loop
            set i = i + 1
            call DisplayTextToPlayer( Player(i), 0, 0, s )
            exitwhen i == 11
            endloop
             call StartSound(gg_snd_Hint)
             call PingMinimapForForce(bj_FORCE_ALL_PLAYERS, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 5)
            
        endif
        return false
    endfunction
    public function Add takes unit u returns nothing//function used to add gate captains to the system
        local trigger t = CreateTrigger()//first create the trigger for the unit
        call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_DAMAGED)//then the event for the trigger
        call TriggerAddCondition(t,Condition(function Conditions))//then the conditions for the trigger
    endfunction
I currently have this implemented into my map which may be of some use (uses Alloc, Event, AIDS)

JASS:
library UnitInRangeOfType requires AIDS, Event, Alloc
    globals
        private key EVENT_KEY
        private key TRIGGER_KEY
        private key RANGE_KEY
        private key TYPE_KEY
        private key UNIT_KEY
    endglobals
    
    private struct idlist extends array
        public static integer count = 0        
        implement Alloc
        
        public integer id
        
        public static method create takes integer id returns thistype
            local thistype this = thistype.allocate()
            
            set this.id = id
            set thistype.count = thistype.count + 1
            
            return this            
        endmethod
    endstruct
    
    private struct data extends array
        public static hashtable hash
        private static unit lastcenter
        public Event e
        
        //! runtextmacro AIDS()
        
        private static method AIDS_filter takes unit u returns boolean
            local integer i = idlist.count
            local boolean b = false
            local integer id = GetUnitTypeId(u)
            
            loop
                exitwhen i == 0
                set b = b or ( id == idlist[i].id )
                set i = i - 1
            endloop
            
            set b = b or ( IsUnitType(u, UNIT_TYPE_HERO) )
            
            return b
        endmethod
        
        public static method GetCenterUnit takes nothing returns unit
            return thistype.lastcenter
        endmethod
        
        private static method OnEvent takes nothing returns boolean
            set thistype.lastcenter = LoadUnitHandle(thistype.hash, GetHandleId(GetTriggeringTrigger()), UNIT_KEY)
            call FireEvent(Event(LoadInteger(data.hash, LoadInteger(thistype.hash, GetHandleId(GetTriggeringTrigger()), TYPE_KEY), EVENT_KEY)))
            return false
        endmethod
        
        private method AIDS_onCreate takes nothing returns nothing
            local trigger t = CreateTrigger()
            local integer i = GetUnitTypeId(this.unit)
            set this.e = Event.create()
            
            call TriggerRegisterUnitInRange(t, this.unit, LoadReal(thistype.hash, i, RANGE_KEY), null)
            call TriggerAddCondition(t, Condition(function thistype.OnEvent))
            call SaveInteger(thistype.hash, GetHandleId(t), TYPE_KEY, i)
            call SaveUnitHandle(thistype.hash, GetHandleId(t), UNIT_KEY, this.unit)
        endmethod
        
        private static method AIDS_onInit takes nothing returns nothing
            set hash = InitHashtable()
        endmethod
    endstruct
    
    function GetCenterUnit takes nothing returns unit
        return data.GetCenterUnit()
    endfunction
    
    function TriggerRegisterUnitInRangeOfType takes trigger whichTrigger, integer whichType, real range returns Event
        local Event e
        
        if ( HaveSavedInteger(data.hash, whichType, EVENT_KEY) ) then
            set e = LoadInteger(data.hash, whichType, EVENT_KEY)
        else
            set e = Event.create()
            call SaveInteger(data.hash, whichType, EVENT_KEY, e)
            call TriggerRegisterEvent(whichTrigger, e)
        endif
        
        call idlist.create(whichType)
        call SaveTriggerHandle(data.hash, whichType, TRIGGER_KEY, whichTrigger)
        call SaveReal(data.hash, whichType, RANGE_KEY, range)
        
        return e
    endfunction
endlibrary
 
Level 17
Joined
Feb 11, 2011
Messages
1,860
Mr. Bean, what is your warcraft 3 patch??

I use 1.26a.

Well I had 2 patch
1.26a, and one 1.24b xD xD
But Mr. Bean spell only can played on 1.24b patch :/ :/ So I thing his patch is 1.24b :/ :/
Oh, the map doesn't preview on 1.26. But I rename, and it's work....

It doesn't really matter if the demo map doesn't preview. What matters is that it works with your map.
 
well, I got DivineLight Request done, the funny thing is that it doesn't use any trigger at all, just some editing based from this Tutorial :xxd:
anyway, this spell only requires modification for the texture of the spell [it doesn't look dark at all, I'm out of idea how to fix it], will try to fix the texture, also, make sure you import all the imports [and set it to the same path as the test map import path] and the spell, I don't modify the spell a lot since I don't know the level amount and the range required.
I don't use trigger since it's simple and I'm just lazy :ogre_hurrhurr:

@DivineLight
if you having any problem please PM/VM me.

is Elite still active in this workshop
haven't seen him lately.
damn, I got too much job here :S gotta work faster
 

Attachments

  • DL Request.w3x
    21.1 KB · Views: 37
Status
Not open for further replies.
Top