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

Göddys Missile System

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
This is a system for easy creation of missiles that collide on enemy contact.

I also implemented an easy way, to change the missiles to healing missiles wich will heal on friend collision.

It is MUI and should be leakless.
Anyway if you find leaks, tell me and i will fix em.

I created this one from scratch for a map i´m currently working on.

Why does hive need another Missile system?
-This system is extremly simple, so that the triggers are easy to overview, understand and modify(for example implementing other scripts).


Give credits if you use this in your map.

Update: fixed that unitposition and casting unit leaks.

Update 2: fixed that MUI problem, now it is realy MUI


Update 3: fixed the last group leaks, and now the dmg is delt by the caster.

  • Events
    • Unit - A unit Starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to Blizzard
  • Actions
    • Set index = freeindex
    • Set indexuse[index] = True
    • Set castingunit[index] = (Triggering unit)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • index Equal to maxindex
      • Then - Actions
        • Set maxindex = (maxindex + 1)
      • Else - Actions
    • -------- Stores the facing for the missile (if you want to, you can also make it face backwards :D ) --------
    • Set Mis_face[index] = (Angle from (Position of castingunit[index]) to (Target point of ability being cast))
    • Set cachepoint = ((Position of castingunit[index]) offset by 50.00 towards Mis_face[index] degrees)
    • -------- Create a dummy unit --------
    • -------- Tipp: u can also add auras or abilitys like phoenix fire, fire burn, disease cloud etc. to the unit for aditional effects --------
    • Unit - Create 1 Dummy for (Owner of castingunit[index]) at cachepoint facing Mis_face[index] degrees
    • Set Mis_Unit[index] = (Last created unit)
    • Custom script: call RemoveLocation(udg_cachepoint)
    • Unit Group - Add Mis_Unit[index] to missileunits
    • -------- This will set the speed of the missile. --------
    • -------- To get the correct speed, multiply your desired speed (for example 1000) by 0.03 --------
    • Set Mis_speed[index] = 30.00
    • -------- If this is "true" it will deal damage to enemys. If its "false" it will heal friends --------
    • Set Mis_target[index] = True
    • -------- Sets the damage the missile will deal on collision / the HP it will heal --------
    • Set Mis_Damage[index] = (100.00 x (Real((Level of Blizzard for (Casting unit)))))
    • -------- The range to an enemy wich will make the dummyunit explode --------
    • Set Mis_detecrange[index] = 100.00
    • -------- The damageradius of the explosion --------
    • -------- (This should be higher than "Mis_detecrange" or it will hit only one unit) --------
    • Set Mis_dmgrange[index] = 250.00
    • -------- The range after wich the unit will fade away, if it hits no target --------
    • -------- (This should be a bit higher than the dummyspells castrange) --------
    • Set Mis_range[index] = 1500.00
    • -------- Turns on the loop, if its deactivated --------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • loopchecker Equal to False
      • Then - Actions
        • Trigger - Turn on missileloop <gen>
      • Else - Actions
  • Events
    • Time - Every 0.03 seconds of game time
  • Conditions
  • Actions
    • For each (Integer missint) from 1 to maxindex, do (Actions)
      • Loop - Actions
        • -------- Move the Unit --------
        • Set unitposition = (Position of Mis_Unit[missint])
        • Set unitoffset = (unitposition offset by Mis_speed[missint] towards Mis_face[missint] degrees)
        • Unit - Move Mis_Unit[missint] instantly to unitoffset, facing Mis_face[missint] degrees
        • Custom script: call RemoveLocation(udg_unitposition)
        • Custom script: call RemoveLocation(udg_unitoffset)
        • -------- Save the remaining range --------
        • Set Mis_range[missint] = (Mis_range[missint] - Mis_speed[missint])
        • -------- Check if the max range is achieved --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • Mis_range[missint] Less than 0.00
          • Then - Actions
            • -------- Kill the dummy and clear the variables --------
            • Unit - Kill Mis_Unit[missint]
            • Unit Group - Remove Mis_Unit[missint] from missileunits
            • Set Mis_Unit[missint] = No unit
            • Set indexuse[missint] = False
          • Else - Actions
        • -------- Check if the bolt should hit an enemy, or a friend --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • Mis_target[missint] Equal to True
          • Then - Actions
            • Set unitposition = (Position of Mis_Unit[missint])
            • Set cachegroup = (Units within Mis_detecrange[missint] of unitposition matching ((((Matching unit) belongs to an enemy of (Owner of Mis_Unit[missint])) Equal to True) and (((Matching unit) is alive) Equal to True)))
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Number of units in cachegroup) Greater than 0
              • Then - Actions
                • Custom script: call DestroyGroup(udg_cachegroup)
                • -------- Deal damage and remove the dummy unit --------
                • Set cachegroup = (Units within Mis_dmgrange[missint] of unitposition matching ((((Matching unit) belongs to an enemy of (Owner of Mis_Unit[missint])) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is Magic Immune) Equal to False))))
                • Unit Group - Pick every unit in cachegroup and do (Actions)
                  • Loop - Actions
                    • Unit - Cause castingunit[missint] to damage (Picked unit), dealing Mis_Damage[missint] damage of attack type Spells and damage type Normal
                • Custom script: call RemoveLocation(udg_unitposition)
                • Custom script: call DestroyGroup(udg_cachegroup)
                • Unit - Kill Mis_Unit[missint]
                • Unit Group - Remove Mis_Unit[missint] from missileunits
                • Set indexuse[missint] = False
                • Set Mis_Unit[missint] = No unit
              • Else - Actions
          • Else - Actions
            • -------- This is the same stuff again, but for friendly targets --------
            • Set unitposition = (Position of Mis_Unit[missint])
            • Set cachegroup = (Units within Mis_detecrange[missint] of unitposition matching ((((Matching unit) belongs to an ally of (Owner of Mis_Unit[missint])) Equal to True) and (((Matching unit) is alive) Equal to True)))
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Number of units in cachegroup) Greater than 0
              • Then - Actions
                • Custom script: call DestroyGroup(udg_cachegroup)
                • Set cachegroup = (Units within Mis_dmgrange[missint] of unitposition matching ((((Matching unit) belongs to an ally of (Owner of Mis_Unit[missint])) Equal to True) and (((Matching unit) is alive) Equal to True)))
                • Unit Group - Pick every unit in cachegroup and do (Actions)
                  • Loop - Actions
                    • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + Mis_Damage[missint])
                • Custom script: call RemoveLocation(udg_unitposition)
                • Custom script: call DestroyGroup(udg_cachegroup)
                • Unit - Kill Mis_Unit[missint]
                • Unit Group - Remove Mis_Unit[missint] from missileunits
                • Set indexuse[missint] = False
                • Set Mis_Unit[missint] = No unit
              • Else - Actions
        • -------- Checks wich variables are in use, and adjust the freeindex if a new slot is empty --------
        • If (indexuse[missint] Equal to True) then do (Do nothing) else do (Set freeindex = missint)
    • -------- This will lower the maxindex if there are unused slots --------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • And - All (Conditions) are true
        • Conditions
          • indexuse[maxindex] Equal to False
          • indexuse[(maxindex - 1)] Equal to False
          • maxindex Greater than 1
    • Then - Actions
      • Set maxindex = (maxindex - 1)
    • Else - Actions
    • -------- This turns the loop off, if it is not needet --------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • (Number of units in missileunits) Equal to 0
      • Then - Actions
        • Set freeindex = 1
        • Set maxindex = 1
        • Set loopchecker = False
        • Trigger - Turn off (This trigger)
      • Else - Actions
