• 🏆 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!

Black Hole Real [v2.0]

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Based on dota engima´s black hole but im sick of that because it dont EAT things just are unchanneling death and decay so investigating i made this :D it REALY eats things because i used a Anti-knockback system

REMAKED TRIGGERS

(positive speed=pushed away, negative value as speed=hook)
CHANGED TO CHANNELING FOR GOOD

  • Black Hole On
    • Events
      • Unit - A unit Begins The effect of an ability
    • Conditions
      • (Ability being cast) Equal to Black Hole
    • Actions
      • -------- NOT MUI............YET :D --------
      • -------- ----------------------------------- --------
      • -------- Getting position of casting unit --------
      • -------- ----------------------------------- --------
      • Set BH_Loc = (Target point of ability being cast)
      • Set BH_Caster = (Triggering unit)
      • -------- ----------------------------------- --------
      • -------- This are variables to "real number" between eating pulses --------
      • -------- that means the seconds X plus .5 seg to send a pulling pulse --------
      • -------- Each array to each level you need to add more arrays to more levels --------
      • -------- ----------------------------------- --------
      • Set BH_Interval[1] = 2.50
      • Set BH_Interval[2] = 1.50
      • Set BH_Interval[3] = 1.00
      • -------- Damage Per Pulse in AOE --------
      • -------- again a array per level --------
      • Set BH_Damage[1] = 5.00
      • Set BH_Damage[2] = 10.00
      • Set BH_Damage[3] = 15.00
      • -------- take a note and damage to buildings / mechanical is x this value --------
      • Set BH_DamageMulti[1] = 1.00
      • Set BH_DamageMulti[2] = 2.00
      • Set BH_DamageMulti[3] = 3.00
      • -------- i cannot find a good spere model to fit the sirunstances srry --------
      • -------- "channeling" so i need create a variable to kill dummys later --------
      • -------- ----------------------------------- --------
      • Unit - Create 1 Black Hole / Sphere for (Owner of (Triggering unit)) at BH_Loc facing 0 Degrees
      • Set BH_Dummies[1] = (Last created unit)
      • Unit - Create 1 Black Hole / Core for (Owner of (Triggering unit)) at BH_Loc facing 0 Degrees
      • Set BH_Dummies[2] = (Last created unit)
      • Unit - Create 1 Black Hole / Whirl for (Owner of (Triggering unit)) at BH_Loc facing 0 Degrees
      • Set BH_Dummies[3] = (Last created unit)
      • -------- ----------------------------------- --------
      • -------- turning on the loop and special effects to eated units ^^ --------
      • -------- ----------------------------------- --------
      • Trigger - Turn on Black Hole Loop <gen>
      • Trigger - Turn on Black Hole Eating Core <gen>
      • -------- ----------------------------------- --------
      • -------- Starting pulse --------
      • Unit Group - Pick every unit in (Units within 750.00 of BH_Loc matching ((((Matching unit) is a Building) equal to False) and ((((Matching unit) is alive) equal to True) and (((Matching unit) is Magi inmune) equal to False)))) and do (Actions)
        • Loop: Actions
          • Unit - Create 1 Casting Dummy / knockback for (Owner of (Triggering unit)) at BH_Loc facing 0 degrees
          • Unit - Add Knockback to (Last created unit)
          • Unit - Set level of Knockback for (Last created unit) to 1
          • Unit - Order (Last created unit) to Human - Mountain king storm bolt (Picked unit)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Custom script: call GroupClear( GetLastCreatedGroup() )
