Spellpack Bowling Bash, Terror, Chop and Pull

mr-death

Acolyte
Reaction score
51
Try with

Code:
Custom script:   call RemoveLocation(udg_[Variable])

:banghead: I have a traumatic experience with custom script code :banghead:

And now I'm alergic to them, whatever I'll try

Set Point = Position of (No Unit)

Edit: When I reset all of the Variables, the game will be so freaking LAG, so I decide to reset some of the main Variables. Then, I found new bugs, so I will post the new upload map again. What a mess.
 

Ryuu

I am back with Chocolate (:
Reaction score
64
Haha, mr-death, even though I have created for than 20 incomplete maps helping me to gain experience, I'm still no match for your powerful capability.
_________________________________________________________________

Making maps is like that, mr-death, just take some time editing it, and then I will gurantee a 100% success :p
 

mr-death

Acolyte
Reaction score
51
Okay the third edit is done, check on the #1 post
__________________________________________________

Ah what a mess... :banghead:
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
Sorry but i will test ur map later coz busy rite now...sorry
____________________________________________________________
Now you will need to delete leaks by using custom script...ALWAYS SAVE BEFORE HAVING TROUBLE !!
Code:
Custom script - call RemoveLocation(udg_your_variable_name_here)
This script will remove the location.
Code:
Custom script - call DestroyGroup(udg_variable_name)
This will destroy your group..not destroying the whole variable but remains the variable empty...
Special effects leaks too...Fix it with this by setting them to variable then
Code:
Custom script - call DestroyEffects(udg_variable_name)

I think this will help...sry for the free handed writting :p
 

Ryuu

I am back with Chocolate (:
Reaction score
64
> call RemoveLocation(udg_your_variable_name_here)

Isn't that just another way of writing my post?

> Custom script - call DestroyEffects(udg_variable_name)

Thought it was DestroyGraphics? I have always used that when I needed to, and so far I found no leaks :banghead:
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
> call RemoveLocation(udg_your_variable_name_here)

Isn't that just another way of writing my post?

> Custom script - call DestroyEffects(udg_variable_name)

Thought it was DestroyGraphics? I have always used that when I needed to, and so far I found no leaks :banghead:


sorry for accidently copied your thread...but did u wrote out how to destroy group? or effects?
And...sorry for the mistake...special effect can be straight destroy in action:
Code:
Special Effect - Destroy (Last created special effect)
 
S

Sunny_D

Guest
actually, its "call DestroyEffect (udg_YourVariable)" - not DestroyEffects...

EDIT: should really refresh my browser more often... =P
 
S

Sunny_D

Guest
not that i know of ^^ the only other thing that is kinda related, is "DestroyLightning"
 

Arkan

Nobody rides for free
Reaction score
92
There is no DestroyGraphics function, I doubt WE will compile the map if you try that.
 

mr-death

Acolyte
Reaction score
51
Okay-okay no more custom scripts please.

It is enough! :banghead:

I might understand by now, I'll remove the memory leaks, thanks for those who help me.

I will give an edit on this post if I already upload the newer version.

Hey Wait!

When testing, the Editor gives compile:

line 154: Expected a name

What was it anyway?

Wait Again!

Wrong typo! :banghead:

Edit: The newest version (no memory leaks, at least lesser) is ready, check on #1 post
 

Sim

Forum Administrator
Staff member
Reaction score
534
> Probably just your computer.
> Works 99% for me, with that 1% being the bug I found.

Congratulations. There are leaks nonetheless.

-----------------------------------------------------------

> Can you give me the leak source, just the actions that make it leaks.

Alrighty then!

> Set TerroredUnits[(Player number of (Owner of (Casting unit)))] = (Random 0 units from (Units in (Playable map area)))

Useless action.

> Set TerroredUnits[(Player number of (Owner of (Casting unit)))] = (Units within (200.00 + (100.00 x (Real((Level of Terror for TerrorCasting[(Player number of (Owner of (Casting unit)))]))))) of (Position of TerrorCasting[(Player number of (Owner of (Casting unit)))]) matching (((Matching unit) belongs to an enemy of (Owne

(Position of TerrorCasting[(Player number of (Owner of (Casting unit)))]) leaks.

> Set TerroredUnits[(Player number of (Owner of (Casting unit)))] = (Random 0 units from (Units in (Playable map area)))
> Set TerrorCasting[(Player number of (Owner of (Casting unit)))] = No unit

No need to null global variables.

> Custom script: call RemoveLocation(udg_TerrorRunPoint[GetForLoopIndexA()])

TerrorRunPoint is set to a value inside a loop. You must remove it inside that loop.

> Set TerrorRunPoint[(Integer A)] = ((Position of (Picked unit)) offset by 500.00 towards (Angle from (Position of TerrorCasting[(Integer A)]) to (Position of (Picked unit))) degrees)

The 2 last (Position of (Picked unit))s leak. You must set them to a variable too.

> Set Knockbacktargetpointcheck[(Integer A)] = ((Position of Knockbacktarget[(Integer A)]) offset by 200.00 towards (Angle from Knockbackpoint[(Integer A)] to Knockbacktargetpoint[(Integer A)]) degrees)

A point with polar offset leaks 2 times. Since you set the "new" point to a value, it leaks only once: the first (Position of...). Set it to a value and remove it.*

> Special Effect - Create a special effect at (Position of Knockbacktarget[(Integer A)]) using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl

(Position of Knockbacktarget[(Integer A)] leaks.

> Set Knockbacktargetpoint[(Integer A)] = ((Position of Knockbacktarget[(Integer A)]) offset by 10.00 towards (Angle from Knockbackpoint[(Integer A)] to (Position of Knockbacktarget[(Integer A)])) degrees)

The second (Position of...) leaks, along with the polar offset leak.*

> Set Knockbackedunits[(Integer A)] = (Units within 90.00 of ((Position of Knockbacktarget[(Integer A)]) offset by 50.00 towards (Angle from Knockbackpoint[(Integer A)] to (Position of Knockbacktarget[(Integer A)])) degrees) matching ((((Matching unit) belongs to an enemy of (Player((Integer A)))

The 2 (Position of...) leak.

> Set Knockbackedunitspoint[(Integer A)] = ((Position of (Picked unit)) offset by 10.00 towards (Angle from (Position of Knockbacktarget[(Integer A)]) to (Position of (Picked unit))) degrees)

Out of 4 leaks you set a variable to only 1 of them. Fix that.*

> Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl

(Position of (Picked unit)) leaks.

> (Distance between (Position of (Picked unit)) and ChopandPullpoint[(Integer A)]) Greater than 100.00

(Position of (Picked unit)) leaks.

> Set ChopandPullPoints[(Integer A)] = ((Position of (Picked unit)) offset by 20.00 towards (Angle from (Position of (Picked unit)) to ChopandPullpoint[(Integer A)]) degrees)

1 leak set out of 3.*

> Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl

(Position of (Picked unit)) leaks.

> Set ChopandPullDegrees[(Player number of (Owner of (Casting unit)))] = (Angle from ChopandPullpoint[(Player number of (Owner of (Casting unit)))] to (Target point of ability being cast))

First leak is set, (Target point of ability being cast) leaks.

And that's about it for leaks :) Remember that since many of them are inside loops, that's why I gave you that tremendous number of leaks.

Also remember to clean every leak you set accordingly to where it has been set. If it is set inside a loop, it must be destroyed somewhere in that loop.

-------------------------------------------

*: Here's how polar offset works:

Code:
Set somevariable = (Position of (Picked unit))
Set somevariable2 = (somevariable offset by x towards y degrees)
-------- Later on --------
Custom script:    call RemoveLocation(udg_somevariable)
Custom script:    call RemoveLocation(udg_somevariable2)
 

Ryuu

I am back with Chocolate (:
Reaction score
64
mr-death, another list of custom scripts :)
_________________________________________________________________

> Congratulations. There are leaks nonetheless.

Yep, I know there are leaks, but I guess I'm blind. Couldn't spot them earlier, but now that you said it, I re-checked the map, and sorry if I offended anyone :(
 

Void

New Member
Reaction score
16
Wow mr-death nice spells! I like Chop-n-pull and Terror because they're really like something from WC3 or WoW, but bowling bash is teh pwnz :D cuz it's fun to see them go sliding everywhere :D It should be called MagnetSlide though because the units don't go flying away from the target they kinda stick to it... :p

"Short time no see", probably referring to me? :p

And WOW! mr-death, you're really an expert. It's quite hard to believe (in other words, its a miracle) that such a proffesional could really exist. This spellpack alone overwhelmed me :)eek:) and I really look forward to your future spells. Anyways, good job!

Hmm do you think he's as good as Tinki3?
 

mr-death

Acolyte
Reaction score
51
Thanks, Big Thanks

Thanks Daxtreme! You gave me a lot of information in the leaks..

However I've just known Custom Script codes by this month. I usually ignore them and find the trigger actions in GUI, THATS MY PROBLEM until now!

:D The #5 Edit will be Leak Free!

I will edit this post when the edit is done!

I hope there will be no more headbanging in the future, so this is the last :banghead:

Big Thanks to Daxtreme +rep! :cool:

Edit: No More Memory Leaks! MUI! GUI! :cool: DL on #1 post.
 

Sim

Forum Administrator
Staff member
Reaction score
534
> MUI, (multiplayer playable, all variables have 12 arrays took 2 hours to create)

That is MPI. Multiplayer Instanceable.

-------

Tooltips are awful. They don't describe the spell. Use generic and simple words. We don't need the whole formula in the tooltip too :p

--> Terror

Code:
For each (Integer A) from 1 to 12, do (Actions)
    Loop - Actions
        Unit Group - Pick every unit in TerroredUnits[(Integer A)] and do (Actions)
            Loop - Actions
                Set Terrorcastingpoint[(Integer A)] = (Position of TerrorCasting[(Integer A)])
                Set Terroredunitspoint[(Integer A)] = (Position of (Picked unit))
                Set TerrorRunPoint[(Integer A)] = (Terroredunitspoint[(Integer A)] offset by 500.00 towards (Angle from Terrorcastingpoint[(Integer A)] to Terroredunitspoint[(Integer A)]) degrees)
                Unit - Order (Picked unit) to Move To TerrorRunPoint[(Integer A)]

Everytime you set a variable to a new value, it has to be nulled.

I suggest you keep "Run" turned off always, except when the player casts Terror at which point you turn it on.

--> Bowling Bash

Remove the point variables inside that loop but outside the if-then-else condition to make sure they get removed.

> Special Effect - Create a special effect at (Position of Knockbacktarget[(Integer A)]) using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl

Position leaks.

> Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl

Position leaks.

Keep the trigger Knockback more turned off. Turn it on only when the player casts the ability.

--> Chop and Pull

> Set ChopandpullFreshTargets[(Player number of (Owner of (Casting unit)))] = (Random 0 units from (Units in (Playable map area)))

Why bother setting a variable to null?

> Set ChopandPullDegrees[(Player number of (Owner of (Casting unit)))] = (Angle from ChopandPullpoint[(Player number of (Owner of (Casting unit)))] to (Target point of ability being cast))

(Target point of ability being cast) leaks.

Code:
For each (Integer A) from 1 to (20 x (Level of Chop and Pull  for (Casting unit))), do (Actions)
    Loop - Actions
        Set Chopandpullcastingpoint[(Player number of (Owner of (Casting unit)))] = (ChopandPullpoint[(Player number of (Owner of (Casting unit)))] offset by (10.00 x (Real((Integer A)))) towards ChopandPullDegrees[(Player number of (Owner of (Casting unit)))] degrees)
        Set ChopandpullFreshTargets[(Player number of (Owner of (Casting unit)))] = (Units within 125.00 of Chopandpullcastingpoint[(Player number of (Owner of (Casting unit)))] matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True))
        Unit Group - Pick every unit in ChopandpullFreshTargets[(Player number of (Owner of (Casting unit)))] and do (Unit Group - Add (Picked unit) to ChopandPulltargets[(Player number of (Owner of (Casting unit)))])

Each time you set a point or group variable to a new value you need to remove/destroy it before you set it to a new value again.

In short, remove/destroy the variable inside the loop.

----------------

You're going to make it, don't worry ;) Just takes time.
 

mr-death

Acolyte
Reaction score
51
I'm just an awful idiot newbie on creating no-leaks :(

Thanks for giving hints again, anyway

And for Terror, if it's not on everytime, it will become non-MPI

Set ChopandpullFreshTargets[(Player number of (Owner of (Casting unit)))] = (Random 0 units from (Units in (Playable map area)))

about this, I already deleted it before, and the ability only work once, so I create it again
 

Void

New Member
Reaction score
16
I'm just an awful idiot newbie on creating no-leaks :(

Thanks for giving hints again, anyway

And for Terror, if it's not on everytime, it will become non-MPI

Set ChopandpullFreshTargets[(Player number of (Owner of (Casting unit)))] = (Random 0 units from (Units in (Playable map area)))

about this, I already deleted it before, and the ability only work once, so I create it again


I share your pain. ><
 

mr-death

Acolyte
Reaction score
51
Thanks, Void :)

Anyway i've uploaded the #6 edit.

Hope this one is leak free.

Download on #1 post
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top