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

Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_GameEngine [test build 3]

Post 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?
User avatar
gust
Novice
Posts: 14
Joined: Thu Jul 31, 2014 1:16 pm

Re: XC_GameEngine [test build 3]

Post 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.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_GameEngine [test build 3]

Post 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.
User avatar
Chamberly
Godlike
Posts: 1963
Joined: Sat Sep 17, 2011 4:32 pm
Personal rank: Dame. Vandora
Location: TN, USA
Contact:

Re: XC_GameEngine [test build 3]

Post by Chamberly »

LOL Wow.
Image
Image
Image Edit: Why does my sig not work anymore?
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

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

Post 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.
Smirftsch
Novice
Posts: 15
Joined: Tue Feb 08, 2011 9:21 pm
Personal rank: Frog

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

Post 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.
User avatar
Hellkeeper
Inhuman
Posts: 903
Joined: Tue Feb 25, 2014 12:32 pm
Personal rank: Soulless Automaton
Location: France
Contact:

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

Post 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?
You must construct additional pylons.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

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

Post 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.
User avatar
UnrealGGecko
Godlike
Posts: 2900
Joined: Wed Feb 01, 2012 11:26 am
Personal rank: GEx the Gecko
Location: Kaunas, Lithuania
Contact:

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

Post 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.
User avatar
[rev]rato.skt
Adept
Posts: 438
Joined: Mon Aug 16, 2010 1:09 pm

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

Post 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
Brazilian Server:
Alma Negra - 34.95.189.187:7777
Classic - madruga.utbr.cf:7777
Duel - x1.utbr.cf:6666
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

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

Post 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...
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: XC_GameEngine [test build 4, coop + reconnect]

Post 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.
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

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

Post 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.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_GameEngine [test build 5]

Post 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
}
User avatar
gust
Novice
Posts: 14
Joined: Thu Jul 31, 2014 1:16 pm

Re: XC_GameEngine [test build 5]

Post 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=
Post Reply