• 🏆 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!
jonbon29
Reaction score
11

Profile posts Latest activity Postings Experience Media Albums Resources About

  • All unit indexers use the custom value I think, I am not sure though.

    If the one you use doesn't you custom value too you can have two without issues.
    A unit indexer is simple to use. Briber's unit indexer is the most used one. Then it's pretty simple.

    damage event becomes equal to X
    if checkIfDamageIsPhysical
    if damageDealer has ability X
    set someInteger[custom value of damageDealer] = someInteger[custom value of damageDealer] + 1
    if someInteger[custom value of damageDealer] bigger than or equal to 3
    then
    set someInteger[custom value of damageDealer] = 0
    give hp
    That is extremely easily done if you know hashtables. Or a unit indexer, you have knowledge of either?
    Dont use loops like that.
    I cant even see your trigger.

    ALWAYS USE MULTIPLE ACTIONS AND NEVER A CONDITION WHEN PICKING UNITS!

    Simple mistake that everyone makes.
    The condition is double work slowing your group loop down by 70-100%
    There are two ways to do it.
    The easiest way is to run an updater for every nearby hero.
    The other way is to run events when a hero enters/leaves range.

    The updater is slightly more performance heavy and has a small delay between the updates but those arent really a big problem.

    Just give your hero a hidden passive EOT with an interval of 0.25 to 0.5 seconds (your preference).
    Every interval, you pick every units in 500 range and you give the hero an ability based on attack bonus or armor bonus (item abilities) and set the level to the number of enemy heroes and the number of allied heroes.
    These numbers are global integer variables which you increment by one if the picked unit is an allied/enemy hero.
    (Make sure that you remove the hero with the EOT on him from the group before you loop through it.)

    When the global integer is 0, you remove the corresponding attack/armor bonus ability.
    Yes a 'Unit' Type and not a 'Unit-Type' type because that is really an integer.
    Oh!
    I'll try to fix it today if I've got the time otherwise you'll have to wait a few weeks (I'm going study in another town without my big computer so no JNGP because Linux on small).
    The non-array variables are used as temp variables so it is ok to use those in other triggers.
    In short, you can use those variables in any trigger just make sure that you set a new value first like the LT_X, Y, Z.
    Hmmmm, I don't get what you mean. Holy Nova Group??
    In reply to your previous VM, yes put the dummy (and set dummy variable) on top before picking Units in the group
    Hmm, that should not be the case at all.
    Can you show the trigger?
    You have to set it after the Dummy is created, below Create Dummt at ...
    You didn't Set TempDummy = Last Created Unit.
    Plus make sure the Slow Ability has 0 cooldown.

    If you are still having difficulty, then feel free to go back to your previous method because using 1 dummy is just a suggestion.
    It is faster and lessen the permanent unavoidable unit leak.
    You created a dummy every time a unit is picked within the group so not only 1 dummy is created. Before enumerating the group, create the dummy and in the enumeration, order the dummy to slow the picked unit.
    Its better that wayin terms of speed because you don't need to create a dummy at each enemy. Only 1 dummy is created for the whole group.

    Just store Last Created Unit something like
    Set Dummy = Last Created Unit
    ...
    Order Dummy to Slow Picked Unit
    So it damages and slow enemies within range?
    Set the level first before ordering the dummy. Plus, only one dummy is needed and it will be the one to cast on all the affected enemies. Make sure it has 0 cooldown Also, store the dummy to a new variable to make the spell speed efficient.
    Yes you can make it an array, I see no performance difference in terms of using 4 integer vs 1 integer array.
    The problem would be readbility because they all have the same name but have different purposes. Use whatever is more convenient to you.
    Yes, you can make it hexa (base 16) or any base for that matter. Because when using base 10, the maximum damage that can be given is +99. If your map needs a damage more than that, then you should change it.
    In the trigger, change all number 10 to a new number (i.e. 16), but you also need to change the levels of the 2 abilities bonus damage from 1 to 15 and the other one to 16, 32, 48, etc.
    Heheheh yea we had it a long time ago E-freak-Z now we're back together training and playing xD so we decided to make a logo xD , hehe have fun on those triggers <(o_O<) hope it comes out as you planed , looking forward to play your map hehe
    Finding a logo for my DotA 2 team and Street Workout , it's been a pain in the ass so far but i think i will manage to pull it off..... anyways what's up , have you been working on your map , i'm really curious to see how's it going :D
    A
    Hey, for your request, would it be alright to create a modified version of the original beast master ?
    Hmm, looks good to me. I don't see how that will not work.
    Maybe you changed some other stuffs too? I will send you the sample map tomorrow.
    Hey, I just tried my suggestion and it works.
    The GetDamage in onDestroy should be GetDamage(this.level, this.caster).
    I can't pass you the code because for some reason, internet in my laptop is very slow but in phone, it is average speed.
    No don't replace the other function. I meant the GetDamage in the onDestroy method.
    So it still gives error, hmm I will try to look what causes it.
    look on my 9:20 am post, the 1st part. Then you're done

    Ignore the 'replace all function call ...' because you've already done that.

    If only I'm on my laptop, you wouldn't be struggling on this.
    Now you are talking about additional data on a unit or a buff.
    With a unit indexer and a real array, you can do it.
    When you cast that ability that gives you the buff, you set that real to (15 X level of ability)
    Then when you attack a unit, you load that real from that array.

    lfh's PDD is not powerfull enough to have such damage being dealt properly though.
    When you do that, it means that your damage is on-hit spell damage.
    This will then mean that all effects that happen on spell hits will also occur.
    I really dont know why noone ever has implemented a good bugless Damage System.

    You have to use the custom function that is placed in the PDD library to apply the damage as well. (0 GUI friendlyness :/)
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
Top