Keywords:
GUI, MUI, missile, system, heal, healing missile, rocket, Göddy, Godslayer
Contents

Göddy´s Missile System (Map)

Reviews
16:15, 31st Mar 2010 The_Reborn_Devil: This leaks, we already got a few of these and believe me, using GUI isn't the best way to create a system like this. This is also way too simple for a missile system. Status: Rejected Rating: N/A

Moderator

M

Moderator

16:15, 31st Mar 2010
The_Reborn_Devil:
This leaks, we already got a few of these and believe me, using GUI isn't the best way to create a system like this. This is also way too simple for a missile system.


Status: Rejected
Rating: N/A
 
Level 6
Joined
Feb 26, 2008
Messages
171
Seems good, and seems like it has some potential :O like your other works >:) I might need this for meh map :)

Edit01: 1 thing I don't like is that your demo map is too short, all heroes die easily...
Edit02: annother thing I don't like is that there's no description, you could at least have made custom spells or something like this instead of blizzard and carrion swarm :/
Edit03: to support Edit02, I had to test the carrion swarm myself before noticing that it wasn't dealing any dmg to ennemies and was healing allies >_< Description!
Edit04: rofl it's funny there's a fourth edit xD
 
Level 9
Joined
Jun 3, 2007
Messages
185
Seems good, and seems like it has some potential :O like your other works >:) I might need this for meh map :)

