fix broken playerface D3D crash patch

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

Re: trying to fix crash skin. need testers

Post by Higor »

Layer 1 alters the login parameters before this client's PlayerPawn is created, on team games where skin/face changes are blocked this is good enough.

On other games you need to check on every frame if an illegal talktexture is being used.
Well, I don't exactly remember if DM servers allow entire skinset change (ex: Raw Steel into Metal Guard), if that's true, then simply remove the second condition on ModifyPlayer and leave it like this:

Code: Select all

if ( Other.Mesh == LodMesh'Botpack.Soldier')
This happens when the player respawns, it does a search of watchers.
If the watcher corresponding to this player exists, it will be found, otherwise, it will be spawned. (ChildActors iterator finds actors owned by the calle)

The watcher does checks on every single tick, it isn't slow because it doesn't run any iterator at all, it's just updated like any other dynamic actor in the level (must be hundreds of dynamic actors on a simple MH game, just like in any other game that spawns lots of actors).
The goodies of spawning one actor per player (not every player, only Male Soldiers, this is an optimization), is that these actors have the player owner's reference already stored and easily self destruct if the player disconnects.


Also, replication does impact the CPU in a far greater scale than anything else these days:
NewNet ComboGib: 100 tickrate, 12 players = 0.4 ms processing actors, 7 ms processing replication code. (unknown CPU)
ZeroPing Siege: 65 tickrate, 22 players = 1.4 ms processing actors, 9 ms processing replication code. (intel xeon processor > 3.0ghz)

Other tests made by me:
Generation of 1024 MD5 hashes of NexGen keys via brute forcing (Pentium E2180 2.00ghz):
UScript alone: 370 ms.
Native Code: 28 ms.

40 BotZ using load balancing (same E2180): Stable framerate 60.
40 BotZ without load balancing (pre R6) (same E2180): Framerate around 15.
A single botZ can call up to 15 traces and 2 actor list iterators, besides other checks in a single tick.

The only bottlenecks in the engine are file save/loading, this means, AVOID calling SaveConfig() more than once per second, and chained list iterators (NavigationPointList and PawnList) using For to loop on these lists more than 2 or 3 times per frame will make the FPS drop evident.


PD: The goodies of checking every tick is that you don't give a the PRI actor a chance to finish the world update (general tick) before kicking the player and destroying the PRI.
This means, that the very frame the player changes skin, the player and his PRI are gone and therefore, not replicated to clients. 100% safe. (maybe not as safe if the player decides to change face before the actual game starts... lol)


EDIT: Sorry for attacking you on the previous post, I had a long day.
UT99.org

Re: trying to fix crash skin. need testers

Post by UT99.org »

billybill wrote:thanks for confirmation that it is only called on players spawning. It is a nice touch spawning the new actor and the tick function.

I am speaking from experience as a longtime player of the game here, from the feel of using any timers or the tick function to evaluate or run any checks. I am extremely strict about this sort of stuff, and most the servers out there run on far less specs than what you are talking about. I've noticed this even on rented servers with better specs and therefor avoid it alltogether. From experience any variables that are checked by timer or on tick is not worth using. I like this stuff as efficient as possible, servers need to be if they are to run only using actual collision calculations or with newnet. Not everyone thinks the zero-ping concept is acceptable. I don't doubt you what you are saying, plenty of time to check your claims in the future

To be honest, I won't even run a simple ip2country check to resolve ip addresses without having it communicate the ip address to another server and having that one look it up and tell the first server whether a hostnameban is in place for the wildcard match. Probably bordering paranoid with stuff like this but its for the love of the game!

If someone really wants to do this through UScript, hooking the taunt and say commands and running the check from there could work. I am thinking of my fix more like a firewall stopping it in the first possible instance without running any code. I think I have explained it enough but I will add a couple more small details: 1. It's the default cd 1 texture for servers, 2. modifying game files in this way is not a good idea and can seriously impact the game

P.S Higor, Don't be sorry I thought you WERE attacking me, then I re-read your first post and realised my error. I skipped over some of it in an effort to reply to some of the other stuff, combine it into the one post, and post my final thoughts. I actually don't really know you or a lot about what you do and might have assumed too much so it is me that is sorry
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: trying to fix crash skin. need testers

Post by Higor »

Is your server windows based?
If it is, you can always move CPU intensive packages (only serverside) into DLL's compiled by yourself.
UT99.org

Re: trying to fix crash skin. need testers

Post by UT99.org »

billybill wrote:haha no. My windows servers always got DDOSed into hell. That wasn't the only reason. They handle players with higher pings differently and linux was far more suitable. There are more reasons. Researching to fix a problem on an OS we didn't want to run, or run on linux, the choice was written on the wall. Although if someone wrote a comprehensive guide to running a server on windows it would be considered again

And you are right it's mostly CPU intensive checking wildcard matches etc, and we still use the built in banlist which is doing this anyway. The downloading involved in checking the IP is miniscule but nonetheless a small variable we wanted to avoid, having a neutral server helps. My thoughts to using native stuff in UT is I am all for it it and if there were to be more info and more using it can only be a good thing. Anyway, some of what you said in your posts does contradict my knowledge of the engine. lol
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: trying to fix crash skin. need testers

Post by MrLoathsome »

