Jump to content

JAMod - Singleplayer Code Plugins


Recommended Posts

Posted

What is it?

The JAMod system is a series of DLL files and such that allow for simple, yet oft-requested fixes. This just keeps all the reverse engineering in one place where it isn't going to be a pain in the ass to make DLLs for every single mod out there.

 

When will it be finished?

No clue. The base system should be done relatively quick. Plug-ins may take longer.

 

What plug-ins will be available?

The community can make plugins via the SDK. It's nothing like the MP sdk though. More reverse engineering is required.

As far as plugins I'm planning on making:

- JK2->JKA fixes (may require additional softcoded fixes such as map recompiles!)

- HDR via JAVisPlus

- Ghoul2 Transform Fix (they doubled a certain model limit between SP and MP. as a result, some models don't work in SP, while they work in MP). @@Inyri's gun should work with this plugin

 

Other things that are possibilities:

- Weapon extender (at some point)

- HUD jailbreak (treats the hud.menu as an actual .menu, loading extra crap)

- Support for other video/audio formats

 

Installation into your mod

 

The idea is that this is purely modular code, released with an SDK. You will need some extensive modifications to make it work on your mod system:

  • Copied jagamex86.dll to base, renamed existing one to ProxyDLL.dll
  • Added JAMod.dll to your mod folder of choice (does NOT go in a PK3!)
  • New jagamex86.dll in Gamedata to replace the (now renamed old one)

Uninstallation is pretty simple:

  1. Remove the mod folder, .bat, and whatever else comes with the mod

Or if you want to just remove JAMod:

  1. Remove JAMod.dll, JAMod.ini, and all associated plugins that you have downloaded.

Of if you want to revert to a pure version of SP (no difference as far as I know. feel free to correct me! some hooks may be left over from JK2: Unlimited days):

  1. Remove the jagamex86.dll from Gamedata
     
  2. Rename ProxyDLL.dll in your Gamedata to jagamex86.dll
     
  3. Remove the jagamex86.dll from base folder
     
  4. Remove mod folder and other mod files

Fighter, Shusumi, therfiles and 1 other like this
Posted

Hmmm...sounds really cool! Is this Odysseus?

 

Can't wait for some of these features! "Hud jailbreak" will open up so many possibilities. Is it possible, however, to have all elements in the HUD? How would a button work, because the mouse movement is tied to the game atm. But, even adding show/hide stuff and cvar displays will simply be epic.

 

Is weapon extender just adding more weapons? What exactly is this implying?

 

Good work, as always, Eez!

Posted

Hmmm...sounds really cool! Is this Odysseus?

No.

Can't wait for some of these features! "Hud jailbreak" will open up so many possibilities.

I prefer the term "plugins". :P

Is it possible, however, to have all elements in the HUD? How would a button work, because the mouse movement is tied to the game atm. But, even adding show/hide stuff and cvar displays will simply be epic.

I think only stuff involving clickable elements wouldn't work.

Is weapon extender just adding more weapons? What exactly is this implying?

Extends virtually everything about weapons (including damage), but does not raise the cap.

therfiles likes this
Posted

Today's progress:

  • Rewrote most of JAMod.dll, the old proxy system is just plain ugly and wrong and evil
  • Added the .ini loader
  • Started on plugin discovery (all you have to do to make a plugin in JAMod is call it JAMod<YourPluginNameHere>.dll, make a section titled "[<your plugin name here>]", and in that section do:

Active<YourPluginNameHere>=true;

 

So if I made a plugin, titled "KillRosh" that killed all instances of Rosh after 5 minutes, I would make a JAModKillRosh.dll, and then add this to JAMod.ini:

[KillRosh]
ActiveKillRosh=true;

 

My code would automatically be executed on startup, along with JAMod's other plugins. Note, some plugins can conflict. Also, there will be a slight hooking API done for you that calls some functions either before or after vmMain functions (such as DrawActiveFrame...note this does NOT hook the serverside stuff! SP is really weirdly handled like you would not believe)

Tempust85 and therfiles like this
Posted

Sounds awesome so far

i've always hated how "locked" sp was when it came to modding

 

- Ghoul2 Transform Fix (they doubled a certain model limit between SP and MP. as a result, some models don't work in SP, while they work in MP). @@Inyri's gun should work with this plugin

 

you mean the SV_SpawnServer (or whatever) size?

Posted

you mean the SV_SpawnServer (or whatever) size?

Yes. Or to be more precise:

Ran out of transform space for Ghoul2 Models. Adjust MiniHeapSize in SV_SpawnServer.

Posted

So how's this coming? I personally wish I could change how g_debugmelee works in Single Player. The problem is that I want to give melee katas and kicks etc. to the player without it being extremely overpowered.

 

I'd like to make it something like this:

g_debugmelee 1 - Gives you kicks and katas in addition to punches in melee. Katas can be broken out of by some stronger enemies (like Reborn/bosses etc.)

g_debugmelee 2 - Gives you all the normal abilities. Katas can't be broken, and you can hold use to lean in every direction, you get the flip kicks, can stick to walls infintely etc.

therfiles likes this
Posted

Haven't been working on it because of master server code + JKG. Also have been missing out on working on Odysseus.

If only I had an extra pair of hands or three...

therfiles likes this
Posted

so you're messing with the SV_SpawnServer related error ?

if vso did you find out what exactly causes it ?

I currently get the error with one of my models , but another model with a higher vert count

doesnt get it which is pretty confusing to me because so far I thought it was the vert count causing this

Posted

hey ashura, i got that error with proxy and started removing the meshes one by one until i found the problem peice which in this case was his head, i then deleted it and rebuilt the head with a lower polycount and it worked. i tried to just remove some edge loops on the head at first but removed em all the way to a box and it didnt work so i had to rebuild it. maybe a certain peice is causing it like in my case try it and see. just delete a part of the mesh startin with the head and recompile and see if the model gives the error, if it does, replace the head and move on to the arms or whatever u know? in my case it was 1 funky peice of geometry

  • 4 weeks later...
Posted

So, for someone without any actual C programming knowledge, would it still be possible to use this at all? Obviously you couldn't do anything major, but just some basic tinkering or fiddling perhaps?

 

Also, out of curiousity, is JA sp coded in C or C++?

Posted

JA SP is coded in C++, with a lot of C style code. Ghoul2, EFX, weather(?) and such are in C++, a lot of the game logic itself is mostly C style.

Posted

Good to know.

 

There are several things I'd like to do with the SP code which would all probably be over my head. Like:

1. Make saber offense increase your ability to break parries slightly with each level (currently it only affects saber lock strength)

2. Revamp saber defense slightly to reflect the changes in offense

3. Make strong style slightly blockable while making it slightly faster and more comboable

4. Make saber throw and kicking possible on the same saber (say default: altattack - saberthrow, while holding down use, altattack - kick, or something like that)

Posted

JAMod has an API which allows for external DLLs to be loaded, but the code won't really be accessible unless you have some reverse engineering experience.

Posted

When I go on that page I have trouble figuring out what I'm looking at! Anywhoo, I guess I'm out, as considering I'm not a programmer, reverse engineering is out of my range.

Posted

It just fails to load the DLL outright. which doesn't make any sense considering:

  • the DLL is loaded the exact same way as JAMod.dll
  • the DLL has only one function, which basically just does math

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
×
×
  • Create New...