SUPPORT ACCOUNT CLANS
Welcome, Unregistered.
 

Thread: How to make a hero

Page 24 of 31 FirstFirst ... 14202122232425262728 ... LastLast
Results 461 to 480 of 614
  1. #461
    I don't really have time to test it out myself, but I think you need to do:

    PHP Code:
    <ondamaged>
        <
    damageeffecttype effecttype="DOT" />
        <else>
            <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
            <
    removecharge />
            <
    condition test="charges eq 0" >
                <
    expire />
            </
    condition>
        </else>
    </
    ondamaged
    If you are having trouble to find out what "entity" you should be using in your target and source tag, always try to use <printdebuginfo /> and look in the console. It will show all the entities related to the event and other things too.

  2. #462
    I don't really have time to test it out myself, but I think you need to do:

    PHP Code:
    <ondamaged>
        <
    damageeffecttype effecttype="DOT" />
        <else>
            <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
            <
    removecharge />
            <
    condition test="charges eq 0" >
                <
    expire />
            </
    condition>
        </else>
    </
    ondamaged
    If you are having trouble to find out what "entity" you should be using in your target and source tag, always try to use <printdebuginfo /> and look in the console. It will show all the entities related to the event and other things too.

  3. #463
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    I don't really have time to test it out myself, but I think you need to do:

    PHP Code:
    <ondamaged>
        <
    damageeffecttype effecttype="DOT" />
        <else>
            <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
            <
    removecharge />
            <
    condition test="charges eq 0" >
                <
    expire />
            </
    condition>
        </else>
    </
    ondamaged
    If you are having trouble to find out what "entity" you should be using in your target and source tag, always try to use <printdebuginfo /> and look in the console. It will show all the entities related to the event and other things too.
    target="source_entity" actually causes the game to crash when the target with the debuff is attacked lol, but I'll try the <printdebufinfo /> and give it a whirl.
    HONOR- If you need it defined, you don't have it.

  4. #464
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    I don't really have time to test it out myself, but I think you need to do:

    PHP Code:
    <ondamaged>
        <
    damageeffecttype effecttype="DOT" />
        <else>
            <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
            <
    removecharge />
            <
    condition test="charges eq 0" >
                <
    expire />
            </
    condition>
        </else>
    </
    ondamaged
    If you are having trouble to find out what "entity" you should be using in your target and source tag, always try to use <printdebuginfo /> and look in the console. It will show all the entities related to the event and other things too.
    target="source_entity" actually causes the game to crash when the target with the debuff is attacked lol, but I'll try the <printdebufinfo /> and give it a whirl.
    HONOR- If you need it defined, you don't have it.

  5. #465
    Quote Originally Posted by dandylion View Post
    target="source_entity" actually causes the game to crash when the target with the debuff is attacked lol, but I'll try the <printdebufinfo /> and give it a whirl.
    I'm saying this as a guess, since I have to hurry and take the bus, but I think you created an infinite loop.

    I say this since your spell does this: I receive damage, so I will damage myself. Since I've damaged myself, I have received damage again, so I will need to damage myself again. And so on.

    Maybe i'm unclear, but I'll explain it more when I get home if you don't understand me.

  6. #466
    Quote Originally Posted by dandylion View Post
    target="source_entity" actually causes the game to crash when the target with the debuff is attacked lol, but I'll try the <printdebufinfo /> and give it a whirl.
    I'm saying this as a guess, since I have to hurry and take the bus, but I think you created an infinite loop.

    I say this since your spell does this: I receive damage, so I will damage myself. Since I've damaged myself, I have received damage again, so I will need to damage myself again. And so on.

    Maybe i'm unclear, but I'll explain it more when I get home if you don't understand me.

  7. #467
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    I'm saying this as a guess, since I have to hurry and take the bus, but I think you created an infinite loop.

    I say this since your spell does this: I receive damage, so I will damage myself. Since I've damaged myself, I have received damage again, so I will need to damage myself again. And so on.

    Maybe i'm unclear, but I'll explain it more when I get home if you don't understand me.
    No, I understand what you're trying to say, and I think that's what the case is. I'll have to throw a conditional in there to stop it.

    Edit: It was an infinite loop that was causing it. I'm not sure what kind of conditional I could use there to break the loop. My idea was to apply a new state when damage is taken that lasts 0.1 seconds, and then the "on damage" checks to see if that state is present before damaging again. However, when I added that in, it no longer even applies the first buff!

    new state_enemy.entity
    Code:
    <state
        name="State_Test_Ability_1_e"
        
        icon="icon.tga"
        passiveeffect="effects/state.effect"
        
        initialcharges="6"
        effecttype="StatusDebuff"
        
    >
        <oninflict>
            <setcharges a="6"/>
        </oninflict>
        
        <ondamaged>
            <printdebuginfo />
            <damageeffecttype effecttype="DOT" />
            <else>
                <condition test="not_hasstate loop_breaker" target="source_entity" >
                    <damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
                    <applystate name="loop_breaker" duration="10000" />
                    <removecharge />
                    <condition test="charges eq 0" >
                        <expire />
                    </condition>
                </condition>
            </else>
        </ondamaged>
        
        <onframe />
        
    </state>
    dummy condition state
    Code:
    <state
        name="loop_breaker"
        
        icon="icon.tga"
        passiveeffect="effects/state.effect"
        
        effecttype="StatusDebuff"
        
    >
        <onimpact/>
        
        <onframe/>
    </state>
    Edit: I figured it out... order of damage and applystate lines needed to be changed. It was still causing a loop.
    Last edited by dandylion; 01-26-2011 at 08:26 PM.
    HONOR- If you need it defined, you don't have it.

  8. #468
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    I'm saying this as a guess, since I have to hurry and take the bus, but I think you created an infinite loop.

    I say this since your spell does this: I receive damage, so I will damage myself. Since I've damaged myself, I have received damage again, so I will need to damage myself again. And so on.

    Maybe i'm unclear, but I'll explain it more when I get home if you don't understand me.
    No, I understand what you're trying to say, and I think that's what the case is. I'll have to throw a conditional in there to stop it.

    Edit: It was an infinite loop that was causing it. I'm not sure what kind of conditional I could use there to break the loop. My idea was to apply a new state when damage is taken that lasts 0.1 seconds, and then the "on damage" checks to see if that state is present before damaging again. However, when I added that in, it no longer even applies the first buff!

    new state_enemy.entity
    Code:
    <state
        name="State_Test_Ability_1_e"
        
        icon="icon.tga"
        passiveeffect="effects/state.effect"
        
        initialcharges="6"
        effecttype="StatusDebuff"
        
    >
        <oninflict>
            <setcharges a="6"/>
        </oninflict>
        
        <ondamaged>
            <printdebuginfo />
            <damageeffecttype effecttype="DOT" />
            <else>
                <condition test="not_hasstate loop_breaker" target="source_entity" >
                    <damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
                    <applystate name="loop_breaker" duration="10000" />
                    <removecharge />
                    <condition test="charges eq 0" >
                        <expire />
                    </condition>
                </condition>
            </else>
        </ondamaged>
        
        <onframe />
        
    </state>
    dummy condition state
    Code:
    <state
        name="loop_breaker"
        
        icon="icon.tga"
        passiveeffect="effects/state.effect"
        
        effecttype="StatusDebuff"
        
    >
        <onimpact/>
        
        <onframe/>
    </state>
    Edit: I figured it out... order of damage and applystate lines needed to be changed. It was still causing a loop.
    HONOR- If you need it defined, you don't have it.

  9. #469
    Well it's up to you, but using a state like that will be "game braking" if the unit received two "damage" at the same time, since you would only trigger the first one. If you want, you could do something like this:

    PHP Code:
    <ondamaged>
            <
    damageeffecttype effecttype="DOT" />
            <else>
                <
    printdebuginfo />
                <
    condition test="target_entity != source_entity" target="inflictor_entity" source="this_entity">
                    <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
                    <
    removecharge />
                    <
    condition test="charges eq 0" >
                        <
    expire />
                    </
    condition>
                </
    condition>
            </else>
        </
    ondamaged
    It will look if the entity inflicting the damage (inflictor_entity) is the current entity (this_entity).

  10. #470
    Well it's up to you, but using a state like that will be "game braking" if the unit received two "damage" at the same time, since you would only trigger the first one. If you want, you could do something like this:

    PHP Code:
    <ondamaged>
            <
    damageeffecttype effecttype="DOT" />
            <else>
                <
    printdebuginfo />
                <
    condition test="target_entity != source_entity" target="inflictor_entity" source="this_entity">
                    <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
                    <
    removecharge />
                    <
    condition test="charges eq 0" >
                        <
    expire />
                    </
    condition>
                </
    condition>
            </else>
        </
    ondamaged
    It will look if the entity inflicting the damage (inflictor_entity) is the current entity (this_entity).

  11. #471
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    Well it's up to you, but using a state like that will be "game braking" if the unit received two "damage" at the same time, since you would only trigger the first one. If you want, you could do something like this:

    PHP Code:
    <ondamaged>
            <
    damageeffecttype effecttype="DOT" />
            <else>
                <
    printdebuginfo />
                <
    condition test="target_entity != source_entity" target="inflictor_entity" source="this_entity">
                    <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
                    <
    removecharge />
                    <
    condition test="charges eq 0" >
                        <
    expire />
                    </
    condition>
                </
    condition>
            </else>
        </
    ondamaged
    It will look if the entity inflicting the damage (inflictor_entity) is the current entity (this_entity).
    Makes sense. I know the way I had it was crude, but it was the easiest (and most familiar to me) way of handling the infinite-loop issue. I like yours a lot better.
    HONOR- If you need it defined, you don't have it.

  12. #472
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    Well it's up to you, but using a state like that will be "game braking" if the unit received two "damage" at the same time, since you would only trigger the first one. If you want, you could do something like this:

    PHP Code:
    <ondamaged>
            <
    damageeffecttype effecttype="DOT" />
            <else>
                <
    printdebuginfo />
                <
    condition test="target_entity != source_entity" target="inflictor_entity" source="this_entity">
                    <
    damage target="source_entity" effecttype="Magic" amount="10,20,30,40" />
                    <
    removecharge />
                    <
    condition test="charges eq 0" >
                        <
    expire />
                    </
    condition>
                </
    condition>
            </else>
        </
    ondamaged
    It will look if the entity inflicting the damage (inflictor_entity) is the current entity (this_entity).
    Makes sense. I know the way I had it was crude, but it was the easiest (and most familiar to me) way of handling the infinite-loop issue. I like yours a lot better.
    HONOR- If you need it defined, you don't have it.

  13. #473
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    I've had another idea for a spell that I'm unsure of the easiest way to tackle.

    What I would like the spell to do is in a line from the caster, to have mini-explosions that deal damage and stun.



    My initial idea was to "borrow" from bombardier's ultimate, but looking it at, it seems a little complicated.

    I was thinking along the lines of using a projectile that on an interval would spawn an affector at the target position that would do the stunning and damage dealing. The projectile would be for all intents and purposes invisible, the only thing you would see would be the ground explosions.

    Any other ideas of how to accomplish this? Any reason why the way I've got it going on wouldn't work? I'll probably try beginning on this soon, but time is rather limited for me at the moment.
    HONOR- If you need it defined, you don't have it.

  14. #474
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    I've had another idea for a spell that I'm unsure of the easiest way to tackle.

    What I would like the spell to do is in a line from the caster, to have mini-explosions that deal damage and stun.



    My initial idea was to "borrow" from bombardier's ultimate, but looking it at, it seems a little complicated.

    I was thinking along the lines of using a projectile that on an interval would spawn an affector at the target position that would do the stunning and damage dealing. The projectile would be for all intents and purposes invisible, the only thing you would see would be the ground explosions.

    Any other ideas of how to accomplish this? Any reason why the way I've got it going on wouldn't work? I'll probably try beginning on this soon, but time is rather limited for me at the moment.
    HONOR- If you need it defined, you don't have it.

  15. #475
    What you said is pretty much what they do with Bombardier ultimate, but less complicated since there is no targeting vector involved or napalm.

    Otherwise, you could try something more eccentric:
    Spawn an affector 250 units in front of you. Give it a param of 5.
    On the impact of the affector, make it go BOOM and spawn another affector 100 unit in front. Give this new affector a param of 4.
    When you have a param of 0, you can then stop spawning more.

    You could use a different kind of affector after the first one to use a delay. So the first one would explode on the ability use and then the one after that would explode at an interval of 200ms or something like that.



    You could also make 5 different affector with a different delay on them and spawn them at the same time with a different offset.


    The choice is yours!

  16. #476
    What you said is pretty much what they do with Bombardier ultimate, but less complicated since there is no targeting vector involved or napalm.

    Otherwise, you could try something more eccentric:
    Spawn an affector 250 units in front of you. Give it a param of 5.
    On the impact of the affector, make it go BOOM and spawn another affector 100 unit in front. Give this new affector a param of 4.
    When you have a param of 0, you can then stop spawning more.

    You could use a different kind of affector after the first one to use a delay. So the first one would explode on the ability use and then the one after that would explode at an interval of 200ms or something like that.



    You could also make 5 different affector with a different delay on them and spawn them at the same time with a different offset.


    The choice is yours!

  17. #477
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    What you said is pretty much what they do with Bombardier ultimate, but less complicated since there is no targeting vector involved or napalm.

    Otherwise, you could try something more eccentric:
    Spawn an affector 250 units in front of you. Give it a param of 5.
    On the impact of the affector, make it go BOOM and spawn another affector 100 unit in front. Give this new affector a param of 4.
    When you have a param of 0, you can then stop spawning more.

    You could use a different kind of affector after the first one to use a delay. So the first one would explode on the ability use and then the one after that would explode at an interval of 200ms or something like that.



    You could also make 5 different affector with a different delay on them and spawn them at the same time with a different offset.


    The choice is yours!
    I've basically decided to use 5 affectors spawned at the same time with different lifespans, and then an "onexpired" to trigger the damage, but I'm just curious the context for making the positions beyond the first be "forced" upon the location of the other affectors. I've been looking at soulstealer's hands as a guide, but they use different abilities that use range and forcerange to determine it on an ability. I'm not sure exactly of how to set the position of another affector, if using a set number in position="" to move it a certain distance or whatnot. Sorry for asking for so much help, but you're all such great resources!
    HONOR- If you need it defined, you don't have it.

  18. #478
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Minnesnowta
    Posts
    2,085
    Quote Originally Posted by Oloko View Post
    What you said is pretty much what they do with Bombardier ultimate, but less complicated since there is no targeting vector involved or napalm.

    Otherwise, you could try something more eccentric:
    Spawn an affector 250 units in front of you. Give it a param of 5.
    On the impact of the affector, make it go BOOM and spawn another affector 100 unit in front. Give this new affector a param of 4.
    When you have a param of 0, you can then stop spawning more.

    You could use a different kind of affector after the first one to use a delay. So the first one would explode on the ability use and then the one after that would explode at an interval of 200ms or something like that.



    You could also make 5 different affector with a different delay on them and spawn them at the same time with a different offset.


    The choice is yours!
    I've basically decided to use 5 affectors spawned at the same time with different lifespans, and then an "onexpired" to trigger the damage, but I'm just curious the context for making the positions beyond the first be "forced" upon the location of the other affectors. I've been looking at soulstealer's hands as a guide, but they use different abilities that use range and forcerange to determine it on an ability. I'm not sure exactly of how to set the position of another affector, if using a set number in position="" to move it a certain distance or whatnot. Sorry for asking for so much help, but you're all such great resources!
    HONOR- If you need it defined, you don't have it.

  19. #479
    I know it might sounds dumb to say this now, but I remember now that you can actually make an affector "move" like a projectile.

    So I think you could spawn the affector at the target location and then it would start moving forward. Adding a impact interval would probably do the trick to make it explode at every X ms as it travels. Witch Slayer stun uses such affector.


    As for the spawning in front of your hero. You could put a offset="500 0 0" in the spawn of your affector.

  20. #480
    I know it might sounds dumb to say this now, but I remember now that you can actually make an affector "move" like a projectile.

    So I think you could spawn the affector at the target location and then it would start moving forward. Adding a impact interval would probably do the trick to make it explode at every X ms as it travels. Witch Slayer stun uses such affector.


    As for the spawning in front of your hero. You could put a offset="500 0 0" in the spawn of your affector.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •