Page 3 of 72

Re: XC_GameEngine [test build 3]

Posted: Mon Oct 06, 2014 6:59 am
by Higor
I was thinking with enhancing Coop games in servers...
I could theoretically force an update in a player's travel values every X seconds, or before they disconnect.
A player's travel info update could either be done automatically, or be forced by a console command at certain key events (death, respawn, pre-disconnect).

Would stop the 'reconnect with all weapons' exploit and allow players to skip maps without losing their inventory if they have to take a break (SwitchCoopLevel only).
This would have more use in LANs but it's still a nice way to keep improving the game.
Thoughts?

Re: XC_GameEngine [test build 3]

Posted: Wed Oct 15, 2014 6:02 am
by gust
strange error.
http://www.mediafire.com/download/hzi1a ... doma99.ZIP

ScriptWarning: Mover DM-Idoma99.Mover0 (Function Engine.Actor.SetInitialState:001E) GotoState (ConstantLoop None): State not found
XC_Engine: Checking for Moving Brush Tracker insertion...
XC_Engine: Found Mover, inserting tracker...
Critical: FMovingBrushTracker::Update
Critical: ActorCheck2
Critical: ActorCheck
Critical: UXC_GameEngine::LoadMap
Critical: LocalMapURL
Critical: UGameEngine::Browse
Critical: UGameEngine::Init
Critical: UXC_GameEngine::Init
Critical: UServerCommandlet::Main
Exit: Executing UObject::StaticShutdownAfterError
Exit: Exiting.

Re: XC_GameEngine [test build 3]

Posted: Wed Oct 15, 2014 8:39 am
by Higor
Aha, the Mover doesn't have a Brush so XC_Engine crashes.
Good find, my 512k map would have crashed the hell out of cham's server had I put it earlier...

Already fixed for next release.

Re: XC_GameEngine [test build 3]

Posted: Wed Oct 15, 2014 8:50 am
by Chamberly
LOL Wow.

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Tue Oct 21, 2014 7:09 pm
by Higor
Hacked moving brush tracker no longer attempts to register brushless movers.
Fixed bug causing moving brush tracker to stop after a failed map load attempt.
Created a TravelManager SubSystem, players may now rejoin without losing inventory in coop games.

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Sat Oct 25, 2014 10:28 am
by Smirftsch
OnTopic:
Very interesting project and offers a lot of potential. Didn't even know there are some more people yet working that deep in the Engine :)
I have no idea how things are handled in "recent" anticheat solutions for UT and to what degree precaution is still needed nowadays, but such a project could rise also the chances of new hacks and cheats injected. So really should be very careful about that (or offering the sources for your work maybe). We all know what happens if a game is flooded with hacks and bots, especially if it is that old- people leave and never come back.
I'd be also very careful with your work and what details you announce about it, we've all seen what happened to Shadow when Epic noticed his project... surely something no one needs.

Off topic:
To avoid further assumptions ;)
I find such projects very interesting and I wish I could help more when it comes to UT, but my status about releasing patches for UT is still sort of unclear. Back then when I signed the NDA I was simply grouped into UTPG to avoid further paperwork for Epic, but with the target to maintain Unreal. This doesn't necessarily eliminates working on UT, but it also doesn't include it specifically. When I was asking for clarifying it I was told I should do the things only I was told to do back then. I think no one really knows anymore what exactly I was told back then, since the major part of the people involved are not anymore employed at Epic, but either way this answer was and is of absolutely no use, so i decided to keep current status quo in order to avoid taking any risk hurting the 227 project. This may or may not change once 227j is out, which will be probably the last patch of this series also.

For thoughts about 227 for UT: technically 227 is an enhancement of the 226 engine, with many fixes and updates included from UT 4.68 (yes,4.68) as original base. Also some of you might know that 226 is already basically an UT engine version, which was made due to a huge petition for a final patch for Unreal back then. Epic decided to make a loveless and pretty much forced "rip out of their at this time current UT engine" to provide this patch- which also explains the incredible amount of bugs in the 226 version for servers, because replication was changed significantly and they didn't backport it correctly. Now taking this information the indeed most logical way would not to port the work of 227 into UT, but to simply update Botpack.u to work with 227 (there are already inofficial versions of it for 227 anyway). While this would be technically a perfect solution it wouldn't be suitable to do so since it would break probably the most uscript mods out there and definitely 100% of all native mods.
Indeed the most work would be again to make it perfectly compatible with existing maps and mods, which again would take weeks and months of testing, intense and detailed debugging, tons of insults and even threads from people disliking changes. All things I experienced over the years and which I am still experiencing with 227 already and that although I support Unreal now over a decade now with the page and with 227 since 2007- while Epic decided to drop support for it already after 2 years. At some point I am unable to comprehend that to be honest.
I was even once starting to work on a new UT version despite all these things but dropped it later again exactly due to such problems.
Also many things have changed in my life, I won my fight against cancer, I've got a daughter to take care of, so aside everything said above my time became way more limited as you can imagine, so I have to admit that I hardly have enough time to finalize already 227, not speaking about starting a new project for UT.
I really don't want to start a new debate about this here, but I felt it necessary to say why I am not supporting UT in a way which would be technically possible , so I think it is very important to support projects like this one.

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Sat Oct 25, 2014 2:46 pm
by Hellkeeper
Smirftsch wrote: we've all seen what happened to Shadow when Epic noticed his project... surely something no one needs.
Actually we've not all seen it. Did he get a C&D?

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Sat Oct 25, 2014 6:51 pm
by Higor
One of the reasons the code isn't available is precisely because of hacks, it's not actually an opener for hacks but the code might provide unwanted documentation.
Unfortunately the default engine already has way too many entry points for injections, but I still can add some stuff to this to make it harder to cheat (so cheaters will have to stick to vanilla engine).

Well, given I'm not modifying any of the files it classifies as a 'mod' or extension, not that I'm afraid of anything.
I just find it hilarious that Shadow has had problems with E*ic while there's a website out there offering a paid subscription service for an undetected cheat (i don't see them doing anything about it).
So yeah, couldn't give two sh**s about E*ic nowadays, it's best for them to make something good out of the new UT rather than annoy and harass some of the already disappointed (yet faithful) supporters with actual modding abilities, it would appear that these scrubs finally learned something from V*lve.


Back ontopic, I'm considering experimenting with the PackageMap object... but this might see some use in FerBotz instead lol.
Have you seen FerBotz? Might as well post it on OldUnreal as well, that one is actually open source lol.

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Sat Oct 25, 2014 8:14 pm
by UnrealGGecko
Hellkeeper wrote:
Smirftsch wrote: we've all seen what happened to Shadow when Epic noticed his project... surely something no one needs.
Actually we've not all seen it. Did he get a C&D?
viewtopic.php?p=22654#p22654 at least in the end, it all was solved :tu:
Discussion goes for a few pages there.

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Sat Nov 08, 2014 1:39 am
by [rev]rato.skt
Hi Higor,

I tested on my two servers
1 windows server and another server on linux server are both the same thing,
but the linux server does not start with this mutator do not know why

and I try to cacusmapvote an error after a while he dont opens the votemap not even being activated, so I wanted to use this mutator see fix this erro...


look my log:

