Integrated Facade and Multi client version support HOWTO?


(7Killer) #1

The goal of the stuff contains here is how to have a 2.6b server show into the 2.55 and the 2.6 list, and assume the client redirection.

Hey all,
Here u can found info about how to modify the ET source code to have ->
*a server which accept all client type ( 2.55 and 2.6). :tongue:
*a server is shown by the both client type. :smiley:
*a server which redirect client which connect in the facade port to the normal step :wink:

*WARNING
I give any warranty of all i said here causes no problems ( in the fact i haven’t any problems on mines tests servers))
I give it as it, originals authors of the differents code can not be accuse of any thing, i make that from my proper chief.
Im sure its better and simple implementation of the solution presented here.

*NOTICE
To found all changes i made, simply search for Facade into the code.
Using this code mean you have how to use and inject my files into.
Didn’t forget to add the news files ( _ Facade Named)in the visual solution or in the linux tools file configuration.

To ET_GPL_PATCH src_ET_LEGACY_PATCH.zip (93.7 KB)
I never try to compile it on linux, so i m sure its require some modifications in the file which replace win_main_facade and win_net_facade

To ET_LEGACY_PATCH src_ET_GPL_FACADE.zip (93.1 KB)
I have run and compile it with success on linux and on windows os, i just never achieve to compile it with an old libc under linux.
Note: i have make more cleaner code in this sdk, note facade port didn’t support ipv6 (because i m too lazy to make the code).
The facade port use the same protection system than the main port.
The facade file will just be add to the et_legacy_dedicated project.
I use their code which have one week old.

First Step A server which accept all client type.
How to?
Found in the code where the client version is test on server side, it s the easy part :
Search in code for multiclient type support
you ll found something about a a version test like the sv_client.c
here is the answer,

if ( version != PROTOCOL_VERSION_FACADE && version != PROTOCOL_VERSION )

Ok , at this point , all clients can connect BUT no magic, 2.6 client specifics commands will not work as it require some mod on client side.

Second Step a server is shown by the both client type
To be listed, its require 2 main things, the first send an hearbeat from the new port and answer to some requests like getstatus .
How to?
1srt : create a new socket for the facade port
Ok, i choice the easy way, i simply duplicate all server socket parts functions.
In the fact only functions which use socket specific , another way can be implement the socket handle in the fucntion argument ( better code)
All these functions are in net_chan_facade.c, win_main_facade, win_net_facade
2nd : Duplicate event fifo system
Now at this point , you have to duplicate event fifo system for the new socket because its require to answer at some request like a client connect or a getstaus from master server.
The main part of this code is in the common_facade.c file , some calls are implement into the
3rd : sending hearbeat and gamestatus on the facade part
At this point, we can send heardbeat
search for that in sv_main.c

NET_OutOfBandPrint_Facade( NS_SERVER, adr[i], "heartbeat %s
", hbname );

and send gamestatus at end map

SVC_GameCompleteStatus_Facade( adr[i] );


Thrid step : A server which redirect client which connect in the facade port to the normal step

Ok ,take a look at SV_ConnectionlessPacket_Facade in sv_main_facade.c, it s the function which decode packets message.
I have comment the rcon part , that mean no rcon on facade port for security reasons.
The fucntion which make the client redirect is the answer at a connect message, take look at SV_DirectConnect_Facade fucntion.
This fucntion just send a connect to the ā€œnormalā€ port to the client, u can send cmd or popup if u want at this place.

Attached to this message 2 archive which contains et_gpl file and et:l file to apply this patch.

I hoping its can help some of you, have fun :smiley:
7Killer :flamethrower:


(nonoMapper) #2

isnt that facade thing to trick people? showing false crowded server?


(cheesy) #3

ugh…I always hated when people claimed a redirect is a ā€œfake serverā€. What we call a facade in ET is nothing more than a server redirect. It is as real as the server it points to. I have seen servers out there that disquise bots as real players somehow, but that is a different matter.

So no, a server facade does not trick people. All it does it put a ā€œrealā€ server on both game lists. A brilliant idea.

Very nice tutorial. Its nice to see people are still taking the time to share development knowledge


(7Killer) #4

What u mean can be achieve with an external facade (ie a external soft) , and some others tricks, i didi’nt want to explain here because my goal is help the community to keep the game alive and not kill it :wink:
The code presented here just show your server and nothing other on the list its not , that s all

PS: I hate fake server, and hope i can found a solution to bypass them in the client list


(nonoMapper) #5

@Cheesy, not care whoever claims that. I am only asking.

@7Killer, i was thinking about that kid who made a so called ā€œserver facadeā€ a few months/years ago and made money with that (equa something)
(poor dummies who bought it…)

Afaik it was a tool pretending that it is a full server to be on top of the serverlist and people got tricked cause they thought it is a full server but then got redirected to another server. But if it does not do that, nevermind my question.


(7Killer) #6

[QUOTE=nonoMapper;400788]
@7Killer, i was thinking about that kid who made a so called ā€œserver facadeā€ a few months/years ago and made money with that (equa something)
(poor dummies who bought it…)

Afaik it was a tool pretending that it is a full server to be on top of the serverlist and people got tricked cause they thought it is a full server but then got redirected to another server. But if it does not do that, nevermind my question.[/QUOTE]

!external facade allow make bad things, like you described that s was , in my ideal world, developpers of server executable patch have to integrated the facade, and something which can detect false server on server side (sorry for the moment, i have nothing to propose, or just make a menu which remove full server and the ones which contains server max players - private slot - (number of slot you juge need) ) )


