retaliation system

Started by The Crazy Animal, Oct 05, 2007, 01:23 PM

Previous topic - Next topic

The Crazy Animal

I posted this a while ago in the dev section where i've been stashing some of my ideas so I can get to them at work.  However since I haven't changed anything in a while I figured it was at a state that I could present it in here.

I?ve been thinking about this for a while I really don?t like how mmud handled its retaliation time in regards to attacking cloud-able targets. The major thing is retaliation only really matters in pvp since mobs don?t log off and attack back instantly so clouding on them only needs to give the player EP.  In the case of PVP though its different if a good player attacks a good player and remains good the other player needs to be given the opportunity to defend themselves and or attack back at a later time in case of death without the gaining EPs. Its the only reason it even needs to be in the game.

One of the major points of my contention over MMUDs retaliation and EP system was that by hanging up and relogging you could force an opponent to quickly gain EPs. This is something that can easily be adjusted for with some additional logic sets to control the conditions for getting EPs.

A secondary issue was the MMUDs system locked you out of particular areas particularly the bank and a few other key rooms, which can interfere with actual game play. Again this is something that can easily be fixed with some logic sets to control the timers that keep track of retaliation time. And then letting players go where they want.

A new issue has been developed with our rendition of MMUDs system as we have not restricted PVP by a level range. Which makes it so no matter the level difference (i.e the fairness of the fight in terms of character development rather then skill) receives the same retaliation period regardless that it would take a lower level player more time to wear down a higher level player in order for them to mount a successful attack back on them. This is something that can be adjusted for but not fixed without altering the amount of EPs for attacking players of a much lower level. Basically we don?t want level 50 characters running around slaughtering level 10 players for easy pocket change. However I think it should be kept unrestricted via level so the realm can be more self policing of disruptive players.

Adjusting EP via Level differential:

(Defending_P_level ? Attacking_P_level) = Level_Diff
If Level_Diff is less then 0, Then Level_Diff is equal to 0

(Level_Diff/PVP_Level_Weight) = Fair_EP
?Fair_EP should always be a whole number so round it off?
PVP_Level_Weight = 5 by default ?so every 5 levels the attacker is over the defending player the the ep amount goes up?
Note - this could be further weighted by adding a multiplier in such as: ((Level_Diff/PVP_Level_Weight)*2) = Fair_EP

(Fair_EP + Def_PVP_EP_Amount) = Total_PVP_EP


Ok getting back to Retaliation time:

In order for this system of retaliation to adjust to a non level resticted pvp scheme the larger the positive level difference between the attacking player?s level and the defending players level sets the stage for a longer retaliation period. This is mealy a measure to keep PVP within a fair level spectrum while not restricting it completely. Lower level players will take longer to kill a higher level opponent just do to their  higher hp and potentially better gear. were not factoring in skill here.

In addition to that number of attacks with-in a settable time frame increases the retaliation period too. This secondary step is a measure to minimize spam attacking and harassment. Since a player can attack by accident and not be forgiven there is an admin settable variable in order to ensure that players a given a small benefit of a doubt prior to counting them as spam attacking.

Further the Retaliation timer should only be actively counting down when the offending player is online and not in a safe room provided safe rooms stick around. Lastly each new attack should add to the retaliation period if L_attack?s value ?explained way below? equals false. If L_attack?s value is true any addition time append equals the positive difference between the current and new calculated value to the retaliation period. This test ensures that multiple attacks are enforced but not to an abuse-able extent.

In order to make this a transparent system players should know how much retaliation time they have left as well as the current status of some of these other variables listed below so I?d suggest adding an command to retrieve these in the form of a profile page or as additions to their profile.

Retaliation Info:
Retaliation time left: <value>
Grace time left: <value>
Last Player attacked: <Player Name>

?Note ? in the logic sets below I left out the conditions that would define situations such as arena combat to simplify things?

Defining the variables:
Attacking_P_level = Attacking player?s level
Defending_P_level = Defending player?s level
Level_Diff = Difference in levels ?if level difference is less then 0 set it to 0?
Attack_Num = amount of attacks within ?X time ?Settable by the admin.?
Graced_Attack = Default sys forgiven number of attacks ?Settable by the admin.?
D_retali_T = Default retaliation time (in minutes) ?Settable by the admin.?
Blood_Counter = number of attacks a player has committed recently

Calculations and logic:

(Defending_P_level ? Attacking_P_level) = Level_Diff
If Level_Diff is less then 0, Then Level_Diff is equal to 0

On an attack add 1 to Attack_Num
(Attack_Num - Graced_Attack) = Temp_Blood
If Temp_Blood is equal to or greater then 1
Then Temp Blood is equal to Blood_Counter
Else Blood_Counter is equal to 1

Attack_Num logic:
Ever X minutes reduce Attack_num by Y ?both values should be settable by admin, default as X = 30, Y = 1

Example? at default every half-hour the attack_numb variable is reduced by 1 until it reaches 0. So if you have ranked up 6 attacks you will be cleared of those in 180 minutes.?

(Level_Diff+ blood_counter) * (D_Retali_T) = Retaliation Period

?Since blood_counter is always 1 or greater; Level_Diff is free to float from 0 or greater.?

Retaliation Period Logic:
On attack if L_attack equals false add Retaliation Period to Retaliation counter
If true and Retaliation Period is less then Retaliation counter:
If true calculate (Retaliation period ? Retaliation counter) = Retaliation_diff, add retaliation_diff to retaliation counter

?This allows retaliation time to stack in a way so that single attacks are slowly increased and spam attacks are increased in a quicker manner.?

Retaliation counter logic:
If player with this counter active exits realm stop counter
If player with this counter active enters safe room stop counter
If player with this counter inactive enters realm start counter
If player with this counter inactive enters unsafe room start counter.

