XC_Engine [20] - XC_Core [7b] - XC_IpDrv

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

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

In mean time if Higor will answer here and there I have a note, something which seems hilarious because here and there doesn't work crashing server with no mercy. String checks in a single iterator, in a state, whatever I tried does the same answer:

Code: Select all

//	for ( A=Level.NavigationPointList; A!=None; A=A.NextNavigationPoint )

	foreach NavigationActors(class 'NavigationPoint', A)
	{
//		log (A.Name);
		if ( G != None )
		{
			if ( String(A.Name) ~= "InventorySpot132") 
			{
				RemovePaths(A);
				InventorySpot(A).MarkedItem.MyMarker = None;
				InventorySpot(A).MarkedItem = None;
				I++;
				log (A.Name@is number@I);
				Continue;
			}
			if ( String(A.Name) ~= "InventorySpot131") 
			{
				RemovePaths(A);
				InventorySpot(A).MarkedItem.MyMarker = None;
				InventorySpot(A).MarkedItem = None; 
				I++;
				log (A.Name@is number@I);
				Continue;
			}
			if ( String(A.Name) ~= "InventorySpot83") 
			{
				RemovePaths(A);
				InventorySpot(A).MarkedItem.MyMarker = None;
				InventorySpot(A).MarkedItem = None;
				I++;
				log (A.Name@is number@I);
				Continue;
			}
else state code has more mercy in MH2 types (more loaded) but not XCMH and by using UT.exe not UCC2 and new commandlet. Here is how it was working but not in all MH games:

Code: Select all

	A = Level.NavigationPointList;
	while (A != None)
	{
//		log(A.Name);
		Cnt++;
		if ( Cnt >= 64)
		{
			Cnt = 0;
			Sleep(0.0);
		}
		if ( G != None )
		{
			if ( String(A.Name) ~= "InventorySpot132") 
			{
				RemovePaths(A);
				InventorySpot(A).MarkedItem.MyMarker = None;
				InventorySpot(A).MarkedItem = None;
				I++;
				log (A.Name@is number@I);
				A = A.nextNavigationPoint;
			}
			if ( String(A.Name) ~= "InventorySpot131") 
			{
				RemovePaths(A);
				InventorySpot(A).MarkedItem.MyMarker = None;
				InventorySpot(A).MarkedItem = None; 
				I++;
				log (A.Name@is number@I);
				A = A.nextNavigationPoint;
			}
....
Mention there are around 41 points to tweak with or without screwing bStatic thing.
I called them from PreBeginPlay, PostBeginPlay, I had them wrapped different. Something is badly screwed and I cannot figure what the heck happens in server (mapvote and all crap).
Some crashes

Code: Select all

BirdBrainedResearch: PathsMapper0 Patching Level.
Critical: ScriptDebugV
Critical: PathsMapper0.DoAlterBadPoints
Critical: UObject::ProcessEvent
Critical: (PathsMapper MH-BirdBrainedResearch.PathsMapper0, Function INEDRESEARCH.PathsMapper.PreBeginPlay)
Critical: ULevel::SpawnActor
Critical: (PathsMapper)
...
___
BirdBrainedResearch: PathsMapper0 Patching Level.
Critical: AXC_Engine_Actor::execNavigationActors
Critical: ScriptDebugV
Critical: PathsMapper0.DoAlterBadPoints
Critical: UObject::ProcessEvent
Critical: (PathsMapper MH-BirdBrainedResearch.PathsMapper0, Function INEDRESEARCH.PathsMapper.PreBeginPlay)
Critical: ULevel::SpawnActor
....
____
BirdBrainedResearch: Processing NavigationPoints...
ScriptLog: InventorySpot132 is number 1
ScriptLog: InventorySpot131 is number 2
Critical: AActor::ProcessState
Critical: Object PathsMapper MH-BirdBrainedResearch.PathsMapper0, Old State State INEDRESEARCH.PathsMapper.PathsMapping, New State State INEDRESEARCH.PathsMapper.PathsMapping
Critical: AActor::Tick
....
____
ScriptLog: Mover MH-BirdBrainedResearch.Mover27 has been set for group Mover27
BirdBrainedResearch: Processing NavigationPoints...
ScriptLog: InventorySpot132 is number 1
ScriptLog: InventorySpot131 is number 2
Critical: AActor::ProcessState
Critical: Object PathsMapper MH-BirdBrainedResearch.PathsMapper0, Old State State INEDRESEARCH.PathsMapper.PathsMapping, New State State INEDRESEARCH.PathsMapper.PathsMapping
Critical: AActor::Tick
....
_____
State or not state, I do a string check around NavigationPoint type actors and it looks like is crashing even in slow mode or fast mode and I don't know what's the deal. Function getting called from state, from Prebegin or using another way, it's just crashing...
Probably I have to quit dreaming at these farts, even if they are working perfectly in OFF-Line and simple LAN serving. In a sort real server only UT.exe and MH2 seems to sustain the game, else I have nothing.
User avatar
Dizzy
Experienced
Posts: 109
Joined: Tue May 21, 2013 3:57 pm
Personal rank: Oaf
Contact:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by Dizzy »

ShaiHulud wrote:I remember having a similar issue on BT-Rapture, where you couldn't "cheat" the second-to-last obstacle with XC_Engine (it wouldn't let you walk/flip ABOVE the recessed mover, where as the default game would let you get away with these shenanigans). But it was mitigated by adjusting the [XC_Engine.XC_GameEngine] settings... I'm just not certain which one. We went back to the stock engine at the time for other reasons, but I retained the ini file segment for future use. Probably bDisableBrushTracker, bCollisionHashHook or bDisableBrushTracker was involved (most likely the latter) but can't say for sure without testing again:

Code: Select all

[XC_Engine.XC_GameEngine]
CacheSizeMegs=4
UseSound=True
bDisableTimingFix=True
bDisableBrushTracker=False
bSortMaplistByFolder=False
bSortMaplistGlobal=False
bAutoTravelManager=False
bCacheConvertAtJoin=False
bCollisionHashHook=false
bFasterUpload=False
bEnableDebugLogs=False
bUseNewRelevancy=True
bUseSetEnemyHook=True
bUseLevelHook=True
bAutoCompressLZMA=False
bScriptDebug=False
bForceLevelHook=False
MaxBadLoginAttempts=100
LoginTryAgainTime=4.000000
bKickAfterMaxLogin=False
DatalessTimeout=5.0
CriticalTimeout=2.0
CriticalConnCount=10
ExtraTCPQueries=2
bDisableBrushTracker=True
bHackingTracker=False
...
Thanks, this seems to fix it:

bDisableBrushTracker=True
bCollisionHashHook=False
Join the BunnyTrack.net Discord chat server: https://www.bunnytrack.net/discord
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

So brush tracker was doing damage ? I though that such a crusher mover if is not defined with pawn proximity but only player proximity will discard at random crushing pawns but letting them in certain momentum of damage to pass through like at IgnoreWhenEncroach.
____
Above problem: It seems like removing paths through inventorySpot is not a pleasure for engine or something goes evil. Okay I will only increase their cost and pulling them out of Level... I will switch to small radius checkers as in functions from XC_Engine_UT99_Actor. I'm gonna see what's going on by iterating 41 new iterators with small attack range inside a function...
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York
Contact:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by RocketJedi »

Dizzy wrote:
ShaiHulud wrote:I remember having a similar issue on BT-Rapture, where you couldn't "cheat" the second-to-last obstacle with XC_Engine (it wouldn't let you walk/flip ABOVE the recessed mover, where as the default game would let you get away with these shenanigans). But it was mitigated by adjusting the [XC_Engine.XC_GameEngine] settings... I'm just not certain which one. We went back to the stock engine at the time for other reasons, but I retained the ini file segment for future use. Probably bDisableBrushTracker, bCollisionHashHook or bDisableBrushTracker was involved (most likely the latter) but can't say for sure without testing again:

Code: Select all

[XC_Engine.XC_GameEngine]
CacheSizeMegs=4
UseSound=True
bDisableTimingFix=True
bDisableBrushTracker=False
bSortMaplistByFolder=False
bSortMaplistGlobal=False
bAutoTravelManager=False
bCacheConvertAtJoin=False
bCollisionHashHook=false
bFasterUpload=False
bEnableDebugLogs=False
bUseNewRelevancy=True
bUseSetEnemyHook=True
bUseLevelHook=True
bAutoCompressLZMA=False
bScriptDebug=False
bForceLevelHook=False
MaxBadLoginAttempts=100
LoginTryAgainTime=4.000000
bKickAfterMaxLogin=False
DatalessTimeout=5.0
CriticalTimeout=2.0
CriticalConnCount=10
ExtraTCPQueries=2
bDisableBrushTracker=True
bHackingTracker=False
...
Thanks, this seems to fix it:

bDisableBrushTracker=True
bCollisionHashHook=False

Thanks for this info! adjusting our server :)
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

Eh, in case that you guys did not track XCGE evolution in bUseSetEnemy is about ScriptedPawn vs Bot combat addressing mainly monster games (MH as a goal) not BT and those, beside this, it's no longer used since aprox. v19 when functions were passed to UScript package and it's active by default without to be anymore a configurable option.

These:

Code: Select all

MaxBadLoginAttempts=100
LoginTryAgainTime=4.000000
bKickAfterMaxLogin=False
DatalessTimeout=5.0
CriticalTimeout=2.0
CriticalConnCount=10
ExtraTCPQueries=2
are also useless, there they are under other configurable actors not under engine section.
THIS IS the config:

Code: Select all

[XC_Engine.XC_ServerActor]
MaxBadLoginAttempts=5
LoginTryAgainTime=4.000000
bNexgenAdminLogin=False
bHidden=True
bKickAfterMaxLogin=True

[XC_Engine.XC_ConnectionHandler]
DatalessTimeout=10.000000
CriticalTimeout=5.000000
CriticalConnCount=10
ExtraTCPQueries=15
bHidden=True
bAlwaysTick=True
and not what you have.
Else bHackingTracker=False is new to me. What Tracker ? Torrent tracker or which one ? Seriously have you seen INT file what does in preferences menu ? It shows values right in their places.
[attachment=0]XC_Configuration.PNG[/attachment]
Perhaps by looking at images you'll have more real idea how do XC config should look like.
Attachments
XC_Configuration.PNG
User avatar
Dizzy
Experienced
Posts: 109
Joined: Tue May 21, 2013 3:57 pm
Personal rank: Oaf
Contact:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by Dizzy »

Just encountered a bug with XC_IPDrv where I was unable to download a compressed .unr.uz file from a redirect without encountering an "Assertion failed" error from UT.

Changing back to the default IPDrv solved the issue.

Thread here:
viewtopic.php?f=33&t=12492&p=102071#p102071
Join the BunnyTrack.net Discord chat server: https://www.bunnytrack.net/discord
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

Yeah, it looks like with redirect is a problem... I have XC_Ipdrv but in server that redirect uses only LZMA compression, UZ is gone - I really do not have any UZ file in my installs. For default player, XCGE sends file itself (that fast send feature engaged) I'm not using UZ and redirect at all for default players.

Edit: Yay mode ON
Finally I could do some patcher module for basic tweaking with no crash. Sample with those small radius checkers seems very efficient in dealing with paths. Of course I still have questions to myself why I see paths to end at beginning and later are vanished until around end location. I think map was modified later without rebuilding paths and computing routes went borked or this deduction is wrong.

Else this code is triggering some questions for me:

Code: Select all

function CleanupNavSpecs( NavigationPoint N)
{
	local ReachSpec R;
	local int i, RI;
	local NavigationPoint NC[2];
	
	ForEach AllReachSpecs( R, RI)
	{
		if ( R.Start == N || R.End == N )
		{
			NC[0] = NavigationPoint(R.Start);
			NC[1] = NavigationPoint(R.Start);
			R.Start = None;
			R.End = None;
			R.bPruned = 0;
			R.Distance = 0;
			R.CollisionHeight = 0;
			R.CollisionRadius = 0;
			SetReachSpec( R, RI);
			CompactPathList(NC[0]);
			CompactPathList(NC[1]);
		}
	}
}
I see both NC[0] and NC[1] having R.Start even if in first conditional line might be involved R.End. Do these two R.Start are ok ? Assuming you will not answer, I have to allocate some time for doing these checks... Thanks for what is shared so far...
User avatar
Deepu
Adept
Posts: 350
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India
Contact:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by Deepu »

Currently i'm using XC_Engine, i getting some strange errors. See this images

Bots stuck in this brush.
Shot0005.jpg
5 seconds later bot run like invisible.
Shot0003.jpg
While walking or running time monsters appearing in air.
Shot0006.jpg
How to fix this error?

Config:

Code: Select all

[XC_Engine.XC_GameEngine]
bFasterUpload=False
bDisableTimingFix=False
bAutoCompressLZMA=False
ServerPackages=SoldierSkins
ServerPackages=CommandoSkins
ServerPackages=FCommandoSkins
ServerPackages=SGirlSkins
ServerPackages=BossSkins
ServerPackages=Botpack
ServerPackages=ACEv10e_Cdll
ServerPackages=IACEv10
ServerPackages=ACEv10e_C
ServerPackages=NPLoader_v17
ServerPackages=NPLoaderLLU_v17
ServerPackages=NPLoaderLLD_v17
ServerPackages=NPLoaderLLS_v17
ServerPackages=MapVoteULv2_4
ServerPackages=INDLogo
ServerPackages=CountryFlags2
ServerPackages=IpToCountry_AOL
ServerPackages=UltimatePackages_v1_1
ServerPackages=UltimateNewNetv0_9_2_Beta
ServerPackages=UltimateScoreBoardv1_2
ServerPackages=SoccerFonts
ServerActors=IpDrv.UdpBeacon
ServerActors=SecureValidate.SVUdpServerQuery
ServerActors=SecureValidate.SVUdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900
ServerActors=SecureValidate.SVUdpServerUplink MasterServerAddress=master.333networks.com MasterServerPort=27900
ServerActors=NPLoader_v17.NPLActor
ServerActors=ACEv10e_S.ACEActor
ServerActors=ACEv10e_EH.ACEEventActor
ServerActors=Garb.Garb
ServerActors=ipToCountry.LinkActor
ServerActors=UltimatePackages_v1_1.SplashLogoSA
ServerActors=UltimatePackages_v1_1.ServerAdds
ServerActors=UltimatePackages_v1_1.NexgenActor
ServerActors=UltimatePackages_v1_1.NXPMain
ServerActors=UltimatePackages_v1_1.STWMain
ServerActors=UltimatePackages_v1_1.SAMain
ServerActors=UltimatePackages_v1_1.AutoTeamBalance
ServerActors=UltimateScoreBoardv1_2.SSBServerActor
ServerActors=UltimateNewNetv0_9_2_Beta.NewNetServer
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

XC_Engine doesn't have only 3 boolean config values - see image above,
viewtopic.php?f=34&t=5624&p=102418#p102053
else so far you can disable collision hook by writing configuration correctly.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by Higor »

You do realize the collision hash/grid doesn't affect interaction between actors and level BSP.
Are those pics taken from playing on a server?
User avatar
Deepu
Adept
Posts: 350
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India
Contact:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by Deepu »

Yes, dedicated server, system spec

Centos Linux
6gb ram
4 core cpu

bCollisionHashHook (bool) (config) (default=true)
Initializes levels using the FCollisionCacus octree system instead of the FCollisionHash.

This value right? or give me better suggested xc_engine configs & my server running multiple game types

AS, DM, TDM, DOM, LMS, Siege, RX8, SLV, SCR (Soccer) & MM (Monster Match)

All game type are forced with NewNet :mrgreen:
Last edited by Deepu on Mon Nov 13, 2017 11:03 am, edited 1 time in total.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

Higor wrote:You do realize the collision hash/grid doesn't affect interaction between actors and level BSP.
I'm not sure where are you testing these but here I totally disagree. Not a single time I was boosted suddenly by nobody as in some map I could see some weapons getting vanished at random not all time. Without activating new Collision this did not happen at all, MH-Sk_BattlingLottery - missing minigun then flak ON-LINE at random, it is a map which has a normal build where Editor was reacting properly without doing other building stunts, not to mention Bot stuck at walls in other maps making me to split hair trying to figure what is wrong at Bot, all problems were gone at once with disabling new collision. Something is not in timing there... Right now all my games are working fine without any collision hook.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by Higor »

Deepak O V got me to find the bug, it's got nothing to do with collision.

The bandwidth saving hack has a little problem:

Code: Select all

	void PawnBandwidthHack( UActorChannel* Channel)
	{
		if ( !Channel->Recent.Num() )
			return;
		guard(PawnBandwidthHack);
		APawn* OldPawn = (APawn*)Channel->Recent.GetData();
		APawn* NewPawn = (APawn*)Channel->Actor;
		FLOAT Delta = Connection->Driver->Time - Channel->LastUpdateTime;
		FVector CalcLocation = OldPawn->Location + OldPawn->Velocity * Delta;
		if ( (CalcLocation - NewPawn->Location).SizeSquared() < 1.0f )
			OldPawn->Location = NewPawn->Location;
		unguard;
	}
The code changes location to current so it doesn't get updated, but it also fails to accumulate the error from previous update.
That means that if the server runs at a tickrate high enough, the server will think the player is ok even if the positional difference between real and prediction is more than 1 unit (after various small error resets).

To fix this we need to manually update the pawn and then change old location into 'CalcLocation' so that the error will be accumulated and positional updates happen more often.

Code: Select all

OldPawn->Location = CalcLocation;
Secondly, I should simulate fall and ramp movement as well.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

Yes, I was there too, I could see how did it look like...

EDIT: Other note
Toward configuration. By using in server.ini

Code: Select all

GameEngine=XC_Engine.XC_GameEngine
...
[Engine.GameEngine] //not [XC_Engine.XC_GameEngine]
...
I see XCGE active and no borks related to skin load - things do seem to work even this way. XAN is able to get some valid skin. However this setup seems to launch a few default XCGE properties ignoring INI values. In such case I'm writing an actor re-setting configuration as I want.

Code: Select all

class XC_Fix expands Actor;

event PreBeginPlay()
{
	ConsoleCommand("SET XC_GAMEENGINE bUseLevelHook FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bFasterUpload TRUE");
	ConsoleCommand("SET XC_GAMEENGINE bDisableTimingFix FALSE");
	ConsoleCommand("SET XC_GAMEENGINE SortMaplistByFolder FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bAutoTravelManager FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bCollisionHashHook FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bUseNewRelevancy FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bDisableBrushTracker FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bSortMaplistByFolder FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bSortMaplistGlobal FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bAutoCompressLZMA FALSE");
	ConsoleCommand("SET XC_GAMEENGINE bForceLevelHook FALSE");
	ConsoleCommand("SET XC_GAMEENGINE ClientFrameRateLimit 100");
}

event PostBeginPlay()
{
	bGameRelevant=False;
	LifeSpan=5;
}
After updating server I will report what's new... or I think I need some logs to clarify my desired properties.

Chapter description - I see bHackingTracker described in first page but INT file doesn't show that bool at all - it looks for the same Moving-Brush purpose. Can you clarify what exactly is needed here ?

Not the last noticed thing. If we have a lift - a crusher one, which usually can be used normally, with new collision hook it becomes very evil, you cannot breath on such a lift because it kills you at random.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Post by sektor2111 »

Bump: The warning removal
By looking at those skins I was intended to setup "boss1". UT do seems to load then "boss11" adding "1" after string. For sure texture "boss11" doesn't exist, but game failed the fallback to "boss1". I've set after that "boss", and... game loaded exactly texture "boss1" without any failure, warning is gone and all Xan types are loaded correctly (stupid names). So to speak, I don't have any Warning right now.I can use simple engine call Engine.GameEngine, and setting up the rest with XC server-actor or by declaring XC_Engine.XC_GameEngine it does the same thing - IT WORKS (without collisions hooks of course).
So to speak I can run XC server in two ways - I've learned something new then.
Post Reply