This does not work so easy as the attack only starts when in meele range.
You would have to check the orders all the time.
It could work to make the unit ranged and swap to meele if a unit is attacked in meele range. As soon if the units stops attacking, swap back.
I don't know how long the license lasts afterwards. The purpose ends at the end for sure.
I still have 4 years left, but never knew there is this free version. Everyone said that they are only cheaper, like CS5. However, now there is a chance for all students without using cracked versions or...
I don't know if anyone has posted this already and I don't know if this is known. However, today I got told that students can get a free, full copy of 3ds max 2012. And yes, it works.
Sign up, enter your university, state that you are a student and are...
Just track all damage and heal it.
Be aware that there are some problems.
To maximise the chance of surviving heal up as much damage as possible BEFOR the damage is dealt (max hp - current hp).
Heal up the rest of the damage afterwards.
At full hp a nuke that one-shots you can't be avoided.
local group g = thistype.g
if IsUnitType(u, UNIT_TYPE_DEAD) or GetUnitAbilityLevel(u, BUFFID) < 1 then
set EVENT[GetUnitId(u)] = null
call GroupRemoveUnit(thistype.g, u)
The mdx can be whatever you want. You will assign them to the units.
The .blp textures have to be the way the creator of the model assigned them.
Normale the paths are given. If not, ask him or search in the .mdl file for the paths.
That would be logic for my result but it would be absolutly brainless to destroy the newest texttag instead of the oldest. Well, I will test this again but I will lose my connection for two weeks, lets see what others find out till then ;)
Well, I never worked with text tags in such a way as I ever added a lifespan. However, I remember the bunchload of guys crying about their text tags being destroyed automaticly and the crowd of people answering that they are limited to 100. I'll make a test and edit in a few minutes ;)
Floating texts dont realy leak. As they are limited to 100 they will destroy themselves if to many are there. There is no need for a point-removal as there is no point. Last but not least: strings leak but thats unavoidable.
No, thats not the point. Timers are very efficient. The difference is absolutly small between 1 and 20. However, trigger evaluations are slower then normal calls and I bet they are much slower then timer-callbacks.
Isnt it amazingly useless? Timers are said to nearly take no performance at all. TriggerEvaluations are much slowers then callbacks. No, I did no benchmarks as I can't but thats what I've heard. So if I combine this knowledge.... hm.
Well, in theory you just have to check for both model-variations. Since you exactly know which units have a "doubled" model you can simply check for this. If you do it correct it seems to be fully safe. Like always the problem remains in front of the computer.
Bad recolor. You just changed the entire color what makes it... meh. The contrast is gone since all black lines became blue too, as the background did. Without knowing the original you nearly can't say what it is. At least recolor with some effort.
Either what Bribe said or just a "trigger". The name of TSA is quite accurate as only triggers can be paused (in their functions for sure). A callback is not a real trigger but only a function that is called. If you create a trigger with the timeout-event waits should work afair.
Noes, recolor! KK :P
Don't flip it! The icons highlights on top of the single claws are totaly killed and make it look off.
Could you maybe sharpen it a bit? I know the original isn't the best one too, but it looks so blurry.
I think skipper is way to harsh with this.
If you see the big picture there are some nice details that are totaly lost.
I'd give you some ideas:
Turn the box a bit to show an "average" box with a side. It doesn't look well from the front.
Add a light source. Light is NEVER 100% even. Add a...
It deallocates itself at the end of the function, ALWAYS.
Nulling is used to rescue the bugged reference counter thats job is to free unused handle ids.
As you never store a handle in it nulling is not necessary.
And Maker is right too as "enemy" includes enemies and I think neutral hostile. Neutral passive should be neither an ally nor an enemy while hostile is the last.
It's up to you what to use but "is an enemy" fits your purpose perfectly.
This neads a LOT of performance test.
Dont know where you got your slower from, but the last tests IÍ've seen stated that globals are only 10% slower then locals and that the allocation takes more time then most ppl think, making globals faster while being <~10-12 orders in comparison to the...
1) 13oot-me, triggers can be turned on and off in a single trigger. Turning on and off only disabled and enables the trigger from triggering AGAIN, the current evaluation will not be affected. This means that turning off, waiting and turning on again is a sort of cooldown (not to mention the MUI...
Depends on the way you use GUI. The "Number of Player" is from 1-12 and the jass-function for this is GetConvertedPlayerId. GetPlayerId is a native that returns 0-11 and will cause bugs.
And, xorkatos: The loop works. You remembered that variables in GUI are ALWAYS something else then in Jass...
As its the GUI player number, it should be this:
But, just a hint.
Calling this functions again and again is inefficient and it causes you to need jass.
Just store the player number into an integer. This...
1) Not nulling does not realy "leak". It increases the handle counter.
What do you think why you "null" a unit? Null is a value like each other unit too.
NUlling and reassigning a variable is the same (towards the first reference).
2) With and. NEVER use and().
If a and b and c and d then
No. You create a counter variable, an integer with start 0. In the soar trigger, increase it by 1. That counts the soars. Whenever a spell is finished, decrement the counter by 1. If it is 0 again, stop the trigger. For sure dont forget to turn it on in soar when the counter is 0.
In theory static is the most dumb keyword ever, as it makes the compiler ignore structs. Normaly each variable is "created" once for each instance. Methods have the possibility of using it for each instance.
method xyz takes nothing returns nothing
Static variables are normal globals. However, it looks neater as it's more structured.
Methods are functions that can only be used with a struct instance and will automaticly have acces to it's members. Static methods are structured functions. At your code it would be this:
There is still a lot of stuff to do:
Make the struct private, just for the case.
Insert your globals into the struct, now they are named "private static".
Insert your functions into the struct, now they are named "methods".
Take the advantage of using methods and static methods.
Don't create a...
Maker, shouldn't this be easily avoided by a big amount of timers?
In this case I would use an recycling system like timerutils.
In the first minutes it would create a huge amount of timers, but as soon as this is done it's very efficient and somehow easier then this damage counting.
The entire trigges is fully overcomplicated. Don't split it into two parts.
I don't see it excactly but your problem has to be in the combinations of ExpirationBoolean and SoarExpiration. I recomment just to use ONE trigger with about 0.03 timeout to make it fluent.
And please, don't listen to...