XC_Engine version 24 full

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

Re: XC_Engine version 24 full

Post by ShaiHulud »

Yeah, I take your point. Rather than trying to make this mover modification a general solution, I'd be happy if I could just patch it on one particular server. It doesn't seem to have affected anyone else anyway, and updating to 469 on the server concerned would be the easier solution (this is mostly a test server - our main server is already running 469). This server will be updated in due course, but I need a temporary solution in the interim. I'll see if I can figure out how to recompile the uscript portion of XC_Engine, or otherwise, try and find some monkey-patch fix.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 24 full

Post by sektor2111 »

ShaiHulud wrote: Mon Sep 12, 2022 12:17 am I'll see if I can figure out how to recompile the uscript portion of XC_Engine, or otherwise, try and find some monkey-patch fix.
I could compile XC_Engine.u file without hacks tweaks, in other hand do not be afraid of "monkey-scripts", (I'm baboon leader here) as long as they work flawless as "bugged" as they are. Sample for TriggerControl Movers still staying open when pawn flying was killed in trigger's radius ?
In main mutator delegated to replace a few other functions these movers are spawning an extra controller and deactivating their tag. "Extra-Controller" takes the wheel driving mover other way. If a Pawn is in range Mover stays open normally, if Pawn was killed (ignoring physics), hidden junk is ignored and Mover-Door will get closed. In a lot of maps this method does a major improvement. If Pawn A was killed and Pawn B is nearby - Mover stays open and not just closing in front of Pawn B causing it to shoot a rocket and kill itself because Door was suddenly closed. And this "monkey" solution to me it looks awesome.
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Engine version 24 full

Post by ShaiHulud »

sektor2111 wrote: Mon Sep 12, 2022 7:39 amI could compile XC_Engine.u file without hacks tweaks, in other hand do not be afraid of "monkey-scripts", (I'm baboon leader here) as long as they work flawless as "bugged" as they are.
Sektor, is there any chance I could get a copy of your XC_Engine 24 source files and build instructions (or hints about what I'm doing wrong)? I've downloaded all of the *.uc files from XC_Engine and XC_Core, but when I try to make these myself, I receive the following UCC response:
Can't find 'intUBinarySerializerexeccloseFile' in 'XC_Core.dll'

History: UPackage::GetDllExport <- UFunction::Bind <- UField::PostLoad <- UStruct::PostLoad <- UFunction::PostLoad <- UObject::ConditionalPostLoad <- (Function XC_Core.BinarySerializer.closeFile) <- PostLoadObjects <- UObject::EndLoad <- UObject::LoadPackage <- UMakeCommandlet::Main

Exiting due to error
XC_Core.dll is, of course, in my UT System folder, so I don't know what the problem is. I'm probably being very naive about this.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 24 full

Post by sektor2111 »

Okay, we need another clarification.
Except settings needed in INI (UnrealTournament.INI), is good to know that XC_Engine v25 is aiming UT v469a and XC_Engine v25b is aiming UT 469b. Any other combination doesn't work because these assets in UT were CHANGED even if I was pointing that no structure changes are needed (neither recommended) but only fixing errors.
XC v24 works normally up to UT 440. For 451 451b in Editor does something ugly or... I missed something in INI. Either way Editor 451b is rarely used by me due to what it does and... it doesn't do...
U Packages coming with these versions are different too having their deal with corresponding DLL files. Other way doesn't work at all and error which you pointed is not a new thing to me. In addition, in prior installs I had those VB libs 2015, now I'm not sure what else I have in system and I'm not worried about those LIBS as long as things are working for me.

Edit: I think I'll do a pack taken from my private testing server which will include some INI settings. As far as I remember I think I have somewhere XC v24 - original XC v24 it's in first post, I'm not sure about any XC v25, since UT 469a was flawed I did not bother to save anything else related to that version - XC v25 more specific.

Edit2: Random report for paths executed with XC_EditorAdds -> v24 :?

Code: Select all

DevPath: Undefining paths...
DevPath: Defining paths...
DevPath: Defining special paths...
DevPath: Building candidates lists...
DevPath: Processing candidates lists...
DevPath: Scout didn't fit
DevPath: Scout didn't fit
DevPath: Scout didn't fit
DevPath: Scout didn't fit
DevPath: Scout didn't fit
DevPath: Scout didn't fit
MapSpecs: ReachSpecs reporting Actor.
ReachSpec: 0 : Start = swjumppad1 End = swjumppad3 ColRadius = 60 ColHeight = 60 ReachFlag = SPECIAL Dist = 500 Pruned = 0.
ReachSpec: 1 : Start = swjumppad1 End = swjumppad3 ColRadius = 60 ColHeight = 60 ReachFlag = SPECIAL Dist = 100 Pruned = 0.
ReachSpec: 2 : Start = swjumppad4 End = swjumppad5 ColRadius = 60 ColHeight = 60 ReachFlag = SPECIAL Dist = 500 Pruned = 0.
ReachSpec: 3 : Start = swjumppad4 End = swjumppad5 ColRadius = 60 ColHeight = 60 ReachFlag = SPECIAL Dist = 100 Pruned = 0.
ReachSpec: 4 : Start = swjumppad0 End = swJumpPad2 ColRadius = 60 ColHeight = 60 ReachFlag = SPECIAL Dist = 500 Pruned = 0.
ReachSpec: 5 : Start = swjumppad0 End = swJumpPad2 ColRadius = 60 ColHeight = 60 ReachFlag = SPECIAL Dist = 100 Pruned = 0.
Once again... it's time for updating XC_PathsWorker... it will be another option - bNullDupedSpecs...
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Engine version 24 full

Post by ShaiHulud »

Thanks Sektor. Don't worry about it if it's going to cause you a lot of extra work. I'll see if I can do something at runtime with a mutator to change the behaviour of the class I'm interested in instead.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 24 full

Post by sektor2111 »

Definitely yes, I wrote a mutator doing functions replacements because I wanted them in my own way. That's why I added configurable options, I disabled hard-coded fixes coming with XC package and using my own ones. Things with lousy meshes used by actors performing these null animations can be simply wrapped to not play animations that doesn't exist. Also for Movers you can replace functions as you want, these replacements are doable outside of XC packages.
See code snippet

Code: Select all

class NsUTw expands Mutator;
...
native(1718) final function bool AddToPackageMap( optional string PkgName );
//=====
native(1719) final function bool IsInPackageMap( optional string PkgName, optional bool bServerPackagesOnly ); //Second parameter doesn't exist in 227!
//=====
native(3540) final iterator function PawnActors( class<Pawn> PawnClass, out pawn P, optional float Distance,
optional vector VOrigin, optional bool bHasPRI, optional Pawn StartAt );
//=====
....
event PreBeginPlay()
{
	if (!bRunning)
	{
		log (">> looking for XC_Engine...",Self.Name);
		NXC = int(ConsoleCommand("GET INI:ENGINE.ENGINE.GAMEENGINE XC_VERSION"));
		if ( NXC < 19 )
			Goto JL12;
		else
		{
			log (">> found XC_Engine Version"@NXC$". Proceed tweaks...",Self.Name);
			if ( Level.NetMode == NM_ListenServer || Level.NetMode == NM_DedicatedServer )
			{
				if (!IsInPackageMap())
				{
					log ("ServerPackages for"@GetPackageOrigin(Self)@"not set... perform update...");
					AddToPackageMap();
					if (IsInPackageMap())
						log ("Successfully added"@GetPackageOrigin(Self)@"in Packages Mapping...");
					else
					{
						log ("FAILED adding"@Self.Outer.Name@"in Packages you need to configure manually ServerPackages >>");
						log ("Example >> ServerPackages="$GetPackageOrigin(Self));
					}
				}
			}
....
....
			ReplaceFunction( class 'SkaarjTrooper', Class 'XC_SkaarjTrooper', 'PlayFiring', 'Tw_PlayFiring' );
			ReplaceFunction( class 'Tentacle', Class 'XC_Tentacle', 'PlayRangedAttack', 'PlayRangedAttack');
			ReplaceFunction( class 'Titan', Class 'XC_Titan', 'SpawnRock', 'Tw_SpawnRock' );
			ReplaceFunction( class 'Titan', Class 'XC_Titan', 'PunchDamageTarget', 'Tw_PunchDamageTarget' );
....
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Engine version 24 full

Post by ShaiHulud »

Thanks again Sektor, that's very useful information.
Post Reply