TeleporterFix and no more A.I.

Discussions about Coding and Scripting
Post Reply
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

TeleporterFix and no more A.I.

Post by sektor2111 »

Some problem triggered me to check "scientific" stuff meant to fix Teleporters and crashing problems from there, I did not check yet NewNet "fixing" ( Bots simply won't use Teleporters-through routes because of awesome stuff creating again advantages for humans - cheaters as usual ).

First stuff checked was v103 with a funny read-me (related to nexgen :ironic: ). Doing some logs and trying to figure why client was crashing in previous versions I drew conclusion that people have serious problems in understanding WHO IS THE MAN. IT'S THE SERVER. I did not understand why teleportation and touching and all crap is simulated in client too because if server says YOU ARE HERE, in client you will not be in a different LOCATION - server pulls you back. I made kickers dropping player in the sky without simulated functions because PlayerPawn/Bot are natively replicated after all. Client should be left alone because it needs to participate at game and not executing useless codes.
Later I found some versions involving exception for swJumpPad or such. I think we can refer only to Original Teleporters (3 classes) and NOTHING else - leaving new cute Navigation stuff alone.

While my client (testing on a slow machine) from a LAN server has crashed properly at function "Touch" - recursive crash, I got rid of this SIMULATED brain-fart and everything went normal. Else the rest of NO-NEEDS-SIMULATED have been ruined properly in order to leave SERVER to decide WHERE IS THE PLAYER and not player mooing through zones. Else, crash did not occurred any more when I removed this stuff from "packages" and leaving it only for server, LOL :loool: .
Of course client probably is good to be noticed about new stuff else will feel some laggy things at first encounter. I really should made it a Server-Side thing because client should not control authoritative things. LOGS were pretty clear where and what happens.

A.I. handling - old bugged teleporter for sure should not be debated by screwing string things - yes geniuses - you have ruined all A.I.. We can Enable old thing with any matter, collision size set (0,0) disabling Touch, Untouch, Trigger, Untrigger and other collisions turned False - By leaving alone strings involving RouteCache[1] A.I. can still navigate correctly. The rest is blabbering, trying to "disbale" old teleporter.
All these moves can be done using a cute state (even simulated for noticing client) without rushing in PostbeginPlay. Those simulated things are helpful in understanding client things and executions but is not the case here (effects, sounds, smokes, lights, etc), all we need is a server tweak and not moving a server-crash to a client-crash.

I'm open for suggestions - mainly this stuff will address XCGE haters (with collision problems) or XCGE problems in some instances/gametypes, and we are looking for "domestic" solutions without hating A.I. after all in these non XCGE games/servers. Else perhaps I have to share another prototype of TeleporterFix or kicker method which I've been using.

Aside, I think NewNet Teleporters can be rewritten more properly because in current state are a just a cheap mess.
SC]-[WARTZ_{HoF}
Adept
Posts: 426
Joined: Tue Feb 21, 2012 7:29 pm

Re: TeleporterFix and no more A.I.

Post by SC]-[WARTZ_{HoF} »

I'm no XCGE hater. If I had some real opinions on NewNet I would offer them but I just prefer to not use NewNet because of bugged code. You think NewNet is worth your time to fix then I applaud you. :rock:
Image
Image
Image
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: TeleporterFix and no more A.I.

Post by sektor2111 »

This was a chapter around default engine problems which made people to develop obsolete solutions, I simply don't like how they did this stuff because... it's still unstable and ruins charm of game around Bot play. The rest of NewNet problems might have a location in that bbPlayer which is not an easy stuff, and projectiles having nothing to do with Bot spamming crap out.
For fully understand the way of NewNet I need a graphical explanation toward methods used and then I'll complete a few questions like "what if" where things sounds unclear.
I was playing default UT and I witnessed not once server crashing around teleporters - MH included. I think a simple tweak worth a try but not in style TeleporterFix103 and similar mutators.
User avatar
Chamberly
Godlike
Posts: 1963
Joined: Sat Sep 17, 2011 4:32 pm
Personal rank: Dame. Vandora
Location: TN, USA
Contact:

Re: TeleporterFix and no more A.I.

Post by Chamberly »

SC]-[WARTZ_{HoF} wrote:I'm no XCGE hater. If I had some real opinions on NewNet I would offer them but I just prefer to not use NewNet because of bugged code. You think NewNet is worth your time to fix then I applaud you. :rock:
Ditto.

Edit: Newnet was basically set up for online gameplay, working around mostly default actors. Dunno about bot support, probably not added since Timtim made it for competition as well.
Image
Image
Image Edit: Why does my sig not work anymore?
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: TeleporterFix and no more A.I.

Post by sektor2111 »

Chamberly wrote:probably not added since Timtim made it for competition as well.
Because Timtim probably never heared about Aegor and neither XAN_A, XAN_B which are part of my play-ground and that's why I'm playing with them all the time.

Else
Competition at late hours when majority are sleeping doesn't exist, Night-Wolf (a random insomniac) has no enemy for that case making the mod to look pretty dumb and useless at that time, as those empty maps for no purpose.

Edit: Little techs around a Teleporter

Code: Select all

function Actor SpecialHandling(Pawn Other)
{
	local int i;
	local vector Dist2D;
	if ( bEnabled && (Other.RouteCache[1] != None)
		&& Other.RouteCache[1].IsA('Teleporter') && (string(Other.RouteCache[1].tag)~=URL) )
	{
		if ( Abs(Location.Z - Other.Location.Z) < CollisionHeight + Other.CollisionHeight )
		{
			Dist2D = Location - Other.Location;
			Dist2D.Z = 0;
			if ( VSize(Dist2D) < CollisionRadius + Other.CollisionRadius )
				Touch(Other);
		}
		return self;
	}
By screwing RouteCache for a teleporter "Enabled" result in a bad Bot orientation, only in rare cases it will be able to cover you if you are around, else it's lost.
The need is preventing teleporter to work but leaving bool Enabled and URL untouched, we can disable this thing without bullshitting Path-Net.
Post Reply