Author Topic: XP OnDeath Only awarded for Participants in Combat  (Read 1093 times)

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #15 on: April 24, 2014, 11:30:48 pm »


               

So in the example of the rogue and fighter above credit for each kill depends on the amount of interaction that each PC has with each NPC. So if say the rogue was spotted by the creatures while scouting and targeted, then the rogue would be flagged as a participant in combat with each of those creatures that targeted them. Then when the PCs attack they'll get credit for each one they damage, or target with a hostile spell.



 


The rogue wasn't spotted or targeted at any point.  He scouted them, the fighter charged in to distract them (so the rogue never gets attacked), and the rogue flanked them one time at a time.  He kills more than the fighter but only directly interacts with some of the mobs (say 70%ish since the other 30% are killed solely by the fighter).  Excellent tactics and an easy fight as a result.


 


Should the rogue get experience from 70% of the mobs (that he attacked) or 100% of the mobs (the mobs his team killed)?  I'm not worried about the technical implementation yet, I'm asking what you WANT to happen.



               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #16 on: April 25, 2014, 12:15:23 am »


               

I would want both the fighter and rogue to be awarded equally since they both fully participated.



               
               

               
            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #17 on: April 25, 2014, 03:59:44 am »


               

So you are saying XP occurs when:


 


Character is in close proximity of the target (likely means that combat tactics were involved)


Character conducted or received a physical attack from the target


Character cast a spell on the target


 


And XP is not rewarded:


 


When a character is in another area or a very long distance away from the target (e.g. the AoE landscaping design)


 


 


So just check creatures within a short distance (automatic XP) and within a longer distance (XP is only given if there was interaction with target).   All this would exclud would be the characters that buff long ranged attackers.  Given that summons pretty much always get close to their target, this should really only be an issue when dealing with multiple PCs.



               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #18 on: April 25, 2014, 06:31:00 am »


               


 


So just check creatures within a short distance (automatic XP) and within a longer distance (XP is only given if there was interaction with target).   All this would exclud would be the characters that buff long ranged attackers.  Given that summons pretty much always get close to their target, this should really only be an issue when dealing with multiple PCs.




This is a solid first-order solution. By that, I mean that it deals with the initial problem, but fails to deal with how players will adjust to it. As soon as players work out the mechanism, it becomes exceedingly easy to ex$plo#it.


 


Funky


               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #19 on: April 25, 2014, 07:58:42 am »


               


I would want both the fighter and rogue to be awarded equally since they both fully participated.




 

New scenario.  There's a group of melee mobs and a mage mob at range.  On the PC side is a fighter and mage.  Fighter charges in, gets attention of mobs, mage drops an AoE.  Fighter finishes off melee mobs and runs another 20 yards to reach and kill the enemy mage.  PC mage doesn't touch the enemy mage since it's unnecessary, he just AoEd the main group.  Should the PC mage get XP for the enemy mage that the fighter kills?


 



So just check creatures within a short distance (automatic XP) and within a longer distance (XP is only given if there was interaction with target).   All this would exclud would be the characters that buff long ranged attackers.  Given that summons pretty much always get close to their target, this should really only be an issue when dealing with multiple PCs.



 


Could just put a rogue in stealth at short distance and get free XP.  Or if you check for stealth/invis/etc could just stand nearby and get XP without any interaction.


 


So it definitely excludes a lot more than just characters that buff long ranged attackers.



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #20 on: April 25, 2014, 01:11:09 pm »


               


This is a solid first-order solution. By that, I mean that it deals with the initial problem, but fails to deal with how players will adjust to it. As soon as players work out the mechanism, it becomes exceedingly easy to ex$plo#it.


 


Funky




This will be always the case. Long time ago, I played at one rp server which tried to implement this and whatever they did I was always able to exploit that and abuse to powerlevelling.


 


I think that the classic method of the distance check is fine - if you make your monsters to require help of more peoples and not  to be one-shot killed its a good chance the second pc will join the battle as well. Or if you rescript the monster targetting from nearest to most vulnerable. Instead of checking whether the second PC cast spell or damaged monster physically, make the moster to cast spell/damage him!


 


I believe this is problem only for a very static and hack&slash style of areas/modules. This is why diablo sucks so much and is overcrowded with bots.  BTW Funky when you say bots, you mean secondary logins with autofollow or your really found an automated bot playing as regular PC on your server?



               
               

               
            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #21 on: April 25, 2014, 04:22:50 pm »


               


 


So it definitely excludes a lot more than just characters that buff long ranged attackers.


 