-
-
-
-
  • Black Hole Loop
    • Event
      • Time - Every 0.50 seconds of game time
    • Actions
      • -------- i tried to "Time - Every BH_Interval ((LEvel Of Black Hole For BH_Caster]] seconds --------
      • -------- messed up with variables so i quit srry --------
      • -------- ----------------------------------- --------
      • -------- Pulses every [time + interval] seconds --------
      • -------- I Tried To Spiral Eating but i mess up with polar offset so i qit :( --------
      • -------- ----------------------------------- --------
      • -------- to kill some trees --------
      • Unit - Cause BH_Caster to damage circular area after 0.00 seconds of radius 500.00 at BH_Loc, dealing 1.00 damage of attack type Normal and damage type Death
      • -------- main unit pulling and eating --------
      • Unit Group - Pick every unit in (Units within 550.00 of BH_Loc matching ((((Matching unit) is a Building) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is Magi Inmune) Equal to False)))) and do (Actions)
        • Loop: Actions
          • -------- Eating Units --------
          • -------- ----------------------------------- --------
          • Unit - Create 1 Casting Dummy / knockback for (Owner of BH_Caster) at BH_Loc facing 0 Degrees
          • Unit - Add Knockback to (Last created unit)
          • Unit - Set level of Knockback for (Last created unit) to 1
          • Unit - Order (Last created unit) to Human Mountain King: Storm Bolt (Picked unit)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • Custom script: call GroupClear( GetLastCreatedGroup() )
      • -------- damaging buildings and meanical --------
      • Unit Group - Pick every unit in (Units within 500.00 of BH_Loc matching ((((Matching unit) is A Building) Equal to True) or (((Matching unit) is Mecanic) Equl to True))) and do (Actions)
        • Loop: Actions
          • Unit - Cause BH_Caster to damage (Picked unit), dealing (BH_Damage[(Level of Black Hole for BH_Caster)] x BH_DamageMulti[(Level of Black Hole for BH_Caster)]) damage of attack type Normal and damage type Death
      • Custom script: call GroupClear( GetLastCreatedGroup() )
      • -------- AEREAL ARE NOT SUPOSED TO BE HEAVY AFECTED --------
      • -------- ----------------------------------- --------
      • -------- Death and decay ability is not needed in the last version so i do this :) --------
      • Unit - Cause BH_Caster to damage circular area after 0.00 seconds of radius 150.00 at BH_Loc, dealing 100000000.00 damage of attack type Chaos and damage type Death
      • -------- ----------------------------------- --------
      • -------- mayber not the best one to be the core effect but fits the sound i need so well --------
      • -------- ----------------------------------- --------
      • Special Effect - Create a special effect at BH_Loc using Abilities\Spells\Undead\DarkRitual\DarkRitualTarget.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- ----------------------------------- --------
      • -------- extra wait plus to normal loop timer --------
      • -------- ----------------------------------- --------
      • Wait BH_Interval[(Level of Black Hole for BH_Caster)] seconds
      • -------- ----------------------------------- --------
-
-
-
-
  • Black Hole Off
    • Events
      • Unit - A unit Finish The Use Of An Ability
      • Unit - A unit Stops using an ability
    • Conditions
      • (Ability being cast) Equal to Black Hole
    • Acciones
      • -------- ----------------------------------- --------
      • -------- double event so it can be triggered in TWO diferent cases----i skip one trigger and 1.5kbs on memory :) --------
      • -------- ----------------------------------- --------
      • Trigger - Turn off Black Hole Loop <gen>
      • Trigger - Turn off Black Hole Eating Core <gen>
      • -------- ----------------------------------- --------
      • Unit - Kill BH_Dummies[1]
      • Unit - Kill BH_Dummies[2]
      • Unit - Kill BH_Dummies[3]
      • -------- ----------------------------------- --------
      • Custom script: call RemoveLocation(udg_BH_Loc)

Keywords:
black, hole, eating, evil, knockback
Contents

Black Hole Spell (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 20:46, 10th Oct 2011 Pharaoh_: Rejected for being too simple. GroupClear() doesn't destroy the group. Use set bj_wantDestroyGroup = true before the enumeration action. Currently leaks...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

20:46, 10th Oct 2011
Pharaoh_: Rejected for being too simple.

GroupClear() doesn't destroy the group. Use set bj_wantDestroyGroup = true before the enumeration action. Currently leaks this part and most of the point variables.

Remove the wait from the loop.

Rejected, since it's not MUI and it leaks.
 

??

  • Custom script: set bj_wantDestroyGroup = true
  • -------- -------------------------------------------- --------
  • -------- Knockback starts here / a dummy will do the knockback. Just follow the trigger, I think its easy to be understand. --------
  • -------- -------------------------------------------- --------
  • Custom script: set bj_wantDestroyGroup = true
Why are you doing it twice?
Do it once.

You should use unit variables to store data like (Last created unit) so you don't have to repeat the functions again and again and again ...

For example:

  • Unit - Create 1 Casting Dummy / knockback for (Owner of (Triggering unit)) at TargetLoc facing 0 degrees
  • Unit - Add Knockback to (Last created unit)
  • Unit - Set level of Knockback for (Last created unit) to 1
  • Unit - Order (Last created unit) to Human Mountain King: Storm Ray (Picked unit)
  • Unit - Add a 3.00 second Generico expiration timer to (Last created unit)
->

  • Unit - Create 1 Casting Dummy / knockback for (Owner of (Triggering unit)) at TargetLoc facing 0 degrees
  • Set TempUnit = (Last created unit)
  • Unit - Add Knockback to TempUnit
  • Unit - Set level of Knockback for TempUnit to 1
  • Unit - Order TempUnit to Human Mountain King: Storm Ray (Picked unit)
  • Unit - Add a 3.00 second Generico expiration timer to TempUnit
You could do the same thing for Owner of Triggering Unit for the entire trigger.

Oh and your screenshot seems Photoshopped :p
 
Level 4
Joined
Apr 18, 2011
Messages
60
i dont like use variables for now im learning :) that confuses my brain :S
anywways it works and a friend of mine from w3 campaigns telled to me i need do that twice i dont know why :S

