Jump to content

SetMeleeEffect


wolpak

Recommended Posts

I'll preface this that I am skeptical of this actually working, but hopefully someone can see something I do not.

 

I have set a melee effect on my character to summon a creature. Every hit, summons it.

 

That creature runs a script that I want to be able to tell the character he was summoned from. The problem is that it appears that since he is summoned on a hit, InPartySlot(LastSummonerOf(Myself),0) doesn't point to Player1 because he wasn't summoned by player 1.

 

The closest I have gotten is having him use NearestMyGroupOfType([GOODCUTOFF]) but if my characters are all bunched together, it will toggle the wrong one.

 

Any suggestions at all?

Link to comment

I think I have figured it out (it's amazing how a pee break helps with the creative juices...so to speak).

 

Basically this ability is given using the HLA system. It's a "combo" ability. Every time a player connects with a melee attack, a counter goes up one. Once that counter hits 10, he will be able to make a specialized attack within a small period of time, counter resets to 0. I want this to be available to all fighters and barbarians, but if I could not make the summoner determine who is actually hitting, then it is all for naught. Using a set variable doesn't work, because I cannot specify who the variable is for (I use P1COMBO for player1, P2COMBO for player2 and so on).

 

What occurred to me is that I could use the often whispered about but never implemented double summon. Maybe when I have the character take the skill, it immediately summons a creature that then can determine who summoned it and then apply the appropriate Combo skill to it. I'll test it out and see.

Link to comment

Well, it only kind of worked. The problem is that the skill is set at the time of taking it to a specific player slot. If that character ends up being in another slot, then obviously it isn't working as designed.

 

It would be nice if object contained OwnerOf or WielderOf thus, when the weapon sets off the effect, I can then trace it back to who is using it.

 

Back to the drawing board.

Link to comment

As usual, I only have ideas to do with spells and CLABs, that which you want to to with scripting. :)

 

How about this: apply spell1 to a fighter kit at level 1, with permanent timing and using opcode 248 'set melee effect.' The melee effect will be to remove/protect from itself (using either opcode 206 or maybe, on EE, 321) and then opcode 146 to cast spell2.

 

Spell2 will use 248, and the effect triggered on hit will be to remove/protect from spell2 and then cast spell3.

 

Etc. etc. up to spell10, whose on-hit effect will apply a temporary bonus to the player, and then cast spell1, restarting the whole system.

 

By using different effects in spell10 (and 9 different spells to get to each variant spell10), you can nicely distinguish different kits. You could also, I think, apply this to ranged hits for Archers.

Link to comment

That is a pretty good idea. It works for the most part, but does fail in one aspect.

 

I wanted the final hit to give them options depending on what skill they took. IE, max damage next attack or stun next attack, but they won't all be available unless taken.

 

However, I could make it more complex by each having their own set melee effect and then cancelling each other out at 10 and starting fresh. So, if there are 4 possible maxed attacks, there would need to be 40 different set melee effects. It should work in concept. Thank doc.

Link to comment

If anyone was interested in this process and the results, here they are. It was a 95% success.

 

It mostly worked because I also wanted a slow degradation to the skills as well.

 

Your fighter hits and he gets toggled to the next value, and if he hits again within the next 12 seconds, he gets toggled again. However, if he does not hit again, he drops back to the previous level. Something like momentum or adrenaline flowing. It mostly works as I can set a timer on the melee effect, but the is no good way to set a delayed duration on the previous level. IE- if you were up to 4, and time expired, you'd be at 3, permanently. There are ways around it to cast a spell with the duration you want, but that makes you stop meleeing, which is what I don't want. So, really, the only alternative I had was to just drop to 1.

 

So, if you are hitting bad guys left and right and get to 9, and the timer is up, you drop to 1. Not the most elegant solution, but better than what I had prior to the good doc's advice but not exactly perfect.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...