You got the opposite.  Stealthers that go near the target will be included.  Buffers of long ranged attackers too far away would be excluded.  The inclusion problem is a separate issue.


               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #22 on: April 25, 2014, 04:22:59 pm »


               


 

New scenario.  There's a group of melee mobs and a mage mob at range.  On the PC side is a fighter and mage.  Fighter charges in, gets attention of mobs, mage drops an AoE.  Fighter finishes off melee mobs and runs another 20 yards to reach and kill the enemy mage.  PC mage doesn't touch the enemy mage since it's unnecessary, he just AoEd the main group.  Should the PC mage get XP for the enemy mage that the fighter kills?




 


No, because the PC mage did not engage the NPC mage.


               
               

               
            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #23 on: April 25, 2014, 04:34:22 pm »


               


This is a solid first-order solution. By that, I mean that it deals with the initial problem, but fails to deal with how players will adjust to it. As soon as players work out the mechanism, it becomes exceedingly easy to ex$plo#it.


 


Funky




 


Servers can also have policies too.  Scripts can't do everything.  If there is a stealther hidden next to the killed creature, it is difficult to ascertain by scripting if he was or was not intended in the strategy of the kill.  The fighter and rogue strategy that MM brought up could apply to a single creature.  A rogue is hidden and the fighter attacks the creature allowing for the rogue to sneak attack. However if the fighter dev crits it initially there is nothing for the rogue to sneak.  Henesua's interpretation leans on participation in the tactics, if things are coordinated then XP should be given.  From a scripter's angle one cannot tell the difference between participation and non-participation unless specific agreements (parties or the like) were known before hand.  If an independent hidden character is there, then he might not be accounted for in the attack and might suffer from AoEs, a risk he would likely have to assume.


               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #24 on: April 25, 2014, 05:04:11 pm »


               


This will be always the case. Long time ago, I played at one rp server which tried to implement this and whatever they did I was always able to exploit that and abuse to powerlevelling.


 


I think that the classic method of the distance check is fine - if you make your monsters to require help of more peoples and not  to be one-shot killed its a good chance the second pc will join the battle as well. Or if you rescript the monster targetting from nearest to most vulnerable. Instead of checking whether the second PC cast spell or damaged monster physically, make the moster to cast spell/damage him!


 


I believe this is problem only for a very static and hack&slash style of areas/modules. This is why diablo sucks so much and is overcrowded with bots.  BTW Funky when you say bots, you mean secondary logins with autofollow or your really found an automated bot playing as regular PC on your server?




It's not always the case, actually. It will of course always be a factor, but there are many things you can do to hinder ex@plo&it)ers besides throwing your hands up and declaring it inevitable. It just takes a lot more thought and a lot more complicated coding. In pretty much every area we've tackled in that regard, we've managed to come up with an acceptable compromise between cost and benefit that dealt with the issue at hand pretty effectively. The question is not if it's possible, just how, and at how much cost in development time.


 


In this case, my fear is that it's going to cost rather a lot. I'll elaborate on that after I explain my situation.


 


We have a pretty large playerbase, even now, and they're fairly adept at finding and using exploits, as many of them are pretty veteran gamers, familiar with programs like C**********e. They also tend to possess nifty toys like programmable gaming keyboards, with some pretty amazing macro capabilities. They use them to play up to eight characters at once, in some cases, and a number of them can play two characters simultaneously pretty much flawlessly.


 


My goal isn't to single out all such cases, which would be an enormously difficult and time-consuming undertaking that would no doubt create an immense amount of overhead and likely some skewed incentives to boot. My goal is just to single out characters that are effectively leeching, or being dragged along for reasons I consider invalid. In particular, I want to avoid creating an incentive to drag additional toons along on runs in our forthcoming area set, Limbo, because I want to introduce a WoW-like quest reward system that gives currency-style items to players simply for completing runs. Absent some discrimination between bot and non-bot, that would introduce an incentive to drag along excess bots up to the party limit simply for more loot.


 


Like the OP, I'm not much interested in debating 'can' or 'should', only 'how'. I'm still hoping for an elegant low-dev-cost solution, though I anticipate having to involve a fair number of events (ondeath, ondamaged, onspellcastat, the spellhook, etc) to do this type of detection. I've looked through dozens of player-generated logs from runs done on the server, and the bots are readily detectable to the human eye in terms of a number of vectors like damage output, kills, deaths, damage taken, and so on, but some of the things their loggers scan through are not directly accessible to nwscript, which is why that approach is likely going to take rather a lot of time, and why I'm looking for alternatives.


 


Funky



               
               

               
            

Legacy_BelowTheBelt

  • Hero Member
  • *****
  • Posts: 699
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #25 on: April 25, 2014, 05:12:21 pm »


               