Log: Log file open, Fri Nov 7 22:36:01 2014
Init: Name subsystem initialized
Init: Version: 451
Init: Compiled: May 6 2003 22:27:59
Init: Command line: DM-Curse][.unr?game=Botpack.DeathMatchPlus?mutator=CacusMapVote.CacusMapVote -multihome=189.1.164.75 -log=../Logs/LOG_DE_SUBIDA_ut99br2.log -ini=UnrealTournament.ini -port=6666 -nohomedir
Init: Base directory:
Init: Character set: ANSI
Log: Bound to Editor.so
Log: Bound to Core.so
Log: Bound to Engine.so
Init: Object subsystem initialized
Init: CPU Speed=1995.481466 MHz
Log: Executing Class Engine.ServerCommandlet
Log: Bound to XC_Engine.so
XC_Engine: ========= XC_ENGINE - Test build 4 ==========
XC_Engine: ================= By Higor ==================
XC_Engine: Detected version 451 GameEngine
Init: Unreal engine initialized
XC_Engine: Browse() Start: unreal 6666
Log: Browse: DM-Curse][.unr?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkins.blkt?Face=SoldierSkins.Othello?game=Botpack.DeathMatchPlus?mutator=CacusMapVote.CacusMapVote
XC_Engine: LoadMap intercept begin...
Log: LoadMap: DM-Curse][.unr?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkins.blkt?Face=SoldierSkins.Othello?game=Botpack.DeathMatchPlus?mutator=CacusMapVote.CacusMapVote
Log: Case-insensitive search: utcrypt -> ../Textures/UTcrypt.utx
Log: Bound to Fire.so
Log: Case-insensitive search: Botpack -> ../System/BotPack.u
Log: Bound to IpDrv.so
Log: Case-insensitive search: SKYBox -> ../Textures/SkyBox.utx
Log: Case-insensitive search: Ambancient -> ../Sounds/AmbAncient.uax
Log: Case-insensitive search: shaneDAY -> ../Textures/ShaneDay.utx
Log: Collecting garbage
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Allocation checking disabled
Uninitialized: Log file closed, Fri Nov 7 22:36:04 2014

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Sat Nov 08, 2014 2:46 am
by Higor
Looks like v451 Linux has some undocumented changes that makes it different to v451 Windows.
This is going to be a drag to find...

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Fri Nov 14, 2014 9:14 am
by MrLoathsome
[rev]rato.skt wrote:Hi Higor,

I tested on my two servers
1 windows server and another server on linux server are both the same thing,
but the linux server does not start with this mutator do not know why

and I try to cacusmapvote an error after a while he dont opens the votemap not even being activated, so I wanted to use this mutator see fix this erro...


look my log:

Log: Log file open, Fri Nov 7 22:36:01 2014
Init: Name subsystem initialized
Init: Version: 451
Init: Compiled: May 6 2003 22:27:59
Init: Command line: DM-Curse][.unr?game=Botpack.DeathMatchPlus?mutator=CacusMapVote.CacusMapVote -multihome=189.1.164.75 -log=../Logs/LOG_DE_SUBIDA_ut99br2.log -ini=UnrealTournament.ini -port=6666 -nohomedir
Init: Base directory:
Init: Character set: ANSI
Log: Bound to Editor.so
Log: Bound to Core.so
Log: Bound to Engine.so
Init: Object subsystem initialized
Init: CPU Speed=1995.481466 MHz
Log: Executing Class Engine.ServerCommandlet
Log: Bound to XC_Engine.so
XC_Engine: ========= XC_ENGINE - Test build 4 ==========
XC_Engine: ================= By Higor ==================
XC_Engine: Detected version 451 GameEngine
Init: Unreal engine initialized
XC_Engine: Browse() Start: unreal 6666
Log: Browse: DM-Curse][.unr?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkins.blkt?Face=SoldierSkins.Othello?game=Botpack.DeathMatchPlus?mutator=CacusMapVote.CacusMapVote
XC_Engine: LoadMap intercept begin...
Log: LoadMap: DM-Curse][.unr?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkins.blkt?Face=SoldierSkins.Othello?game=Botpack.DeathMatchPlus?mutator=CacusMapVote.CacusMapVote
Log: Case-insensitive search: utcrypt -> ../Textures/UTcrypt.utx
Log: Bound to Fire.so
Log: Case-insensitive search: Botpack -> ../System/BotPack.u
Log: Bound to IpDrv.so
Log: Case-insensitive search: SKYBox -> ../Textures/SkyBox.utx
Log: Case-insensitive search: Ambancient -> ../Sounds/AmbAncient.uax
Log: Case-insensitive search: shaneDAY -> ../Textures/ShaneDay.utx
Log: Collecting garbage
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Allocation checking disabled
Uninitialized: Log file closed, Fri Nov 7 22:36:04 2014
Can you try it with the v440 Linux files?
I remember reading long ago somewhere or another that v451 was only for dedicated windows servers, and that v440 was
best for Linux.

Re: XC_GameEngine [test build 4, coop + reconnect]

Posted: Wed Nov 19, 2014 2:44 am
by Higor
I'm considering a GameInfo.PreLogin hook to allow it to interact with other tools and deny players from joining a server based on their login info.
Maybe some other extra server exploit fixes in it as well.

Re: XC_GameEngine [test build 5]

Posted: Sat Nov 22, 2014 8:23 pm
by Higor
Build 5 update:
- Removed CACUS exec
- Added v451 GET and SET commands
- Added PreLoginHook
- Added Nexgen PreLoginHook sample ServerActor


=================================
NexgenXCGE server actor readme

=============
Installation:
=============

Requires XC_GameEngine.
On the Server/Game main ini:

[XC_Engine.XC_GameEngine]
ServerActors=NexgenXCGE_01.NexgenXCGE_PreLogin

If you don't have a XC_GameEngine entry, copy it from GameEngine instead of making a new one or ugly things happen.


===========
Description
===========

This PreLoginHook actor will allow the IP component of Nexgen bans to reject players
before they even get to load the map, just like default ip bans.
The ban reason is also displayed on the client's Log.

In theory, all versions of Nexgen and NexgenABM should be supported.

This is extremely useful for saving server resources and keeping those
able to bypass NexgenABM bans out.


====================================
PreLogin hook Description for coders
====================================

This is a PreLoginHook actor, it autoregisters itself to XC_GE's PreLoginHooks list and
gains the ability to interfere with a player's PreLogin function.

How does this happen?

Code: Select all

event PreLogin( string Options, string Address, out string Error, out string FailCode)
{
	//default code here
	...
	//what the hook does after the default code
	int i=0;
	while ( i < XC_GameEngine->PreLoginHooks.Num()
		XC_GameEngine->PreLoginHooks(i)->PreLoginHook( Options, Address, Error, FailCode);
}
This allows every hooked actor to alter the Error and FailCode values with simple unrealscript code.
The only requirements are to register the actor with the following console command:

Code: Select all

event PostBeginPlay()
{
	ConsoleCommand("PreLoginHook "$GetItemName( string(self) ) );
}
And to implement this function as you see it right here (register will fail otherwise):

Code: Select all

event PreLoginHook( string Options, string Address, out string Error, out string FailCode)
{
	... //Your code here
}

Re: XC_GameEngine [test build 5]

Posted: Sun Nov 23, 2014 7:16 am
by gust
[Core.System]
Paths=../Test_Files/*.u
Paths=../UT_Server/*.u
Paths=../System/*.u
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Paths=../Test_Files/*.utx
Paths=../Test_Files/*.uax
Paths=../Test_Files/*.umx
Paths=../Test_Files/*.unr
Paths=../Custom_System/*.u
Paths=../Custom_Textures/*.utx
Paths=../Custom_Sounds/*.uax
Paths=../Custom_Music/*.umx
Paths=../MH_MAP/*.unr
Paths=../BT_Map/*.unr
Paths=../ServerMaps_special/*.unr
Paths=../ServerMaps/*.unr
Paths=../ServerMaps_Dummy/*.unr
Paths=../SiegeMap/*.unr

Code: Select all

function PreBeginPlay()
{
	local string s;
	
	s=ConsoleCommand("Get core.system Paths");
	ConsoleCommand("Set core.system Paths"@s);
}

Result(default GameEngine)

Paths=../Test_Files/*.u
Paths=../UT_Server/*.u
Paths=../System/*.u
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Paths=../Test_Files/*.utx
Paths=../Test_Files/*.uax
Paths=../Test_Files/*.umx
Paths=../Test_Files/*.unr
Paths=../Custom_System/*.u
Paths=../Custom_Textures/*.utx
Paths=../Custom_Sounds/*.uax
Paths=../Custom_Music/*.umx
Paths=../MH_MAP/*.unr
Paths=../BT_Map/*.unr
Paths=../ServerMaps_special/*.unr
Paths=../ServerMaps/*.unr
Paths=../ServerMaps_Dummy/*.unr
Paths=../SiegeMap/*.unr


Result(XC_GameEngine [test build 5])

Paths=../Test_Files/*.u
Paths=../UT_Server/*.u
Paths=../System/*.u
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Paths=../Test_Files/*.utx
Paths=../Test_Files/*.uax
Paths=../Test_Files/*.umx
Paths=../Test_Files/*.unr
Paths=../Custom_System/*.u
Paths=../Custom_Textures/*.utx
Paths=