• Check out the results of the Techtree Contest #19!
  • 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.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Kawaii Spell Workshop

Status
Not open for further replies.
@poke, thanks for looking for bugs.
This is the fix if you are interested, I just moved the 2 actions to the bottom and set 0 in the hashtable initialization of the attack count.
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (HT_Ckey is stored as a Integer of HT_Pkey in E_HT) Equal to True
    • Then - Actions
    • Else - Actions
      • -------- If the target is not yet attacked, initialize the number of attacks and save it to the hashtable --------
      • Hashtable - Save 0 as HT_Ckey of HT_Pkey in E_HT
      • Set TempInt = (Custom value of DamageEventSource)
      • -------- Add the Target to the TargetGroup, this will allow us to reset the attributes after the spell expires. --------
      • Unit Group - Add DamageEventTarget to E_TargetGroup[TempInt]
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Strength of DamageEventTarget (Exclude bonuses)) Greater than 1
      • (Agility of DamageEventTarget (Exclude bonuses)) Greater than 1
      • (Intelligence of DamageEventTarget (Exclude bonuses)) Greater than 1
    • Then - Actions
      • -------- Subtract N point(s) to all attributes --------
      • -------- N points, the N there means the number you choose. --------
      • Hero - Modify Strength of DamageEventTarget: Subtract 1
      • Hero - Modify Agility of DamageEventTarget: Subtract 1
      • Hero - Modify Intelligence of DamageEventTarget: Subtract 1
      • -------- Add N points to agility points. --------
      • Hero - Modify Agility of DamageEventSource: Add 3
      • -------- Add a special effect to the caster --------
      • Special Effect - Create a special effect attached to the origin of DamageEventSource using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- Add a special effect to the target --------
      • Special Effect - Create a special effect attached to the origin of DamageEventTarget using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- This is where the number of attacks to the target is dealt. Increase it by 1 --------
      • Set TempInt = (Load HT_Ckey of HT_Pkey from E_HT)
      • Hashtable - Save (TempInt + 1) as HT_Ckey of HT_Pkey in E_HT
    • Else - Actions
EDIT: Attached updated map.
@ choey; this is still an activate-able spell, the passive one is still a work in progress. I just uploaded to fix the bug pOke reported.
 

Attachments

Death Missle

DDS: None
Code Type: Jass or Vjass
Spell Type: Hero
Target Type: Special Target
Area of Effect: 1000
Number of Levels: 1
Mana Cost: 0
Cooldown: 0
In-game Description: Shoot missiles at enemy.
How the spell works: Hold down a button to activate the rocket, will create a circle in 1000 AOE or less, the missle will indentified when an object nearly that circle, the user can release the key to fire missiles, thrust rocket will hit the object and blew up that object in 1 second.

I don't think it is possible to know if the button is hold or when it released or anything else related to the button, at least in JASS, nhocklanhox6, since you code pretty well vJASS you should know it is impossible :/
 
@Jad
is this not the event?
JASS:
    call TriggerRegisterPlayerKeyEventBJ( gg_trg_Untitled_Trigger_001, Player(0), bj_KEYEVENTTYPE_DEPRESS, bj_KEYEVENTKEY_UP )
    //press
    call TriggerRegisterPlayerKeyEventBJ( gg_trg_Untitled_Trigger_001, Player(0), bj_KEYEVENTTYPE_RELEASE, bj_KEYEVENTKEY_UP )
    //release
@Chobibo
yes, she means using arrow keys
 
Shield

DDS: DDS
Code Type: vJass
Spell Type: NA
Target Type: NA
Area of Effect: NA
Number of Levels: ?
Mana Cost: NA
Cooldown: NA
In-game Description: NA

Making a system request because it would be an extremely useful system.

Apply a shield to a unit.

The shield has the following properties

health = how much health the shield has

regeneration = how much to regeneration per x

regenerationPeriod = how often to regenerate

breakable = shield is destroyed when its health reaches 0

reduction = how much damage is reduced by (x amount of points)

reductionRatio = how much health shield loses per x amount of damage

reductionCoefficient = percent of damage to reduce

duration = how long the shield will last

layer = what layer the shield is on. Higher layer shields are hit first, then lower layer. Damage is spread across shields on the same layer.

onShieldHitFilter = runs before the shield is hit. Return value dictates whether the shield will be applied or not. This is useful for applying the shield to only specific damage types or sources.




Feel free to change the API to whatever or split Shield up into however many systems you deem necessary.


Example of usage
JASS:
Shield shield = Shield.create()
ShieldApplication application = shield.apply(whichUnit)
ShieldApplication application2 = shield.apply(whichUnit2)

//now the shield is shared across two units

shield.health = 500
shield.breakable = true

application.layer = 0 //bottom layer
application2.layer = unitShields.push(shield) //top layer

//possibly create lightning between the two units and apply shield to all units within the 
//circle formed by the diameter of the lightning relative to the two units, that'd be a cool 
//spell


//keep in mind that some fields apply to applications

//you will need some structure to store all shields for a given unit, should be a stack
//implemented as a list


//shields may also amplify damage
I'm also going to request the spell be made outlined in the comments because it is awesome
Should be able to have different shapes too, like a circle style shield that requires 1 unit, another that requires 2, a square style that requires 2, etc.
JASS:
//possibly create lightning between the two units and apply shield to all units within the 
//circle formed by the diameter of the lightning relative to the two units, that'd be a cool 
//spell
 