Edit01: 1 thing I don't like is that your demo map is too short, all heroes die easily...
Edit02: annother thing I don't like is that there's no description, you could at least have made custom spells or something like this instead of blizzard and carrion swarm :/
Edit03: to support Edit02, I had to test the carrion swarm myself before noticing that it wasn't dealing any dmg to ennemies and was healing allies >_< Description!
Edit04: rofl it's funny there's a fourth edit xD

this map is not made for playing and having fun.

i made it for people to look into the code, understand it, learn from it, and use it in theyr maps.

All spelldescription is written in the triggers, cause everyone needing this will look into the triggers. The "map" itself is only there for prooving that it works ingame.

but i will add some simple tooltips to the spells, just to make sure.
 
Level 6
Joined
Feb 26, 2008
Messages
171
this map is not made for playing and having fun.

i made it for people to look into the code, understand it, learn from it, and use it in theyr maps.

All spelldescription is written in the triggers, cause everyone needing this will look into the triggers. The "map" itself is only there for prooving that it works ingame.

but i will add some simple tooltips to the spells, just to make sure.

Hey now you pwnt! :D Thx for explanations :O you reply fast :thumbs_up:
 
Level 6
Joined
Feb 26, 2008
Messages
171
  • castaspell
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Blizzard
    • Actions
      • Set index = freeindex
      • Set indexuse[index] = True
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • index Greater than maxindex
        • Then - Actions
          • Set maxindex = index
        • Else - Actions
      • -------- Create a dummy unit --------
      • -------- Tipp: u can also add auras or abilitys like phoenix fire, fire burn, disease cloud etc. to the unit for aditional effects --------
      • Unit - Create 1 Dummy for (Owner of (Casting unit)) at ((Position of (Casting unit)) offset by 50.00 towards (Facing of (Casting unit)) degrees) facing (Facing of (Casting unit)) degrees
      • Set Mis_Unit[index] = (Last created unit)
      • -------- This will set the speed of the missile. --------
      • -------- To get the correct speed, multiply your desired speed (for example 1000) by 0.03 --------
      • Set Mis_speed[index] = 30.00
      • -------- If this is "true" it will deal damage to enemys. If its "false" it will heal friends --------
      • Set Mis_target[index] = True
      • -------- Sets the damage the missile will deal on collision / the HP it will heal --------
      • Set Mis_Damage[index] = (100.00 x (Real((Level of Blizzard for (Casting unit)))))
      • -------- The range to an enemy wich will make the dummyunit explode --------
      • Set Mis_detecrange[index] = 100.00
      • -------- The damageradius of the explosion --------
      • -------- (This should be higher than "Mis_detecrange" or it will hit only one unit) --------
      • Set Mis_dmgrange[index] = 250.00
      • -------- The range after wich the unit will fade away, if it hits no target --------
      • -------- (This should be a bit higher than the dummyspells castrange) --------
      • Set Mis_range[index] = 1500.00
      • -------- Stores the facing for the missile (if you want to, you can also make it face backwards :D ) --------
      • Set Mis_face[index] = (Facing of (Casting unit))
      • -------- Turns on the loop, if its deactivated --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • loopchecker Equal to True
        • Then - Actions
        • Else - Actions
          • Trigger - Turn on missileloop <gen>
If you watch every lines (one by one and read slowly) you'll notice a small error! :O There's a LEAK!!! Wozaaa! right here!

  • Unit - Create 1 Dummy for (Owner of (Casting unit)) at ((Position of (Casting unit)) offset by 50.00 towards (Facing of (Casting unit)) degrees) facing (Facing of (Casting unit)) degrees
Replace casting unit by triggering unit, i heard it's faster... and replace position of (casting unit) by a variable that you clear right after, ight!?

Oh and in the trigger ''missileloop'' there's also a leak of the same type, here:
  • Unit - Move Mis_Unit[missint] instantly to ((Position of Mis_Unit[missint]) offset by Mis_speed[missint] towards Mis_face[missint] degrees), facing Mis_face[missint] degrees
''Position of Mis_Unit[missint] doesn't seem like leaking but it does :/ But just to tell you, there's many other location leaks of this type in the missileloop trigger, just watch em' out (or if it's for comprehension sake, then make another disabled trigger for leakless trigger cause right now it leaks a lil)
 
