Skip to content
This repository

Hometown Penalties #35

Closed
wants to merge 3 commits into from

4 participants

M59Gar Sarevok David Klawitter Meridian59
M59Gar

This commit adds a system.kod setting pbHometownPenaltiesEnable. If TRUE,
non-angeled players that take a logoff penalty will be sent to their
hometown instead of the room's blink coordinates.

Angeled players are not affected. They will go to the room's blink
coordinates in either case.

M59Gar added some commits
M59Gar M59Gar Hometown Penalties
This commit adds a system setting pbHometownPenaltiesEnable. If TRUE,
non-angeled players that take a logoff penalty will be sent to their
hometown instead of the room's blink coordinates.

Angeled players are not affected. They will go to the room's blink
coordinates in either case.
6d54587
M59Gar M59Gar Chalice Fix
Cannot be used by outlaws/murderers now, previously the chalice
prevented all non-angeled players from using it.

Also fixed some comments, and an in-game text message, to reflect the
change.
01f5803
M59Gar M59Gar In-Combat flag added
This adds a 2 minute In-Combat flag, separate from all other timers, for
use in future additions and changes.

The flag currently does not interact with anything else, and is not set
or used by any code yet.
4cf9bf6
Sarevok

Would this be the right place to state that I disapprove of this proposed change?

David Klawitter

Technically you can't vote things down on GitHub but you can use emoticons like :thumbsdown: by typing ':' and letting the popup guide you. Make sure you back it up with a reason too.

Sarevok

Well, I don't understand why this change is proposed, and I wouldn't want to come out come out at my hometown.

Then again I've never PvP'd, so if this is so that you can save yourself in PvP then I apologize and I'm for it.

Also, sorry for asking this here, but I can't find it anywhere: How do I send someone a private message?

David Klawitter

I don't think it's possible to send private messages on GitHub. If it's an issue with a particular commit or pull request you should probably just comment on it here in the interest of being open.

It's been quite some time since I've played and even longer since I was actually involved in PvP but I'm a little confused by this change as well as it doesn't seem to discourage logging, but what do I know.

M59Gar

This doesn't discourage logging. This is a nerf to the practice of using multiple characters as extra power. Right now, players can simulate the Hometown Penalties ability by logging on the next character they own. That new character is safe in the inn, equipped, prepared, and ready to go. By giving all players the ability to log back on in the inn once they take a pen, we remove the imbalance. This also keeps people from being 'locked out of the game' by enemies camping them.

This is only one step in the Ghosts & Penalties changes package. I was asked to post it one step at a time.

