• Announcements

    • Detrux

      Site Relaunched   10/13/2016

      Welcome back to BFEditor.org! We've upgraded the forum software, removed the spammers, and improved security. Apologies for the downtime! Det
Sign in to follow this  
Followers 0
cobrachoppergirl

Billboard Hacker Wanted

10 posts in this topic

0003_900x.jpg

BILLBOARD PLUS+

"Dynamic changing in game billboards, shipping containers, decals, game assets, game logic, and other fun stuff done all on the game client side to server admin control"

The BF2142 demo client is frozen and has never been upgraded - or rather, its become abandonware. Because it has never been changed, it should make it very easy to write a patch for its staticly frozen and never changing file structure.

I'm looking for someone interested in helping me write a client side patch, that players download, and it patches and hooks into the BF2142 demo game client, so that it is run once on game client start up. It will probably just be a python script itself and be simply launched by the BF python interpreter by one of its init script. My guess is I"ll probably end up writing it myself, but if you have experience writing client side patches, holler at me.

PATCH SCRIPT LOGIC OVERVIEW

The patch script will contact my server for a (short) list of files and file locations in the game client to replace before game startup and with what custom file. (the current list of changed files to use)

This list changes every day on the master server to a cron job to its own computer program (probably a bash shell script), and is limited to changing the textures on the billboards and shipping containers.

The patch then checks to see if these download files are stored in its local cache on drive (already been downloaded), and if not, downloads them with some wget/ftp code

If any operation times out, it just continues and does nothing, leaving the settings from last time.

It then swaps the files in the list/file locations (new textures) into the zip archives

When the player enters the game, the game loads the new textures as if they were the games native textures, yet the player will see these new textures on the billboards and shipping containers, which will change every day. The effect being, dynamic textures/details in the game; the billboards change every day or X period for everyone, and funny ads for non-existent products of the future appear on the shipping containers.

The downloader will be generic, any files in the demo can be replaced not just textures, making other things in the game dynamic (for example, for christmas all the trees could suddenly become christmas trees, or the decals on the tanks become smiley faces, or any other possible client side change I could dream up), but for the beginning I'll focus on swapping the billboard and shipping container textures since they are rather harmless, and in the demo, static, boring, and never used or changed (unlike the full game).

As you can guess, you could do some pretty exciting stuff with this, because it would suddenly make the stupid idiot non-changing game client 'dynamic', and all stupid client only stuff you could never do before, you suddenly can do. At least some of it, as your changes would affect the players client no matter which server he connected to, not just yours, you have to keep that in mind and be rather prudent, tactful, and cautious with your changes. The BF2142 demo community is rather tiny though (15 or less servers) so this is not such a big deal. The exception being python code that you changed client side, where you put in a check to only run the modified version of the code if the game server connected to matches your server name.

The shipping containing textures are stored in billboard_color01.dds in Static_objects_client.zip, and the billboards themselves I haven't yet though I stumbled across them one time and are stored in different sizes (I remember that). See here for a thread on it, or just go poking around in the zips to find them: BFeditor Billboard discussion

Technical difficulties: well, I've never written an installer before, but I'm sure there are canned packges out there for it. It probably will be very simple, just replacing one or two text files in the game client with another (patching the init script and adding in the patch script it calls to do all the work), but it'd be nice to have an Uninstall option and nice canned installer interface everyone is use to with Windows. Also, I don't know how difficult it is going to be with computer code to replace a file inside a zip archive with another. Anyone with any insight on this let me know. And I need to find some ftp/wget type code written in Python.

Edited by cobrachoppergirl

Share this post


Link to post
Share on other sites

There should be some tutorials on adding your own sign to a BF2 or 2142 billboard. I'll take a look.

Share this post


Link to post
Share on other sites
On 2016-11-05 at 4:35 AM, Catbox said:

There should be some tutorials on adding your own sign to a BF2 or 2142 billboard. I'll take a look.

Thank you!

Share this post


Link to post
Share on other sites

ARE THE BILLBOARDS IN 2142 STILL DYNAMIC?

Share this post


Link to post
Share on other sites

Thanks Dnamro, was interested in the Dynamic changing in game billboards though!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0