Part two removing the defending players disconnect advantage as a way of ramping up the attackers EP value unfairly.

The basis of this second part establishes a fair and reasonable amount of time in which the attacker is able to complete his attack before incurring additional EPs. However if the attacker is overly aggressive by making attacks on multiple players that player loses the benefit of this grace period on all attacks prior to the last one.

Variables:
L_attack = Last attacked ?defending? player?s record number
Grace_Counter = Is a time counter ?counts down to 0?

L_attack logic:
If L_attack equals 0 set Grace_Counter to default value
On attack L_attack is greater then 0 start Grace_Counter count down
If L_attack exits the realm stop Grace_counter count down
If L_attack enters a safe room stop Grace_counter count down
If L_attack enters the realm start Grace_counter count down
If L_attack exits a safe room start Grace_counter count down
If L_attack dies set Grace_Counter to 0

Grace Counter Logic:
Grace_Counter = ?admin settable value, defaults at 15 minutes?
If Grace_counter equals 0 set L_attack to 0

EP Logic:
On attack, test if L_attack equals 0
If true, award EPs as normal, Set L_attack to defending players record number, end
If false, test if L_attack equals defending players record number
If false, award EPs as normal, end
If true, end

Examples:
Level_Diff = 9
Blood_counter = 1
D_retali_t = 10
10x10 = 100 minutes.

Level_Diff = 20
Blood_counter = 1
D_retali_t = 10
21x10 = 210 minutes.

Level_Diff = 0
Blood counter = 1
D_retali_t = 10
1x10 = 10 min.

Level_Diff = 0
Blood counter = 2
D_retali_t = 10
2x10 = 20 min.

There are a few things that we could do to improve on this but I think this is a good starting point to work from when revamping our retaliation system.

Points for improvement:
Guard retaliation based on blood counter.
Increasing the amount of grace counters from 1 to say 5 to handle gang warfare and allowing attacked players see a list of their last attacker as well as the retaliation time left on them.

Any thoughts on this or retaliation in general?

Krusty

I read:
PvP and EPs is backwards at the moment - I agree.  Someone tried to script-kill me and the next morning I went from good to FIEND for about a month.
When attacked, should still be allowed to enter safe rooms - disagree.  Plenty of other places to go to.
lvl 50 attacking lotsa lvl 10s is bad - I agree.

DeathCow

One thing I'd like to note, in greatermud "Evil" points will only be adjusted by actual quests.  Actions such as attacking other players and stealing from shops will only adjust your standing with the faction of the victim and/or the area of the crime.  So if a Neutral Druid attacks and kills a Good Priest in the Good Wardancer town, the Neutral Druid will remain a Neutral Druid but he will lose faction points with the Good Priest and Good wardancers.

The Crazy Animal

Quote from: Krusty on Oct 06, 2007, 05:36 AM
I read:
PvP and EPs is backwards at the moment - I agree.  Someone tried to script-kill me and the next morning I went from good to FIEND for about a month.
When attacked, should still be allowed to enter safe rooms - disagree.  Plenty of other places to go to.
lvl 50 attacking lotsa lvl 10s is bad - I agree.


Not that I want to turn this all about safe rooms reply but I've recently thought a lot about them. I use to think safe rooms should be something that should be removed from the game and there should just be one-way out, no way back in deathrooms that randomly teleport players into safe areas to rejoin the game. However I've also done some marathon hand playing and realize that the real function of safe rooms is more about giving the player a place to escape the action of the game without having to actually leave the realm.  Its effectively a pause button for a real time game and using them as such is really the only viable reason for keeping them around.

So I really feel like we should be looking for ways to make them work in the game with out the past abuse-able fuctions from them being there. So removing the ability to wait off evil points is just the start. I.e turn them into a pay per stay type of room or similar solutions.

Quote from: DeathCow on Oct 06, 2007, 01:01 PM
One thing I'd like to note, in greatermud "Evil" points will only be adjusted by actual quests.  Actions such as attacking other players and stealing from shops will only adjust your standing with the faction of the victim and/or the area of the crime.  So if a Neutral Druid attacks and kills a Good Priest in the Good Wardancer town, the Neutral Druid will remain a Neutral Druid but he will lose faction points with the Good Priest and Good wardancers.

This idea though working from the point of pvp and player interaction though rather then from the point of PVE which would include those factions. However when/if players are able to join mob faction group this would need to be altered to work with that as well.

Oaco

Quote from: The Crazy Animal on Oct 06, 2007, 06:53 PM
Not that I want to turn this all about safe rooms reply but I've recently thought a lot about them. I use to think safe rooms should be something that should be removed from the game and there should just be one-way out, no way back in deathrooms that randomly teleport players into safe areas to rejoin the game. However I've also done some marathon hand playing and realize that the real function of safe rooms is more about giving the player a place to escape the action of the game without having to actually leave the realm.  Its effectively a pause button for a real time game and using them as such is really the only viable reason for keeping them around.

So I really feel like we should be looking for ways to make them work in the game with out the past abuse-able fuctions from them being there. So removing the ability to wait off evil points is just the start. I.e turn them into a pay per stay type of room or similar solutions.

This idea though working from the point of pvp and player interaction though rather then from the point of PVE which would include those factions. However when/if players are able to join mob faction group this would need to be altered to work with that as well.

A way to repent for your sins would be to donate cash to the faction that you want to be better off with.  This ties into the economy as well.

The Crazy Animal

Quote from: Oaco on Apr 05, 2009, 07:03 AM
A way to repent for your sins would be to donate cash to the faction that you want to be better off with.  This ties into the economy as well.

Not a bad idea at all... Might make it a little to easy to go from evil to go though. Maybe it could be pay for repentance quest where you donate and then still have to do something.