Step two is Instant Penalties. This involves removing ghosts altogether for characters that are in combat AND who are also in a War, are Soldiers, or are Murderers (ie everyone in combat who is not an innocent). These players will penalize instantly the moment they log off, provided they are in combat. This, too, is a nerf to the power of having extra characters, as well as to the abuses of 'muling' with other characters. Penalizing a logger instantly prevents them from saving themselves with abuses. (We've extensively discussed this for years and have many further thoughts on all the resulting complexities and effects - it should all be highly positive - nobody likes logoff ghosts).

Step three will be Flat Penalties. That involves eliminating free penalties altogether, for everyone non-angeled, and making all penalties 1 item, 2% spells, 2% skills. This, too, is a nerf to the power of using extra characters. Right now, every character gets one free penalty a day. That means an individual player has as many free penalties as he has characters. More characters = more power. Eliminating that by flattening penalties eliminates this advantage. It also reintroduces risk to PvP... because right now, people only PvP until their free pens run out, and then are forced to stop for the day.

As you can see, all of these things work together, resulting in Instant, Flat, Hometown Penalties, so that logging off will send you to your hometown with an instant flat penalty. This pretty much matches exactly the effect that players will already achieve by logging on an extra character: that character appears in the inn instantly. Only, now, nobody will have a free pen per character, and nobody can 'undo' a loss by fighting over their own logoff ghost.

Finally, I'd like to cement this change by eliminating logging altogether, using a command called 'recall'. This command, put in by the player, will send them to their hometown and penalize them instantly, in exactly the same manner as logging off, without ever needing to close the client. This is only possible with Instant + Hometown penalties, and only advisable with Flat penalties.

In such a manner, we will have largely eliminated the advantage of owning multiple characters, and completely eliminated logging while keeping the 'tiered loss' system we currently have (people like having a large chance of logging someone with a small chance of outright killing them, keeps things adrenaline-inducing).

So that's what this is.

David Klawitter

Can't argue with that logic. I guess in a sense I'm a purist but I guess things need to be updated to fit the play style, however much I disagree with it. Thanks for the context.

:thumbsup:

M59Gar

What's the playstyle / purist mindset? I'd love to come up with better - this is really what I play for, these systems of logic and sociological consequences. Would love a new consideration to take into account.

David Klawitter

It's a pipe dream. A world without logging or players managing 4 characters in a fight. People need to take their licks (and die) but since that's never going to be the case I think the direction this is going is an appropriate way to balance things out.

M59Gar

Maybe so, but I aim to make one character equal to several. My full pipe dream is to have Flat Instant Hometown penalties that send you to the inn with full health and mana refresh, as well as vault and merchant spells to quickly withdraw or buy gear you lost in a penalty. If one character is exactly the same as five in terms of bouncing back into battle, and muling spells are changed or eliminated, I believe there won't be any opportunity for managing 4 characters in a fight.

Then we make building fun (since players will rebuilding often if they can't escape penalties with abuses), improve loot tables and certain imps while removing bait & firewall boringness... maybe we'll have a fully functioning game and community.

That's my pipe dream :) I will eventually make my own server if it isn't a fit for 101, so I don't hope to pressure others into all this. We've just had a very, very, very long time to think of potential changes.

Meridian59
Owner

Two comments:

  • The enable/disable flag should go in settings.kod, not system.kod.

  • What is the chalice fix doing in here? Please remove it (I already merged it elsewhere anyway). I'd much rather have individual changes separated to speed up reviews and make merges easy.

Meridian59

Fix indentation... they don't line up (tabs?)

Meridian59

Add a comment here describing what this setting is for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Showing 3 unique commits by 1 author.

Jan 22, 2013
M59Gar M59Gar Hometown Penalties
This commit adds a system setting pbHometownPenaltiesEnable. If TRUE,
non-angeled players that take a logoff penalty will be sent to their
hometown instead of the room's blink coordinates.

Angeled players are not affected. They will go to the room's blink
coordinates in either case.
6d54587
Jan 28, 2013
M59Gar M59Gar Chalice Fix
Cannot be used by outlaws/murderers now, previously the chalice
prevented all non-angeled players from using it.

Also fixed some comments, and an in-game text message, to reflect the
change.
01f5803
M59Gar M59Gar In-Combat flag added
This adds a 2 minute In-Combat flag, separate from all other timers, for
use in future additions and changes.

The flag currently does not interact with anything else, and is not set
or used by any code yet.
4cf9bf6
This page is out of date. Refresh to see the latest.
30 kod/object/active/holder/nomoveon/battler/player.kod
@@ -118,6 +118,9 @@ constants:
118 118 % What's the maximum stat we can have after modification?
119 119 MAXIMUM_STAT = 70
120 120
  121 + % This is the length of the recent combat flag
  122 + RECENT_COMBAT_WAIT = 2 * 60
  123 +
121 124 resources:
122 125
123 126 player_cant_broadcast = \
@@ -953,6 +956,10 @@ properties:
953 956 % Used to construct a string for their description.
954 957 plDonationYears = $
955 958
  959 + % This flag is for keeping track of immediate combat. Default setting is 2 minutes in RECENT_COMBAT_WAIT
  960 + % Should be kept short-lived to accurately reflect whether a player is in or out of combat.
  961 + piRecentCombatFlag = 0
  962 +
956 963 messages:
957 964
958 965 Constructor()
@@ -12320,6 +12327,29 @@ messages:
12320 12327 return;
12321 12328 }
12322 12329
  12330 + % Recent combat flag erased upon taking a penalty to prevent problems
  12331 + EraseRecentCombatFlag()
  12332 + {
  12333 + piRecentCombatFlag = 0;
  12334 + return;
  12335 + }
  12336 +
  12337 + % Used to set the recent combat flag (often called for both attacker and victim)
  12338 + SetRecentCombatFlag()
  12339 + {
  12340 + piRecentCombatFlag = GetTime();
  12341 + return;
  12342 + }
  12343 +
  12344 + GetRecentCombatFlag()
  12345 + {
  12346 + if (piRecentCombatFlag + RECENT_COMBAT_WAIT) > GetTime()
  12347 + AND NOT Send(SYS,@GetChaosNight)
  12348 + {
  12349 + return TRUE;
  12350 + }
12323 12351
  12352 + return FALSE;
  12353 + }
12324 12354 end
12325 12355 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 kod/object/active/logghost.kod
@@ -220,9 +220,20 @@ messages:
220 220 #wave_rsc = LogoffGhost_poof_wav_rsc);
221 221 }
222 222
223   - % Send this person to the room's blink coordinates. This helps get
224   - % people out of continuous crash situations and mounting penalties.
225   - Send(poGhostedPlayer,@AdminGoToBlink);
  223 + % Send this person to the room's blink coordinates, or to their hometown if
  224 + % the Hometown Penalties setting is on and the player is not angeled.
  225 + % This helps get people out of continuous crash situations and mounting penalties.
  226 + % Hometown Penalties is intended to keep PvP players from being 'kept offline' by opponents.
  227 +
  228 + if Send(poGhostedPlayer,@CheckPlayerFlag,#flag=PFLAG_PKILL_ENABLE)
  229 + AND Send(SYS,@GetHometownPenaltiesEnable)
  230 + {
  231 + Send(poGhostedPlayer,@AdminGoToSafety);
  232 + }
  233 + else
  234 + {
  235 + Send(poGhostedPlayer,@AdminGoToBlink);
  236 + }
226 237
227 238 Send(self,@Delete);
228 239
7 kod/object/item/passitem/chalice.kod
@@ -28,7 +28,7 @@ resources:
28 28 chalice_use = "You sip a bit of the water out of the Chalice of Rain."
29 29 chalice_empty = "You sip the last bit of water from the Chalice of Rain."
30 30 chalice_combine = "You pour the water from one Chalice into the other."
31   - chalice_cant_use_pkill = "Only innocents who forswear human combat may partake of the chalice."
  31 + chalice_cant_use_pkill = "Only innocents may partake of the chalice."
32 32
33 33 classvars:
34 34
@@ -116,9 +116,10 @@ messages:
116 116 {
117 117 if (IsClass(what,&Player))
118 118 {
119   - % Prevent use if you're pkill enabled. This is because player killers
  119 + % Prevent use if you're red. This is because player killers
120 120 % were using this to escape too easily after kills.
121   - if Send(what,@CheckPlayerFlag,#flag=PFLAG_PKILL_ENABLE)
  121 + if Send(what,@CheckPlayerFlag,#flag=PFLAG_MURDERER)
  122 + OR Send(what,@CheckPlayerFlag,#flag=PFLAG_OUTLAW)
122 123 {
123 124 Send(what, @MsgSendUser, #message_rsc = chalice_cant_use_pkill);
124 125 return FALSE;
7 kod/util/system.kod
@@ -329,6 +329,8 @@ properties:
329 329 piLogoffPenaltyDecayTime = 12
330 330
331 331 pbLogoffPenaltyEnable = TRUE
  332 +
  333 + pbHometownPenaltiesEnable = TRUE
332 334
333 335 % At this value of the player's penalty counter, penalties are as severe as
334 336 % death.
@@ -5658,6 +5660,11 @@ messages:
5658 5660
5659 5661 return getTempString();
5660 5662 }
  5663 +
  5664 + GetHometownPenaltiesEnable()
  5665 + {
  5666 + return pbHometownPenaltiesEnable;
  5667 + }
5661 5668
5662 5669 GetLogoffPenaltyEnable()
5663 5670 {

Tip: You can add notes to lines in a file. Hover to the left of a line to make a note

Something went wrong with that request. Please try again.