(nonoMapper) #7

Ok 7Killer. If the stuff you posted above does not include what i just described above your post, my question is answered. Thanks.


(macbeth) #8

all the servers using external facade or false servers who are full and false servers who just redirect the players on their usual server then will be the best to dont have them anymore listed on splatterladder and ettrackbase
they are trying to dead the servers who are still around


(Nail) #9

all this fake server listing stuff really infuriates me, I re-installed W:ET on a new computer and as soon as I clicked ā€œPlay Onlineā€ I was redirected to some ****ty server, I immediately contacted my buddy the corporate lawyer, he says, totally illegal for any one to take control of any part of your online experience for their own gains. He stressed that money was not a consideration in the legality, it was the control aspect that was illegal.
Next time it happens to me, I will go after that server with every resource I can muster, I will contact their ISP and put my considerable resources and abilities to make sure they are prosecuted, so for those who are pulling this crap, cease and desist, or my next hobby will be ****ing you up !


(diaboliksmart) #10

[QUOTE=nonoMapper;400788] i was thinking about that kid who made a so called ā€œserver facadeā€ a few months/years ago and made money with that (equa something)
(poor dummies who bought it…)
[/QUOTE]

NO if all kids were as genious as this guy (equalone afak RedSector) would be great !!!
Just have a look at all high-quality development this ā€œkidā€ have made for the community (2.55 Plus, enhanced-mod when jaymod did long dev pause, security-fixes, server-facade initially built to get a server on the 2.60 list, etc …) :

News:

Server Facade

ServerFacade 1.03 final release (linux + windows binaries).

- Master Server Address editable in config.

Server Facade

ServerFacade 1.02 final release (linux + windows binaries).

- added a version signature in "serverinfo".

- now able to bind virtual interfaces.

Enhanced Mod

Enhanced Mod 1.09e(20110530) standard version released. Jaymod 2.1.7 - 2.2.0 supported.

General Info

If anyone would like to develop similar software project on a different gaming platform/game and need some startup help - feel free to contact me. Pending on fun&time i am interested to develop some stuff regarding games in general (private stuff / closed source mainly).

Some focus can be:

- Security vulnerability fixes
- Proof-of-concept-exploits
- Server load/stress/spoof test apps
- Closed source software "enhancements"
- Research
Any requests/on topic interests? Feel free to contact me - 
equalone [at] gmx [dot] at.

Jaymod Tweaks

VoiceChat - Popup menu enabled for Spectators.

Download (jaymod 2.2.0 + Enhanced HUD 1.02)

Requests via email. (which jaymod version/enhanced hud yes/no)

WeaponTable+

WeaponTable updated - added Jaymod 2.1.10/2.2.0 Linux / Windows.

Enhanced Mod

Enhanced Mod 1.09d standard released - added Jaymod 2.2.0 support.

Enhanced HUD

Enhanced HUD 1.02 released - added Jaymod 2.2.0 support.

Jaymod

Jaymod 2.1.10/and older - "non-ascii" exploit.

Exploit Testing Environment:

With this tool you can check if your server is affected by this vulnerability. All players movement should show a unwanted behaviour (flipping crosshair).

Download (Windows only) - ASCIIExploit.exe

Enhanced Mod

Enhanced Mod 1.09d standard released - added Jaymod 2.1.10 support.

Enhanced HUD

Enhanced HUD 1.02 released - added Jaymod 2.1.10 support.

Server Facade

ServerFacade 1.01 public final release (linux + windows binaries).

Client-side - "Redirect Error" - hint added.

Many thanks to all who supported/support ServerFacade!

Server Facade AddOn

Extra "pk3" disabling the "Redirect-Dialog".

