Server 'kick' command strageness

Discussions about UT99
Post Reply
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Server 'kick' command strageness

Post by ShaiHulud »

I've tried searching for relevant terms, but nothing related seems to come up.

I'm seeing something odd on servers after issuing the "adminlogin" command. Having logged in, typing "kick <playername" produces one of two results:

- "kicked" player isn't kicked, and no mention of the command having been used in the server log
- "kicked" player isn't kicked and "(Function Engine.PlayerPawn.Kick:0095) Accessed None" in the server log

The command works fine on a test 436 server. But I've noticed the above issues on both a local test 451 Windows server, and on two separate rented Linux 451 servers (with or without any extra mods running). Is this a known issue with that server version? Other admin commands work as expected (fly, ghost, walk, etc.). And I'm using Nexgen anyway, so I have alternative methods of achieving the same end. I see that the unrealscript for kick lives inside of PlayerPawn.uc (line 1560), and it all looks pretty innocuous. And besides, this must be one of the most well exercised commands in the code base.

The local test 451 server uses the stock "engine", and the two rental 451 servers are running XC_Engine, so that doesn't seem to be involved in anyway. The only common denominator (as far as I can see) is 451.

Known issue?
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Server 'kick' command strageness

Post by sektor2111 »

In the past if I well recall I was using only MapVote for kicks - simply because some players were using malformed chars hard for typing and then with 2 - 3 mouse clicks and a key-bind I drop out turds ( some of them triggered me to do this because they got idea to place kick-votes against me and others ). At this point MapVoteLA works fine. As I know so far a NexGen kick means nothing that much, player can Re-Join - I don't recall which version has problems but I would not count on it.

So 451 proves daily cakes...
User avatar
Barbie
Godlike
Posts: 2792
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Server 'kick' command strageness

Post by Barbie »

That was also my first thought: The player has unusual character(s) in his name, for example simply add a white space at the end of the name and "aPawn.PlayerReplicationInfo.PlayerName~=S" fails if you take player's name without that white space. Instead you can use KickList() to get the player ID and use KickID() to kick the player by that ID.
But unusual characters do not explain the ScriptWarning.
ShaiHulud wrote:- "kicked" player isn't kicked and "(Function Engine.PlayerPawn.Kick:0095) Accessed None" in the server log
Is Level.Game.bLogAdminActions==true and if, is the "kicked" message written to log in this case? Knowing this would help to locate the error.

Another idea: the SkaarjTrooper have a dirty bIsPlayer=True switch to pick up the weapons. If that fails and bIsPlayer stays TRUE, the condition

Code: Select all

(aPawn.bIsPlayer && aPawn.PlayerReplicationInfo.PlayerName~=S && ...)
will throw that ScriptWarning, because PlayerReplicationInfo is None for SkaarjTrooper AFAIK.
That leads to the question how far engine's error handling's scope is: Are multi part conditions evaluated although one of it causes an Access None? Is the complete IF statement skipped? Does a function return immediately after an Access None?
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Re: Server 'kick' command strageness

Post by ShaiHulud »

Thanks guys, that gives me a lot to think about - I'll have to do some more tests to provide details answers. I was actually just kicking a bot out of the server in each case, with a name that I'd given it, so a pretty simple character set in this instance.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Server 'kick' command strageness

Post by sektor2111 »

Barbie wrote: Does a function return immediately after an Access None?
Nope... See Multiple "Accessed None" in that friendly* SkinnedFrag... See "Smarty" Timer from PrecipitationGenerator MyLeveled in some Maps, etc. Engine is like a very dedicated slave following instructions, if you say him: Kill Yourself - it will do that without to ask questions.
Post Reply