4.40 rules !
blarg
User avatar
Wises
Godlike
Posts: 1089
Joined: Sun Sep 07, 2008 10:59 am
Personal rank: ...

Re: trying to fix crash skin. need testers

Post by Wises »

where'd we get with this. What is the latest patch and best fix server-side to cater for this problem?
UT99.org

Re: trying to fix crash skin. need testers

Post by UT99.org »

billybill wrote:could probably just catch messages and voice taunts and go from there. the hacked version i posted is reliable but i have questions over if modifying files like that is a good idea.

The other solutions that was posted was:

to check their face when they respawn but that gives them plenty of time to change their face in-game and then camp it out crashing affected players

to use AnthraX's dll installer (and cache extractor) for all updated renderer files. Although I don't know how you'd get the int files over. A cache extractor was my idea but on second thought I don't think int files can be transferred. This was continued into another thread but the OP didn't want to pursue it
User avatar
Chamberly
Godlike
Posts: 1963
Joined: Sat Sep 17, 2011 4:32 pm
Personal rank: Dame. Vandora
Location: TN, USA
Contact:

Re: fix broken playerface D3D crash patch

Post by Chamberly »

Access nones reporting...

ScriptWarning: NoD3DCrash CTF-BT-Ascendant.NoD3DCrash0 (Function NoD3DCrash.NoD3DCrash.Timer:0063) Accessed None
ScriptWarning: NoD3DCrash CTF-BT-Zelly.NoD3DCrash0 (Function NoD3DCrash.NoD3DCrash.Timer:0063) Accessed None
ScriptWarning: NoD3DCrash CTF-BT-RedPlanet.NoD3DCrash0 (Function NoD3DCrash.NoD3DCrash.Timer:0063) Accessed None

Using VAv2 seem to cause these, same with Anti-3D crash.
UT99.org

Re: fix broken playerface D3D crash patch

Post by UT99.org »

billybill wrote:He doesn't understand or care. You could post it in french he won't change his ways and will post it in every thread. Or were you trying to run it alongside the texture patch? there shouldn't be a need.

Chamberly aren't you a moderator for the unreal killer forum? I believe what Higor is saying is you use spawnnotification for playerpawns to spawn a serverside object for each player who potentially could change their face to the bad one mid-way through the game. It then monitors the player and is able to detect their face change right away, (if this is what he's saying) he mentions it has been tested and won't cause a lot of lag. My method accomplishes the same result (like a firewall stopping the face from even being recognised by the server) with the only downside being no playerface texture when they type messages. Valhalla avatar and pure's VA version should have a config file to put in dissallowed skins or faces so if you use it you should definitely pursue that method

If you are hex editing the file yourself try ?question marks, the server definitely wont accept logins with them and as for the midgame changes it probably depends on what the engine accepts as charsets for textures, and that I have no idea of but could be checked in what unrealed allows in terms of naming

Not trying to be rude but there's a rule here about bumping dead topics unless you have something important to add, I'm sure you would agree it's sensible to stop trolls and good forum etiquette. If you feel there is more to this topic then feel free though!
User avatar
papercoffee
Godlike
Posts: 10447
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: fix broken playerface D3D crash patch

Post by papercoffee »

billybill wrote: Not trying to be rude but there's a rule here about bumping dead topics unless you have something important to add, I'm sure you would agree it's sensible to stop trolls and good forum etiquette. If you feel there is more to this topic then feel free though!
After I did see the other thread did I understand your note here.

And yes ... @ Chamberly: it wasn't necessary to bump this thread as well, with your exact same question.
Please avoid necro bumps and keep your question on one place and don't scatter it around the forum.
Or no one can really help you with your problems because the people getting confused this way.
User avatar
Chamberly
Godlike
Posts: 1963
Joined: Sat Sep 17, 2011 4:32 pm
Personal rank: Dame. Vandora
Location: TN, USA
Contact:

Re: fix broken playerface D3D crash patch

Post by Chamberly »

Billybill, no I'm not a moderator at Unreal Killers. So if you think I'm involved with Higor on this, I seriously have no idea. lol.
Hex editing, I've never done anything like this, or even seen it done.

Papercoffee, I didn't know about this? So, reporting a bug when someone else may seen it and probably can do something about it or already have a solution that can be posted is not allowed? & No, I did not post the exact same question.

Sigh... :(
UT99.org

Re: fix broken playerface D3D crash patch

Post by UT99.org »

billybill wrote:you know, there is another way to fix this. The guy who made all the high definition textures at unrealtexture.com eventually managed to make them have the same GUID without messing anything up in the process. Unfortunately I have no idea how he managed to do this
User avatar
Dr.Flay
Godlike
Posts: 3347
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: fix broken playerface D3D crash patch

Post by Dr.Flay »

UT99.org

Re: fix broken playerface D3D crash patch

Post by UT99.org »

billybill wrote:Ah thanks. I could give him a prod :P I should probably read the entire thread where he talks about it over at BU first. What I mean by same GUID is the high resolution textures many of them are over 100mb yet you are able to play them with no skating effect even though his files are thousands of times bigger in file-size, which means he got it down to an art

And what would need to be done here is a new face texture for the player mesh could be made for clients to download. And a complete removal of the texture for the server copy that would eliminate it from even being recognised on those servers like what I have done
Post Reply