Level 9
Joined
Jun 3, 2007
Messages
185
you call that leaks?

i´d bet that does not store any more RAM then your alternative, and the about the cpu, i´d say this doesnt even use 1 mhz more then the alternative.

i do know about this stuff, but wanted to make things simple.

but if it makes you happy i´ll adjust that...
and i always use casting unit, because i dont realy know if triggering unit is much better
(also had some issues about triggering unit in the past, and so i try to avoid it whenever possible)

and i think it does not make any difference, if i first save the position of the unit to read it then again, or if i just use it in the function, because anyway the CPU has to get the units position(this is directed to the 2. "leak", for the first i do agree that a variable may be better, but i wanted to ceep the code simple).

Edit: So now i replaced "Casting Unit" with "castingunit" :D hope you can sleep now without worrying about that damn huge leaks here.
 
Level 6
Joined
Feb 26, 2008
Messages
171
:O mkay!!! Oh and notice: your screenshot is lies! xD! Ima stop blaming you now, im going to sleep :)
Oh well 4/5 useful from me! You conviced me (ew)...

Edit05: Your avatar is scary :/ what about a little and innocent flower :)
 
Level 9
Joined
Jun 3, 2007
Messages
185
:O mkay!!! Oh and notice: your screenshot is lies! xD! Ima stop blaming you now, im going to sleep :)
Oh well 4/5 useful from me! You conviced me (ew)...

Edit05: Your avatar is scary :/ what about a little and innocent flower :)

ah its not blaming. your critique was constructive in the end.

oh and i tried that flower stuff, but ppl thought i am gay, so i decidet to take something more manly :D

no just joking, its just my style
 
Level 12
Joined
Jun 28, 2008
Messages
688
dragor is right, any time you reference the position of a unit, that's a memory leak. And even worse, when you generate a polar offset from a referenced point, that makes 2 leaks. The point of storing it in a variable is so that you can remove that variable after use and it won't cause the map to slowly build up lag.

And he's also right about (Triggering Unit) > (Casting Unit). It's faster. Although it may be so slight a difference that most people wouldn't notice it in-game, say someone was using your missile system with a whole army of units. That'll generate a small delay, which is annoying.
 
Level 9
Joined
Jun 3, 2007
Messages
185
This map is BAD.
-Tooltips are BAD
-A lot of leaks
-Screenshot is for other map?
-Dummy cause damage and not Hero.
-Creeps attack hero when heal missile comes close to them
-Triggering is BAD also
-Not MUI = BAD

You need to read tutorials before make systems.

-as i said, all you need to know is written in the triggers
-wich leaks?
-screenshot is from another map, MADE BY ME, wich uses this system
-whats the problem about that?
-i never saw that, but i think i cant do more than make em locust, and they are locust.
-whats bad about the triggering?
-did you even look into the triggers? IT IS MUI

= you dont know what your saying, or your just unpolite :p ****
 
Last edited by a moderator:
  • Angry
Reactions: Rui
Level 17
Joined
Mar 17, 2009
Messages
1,349
= you are ether a noob or an asshole, maby both
Stop flaming before I start reporting... so I'd advice you to erase this quote.

And NFWar, there's nothing wrong using the dummy to damage, I do that.
About the others, I'll check :)


EDIT:
NFWar was right...

So here it goes:

- yes it does leak... points and groups
- screenshot isn't from this map...
- the triggering is bad... true
- NO IT'S NOT MUI!

and well, as I said, you've got to give us a reason to use this instead of some advanced vJass spell or (if GUI is required) Kingz missile system?

Until then, I wouldn't really advice using this system...
I'm not being mean or anything, just being realistic and honest.

Hope I could pin point everything up, but I'm in a rush... yet check the tutorial in my signature if you intend to fix some stuff. Look at the section on leaking and on the section on MUI'ness...
 
Level 9
Joined
Jun 3, 2007
Messages
185
u know saying something is BAD is one thing, naming facts, is something else
i recognized that i made some indexing mistake here, but i couldnt locate it yet. and saying
- the triggering is bad
wont help me much

so this is no constructive critique, this is ****.
how about telling me what is wrong, instead of just saying there is something wrong.
 
