XC_Spec (r10) - Enhanced spectator

Search, find and discuss about Mutators!
Post Reply
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

XC_Spec (r10) - Enhanced spectator

Post by Higor »

This is a serverside mutator that replaces the spectator class with a more complete one.
XC_Spec_r10.7z
Crashfix, less bandwidth usage during simulation.
SiegeIV clock
(15.11 KiB) Downloaded 369 times
XC_Spec_r7.7z
(13.07 KiB) Downloaded 214 times

It has 2 modes:

- Basic:
Alf fire key (while not chasing player) will chase closest player in the spectator's aim.
Jump key releases the spectator from the player at the player's location.
Grab command will teleport the spectator at the wall the spectator's aiming, for fast navigation.
'Chase' command, used to find players by partial matches > (EX: CHASE LANE > specs Tamerlane)

- Simulation
Locked in first person view.
99% accurate inventory simulation.
100% accurate rotation simulation. (capped to server framerate)
Weapon display identical to the player's.
Fixed legacy log spamming issue for weapons with ammocount (pulse gun and minigun).
Ducking eyeheight correction.
Cycling between players stays in first person mode.

In order to enter Simulation mode, you must chase a player, then type 'Simulate', cycling players will keep simulation mode.
In order to leave Simulation mode, jump out of your view target.

Other info:
If server doesn't automatically put you in XC_Spectator mode, type MUTATE XC_SPEC and it'll reconnect you in said mode.
In order to properly simulate, it is recommended that the the average server outgoing traffic per spectator never reaches the one specified by MaxClientRate.
ViewClass and ViewPlayerNum antispam.
ViewPlayerNum works like UTPure's.
SiegeIV's clock below the player health.

Usage instructions.
- Add serverpackage (NOT REQUIRED IF SERVER HAS XC_ENGINE):
ServerPackages=XC_Spec_r10
- Add mutator:
XC_Spec_r10.XC_SpecMutator

Making server replace all default spectators with XC_Spectators
Create XC_Spec.ini and add the following lines.

Code: Select all

[XC_Spec_r10.XC_SpecMutator]
bNoSimulation=False
bNoForce=False
Screenshot during a test:
Image
Last edited by Higor on Thu May 26, 2016 9:45 pm, edited 6 times in total.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Spec (r1) - Enhanced spectator

Post by Higor »

Fixed a couple of mistakes.

Now inventory chain isn't broken after a while.
And it works on servers with bNoMonsters=True.
User avatar
Dr.Flay
Godlike
Posts: 3347
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: XC_Spec (r2) - Enhanced spectator

Post by Dr.Flay »

Niiice !
A client side version would be very handy for recording demos or machinema.
or for during testing of bot-pathing in maps ;)
User avatar
Wises
Godlike
Posts: 1089
Joined: Sun Sep 07, 2008 10:59 am
Personal rank: ...

Re: XC_Spec (r2) - Enhanced spectator

Post by Wises »

this is an interesting mod higor! I see that you seem to be a very active and very creative resource to the ut99 community as a whole. couple of questions regarding this mod/mutator.

is this a replacement to normal spec mode? I mean do players type some cmds into console whilst speccing or press 'jump' key (space) to perform Some_Action?

also Iam wondering.. is there some better way of only allowing non-banned individuals into a match/server based on ip/subnet blocks as well as having a whitelist for players within the same range but not banned?

thanks.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Spec (r6) - Enhanced spectator

Post by Higor »

Updated

- There's less dummy items created during simulation.
- XC_Spectator forcing disabled by default, needs XC_Spec.ini to enable it.
- Hack fixes for DemoManager.
- Simulator no longer adds extra channels to other clients.
- Bots no longer shoot at the simulator.
z4tan
Novice
Posts: 8
Joined: Wed Sep 07, 2011 1:27 am

Re: XC_Spec (r6) - Enhanced spectator

Post by z4tan »

Good higor!

Si lo instalo en el cliente modifica algo? o solo afecta si esta en el servidor?

------------------------------------------------------------------

If I install on the client modifies something? or whether this only affects the server?
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Spec (r6) - Enhanced spectator

Post by Higor »

It's a server mod.
UT99.org

Re: XC_Spec (r6) - Enhanced spectator

Post by UT99.org »

billybill wrote:Hey... never saw this release until now. I was working on something similar and I'm not too sure how you did that stuff for a serverside only mod. I got all the messages playing and displaying correctly until I got to sprees. Not sure if you remember or not because you wrote this a long time ago. I'm guessing you were to play the message to the spectator as if it was them on the spree. But then muting all server messages and creating a custom one. And spree message is probably more generic like not in red text like "you were killed by", or not slightly higher like "you killed". I recall doing the same mute message after for first blood messages, which is a little different, no playername in the message to the person who got it. So do you think that's what I would have to do to make them work?

Thanks for the mod, I'll check it out, wish I knew it existed. Maybe a Higor section is in order
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Spec (r7) - Enhanced spectator

Post by Higor »

