-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Customer Service #1247
base: master
Are you sure you want to change the base?
Customer Service #1247
Conversation
…to push these to the repo and sort out issues with it all later; hopefully, nothing has changed except for the csr stuff
…rovements, especially for accommodating csr spectator mode
… spectating, including a wide variety of their behavior such as location, weapon management, etc.; removes zoning cancel messages as a required log from certain use item actions
So I was able to get some testing in today and the following are my findings. Most of the functionality appeared to work as intended. Can't be sure I tested everything, but I did try to test the things you mentioned at least. The core stuff appeared to work, and as a result I'll mostly be talking about fringe cases.
That's it for now, I'm sure Deth will find something I did not. |
|
Sorry I should have clarified further from "suffered from collision", and it appears in my haste to get that typed up I also missed out "when spectating as CSR". There was no damage but I found myself bumping into, being displaced by, and being unable to pass through other characters who were not spectating. So yeah was bumping into others characters as a spectator in CSR mode. |
Fixes have been applied, as per comment above:
In addition, I reversed my position of In addition again, purchase timers for the CSR player should have less of a chance of interfering with purchases. Chat is still busted and I have no prospects of fixing it right now. I'm working on tests for (6) just to make certain I am aware of conditions where this issue may arise. |
… door code from general operations
Apparently, "the conditions where this issue may arise" are every time. I did what for it that I could. |
Yeah, I can't do anything if it's that. Modern computer telephony and Internet architecture is no match for ancient packet deviltry.
You technically can't mount the turret because it is NEUTRAL and you are still whatever faction you belonged to at the start. That's why the empire insignia on the base is replaced with a white square.
They cause you no damage or they cause no other target any damage? If they do shoot at you, it might be a problem anyway.
Once again, the mine is NEUTRAL and you belong to a faction, and that's why they go off instantly. In fact, this moment of detection upon placement is the only time where the mine will detonate on its own initiate and not because a player or vehicle dared to move and exist too close. "Move" is the operative words in that condition. Otherwise, your CSR-privileged player does not interact with the zone like that. I'll check about any other player being a target of it's effect.
I did hide a lot of messages in CSR mode, though I don't know what happened to this one.
Intended. In fact, because it is ownerless, it originally only had a default three minute decay. I had to intentionally tell it that it has a twenty minute delay.
Intentional and not a big deal. Being able to place deployables as a CSR is all about setup, not combat.
Totally keeping this bug, whatevere it is
No, I noticed this too. Since the unstoppable side-strafe bug is an old client issue, solving the actual problem is beyond us. It did give me an idea about how we might finagle use from it with |
invisible.mp4
DCfromBFR.mp4A few relogs later I couldn't enter my previously owned Fury and all my ammo was down to 1 for each weapon. Toggling GM on gave me my inventory items/ammo back, but still couldn't enter these vehicles because I was missing the certs for them now? Probably related to issue 7. |
2024-10-31.10-09-27.mp4The spit tracks but doesn't fire unless fired upon first. It doesn't do damage to character avatars, nor vehicles whilst they are occupied. It does however damage empty vehicles? Also something I found here; knives don't deal damage in CSR mode. |
…ty using zone interaction allowance flag; visibility during resurgence code for csr; removing messages and experience gain for interactions with csr
The knifing issue was actually a range issue that has probably persisted in the server for a while. The difference between normal stabbing distance and testable stabbing distance was some one-hundreth of a meter against, and this did not affect the katanas because the katana's test against one extra meter. It's still possible to make knife stabs connect with the target within the correct distance but it's hard to do when standing still, probably easier to do when constantly moving towards the target since that causes temporary overlap. In any case, the solution was an additional meter on the testable stabbing distance by increasing projectile lifespan. I discovered that the spitfire refactor had a few issues and corrected them. For starters, rather than isolating a target when no existing target can be found, it would incorrectly return no projectile information and that short-circuits the whole process. Secondly, because it looked for having no target to cause damage rather than a confirmed target to cause damage, it only caused damage against a target the first hit and no time after that. Changes to how player characters interact with the blockmap has resulted in CSR's not being interactive with environmental fields anymore. These changes have also allowed other entities that probe the blockmap to never encounter these "uneffected targets" while they are now allowed to remain as blockmap entities. Killing a CSR player should no longer result in experience gain and suppress some other messages, in the logs especially. Also, the player should remain visible, hopefully. Incidentally, as a CSR, if you drive a vehicle into lava, you will more easily see an understated feature of how lava damage was coded and the amount of damage a target receives is related to the depth of the target. Health is restored to the vehicle near instantly; but, the amount of health stripped off the vehicle in one go is easily visible in the brief moment of red status; and, the deeper the vehicle is driven, the larger that momentary red status. Driving around the crater allows the user to watch the health of the vehicle seasaw with depth. It's even possible to do this with an ATV without destroying the ATV. |
By the way, I was unable to confirm an unfocused game window causing a build-up in damage as was suggested. I only had one instance of two ticks of damage before the CSR auto-heal kicked in. Personally, I find it strange that it happened at all. |
Hmmm, it appeared to coincide with that when it happened for me. But it is true I couldn't get it to replicate consistently either. Chalk it down to "because PlanetSide" I guess? Whatever the cause, I did describe it as a fringe case so I doubt it'll go on to cause problems. |
…iously all considered a form of mounting/dismounting, and restored support experience rewards
I corrected the issues in #1245 here in CSR because I wanted to correct the issue but then realized that I changed a part of the code critical for the bug fix in this PR. |
Router and router pad SEP works. Zoning in spectator mode doesn't work properly. You end up in some inbetween state with broken weapons and inventory: SpectatorZone.mp4Toggling GM while being dead can lead things like being stuck on the map screen if you attempt to use /zone. GMtoggle should probably be disabled whilst dead? GMtoggleRev.mp4 |
That's normal spectator mode, correct? not csr spectator? |
Just tested this myself and it appears to be during just normal spectator. |
Yep normal spectator mode. |
This was amusing 😄 Do these deaths actually count against the gm? |
My comment about spectators in only still partially true. They no longer become visible to others upon zoning (thus can't be shot at), but the avatar/inventory issue is still there. Should have fully tested here too... |
…spectator removes spectator and defaults to sanctuary
For the record, attempting to zone as a spectator deactivates spectator mode and returns the player to their sanctuary. |
As Fate said, attempting to /zone while a spectator did send me to sanc. |
…ang command 'setempire' will adjust the faction affiliation of a variety of game objects
A field turret constructed by a CSR-level player is now completely neutral. Although it's mounted weapon can not be seen or interacted with, that's merely a limitation of the client. The default field turret weapon is just a transparent parent object from which the faction others are instanced. It should function without crashing even if the user were capable of mounting the turret seat. When a deployable is constructed by a CSR-level player, the GUID of the resultant deployable is printed in event chat. Included also is a new custom bang command called As a combination of these features: |
CSR field turret and setempire both seemed fine from the little bit I did with them. Is there a way to get a guid without using /destroy? For an equipment terminal, that seemed to make the terminal not work for the empire I set it to with the setempire command, but leaving and reentering the zone allowed that character to use the terminal as if it were hacked. Not sure if destroy did something to the terminal or it is just something with the setempire command. |
At the moment, To answer you question directly, no, I've found no other commands that have the same affect. I was working on a "nearest" bang command to reveal the GUID of some nearby entity but I lost my battle with useful parameterization. My ultimate goal for CSR players is to use specific direct hit weapons to reveal debugging information about game entities rather than cause damage. Knives, anniversary pistols, and the sniper equipment are probably the best outlet for this since they shoot straight and behave the same way regardless of who holds them. |
/capturebase doesn't work using the character's location anymore, this makes capturing bases in caverns and towers harder or impossible. |
Can't be helped if it's the caverns. Those places aren't expected to have all their working bits and bobs and may not even play nicely with well-established commands. As for the overworld, a change I introduced for CSR's meant that they no longer were being recognized as players in an SOI and, by not being recognized as players in an SOI, a shortcut I was using to assess their current faciltities by |
SOI capturebase works again. I reproduced the BFR particle cannon disconnect yesterday: DCfromBFR2.mp4My current theory is that the disconnect is caused by the first damage tick of the radiation field. Unfortunately I haven't been able to repeat it since. I'm also not sure if this can be reproduced on the main server or if it's something that only happens here. |
if i recall there a a bug with the Radiator making ppl crash as well |
If the NC Particle Cannon and the AT Radiator are both infrequent issues, then the commonality might be a flaw in the remote projectile system, or a flaw in the radiation field damage calculations, related though different as they are. I am not going to attempt to extend this PR's scope again. That will be a different fix. |
Using gmtoggle repeatedly before entering/exiting vehicles can lead to a severe slowdown in actions and weird stuff happening. If you do it for long enough, characters trying to load the continent will crash too. toofast.mp4Spam G to enter a vehicle and the mounting will take place at a random time in the near future, even while driving another vehicle: teleported.mp4Preventing users from exiting vehicles with gmtoggle might fix a good part of this. |
The role of customer service representative, game moderator, was previous a role shared within the faculties of basic players. That is to say: the additional responibilities of being a moderator were baked into the same code that governed normal player behaviors and it would have created a tangling of code paths if only such moderator abilities were greater at the time. In fact, they were not developed more thoroughly primarily for the reason that they would have to be jumbled up amongst normal code. That would have to be handled either by writing some things twice, slowing down the processing of player actions, or mixing the difference in, making presentation messier and a still bit slower. Another issue involved the lack of ability restriction that came from code sharing, though most would know that spectators bore the brunt of this issue, and this is mostly a fault of myself and I did not put the necessary logic to make it so that certain aspects of spectators would not trouble normal players. The most common issue was players being kicked because explosives could damage the otherwise undamageable through no fault of their own.
Now that the responsibilities of being a game moderator have been exorcised and distanced from the liberties of being a normal player of the game, the responsibilities can be allowed to expand and contract without causing strife with the aforementioned liberties. Everyone logs in as a normal player but a flag from the database indicates whether they can elevate themselves into a game moderator. This is similar to the flag that is necessary to become a spectator that walks amongst the normal players silently.
This last part is extremely important. As of this update, servers will start in "development" mode and must be switched over to "released" in the configuration file. Read the first entry in the addenda below.
Features
Customer Service Representative
Being in the shoes game moderator is still, actually, not much different from playing the game normally in temrs of what one is allowed to do in the game. One who is assuming the role of moderator is not expected to play the game normally, however, as that will be unfair to the other players. The elevated player is visible to and properly interactive with the playerbase of zone that they inhabit. The elevated player may shoot friend and enemy alike and that target will die just the same as anyone else; the player may fabricate, drive, and ride in any vehicles of choice; and, the player may transfer zones and spawn points within a zone just like normal, following the footsteps of their empire affiliation. All the basic amenities of a facility are available under the standard conditions only. Becoming a game moderator does not stop one from being a leader of a squad or from joining someone else's squad. That player may interact with and contribute to facility upkeep and facility capture. That player may be affected by a jammer grenade and other sources of jammering.
In obvious departure from normal, game moderators will recover from any damage and physical strain up to 100% of their strength near instantly and are thus not possible to easily kill, as it is necessary for them to be alive (as players) to execute the majority of their role. If the elevated player does die for some reason, they will just self-resuscitate on the spot no worse for wear and will be able to continue as if nothing had happened to them. This includes the vehicle in which they are riding being destroyed. In theory, they are completely immune from environmental triggers, both positive and negative, e.g., sidedness, mines, etc., as well as environmental effects, e.g., radiation fields, etc.. The player will never be the cause of collision damage or suffer from falling damage. A more minor departure of normal behavior involves loyalty of combat engineering equipment - where normal players can only build equipment that is loyal to their own empire, game moderators will only place down equipment of neutral loyalty, with the exception of Boomers that will behave and assign itself standard faction affiliation as per handling of its companion detonator. A moderator should gain no experience of any sort from their actions but may inadvertantly be assigned merit commendation progress for their efforts.
A customer service representative can be recognized by the merit ribbons on their shoulders - two customer service commendations separated by two loser commendations.
Spectating as a Customer Service Representative
Normally, a normal player may access spectator mode if they have been given prior permission and may use that mode to explore the battlefield and record interactions and engagements as an unaffected third party observer. This is mostly for the purposes of documenting and movie production, though it can be leveraged for observation of infractions against the game, cheating or hacking or such, Distinctly, they may switch into game moderator mode and actually manage aspects of the game and its players related to setup and infractions against the game, i.e., punishment. In theory, this is a line of communication betwene spectators to game moderators, both of which have blended into the player ecosystem in their own ways. The roles are ektp separate. A player who is a spectator would normally be incapable of being a game moderator at the same time.
As a permissible truncation, game moderators are allowed to assume their own form of spectator mode that is different from the formal spectator mode. From the perspective of other players, it is little different than normal spectator mode; but, from the eprspective of the player using the mode, it is much closer to a game moderator than a spectator. The spectating moderator is invisible to all other players and may walk around amongst them without blocking them or being blocked by them. In this mode, interaction with vehicles beyond access to the trunk is forbidden, and access to terminals that would produce such vehicles is restricted. A spectating moderator loses the ability damage opponents directly, with some exceptions (that should not be indulged). A spectating moderator may not use combat engineering.
If the spectating moderator (or the normal spectator for that matter) were made visible to other players, that spectator's nameplate would be rendered as "spectator:name". Were their communications visible to chat, their name would read the same and the context of their message be displayed in light blue font color.
Commands
/gmtoggle ([o[n]] | of[f])
Accessible by a normal user, testing the responsibility flag, to switch over to the in-game customer service representative mode. Not accessible while as a traditional spectator, but a player may enter traditional spectator mode because of having access to csr mode.
/spectator ([o[n]] | of[f])
While csr mode is active, switch over to a hybrid csr spectator mode. Deactivating will return to normal csr mode, while deactivating csr mode while in hybrid spectator mode will end both and return to normal mode.
!togglespectators ([o[n]] | of[f])
While csr mode is active, can be used to enable rendering of otherwise invisible spectator players and observe their actions. Works for both traditional spectator mode players and hybrid csr spectator mode players.
!showspectators
While csr mode is active, has the same effect as
!togglespectators [o[n]]
.!hidespectators
While csr mode is active, has the same effect as
!togglespectators of[f]
.!sayspectator [message]
While csr mode is active, say something in the spectator communication channel.
Note: usage format for
mode ([o[n]] | of[f])
means that "", "o
", and "on
" will all activate the givenmode
that is currently inactive; and, either "of
" or "off
" are needed to deactivate the givenmode
that is currently active.Caveats
Chat channels will probably not work as was intended. The idea was that normal players, spectators, and CSR's all have their own communication channels that are separate from each other. The
ChatService
as it currently exists would not support what I intended and modifying at this point risks all current communication capabilities flor this minor update's sake. The code needs a bit of an overhaul. If you can communicate with someone, just roll with it for now. (I'll post a better explanation of expected communication channel access later.)Addenda
GeneralOperations
that returnHandled
andUnhandled
.