EOSERV Forum > EOSERV > EO Pub / Map API
Page: << 1 >>
EO Pub / Map API
Author Message
Post #202120 EO Pub / Map API

Is there an API for adding and removing map data and pub data? People would be able to code epic things if we could have functions to modify map tiles, modify pub files in server code. Then you can have a server command that lets say modifies an item, or adds a new one. Server commands to maybe fix up maps like add a wall on your current tile.

People could code a dyanamic map system and load map config from a config file. Example: have a single map then state in config that there should be 2 versions of the map, one with a chest there, and one not. Then a quest can choose which map version is in effect.

Having a configuration file is easier than manually making map versions.

Could probably have events where you add something to every single map on the server in random spots with code like this.

And then the EO+ Quest system might need an update to support warping the player to the right map version.

---
I not hacker

“Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its
whole life believing that it is stupid.” - Albert Einstein : Really Great Quote Ramy!
7 years, 15 weeks ago
Post #202121 Re: EO Pub / Map API

I've tried to "componentize" the map/pub file loading for my client. If you build and deploy EOLib.IO separately, it should work as a standalone component in a .Net 4.5 application. Here's the link to the source: https://github.com/ethanmoffat/EndlessClient/tree/master/EOLib.IO

A couple of usage related things, since I haven't documented anything externally:

  1. All components of EndlessClient (i.e. assemblies/dlls) use Unity Container for dependency injection. You will have to register/initialize the IODependencyContainer in order for things to work as expected. See EndlessClient.DependencyContainerProvider and EndlessClient.GameExecution.GameRunnerBase for details on how its used in my client.
  2. Most of the access to loading files is done through actions. See EOLib.IO.Actions directory for load actions.
  3. Most of the access to saving files is done through services. See EOLib.IO.Services directory for save services (load services are also here). If you want to implement saving at a high level I would recommend adding an interface in EOLib.IO.Actions
  4. I tried as hard as I could to have an individually deployable component for file I/O related junk but there are two is one other dependency on EOLib.IO - EOLib.DependencyInjection (for Unity related stuff) and EOLib.Logger (for logging). I will try to remove the logging dependency soon because it is dumb that logging is needed for I/O.

Edit: I removed the logging dependency so disregard that part of point 4!

---
class EOSERV {
Programmer | Oldbie
Open source EO Client: https://github.com/ethanmoffat/EndlessClient
};
7 years, 15 weeks ago
Page: << 1 >>

EOSERV Forum > EOSERV > EO Pub / Map API