- Refactored code so implementation can be shared between Server and
DdonGameServer.
- Moved settings into settings module and implemented an example using a
less structured scripting module interface.
- Created new ScriptableSettings class to assist with interacting with
non-structured settings module.
- Created README.md files for suggestions and guidelines for module
implementation.
- Added Roslyn to the project.
- Added an example of parsing game logic settings from a .csx file.
- Made GameLogicSettings.csx hotloadable.
- Adjusted exp point modifier settings for enemies and quests to be
hotload friendly.
- Implemented a ScriptModule interface for GameServer scripts.
- Converted extended NPC facilities into scripting .csx files for each
NPC and made directory hotloadable. New NPC options can be added after
the server starts without a restart.
- Added new EventItemConstraint values
- LessThan
- LessThanOrEqual
- GreaterThan
- GreaterThanOrEqual
- InRange
- Added the ability to define constraints based on enemy level
- If the constraint is 'InRange' the fields 'min_lv' and 'max_lv'
are required.
- "requirements": {"enemy_level" : {"constraint": "InRange", "min_lv": x, "max_lv": y}}
- If the constraint is any of the other types the field 'lv' is
required.
- "requirements": {"enemy_level" : {"constraint": "LessThan|LessThanOrEqual|GreaterThan|GreaterThanOrEqual", "lv": x}}
- Added the ability to define constraints based on if the enemy is a
boss or not.
- "requirements": {"enemy_class": "None|IsBoss|IsNotBoss"}
- Treat the lowest server id as the head server.
- Head server runs the timer task
- When timer task fires, if individual channel actions are required, use
the RPC manager to send an internal message.
- Update the EpitaphWeeklyReward task to send a message to all channels.
- Update migration values
Implemented a light weight mechanism for scheduling recurring tasks.
This can be used to implement, hourly, daily or weekly resets. There is
also an intention to use the mechanism to check for seasonal events and
turn on/off depending on the date.
Moved default values from constructor to member initialization so it's
easier to see when looking at the members. Made modifier types as
nullable so they can be assigned a default value if not present in the
config json.
- Added modifiers for gold and rift rewards from quests
- Fixed a bug where JP was not modified correctly for quest rewards.
- Fixed a bug where exp amounts were not displayed correctly in quest
amounts.
- Fixed issues related to enemy spawn and NPC text in 50 quest files.
- Fixed an issue in the SQL schema when creating a new database.
Authored-by: Cert