Note that nothing of this post will be ever released atleast in a short-term period.
If you're asking why im posting this here then, well its a dev section, i've seen alot of people posting here without releasing later the work so...
Lets start.
A while back I started to work on a complete emulator for GunZ for the latest KGunZ Client and finally i have finished it (well, have been finished for near 2 months now). Im not going to describe every feature since it contains ALL the features that official servers haves EXCEPT gamble items since i find them pretty useless.
Note that this is a coded-from-scratch emulator, isn't a dll which is injected to the matchserver and does the extra job of emulate everything.
I've spent the last 2 months in customize the client, all of this is powered by a library called GunZHook which haves the ability to dissasemble and analyze the gunz (not locked to, it can do it on any PE executable) executable, looking for functions, classes, virtual tables and so on. it allows the binding of local global static singletons to gunz memory real singletons along with binding and hooking of static, class and virtual functions. All of this is done using a resolvers system which essentially is a advanced signature scanning algorithm done to be able to resolve and find functions even if the binary have really changed, all of this is done to automate the process of updating to latest GunZ executables, the physical GunZ executable isn't touched at all, all is done on the fly by GunZHook.
This is a little snipet of what GunZHook can do.
Code:
GH_DECLARE_OBJECT_BIND( ZApplication, g_App, G_APP ) // G_APP is the id of the g_App gunz singleton resolver
GH_DECLARE_FUNCTION_BIND( bool, ZApplication::ParseArguments, ZAPPLICATION_PARSEARGUMENTS, const char* ) // ZAPPLICATION_PARSEARGUMENTS is the id of the ZApplication::ParseArguments gunz function resolver
GH_CREATE_CLASS_HOOK( ZAPPLICATION_INITMESSENGERMANAGER, ZApplication, InitMessengerManager ) // ZAPPLICATION_INITMESSENGERMANAGER is the id of the ZApplication::InitMessengerManager gunz function resolver
void Fun()
{
// we can access g_App like if we had the gunz source code
if( g_App.ParseArguments( g_pszCmdLineArgs ) )
{
// ok
}
}
With all of this i have no limits of how much can i modify GunZ right now, i can do everything i want to GunZ, from add new gametypes to add a new sex to GunZ.
Here are some vides of what will be in the closed beta, not all of this is finished, this is the ToDo List.
- Finish the entire new interface design, currently only its finished until the character selection screen.
- Add a random ingame item drop system, allowing you to earn special items while playing in-game, boxes will spawn in random positions of the map and the first use who grabs it will receive a random unique item.
- Add new gametypes.
- Enhance the GunZ Graphic core adding post-processing effects and maybe bump and normal maps to maps and models.
- And more, more things.
Videos, please watch them in HD so you can see the commentaries.
General: YouTube - HeroGamers GunZ 2010 Update - General
Quest Mode: YouTube - HeroGamers GunZ 2010 Update - Quest Mode
Survival Mode: YouTube - HeroGamers GunZ 2010 Update - Survival Mode
Thanks for reading, and phoenix, congratulations for your mod position :)