• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Kawaii Spell Workshop

Status
Not open for further replies.
Level 22
Joined
Sep 24, 2005
Messages
4,821
@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

  • Empower[GUI] v1.2.w3x
    37.7 KB · Views: 48
Level 16
Joined
Jul 31, 2012
Messages
2,217
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 :/
 
Level 22
Joined
Aug 27, 2013
Messages
3,973
@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
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
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
 
Level 22
Joined
Aug 27, 2013
Messages
3,973
@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
 
Level 24
Joined
May 15, 2013
Messages
3,782
@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..
 
Level 10
Joined
Jun 9, 2012
Messages
826
Hey Mal, juz wanna ask, not to be impatient, just excited :D. Which one from my spells request are you planning to do first? That's becuz i'm about to face my exam starting this Wednesday so i won't be around here for a few weeks.
 
Level 8
Joined
Apr 16, 2013
Messages
351
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.
 
Level 22
Joined
Aug 27, 2013
Messages
3,973
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
 
Level 25
Joined
Jul 30, 2013
Messages
2,678
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 :)..
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
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.
Top