Last edited by a moderator:
Level 17
Joined
Mar 17, 2009
Messages
1,349
Deuterium said:
Hope I could pin point everything up, but I'm in a rush...
Be thankful and shutup... really whether me or NFWar, we tried helping with the time we had...
We could both simply rated the system as 2/5 without even mentioning that something is bad... but we thought of letting you know that it's not that good... I mean hey, we've got real lives and not 24hours/day for hive.

EDIT:
Oh and let's not forget that I told you to look at the tutorial in my signature... that's the constructive part...
 
Level 9
Joined
Jun 3, 2007
Messages
185
Be thankful and shutup... really whether me or NFWar, we tried helping with the time we had...
We could both simply rated the system as 2/5 without even mentioning that something is bad... but we thought of letting you know that it's not that good... I mean hey, we've got real lives and not 24hours/day for hive.

EDIT:
Oh and let's not forget that I told you to look at the tutorial in my signature... that's the constructive part...

lol extremly constructive thx...

and thanks for your help, i fixed the problem

...oh wait you didnt help me. well who cares

lets just flame and say your map is ****

i realy like you guys, please next time write something like "there is some problem with the MUI system"

that would have helped me as much as your useless flaming
 
Last edited by a moderator:
So, GodSlayer?
I am w8int your "sorry"...
You blame me, you sayed bad word on me (and after edit your post to hide it).
I am not noob, but not pro eather. I just told you what you did wrong and report some bug.
If dummy deal damage instead of you, creeps will not go to kill you when you use damage spell on them. It is not oficient. Spell is not MUI!
Example:
I throw missile with Hero 1 and with Hero 2 after 1 sec.
When Missile 1 died missile 2 stops at air and never did
any actions after some more casts.
If you think what this is "MUI", than you dont know what MUI is.

Rly, I think you pissed off after reding last line of my comment.
It was sugestion and not order "what to do".
 
Level 9
Joined
Jun 3, 2007
Messages
185
So, GodSlayer?
I am w8int your "sorry"...
You blame me, you sayed bad word on me (and after edit your post to hide it).
I am not noob, but not pro eather. I just told you what you did wrong and report some bug.
If dummy deal damage instead of you, creeps will not go to kill you when you use damage spell on them. It is not oficient. Spell is not MUI!
Example:
I throw missile with Hero 1 and with Hero 2 after 1 sec.
When Missile 1 died missile 2 stops at air and never did
any actions after some more casts.
If you think what this is "MUI", than you dont know what MUI is.

Rly, I think you pissed off after reding last line of my comment.
It was sugestion and not order "what to do".

first of all sry for that bad word...
BUT you should download the new version of the map, i fixed that mui stuff some hours ago.
well ok about that creeps not attacking you, thats true... i´ll fix that soon

-about the lagg, i actualy cant tell why, it runs with 60 fps for me (got 2x 2.4 GHZ) even if i throw 7 balls the same time.
 
Level 31
Joined
May 3, 2008
Messages
3,155
This map is BAD.
-Tooltips are BAD
-A lot of leaks
-Screenshot is for other map?
-Dummy cause damage and not Hero.
-Creeps attack hero when heal missile comes close to them
-Triggering is BAD also
-Not MUI = BAD

I do not see this post contain anything trollish, rude or neither flaming. He just stating it was bad. If I say the map or system was bad or poorly done, it would be consider as rude?

You don't expect everything to be positive feedback, do you?

= you dont know what your saying, or your just unpolite :p gtfo

I see nothing wrong with that post and yet you called him to gtfo? Now who are the one who are really rude by now?

u know saying something is BAD is one thing, naming facts, is something else
i recognized that i made some indexing mistake here, but i couldnt locate it yet. and saying

wont help me much

so this is no constructive critique, this is shit.
how about telling me what is wrong, instead of just saying there is something wrong.

Deuterium is absolutely right. We got the right to gives constructive critism if we want to. Infact, do you even read the spells submission rules at all?

Use
The spells section should not be used to get feedback or help on your coding--please use the Triggers and Scripts forum for that. It should also not be used to send spells to friends and then delete them--please use the Pastebin for that.

If you want feedback, you are not suppose to use this section at all. This section are reserves for a spells that was at least 99.99% efficient and safe enough to be use, not a spells that are barely done with the lack of testing.

If this is a map, I could understand that you need a constructive critism to improve it as a map could use variety of field to improve it.

But for spells, it is different case. Spells that are submitted would be used by any map maker that stumble upon it and if your spells was defective in term of coding, it would only kill your reputation as spells maker and would encourage people not to download your spells to be used in the future.