I've been kind of thinking of an idea I'm tentatively calling the 'Combat Role System'.  This establishes different roles within combat that might be served and applying xp multipliers based on those.  I don't know if this is specifically what you're interested in, but I'll explain it anyway - maybe it will spark some other ideas.  Essentially, the thinking is that xp has 2 components:  Distance and Role.


 


Begin with your current distance-based xp system and cut those rates to a very low minimum.  IMO, everyone on a battlefield that is somewhat close to a battle gets some measure of experience (based on the premise that being exposed to combat makes you more aware of combat tactics, which makes you more experienced).  This base number is what possibly gets leeched.


 


Then, you add xp multipliers for different 'roles' or combat tiers that the PCs may play during the battle.  In this way, you incent behaviors you want to see.  These tiers are hierarchial and once a PC earns a tier in combat, they can't get bumped down to a lower tier for that creature. And, they only are assigned 1 Role during the combat for that creature (whichever is the highest role they achieved).


 


Each combat role has a different multiplier.  What's more, this multiplier is based off a different xp base from the distance-based xp system.


 


Combat Roles could include:


  1. Killer (3x multiplier)

  2.    
  3. Damager (2x multiplier)

  4.    
  5. Combat Medic (2x multiplier)

  6.    
  7. Buffer (1.2 multiplier)

  8.    
  9. Participant (default - no multiplier)

  10.    
  11. Non Participant (outside of distance area or exceeds level-gap - no xp)

 


For example:


Fighter, thief, mage, cleric of equal level meet a band of 7 orcs:


 


Fighter rushes in to attack, thief goes to flank, mage begins to cast fireball, and cleric casts bless.


 


Before the cleric finishes his spell, Fighter kills the first orc in 1 slash, earning him the 'Killer' role for that creature.  The base distance xp system earns him 3xp, which is the same that everyone in the distance radius recieves.  However, since he was the Killer, he gets to dip into the Combat Role System, which evaluates the CR of the orc and says that the base xp for that creature is 5 * his role multiplier.  As Killer, his muliplier is 3, so he earns 15 for the kill, plus 3 for the distance-based xp = 18 total for the kill.  All other party members recieve 3 for the kill.  


 


Before the next orc drops, the cleric finishes his blessing, thus earning himself Combat Role System xp as well for the remainder of the combat, at least within the 'Buffer' tier (for creatures of this low CR, it only means an additional +1 xp point, though).


 


Mage's fireball immolates 4 of the remaining orcs (and severely damaging the thief).  So he earns 72xp for the kills (4orcs x 18xp), while the other PCs earn 12 (4x3) each (the cleric earns an additional +4xp per his 'Buffer' role).  Further, the mage has damaged the remaining 2 orcs, earning him a 'Damager' role on those two.  If he manages to get some magic missles off and kill them before any others, he'll be  promoted to Killer for any he actually kills, but he can't ever go lower than 'Damager' for those 2.


 


The thief, smoking greatlly and brows afire, eviserates one of the orcs from behind.  He's now the Killer, earning 18xp while the others earn 3.  Additionally, the mage, as the 'Damager' earns a multiplier of 2, earning him +10xp (13 total).  And, the cleric earns +1xp as the 'Buffer' (4 total).


 


Nex, the cleric rushes in and casts CMW onto the thief, healing him.  He has now been promoted from 'Buffer' to "Healer' in the combat, increasing his multiplier for the remaing orc.


 


When the fighter finally dispatches it, the fighter earns 18 (Killer), the mage earns 13 (Damager), the cleric earns 13 (Healer), and the thief earns 3 (Participant).


 


Total xp earned in the encounter is:


Fighter:  51


Thief: 46


Mage: 101


Cleric:  36


 


Technically, it might look like this:


  • When damaged, a local int is written to the creature using a unique ID for the damaging PC.  This is the 'Damager' tier.

  • When a PC is healed while in combat (and the PC actually needs healing), a local is written to nearby creatures.  This is the 'Combat Medic' tier.

  • When a buff spell is cast while in combat, a local is written to nearby creatures.  this is the 'Buffer' tier.

  • OnDeath, the killer is the 'Killer' tier.

 


OnDeath, the distance-based xp system fires, granting small xp to each PC.  It also checks that creature for a local equal to the unique idenfier for the PC.  if found, the value of the local is the tier and the Combat Role xp system fires, granting additional xp to the PC based on a secondary CR table and the Role multiplier.


               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #26 on: April 25, 2014, 05:45:59 pm »


               

