-
Notifications
You must be signed in to change notification settings - Fork 98
Description
Summary
Changes to the client may be made dynamically by remotely modifying IES data through specified packets. It is extremely likely that server operators running Melia will want to customize the experience for players to their liking, and since distributing modified clients is not legal, the ability to use these packets will be highly desired.
Problem
In order to send a modification, intimate knowledge of how an IES is structured must be known to the application. Further, information required may change with each client release, and an incorrect structure can crash the client. We need a system that allows for making changes easily and safely. Such a system should make it easy on the server operators to add/remove new changes without needing to spend so much effort to find required information.
Data Requirements
The following data is required in order to make an IES change:
- Filename of the IES.
ClassIDof the row to be modified.- Column name identifying the modification.
- Previous value to be overwritten. (Necessary when revoking a revision).
Items to Consider
- Modifications should most likely exist as a table in the database.
- Should modifications be applicable to single characters/accounts? (More complex, but maybe there is a reason someone might want this?)
- A large number of modifications should not be sent as one packet. They need to be split up.
- Should we make a feature to allow GMs to make modifications through
CZ_CHAT? (Validation needs to be robust since a bad packet can crash clients.) - Modifications are not permanent by default and reset only once the client is closed. (It seems like there is code to flush changes to the files themselves).