In the end, your spells would be floating around the spells section with nobody using it at all. They might probably download and view it, but soon delete it from their computer without exporting the spells into their map or worst, rejected by the mod.

lets just flame and say your map is shit

Flaming would not be tolerate, if you think a post was deem to be trollish/flaming. Report it to the staff instead of joining the fight like you did.

I also suggest you to use trigger tag to post your spells scripting to enable user to view it without the need to open world editor/warcraft.
 
I got to disapoint you again.
Seems like you did almost none and caused more bugs...

GOOD:
-Spell is MUI
BAD:
-Leaks still not cleared
NEW BUGS:
-Every cast of spell cause double lag than previus. :razz:

I cudnt test it more cuz PC got terible lag.
Those leaks you must to clear are____________
Points and Groups leaks.
To clear point leak people use custom script comand. Example:
custom script: call RemoveLocation(udg_|Your Point|)
Groups remove like that:
custom script: call DestroyGroup(udg_|Your Group|)
Group leak when you seting it wrong too.
Set Group like that:
Set Group=(Units in |Your Range| from |Your Point| matching (condition and condition))
Those condition are from multiple and condition.
You must to set a lot of and one inside other
to create "filter" for group.
 
Level 9
Joined
Jun 3, 2007
Messages
185
i dont know if i am wrong but:
if i save a point as a gloabl variable, and it is overwritten later anyway, why do i need to clear him right after use? (i mean its not even 1kb of space used in the ram)

-about that 2 times as much lagg as before, i maby know why that is, it could be that the "maxindex" is always getting set higher(this is used for counting the multiple instances of the spell currently running).
but this should be resetet after the spell is finished.

-triggers posted

to the stuff about the spell being not finished: the only thing i made wrong was that i made a tiny mistake with the indexing
i just needet 2 clicks to fix that when i found it...
and about all the leaks here... well i didnt know that there are ppl here playing wc3 with pentium 2 cpus and 64 mb ram
 
Level 21
Joined
Aug 9, 2006
Messages
2,384
Because handles aren't automaticly erased? you should seriously learn something about leaks before you create shitty systems, a handle is only present in the variable as an adress to the point in the RAM where the data is saved, if you overwrite the adress, it does not clear the handle saved in the RAM, and now stop flaming and start to listen, or get out of the hive....

Learn something about leaks, get some experience, and try again.

And by the way, mine missile system is by far superior to yours... so give us a reason to use yours.

My System handles up to 1000 missiles without more as 5 FPS difference, yours handles 100 missiles and it goes in the red lines (i had 10 fps while shooting repeatedly.).

P.S: Stop trying to be smarter than us, for example I am in this buisness for around 7 years....and I know what I do.
 
Level 9
Joined
Jun 3, 2007
Messages
185
Because handles aren't automaticly erased? you should seriously learn something about leaks before you create shitty systems, a handle is only present in the variable as an adress to the point in the RAM where the data is saved, if you overwrite the adress, it does not clear the handle saved in the RAM, and now stop flaming and start to listen, or get out of the hive....

Learn something about leaks, get some experience, and try again.

And by the way, mine missile system is by far superior to yours... so give us a reason to use yours.

My System handles up to 1000 missiles without more as 5 FPS difference, yours handles 100 missiles and it goes in the red lines (i had 10 fps while shooting repeatedly.).

P.S: Stop trying to be smarter than us, for example I am in this buisness for around 7 years....and I know what I do.

i dont remember saying i am smarter or better then anyone here,

but anyways i have to thank you, because i didnt know that the variables in wc3 dont overwrite themselfes.

i would listen if someone would realy say something that could actualy help here.

if you still dont know why to take my one, read the descriptiuon, its written there: because my system is extremly simple and fast and easy to overview, understand, and modify. btw your one is very good, but its kinda complicated to me.

actualy i´m currently trying to locate the cause for the laggs, i just hope its that variable thing.


oh and about learning stuff about leaks: if you see it like that many of the gui-tutorials here on hive do leak, and make people create unefficient triggers. and now gues where i learned all that triggering from (i have to say the most mui and indexing tutorials where pretty profesional)
 
I posted how to remove some leaks upper.
BUT... IF YOU SET POINT WITH OFFSET TO MOVE DUMMY
you must to store 2 points at variables and remove them after.
Example:
Set Point1=Position of dummy
Set Point2=Point1 offset by DummySpeed facing DummyAngle degress.
Also I found hew BUG:
-Hero throw missile at his facing.
So, if you cast spell behind of hero, sometimes missile dont throw at right facing.
 