Basing on original etmain - simply copy the involved code in your ui menu files. Code commented with 'reds'.

etmain/ui_ar_override.pk3.

Enhanced Mod

Enhanced Mod 1.09d(20101213) standard version released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

A X-mas dedicated release.

VoteMap mode added ('g_em_votemap 1' in server.cfg).

Find the Xmas grinch (a hidden fun command).

Enhanced Mod

Enhanced Mod 1.09c(20101122) standard version released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

A small pre-release to fix a vulnerability(non-ascii userinfo) in original jaymod binaries.

Exploit Testing Environment:

With this tool you can check if your server is affected by this vulnerability. The player movement should show a unwanted behaviour (flipping crosshair).

Download (Windows only) - ASCIIExploit.exe

Enhanced Mod

Added a Enhanced Mod server browser basing on ML.

Weapons Tweaker

updated:  WeaponsDS (damage tweaker) for Jaymod 2.1.7 - linux
(WP_KNIFE, WP_MAPMORTAR, WP_GRENADE_LAUNCHER, WP_GRENADE_PINEAPPLE, WP_GPG40,WP_M7, WP_LANDMINE) added.

2.55+ Patch

updated:  A Quarter 1.2.9 beta6 (windows/linux/non-lua/lua) - "2.55+" compatibility patch.

ET Minimizer Alpha released

ET Minimizer is a tiny configurable application running as background task providing a few features like hide(minimize) or terminate the Enemy Territory instance by Hotkey.

RTCW/ET under Open Source GPL

Finally also Enemy Territory finds the way to be Open Source. This leads to more accurate alternative possibilities to keep this game stable and actual.

Enhanced Mod

Enhanced Mod 1.09 extended version released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

The extended version consists of a mod independent hardware GUID based ban system. Actually held as a private version.

2.55+/2.60b Patch

"wwwdl" exploit workaround for 2.55+/2.60b (exploiting a unprotected server causes all clients get a "CL_ParseServerMessage: illegible server message 0" - kick).

Enhanced Mod

Enhanced Mod 1.09 standard version released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Enhanced HUD

Enhanced HUD Beta 1.02 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Tweaked Jaymod

Added some tweaked jaymod binaries + Enhanced Mod 1.0.9 + Enhanced HUD 1.0.2 in a combined package. Additional tweaks enables the ability to lean and throwing nades contemporaneously (ETPro like behaviour).

Media

Added a media section dedicated to RTCW / W-ET.

2.55+ Patch

A Quarter 1.2.3/1.2.7_sf - "2.55+" compatibility patch.

Enhanced HUD

Enhanced HUD Beta 1.01 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Server Facade

ServerFacade 1.01 released (linux + windows binaries).

Tweaked Jaymod

Added some tweaked jaymod binaries + Enhanced Mod 1.0.8 + Enhanced HUD in a combined package. Additional tweaks enables the ability to lean and throwing nades contemporaneously (ETPro like behaviour).

Enhanced Mod

Enhanced Mod Beta 1.08 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Server Facade

ServerFacade 1.00 released (only linux binaries).

Server Facade

ServerFacade 0.02 released (only linux binaries).

Server Facade

ServerFacade 0.01 released (only linux binaries).

Weapons Tweaker

WeaponsDS 1.00 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Enhanced HUD

Enhanced HUD Beta 1.00 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Enhanced Mod

Enhanced Mod Beta 1.07 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

Enhanced Mod

Enhanced Mod Beta 1.06 released. Jaymod 2.1.7 + 20080125-2.1.8 supported.

WeaponTable+

WeaponTable+ 1.00 released. An advanced weapon properties modifier and patcher.

And of course, all migrated for Windows AND Linux.
Sorry but I could not let you despise him.

Thanks for your comprehension.
[DIABOLIK]$mart


(nonoMapper) #11
  1. he sold the facade. making money with crap software
  2. it’s not his idea. he just got his dirt hands on it or the idea/how it was done, and sold it.

Oh and not to mention the legal aspect on his practics.
If you think he is a genius then goodnight future.


(Runeforce) #12

So facades = not that great. But one thing that is MORE ANNOYING, is that you connect to a server with a lot of people, only to find out they are ALL BOTS!!!


(7Killer) #13

Same as daibolik said equalone made a nice work, the only bad thing is what some as made with his tool…
When i put the code here ,my only wish it s that some nice et executable server with nice fixes integrated full multiclient support, 2.55 players, abug part of new players, can ontinue to play and update later…
I just sad to saw that just cry comes here,
It exists some solutions to have mod which saw a server list without false server but i couln t achieve that without the help of community