i taked screenshot from ingame bit site bont support tga so i used a tool i downloaded here :)
 
anywways it works and a friend of mine from w3 campaigns telled to me i need do that twice i dont know why :S

Using it twice would be pointless.
It's like doing this:
JASS:
set i = 0
set i = 0
If i is already 0, why should I set it to 0? :p

i dont like use variables for now im learning :) that confuses my brain :S

Well, you better get used to it :/
 
Level 7
Joined
Jul 3, 2011
Messages
251
The triggers you posted in [ TRIGGER ] [ /TRIGGER ] tags in the spells description, he means to update them when you change the triggers so we can view the new code without comenting on the old code.
 
1. Instant knock back.
2. Doesn't effect units who just decide to walk in.
3. Why do you have 2 Custom script: set bj_wantDestroyGroup = true. One is literally placed right after the other. Plus this is supposed to right before you use a unit group. Hell, I'm not sure, but it might leak if you don't put right before a unit group.
4. The "I'm learning" thing, fix your mistakes
5. If your spell fits into about 20 lines of code, it ain't worth downloading.

My criticism may not be entirely uplifting but it's pretty straight forward. Now if you were to add/fix the things I mentioned, this spell would actually be quite nice. Also when making spells please try to stay away from imports.
 
Level 4
Joined
Nov 24, 2010
Messages
61
lol
The spell is good if you make only one spell. The Death and Decay and the Knocback aren't need to be casted by dummy. You can make a looping trigger kill any unit in the core and knockback the targets. Some little idea: 1)Hide the unit which killed in the core. 2)What do you think about spiral knockback?
Like the models.
 
Level 7
Joined
Aug 31, 2011
Messages
125
You can put reals that always stay the same in a spell init. ||| Or if you ever change the number again, you can still do the same thing but only the first sets of them for example:
Set bla bla bla[1] = 532
Set bla bla bla[2] = 536
Set bla bla bla[3] = 538
-----------------------
Set bla bla bla[1] = 632
Set bla bla bla[2] = 836
Set bla bla bla[3] = 938
-- -- -- -- -- -- -- -- --
The first set of variables can go in a spell init, while the second set stays in the main trigger.
 
Level 4
Joined
Apr 18, 2011
Messages
60
i think tht will be tooo many triggers
im currently watching over jass to make it mui nd leakless easly
plus that (original idea) is to use damage formulas
  • Set BH_Damage[1] = (Int Of BH_Caster)x(3)
And i hav the plan of an "spell init" but i think tht will be too many triggers
 
Level 7
Joined
Aug 31, 2011
Messages
125
i think tht will be tooo many triggers
im currently watching over jass to make it mui nd leakless easly
plus that (original idea) is to use damage formulas
  • Set BH_Damage[1] = (Int Of BH_Caster)x(3)
And i hav the plan of an "spell init" but i think tht will be too many triggers

No, you only need need to add "One" more trigger only witch is the "Spell Init" and having a spell init is better than putting the settings in the main trigger because every time you cast the spell, it resets it and it isn't even required, just put it in spell init so then it doesn't have to reset itself for no reason
-Edit-
Its okay to add one more trigger because its only a one time thing, That's if you use Map initialization ofc.
 
Level 4
Joined
Jan 9, 2011
Messages
28
some units not pulled in!

I noticed that only organic units were being pulled in. Buildings, mechanical and air should also be affected. Also can you get rid of that chronosphere model...unecessary... the black hole looks cool without it. Anyway good job on the spell. Definitely UNIQUE!:thumbs_up:
 
Level 4
Joined
Apr 18, 2011
Messages
60
I noticed that only organic units were being pulled in. Buildings, mechanical and air should also be affected. Also can you get rid of that chronosphere model...unecessary... the black hole looks cool without it. Anyway good job on the spell. Definitely UNIQUE!:thumbs_up:


i think it looks good with cronosphere and currently learning jass to make it MUI beause i fing not-too-easy make it MUI on GUi beause one you learn JASS gui becames useless for you in spells :p
 
Top