Level 31
Joined
May 3, 2008
Messages
3,155
but anyways i have to thank you, because i didnt know that the variables in wc3 dont overwrite themselfes.

They don't, that is why we use custom script to have it remove.

if you still dont know why to take my one, read the descriptiuon, its written there: because my system is extremly simple and fast and easy to overview, understand, and modify. btw your one is very good, but its kinda complicated to me.

Simple, fast and easy to overview does not mean it is efficient. Even a newbie map maker would not use spells or system that seems to be easy to view, but defective in term of coding.

Anyway, spells and system at here are ment to be use. Not for learning, if you want to learn more about triggering; tutorial or script & trigger section are more to it.

oh and about learning stuff about leaks: if you see it like that many of the gui-tutorials here on hive do leak, and make people create unefficient triggers. and now gues where i learned all that triggering from (i have to say the most mui and indexing tutorials where pretty profesional)

For your information, some tutorial are teaching you other aspect. Not the aspect of memory leak.

For example, Daelin static shape tutorial teach you how to do shape but not about memory leak.


http://www.hiveworkshop.com/forums/...s-279/chapter-1-static-shapes-gui-7337/#seven

Warning: This tutorial does not treat memory leaks and so the codes inside the tutorial are not leak-free. This is purely because that way the codes are less crowded and much cleaner (visually speaking), and so easier to understand. To avoid memory leaks, search for a tutorial helping you clean them.

If you view some GUI tutorial, you would notice such a fine print once in awhile.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
redscores said:
And just to make something clear: using the dummy to damage IS WRONG, because in for example a AoS Map the kills get counted by the unit which killed them, so if a hero shoots a missile, killing a enemy hero with your system, the dummy gets the kill, not the hero.

So please deuterium... keep that in mind.
Yes I was thinking about that before yesterday, but needed to check... you answered now however :p damn that mean I gotta re-edit my jass spells! :p
Thanks for letting me know ;)
 
Last edited:
Level 9
Joined
Jun 3, 2007
Messages
185
I forgot to recharge my net account as usual :p but I'm back...
Anyways, the last time I checked, the MUI'ness you used is unapprovable:
Quote:
Spells using non-recycling "indexing systems" will not be accepted.
Again I'll advice you to take a look at the tutorial in my signature, cause it not only explains MUI, but links you to the best methods there are ;)

you know the thing is, if i look at my system where is something wrong, and then i look at some tutorial, i dont get an idea like "oh that must be wrong". so your tutorial links dont help me.

also "last time you checked it" there was something wrong, how about checking it again before writing comments like this?
i changed some things in the last few days
 
Level 14
Joined
Jan 15, 2007
Messages
349
Well you could try to fix those leaks, which are in those three trigger of the "Missilesystem" folder. And by the way your indexing is pretty ineffective. Improve it however you do it just do it. Ah and the last thing I have to say. Isn't this part of the code pretty senseless?
  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • 'IF'-Conditions
      • freeindex Equal to (==) maxindex
    • 'THEN'-Actions
      • Set maxindex = freeindex
    • 'ELSE'-Actions
Well I let you now the option to think by yourself why this is senseless. If you don't come to a solution click at the "solution" button.
If a variable has already the same value like an other variable why you should set one variable to the other variable if they already had the same value before?
 
Level 9
Joined
Jun 3, 2007
Messages
185
Well you could try to fix those leaks, which are in those three trigger of the "Missilesystem" folder. And by the way your indexing is pretty ineffective. Improve it however you do it just do it. Ah and the last thing I have to say. Isn't this part of the code pretty senseless?
  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • 'IF'-Conditions
      • freeindex Equal to (==) maxindex
    • 'THEN'-Actions
      • Set maxindex = freeindex
    • 'ELSE'-Actions
Well I let you now the option to think by yourself why this is senseless. If you don't come to a solution click at the "solution" button.
If a variable has already the same value like an other variable why you should set one variable to the other variable if they already had the same value before?

lol i totaly oversaw this somehow XD
thx for the tip anyway, i gues this maby was one of the leaks, because that should lower the maxindex.
Updated:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (maxindex - 1) Equal to freeindex
    • Then - Actions
      • Set maxindex = freeindex
    • Else - Actions
 
Top