Topic is locked.
Page: << 1 >>
EOPlugins
Author Message
Post #194098 EOPlugins

UPDATE 8/14/14: I have started working on this again, i am redoing many things with it to be better usable. Il make a new topic for the new version. In the meantime, i will leave this post as is for those whom want to try the old version until i am finished

New version ready, look here
----------

Hello everyone, I have taken the knowledge i have gained from examining a bit of sordies old work and have made an experimental, clientside dll-based plugin system that works with the original game client.

The current feature list:

  • Running of a dll function before, after, and during the game client being ran. All plugins that support running during the game are given their own thread to not hinder other plugins or the main system from updating client information.
  • When each function is called from the plugin, it is passed a pointer to a structure containing info about the client. Such as: the PID of the client, window name, window position(x/y), window width/height. Info that could be useful for addon windows or other features added to the client, by plugin.
  • The structure listed above could be read directly(with an added feature of being able to change the window title) or with an included pluginhelper.dll. The helper dll is an alternative to those wanting to get the data listed above without working with the structure directly. All that is necessary is to pass the pointer given to that plugin function to the command of the pluginhelper.
  • Safe(non hex) changing of the Game Client window name at runtime. Also compatible with clients that already have their name changed by hex edit.

Creation of a plugin is simple: all that is needed is to make a native windows dll, drop it into the plugins folder, with at least one of the exported functions listed - pluginload pluginunload pluginrun

Usage: Make sure your client config(where it has the server ip and port), there is a part that says "Title=Endless Online" or whatever you want your custom title to be. This will cause plugins to be active.
This works with packed, unpacked, and modified; eo clients

Your exported functions need to look roughly like this(language dependent):
void export pluginload(*gameinfoptr){} // This is called before the client loads
void export pluginrun(*gameinfoptr){} // This function is run inside of its own thread. Be warned here, there is no warning for the function/thread to be destroyed when the client is closed
void export pluginunload(*gameinfoptr){} // This is called after the client is closed. Be careful here with deallocation. In my own tests, when deallocating some things, the client has crashed at this point. Test on your own.


I decided to release, here you can get the latest build:

EOPlugins Build 1

10 years, 46 weeks ago
Post #194099 Re: Eoplugins

I read it all.....

Anyways for the fact none of the clients are completely finished and currently exiles doesn't run on main properly, sooo I'd say yes release it.
Seems like it could be of use.

---
( ͡° ͜ʖ ͡°)CTronic.org 
I'm Nutso. Keep your fingers out of my butthole.
10 years, 46 weeks ago
Post #194454 Re: Eoplugins

Decided I wanted to release the plugins module. Make sure you extract the files as-is into the same folder as your client executable. The msigm32.dll cannot be renamed for it to function, as well as the plugins\pluginhelper.dll, as it is skipped over during plugin scans.

Would appreciate for those that normally do, to check and give the good-to-go on mischievous activities in the files.

Make sure you check out the readme included.

10 years, 46 weeks ago
Post #194455 Re: Eoplugins

Link doesnt work D:

---
Andrewbob - I would be on the fucking copter of rofls

Programmer, Web Developer, and Graphics Designer
10 years, 46 weeks ago
Post #194462 Re: Eoplugins

This sounds really cool, but the link is broken sadly so I can't try it out. What do you plan on doing with it in the future?

10 years, 46 weeks ago
Post #194469 Re: Eoplugins
colbymsn posted: (13th Jun 2013, 08:23 pm)

This sounds really cool, but the link is broken sadly so I can't try it out. What do you plan on doing with it in the future?


@all Link is fixed, messed it up trying to be fancy with the formatting

@colbymsn that is an interesting question. for the most part, the main functionality is completed. Really all there is now is making it easier to debug, adding more data available to the plugins, and optimizations. Something i have in mind is poking at the client a bit more to see if i can craft a good detector if the client is ingame or not, and add that to the data that is passed to the plugins.
10 years, 46 weeks ago
Page: << 1 >>
Topic is locked.