My concern wtih that type of approach is that it would probably cause different types of classes to level at very different speeds, until it was very fine tuned. I think I favor a 'gateway' approach giving a player either a full share or no xp based on certain criteria. My reason for liking that approach is the incentives it creates. If you begin with it too restrictive, you're certain to hear squawks from players not getting xp, and you can quickly adjust as needed. In a nutshell, the more all-or-nothing the handout is, the easier it will be to spot problem cases, early on. Of course, the corollary to that is that anyone who does find an ex*plo(ta#tive way of play will benefit more than under your gradated system, until it's sussed out, but many of our players are pretty good about reporting that sort of issue.


 


Funky



               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #27 on: April 25, 2014, 07:56:59 pm »


               

Allow me to ramble in response to Below the Belt's suggestion.


 


Vives' (an old, retired PW) had a XP reward system similar in some respects to what Below the Belt mentions. It took a long period of experimentation (the full 8 years it was live '<img'> ) to get in a reasonable shape, and I still think it is not perfect, but I liked the approach and so decided to continue with a version of it in the module I am working on now (a remake of Vives with all new lore, gods, areas etc..). I posted this thread as part of my work on one category in the mix ("Combat" aka Kills). Why I like this system is that it rewards different types of behavior at different rates for each class. Its a hell of a lot of work for a builder to insert enough content for each category, but as a player I loved it.


 


And to clarify my point of view, I was never a developer of the original Vives - Vaei and Ara were the creative spark with a large team all contributing a great deal - so I am speaking primarily as a player rather than as a server admin. I did get to play with this when I put Vives back on line in 2010 and also played with it in Arnheim (during 2012) but these experiences were with a small player base already accustomed to the system.


 


What Vives' XP system includes:


  • Several categories of XP (roleplaying, discovery, kills/combat, skill use, spell use, crafting, and a few miscellaneous others).

  • Each class has a different percentage in each of these categories with multiclassing resulting in weighted averages depending upon how many levels you have in each class.

  • Each reward carries with it an ID so that some rewards are 1 time only (discovery works this way), others degrade with repeat performances (kills work this way). So each time you kill one of Syn's Creepers the amount of XP gained is reduced toward a minimum value. When you enter a new area or special location within an area for the first time you get an award and then never again.

  • The differential in XP rates between classes is much tighter than Below the Belt suggested. Each class has a percentage in a category from 30% to 100%. Example: a wizard gains 30% from "kills" but 90% from spell casting. a fighter gains 100% from "kills" but 30% from spell casting. A pure fighter can't cast spells so can not gain XP that way, but a fighter-wizard can in which case the percentage is averaged.

 


Now to relate this with what Funky said: I think Funky is correct - especially if you only hand out combat XP. And thats what you appear to be describing, BtB. The source of the XP is combat, but different roles in combat provide XP dependent on the challenge of the monster. With multiple paths toward earning XP however each with different rates based on role/class I think you have the tools to even it out. Vives never got it perfect, and the system has lots of potential loop holes for smart players to take advantage of, but in my view its a fun experiment to participate in, and seems to encourage wider ranges of play types.



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #28 on: April 25, 2014, 10:45:38 pm »


               


You got the opposite.  Stealthers that go near the target will be included.  Buffers of long ranged attackers too far away would be excluded.  The inclusion problem is a separate issue.




I was using the phrase in the manner you were, namely "That fixes all the problems excluding buffers of long range attackers" into "That fixes all the problems excluding buffers of long range attackers, stealthed/invis/etc people, people just chilling in melee, etc."


 




No, because the PC mage did not engage the NPC mage.




All right.  And in what manner did the rogue engage the 30% of enemies in the previous example?  Why does the rogue get XP for creatures he never engaged but the mage doesn't get XP for creatures he never engaged?  Again, I'm not trying to convince you otherwise but we need to know what you view as the difference as this distinction is critical for getting the system to work how you want.


 




Total xp earned in the encounter is:


Fighter:  51


Thief: 46


Mage: 101


Cleric:  36




That result sounds absolutely horrible and also creates perverse incentives -- cleric is better off dropping a hammer of the gods at the start of the fight to get Damager status and then AFK and contributing nothing.


 




My concern wtih that type of approach is that it would probably cause different types of classes to level at very different speeds, until it was very fine tuned. I think I favor a 'gateway' approach giving a player either a full share or no xp based on certain criteria. My reason for liking that approach is the incentives it creates.




Indeed.



               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
XP OnDeath Only awarded for Participants in Combat
« Reply #29 on: April 26, 2014, 12:19:50 am »


               

I am not sure you will be able to help me, MM, until you understand this


The criteria for a reward is active participation.