Small update:
- Displays timer on HUD when there's a ViewTarget.
- Armors replicated separately. (they used to be replicated as a single unit)
- Inventory simulation optimized (doesn't rebuild the inventory chain every frame).
sk1p
Novice
Posts: 8
Joined: Wed Jun 03, 2015 2:15 am

Re: XC_Spec (r7) - Enhanced spectator

Post by sk1p »

Code: Select all

Warning: Failed to load 'SGirl': Can't find file for package 'SGirl'
Warning: Failed to load 'Texture SGirl.sgrl': Can't find file for package 'SGirl'
Log: Possessed PlayerPawn: XC_Spectator CTF-'uK-Simplex][.XC_Spectator0
DevNet: Join succeeded: HoneyLemon
ScriptLog: [NPLoaderv16b] Player Join: HoneyLemon (67.197.36.183:51884)
ScriptLog: [NPLoaderv16b] Loading complete for player: HoneyLemon
NSC: [NSC-SYS] Login request for HoneyLemon
NSC: [NSC-SYS] IP       = 
NSC: [NSC-SYS] ClientID = 
NSC: [NSC-SYS] Login accepted.
Critical: appError called:
Critical: XC_Spectator CTF-'uK-Simplex][.XC_Spectator0 (Function XC_Spec_r7.XC_Spectator.ViewPlayerNum:01BD) Runaway loop detected (over 10000000 iterations)
Exit: Executing UObject::StaticShutdownAfterError
Critical: FFrame::Serialize
Critical: UObject::ProcessEvent
Critical: (XC_Spectator CTF-'uK-Simplex][.XC_Spectator0, Function Engine.PlayerPawn.ServerMove)
Critical: RemoteCall
Critical: HandleStream
Critical: UActorChannel::ReceivedBunch
Critical: (Actor XC_Spectator0)
Critical: UChannel::ReceivedSequencedBunch
Critical: Direct
Critical: UChannel::ReceivedRawBunch
Critical: DispatchDataToChannel
Critical: BunchData
Critical: UNetConnection::ReceivedPacket
Critical: UNetConnection::ReceivedRawPacket
Critical: UTcpNetDriver::TickDispatch
Critical: UpdatePreNet
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: UServerCommandlet::Main
Exit: Exiting.
Uninitialized: Name subsystem shut down
I keep getting this error when someone joins as spec.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Spec (r10) - Enhanced spectator

Post by Higor »

Updated - r10
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Spec (r10) - Enhanced spectator

Post by ShaiHulud »

Feature request (unless it's already in there, and I'm just missing the mechanism to activate it). It'd be really cool if you could "lock" into the third person perspective in a way that would maintain the same viewing angle relative to the host.

What I mean is, if you do "behindview 1", and rotate your mouse so that you're viewing the host from - as an example - immediately behind the back of their head, and looking along the same line-of-sight, it'd be handy if releasing the mouse would keep you aligned with that projection. So, when the host turns, the camera would swing with them, and you'd still be seeing things from the same perspective (as though the camera were sitting on a selfie-stick attached to the back of the host's head).

Perhaps breaking out of this jailed mode by turning the mouse by a certain number of degrees left or right. I lack the vocabulary to describe this in a way that would make my proposition clearer. Diagrams might be helpful, but perhaps this communicates the gist.

Just a thought.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Spec (r10) - Enhanced spectator

Post by sektor2111 »

ACrashLog wrote: NetComeGo: Close TcpipConnection2363 01/28/19 17:39:59
Warning: Empty slot
Warning: This is: XC_Spectator DM-(]TKK[BandPractice).XC_Spectator1
Critical: appError called:
Critical: Assertion failed: ThisActor->IsValid() [File:R:\Projects\nacput\Utpg\Engine\Src\UnLevAct.cpp] [Line: 198]
Exit: Executing UObject::StaticShutdownAfterError
Critical: ULevel::DestroyActor
Critical: (XC_Spectator DM-(]TKK[BandPractice).XC_Spectator1)
Critical: UPlayer::Destroy
Critical: UNetConnection::Destroy
Critical: UTcpipConnection::Destroy
Critical: UObject::ConditionalDestroy
Critical: (TcpipConnection Transient.TcpipConnection2363)
Critical: UNetDriver::TickDispatch
Critical: UTcpNetDriver::TickDispatch
Critical: UpdatePreNet
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UXC_GameEngine::Tick
Critical: UpdateWorld
Critical: UXC_ServerCommandlet::Main
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 01/28/19 17:39:59
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Spec (r10) - Enhanced spectator

Post by sektor2111 »

Hey, UTPG, is this a cloudy day or something else ?

Code: Select all

NetComeGo: Close TcpipConnection1467 02/18/19 22:29:48
Warning: Empty slot
Warning: This is: XC_Spectator DM-[BBST]-SkateOrDie.XC_Spectator0
Critical: appError called:
Critical: Assertion failed: ThisActor->IsValid() [File:R:\Projects\nacput\Utpg\Engine\Src\UnLevAct.cpp] [Line: 198]
Exit: Executing UObject::StaticShutdownAfterError
Critical: ULevel::DestroyActor
Critical: (XC_Spectator DM-[BBST]-SkateOrDie.XC_Spectator0)
Critical: UPlayer::Destroy
Critical: UNetConnection::Destroy
Critical: UTcpipConnection::Destroy
Critical: UObject::ConditionalDestroy
Critical: (TcpipConnection Transient.TcpipConnection1467)
Critical: UNetDriver::TickDispatch
Critical: UTcpNetDriver::TickDispatch
Critical: UpdatePreNet
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UXC_GameEngine::Tick
Critical: UpdateWorld
Critical: UXC_ServerCommandlet::Main
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 02/18/19 22:29:48
I'll bet on 10$ that you cannot keep UT alive...
Post Reply