@Nestharus-sensei
wow

@Edge45
write this below:

[box=Your Spell Name]
DDS: Write your Damage Detection system here
Code Type: You want your spell coded with? (GUI/Jass/vJass)
Spell Type: for Hero/Unit?
Target Type: Single Target/Target Point/Instant/Passive
Area of Effect: ?
Number of Levels: ?
Mana Cost: ?
Cooldown: ?
In-game Description: Description inside the game
How the spell works: Describe to us how your spell work
[/box]
it'll become this
Your Spell Name

DDS: Write your Damage Detection system here
Code Type: You want your spell coded with? (GUI/Jass/vJass)
Spell Type: for Hero/Unit?
Target Type: Single Target/Target Point/Instant/Passive
Area of Effect: ?
Number of Levels: ?
Mana Cost: ?
Cooldown: ?
In-game Description: Description inside the game
How the spell works: Describe to us how your spell work
 
@Edge45
write this below:
Your Spell Name

DDS: Write your Damage Detection system here
Code Type: You want your spell coded with? (GUI/Jass/vJass)
Spell Type: for Hero/Unit?
Target Type: Single Target/Target Point/Instant/Passive
Area of Effect: ?
Number of Levels: ?
Mana Cost: ?
Cooldown: ?
In-game Description: Description inside the game
How the spell works: Describe to us how your spell work

But the ability is done
what ability do i have to
put the Template?
 
@Jad
is this not the event?
JASS:
    call TriggerRegisterPlayerKeyEventBJ( gg_trg_Untitled_Trigger_001, Player(0), bj_KEYEVENTTYPE_DEPRESS, bj_KEYEVENTKEY_UP )
    //press
    call TriggerRegisterPlayerKeyEventBJ( gg_trg_Untitled_Trigger_001, Player(0), bj_KEYEVENTTYPE_RELEASE, bj_KEYEVENTKEY_UP )
    //release
@Chobibo
yes, she means using arrow keys

Yes, i mean arrow keys ^^.

@Jad: I believe RtC is possible to hold and release any button (A,B,C...X,Y,Z) with a little help from C++ program..
 
Is it ok if I request again?
Inferno Blast

Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: N/A
Number of Levels: 3
Mana Cost: 180
Cooldown: 110
In-game Description: Summons 36 fireballs in a circular formation that runs outward that damages and slows each unit that is hit. Each fireball deals 100 damage and slows by 20%/30%/40%.
How the spell works: The caster creates 36 fireballs that move outward in a circular formation up to a 1400 distance. Each of these fireballs can slow a unit and each fireball deals 100 damage.
 
i guess it is, but with fireballs

ouch my butt
firebutt.jpg
 
Is it ok if I request again?
Inferno Blast

Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: N/A
Number of Levels: 3
Mana Cost: 180
Cooldown: 110
In-game Description: Summons 36 fireballs in a circular formation that runs outward that damages and slows each unit that is hit. Each fireball deals 100 damage and slows by 20%/30%/40%.
How the spell works: The caster creates 36 fireballs that move outward in a circular formation up to a 1400 distance. Each of these fireballs can slow a unit and each fireball deals 100 damage.

Let me hanle this, tell me damage and slow time intevar if you don't want it spam
 
Doomhammer Slam

Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: ?
Number of Levels: 1
Mana Cost: 200
Cooldown: 70
In-game Description: Thrall slams the ground, stunning and electrifying nearby units that removes all buffs and immobilizes them. It also releasing electric shockwaves and damages enemies by 50.
How the spell works: The caster slams the ground like thunder clap but stuns and have purge effect applied to enemies affected and releasing blue shockwaves with electric effects(nhocklanhox6 can you make the model?) and actually like normal shockwaves with 50 damage directly to enemies nearby.
 
Doomhammer Slam

Code Type: GUI
Spell Type: Hero
Target Type: Instant
Area of Effect: ?
Number of Levels: 1
Mana Cost: 200
Cooldown: 70
In-game Description: Thrall slams the ground, stunning and electrifying nearby units that removes all buffs and immobilizes them. It also releasing electric shockwaves and damages enemies by 50.
How the spell works: The caster slams the ground like thunder clap but stuns and have purge effect applied to enemies affected and releasing blue shockwaves with electric effects(nhocklanhox6 can you make the model?) and actually like normal shockwaves with 50 damage directly to enemies nearby.

Okay, i handle this too :)..
 
Thanks Malhorne, I didn't know unanswered ones were on the 2nd post!

i make a spell like this but for me its not good, so i decided to make it as a request :)

IonCannon

DDS: N/A
Code Type: GUI
Spell Type: Hero/Unit
Target Type: Single Target
Area of Effect: 600
Number of Levels: 1
Mana Cost: 0
Cooldown: 10
In-game Description: 5 laser ion charges the enemy, when the charging is complete the ion blows up a heavy laser that deals 1000 damage to 600 AOE and stunning them for 3 seconds

How the spell works: 5 laser ion charges the enemy, when the charging is complete the ion blows up a heavy laser that deals 1000 damage to 600 AOE and stunning them for 3 seconds

-NOTE-
:fp:Please use this IonCannon.mdx as the spell SFX

I will complete this request
 
Status
Not open for further replies.
Back
Top