• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Danmaku Spells

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
My first spell that I make it public, hope you like it \^o^/
This map contains 4 spells which is a bullet hell (danmaku) type of spells.
Those are:
>Death Sign - Death Maze
>Ice Sign - Ice Arrows
>Fire Sign - Phoenix
>Mind Sign - Lunatic Bullets

Keywords:
danmaku, zecchan, bullet hell, death, ice, fire, mind, sign
Contents

Danmaku Spells (Map)

Reviews
19:53, 30th Nov 2009 TriggerHappy: Some of the effects are a little... much. Point_Temp leaks. You need to store the casting unit's position. It leaks in several triggers (most in which it's been used). Aside from that, it looks good...

Moderator

M

Moderator

19:53, 30th Nov 2009
TriggerHappy:

Some of the effects are a little... much.

  • Point_Temp leaks. You need to store the casting unit's position.
  • It leaks in several triggers (most in which it's been used).

Aside from that, it looks good. Fix the leaks first.
 
Level 5
Joined
Nov 11, 2009
Messages
172
  • AtChannelLunaticBullets
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Mind Sign - Lunatic Bullets
    • Actions
      • For each (Integer Int_Temp[1]) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
          • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
          • Custom script: call RemoveLocation (udg_Point_Temp)
          • Set Point_Temp = ((Position of (Last created unit)) offset by 300.00 towards (Facing of (Last created unit)) degrees)
          • Unit - Order (Last created unit) to Move To Point_Temp
          • Custom script: call RemoveLocation (udg_Point_Temp)
          • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
You only need to remove locations at the end of every loop/trigger. Remove the others and save a lot of line space. Also use triggering unit instead of casting/dying etc.
 
Level 9
Joined
Dec 12, 2007
Messages
489
  • AtChannelLunaticBullets
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Mind Sign - Lunatic Bullets
    • Actions
      • For each (Integer Int_Temp[1]) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
          • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
          • Custom script: call RemoveLocation (udg_Point_Temp)
          • Set Point_Temp = ((Position of (Last created unit)) offset by 300.00 towards (Facing of (Last created unit)) degrees)
          • Unit - Order (Last created unit) to Move To Point_Temp
          • Custom script: call RemoveLocation (udg_Point_Temp)
          • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
thank God finally someone upload the trigger...
  • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
this is the location that leaks, because it creates 2 location, one is the position of casting unit, and 2nd is the polar projection. you only save the polar one so the 1st location leaks...

and yes, I have to admit that your spells is MUI after further read IMO. sorry:smile:
 
Level 5
Joined
Nov 11, 2009
Messages
172
  • AtChannelLunaticBullets
  • Events
  • Unit - A unit Begins channeling an ability
  • Conditions
  • (Ability being cast) Equal to Mind Sign - Lunatic Bullets
  • Actions
  • For each (Integer Int_Temp[1]) from 1 to 12, do (Actions)
  • Loop - Actions
  • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
  • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
  • Custom script: call RemoveLocation (udg_Point_Temp)
  • Set Point_Temp = ((Position of (Last created unit)) offset by 300.00 towards (Facing of (Last created unit)) degrees)
  • Unit - Order (Last created unit) to Move To Point_Temp
  • Custom script: call RemoveLocation (udg_Point_Temp)
  • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
Oh yeah I missed that :p It should be something like this:
  • AtChannelLunaticBullets
  • Events
  • Unit - A unit Begins channeling an ability
  • Conditions
  • (Ability being cast) Equal to Mind Sign - Lunatic Bullets
  • Actions
  • For each (Integer Int_Temp[1]) from 1 to 12, do (Actions)
  • Loop - Actions
  • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
  • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
  • Set Point_Temp = ((Position of (Last created unit))
  • Set Point_Temp2 = Point_Temp offset by 300.00 towards (Facing of (Last created unit)) degrees)
  • Unit - Order (Last created unit) to Move To Point_Temp
  • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
  • Custom script: call RemoveLocation (udg_Point_Temp)
  • Custom script: call RemoveLocation (udg_Point_Temp2)
 
Last edited:
Level 18
Joined
Feb 28, 2009
Messages
1,970
So I don't need to remove the point every time I use it?
No. If you don`t change it, you can remove it at the end of trigger.

EDIT:
  • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
  • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
  • Set Point_Temp = ((Position of (Last created unit))
  • Set Point_Temp2 = Point_Temp offset by 300.00 towards (Facing of (Last created unit)) degrees)
But this one leaks.

  • Custom script: call RemoveLocation (udg_Point_Temp)
This function is to not overwrite variable, because it takes more memory. In your trigger you leak it
  • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
  • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
  • Set Point_Temp = ((Position of (Last created unit))
here.

You overwrite once setted Point_Temp.

It should be
  • Set Point_Temp = ((Position of (Casting unit)) offset by 10.00 towards ((Real(Int_Temp[1])) x 30.00) degrees)
  • Unit - Create 1 Danmaku Bullet 1 for (Owner of (Casting unit)) at Point_Temp facing ((Real(Int_Temp[1])) x 30.00) degrees
  • Custom script: call RemoveLocation (udg_Point_Temp)
  • Set Point_Temp = ((Position of (Last created unit))
Or even better Position of Last Created Unit set to other variable, to make coding clearlier.
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
Lol. Not becuz u dont use any waits that the triggers are in MUI.
there is 2 way to make ur triggerd in MUI : Using Indexes or Hashtables.
didnt check ur trigger so idk if u use indexs or hashtables.

(For spells that are needing a Periodic Event)

I've checked the triggers and u have 2 periodic events...
witch means u have 2 triggers that arent in MUI

effects of the spells are tooooooo big and it cuz lag.
also.. i got a fatal error using the Lunatic Bullets spell >.>
 
Top