Commit graph

9 commits

Author SHA1 Message Date
Paul Campbell
d3d0ff30a2 fix: Add a server config for IANA ID
Some timers are running off local server time, while others are using
UTC 0. Added a a new setting ServerTimeZone which uses a IANA ID. It is
used by the task scheduler and and other calendar aware timing events.
By default it is set to "TimeZoneId.Japan" (JST +9). A helper class named
TimeZoneId.cs exists so a admin can use a named constant instead of magic numbers.
2026-04-24 07:23:48 -04:00
Ryan Yappert
29ee46a1f6 Store MD5 hashes of scripts and use the DLLs when possible to reduce startup time. 2025-06-29 02:07:13 -07:00
Paul Campbell
1ac6810ec5 fix: Clean up duplicate NPCs
Removed Quintus from the stage so he is not standing in front of Nedo in
S3.0 CS. Removed Spirit Dragin and Modred from the stage so they are not
there blocking multiple cutscenes in Season 2.
2025-06-12 01:17:35 -04:00
Paul Campbell
a3316815af feat: Job Emblems
- Added support for job emblems
- Created new personal quests to unlock emblems.
- Added support for emblems using the menus at Renton.
- Created new handlers and packets for the new menus.
2025-05-23 23:00:13 -04:00
Paul Campbell
7e259df594 fix: Fix issue with scripts not using asset path correctly
- Fixed an issue where the script project didn't output templates files to
  the correct location.
- Fixed an issue where the script project didn't output the debug
  assemblies to the correct location.
2025-04-12 18:46:12 -04:00
Paul Campbell
7c31026f77 feat: Server settings templates and defaults
- Server settings which are read by the C# server software now provide
  defaults in the server code.
- When the server loads, using reflection, it generates a csx setting file
  in a new script_templates directory. The server admin can copy these
  templates into the "settings" module to be loaded and override the
  default settings.
- Server defaults apply first, then settings provided in the script
  override the defaults. The script files only need to provide the
  settings they wish to override. They do not need to provide all
  settings.
- Removed the files GameLogicSettings.csx, SeasonalEvents.csx,
  ChatCommands.csx and PointModifiers.csx.
2025-02-25 20:09:04 -05:00
Paul Campbell
2abf7bb276 feat: Add support for debugging csx scripts
If the build is a debug build, it is possible to debug csx scripts
loaded by the server. Fixed an issue where the datetime range compare
was incorrect with a peroid crosses from one month to the next. Added a
new field EnableCancel which can be used by tutorial quests.
2025-02-21 20:03:44 -05:00
Paul Campbell
07f21f7927 feat: Scripted Quests
- Added the ability to define quests using C# script.
- Implemented the 2018 Christmas quests using C# script.
- Implemented the 2017 Halloween quests using C# script.
- Implemented the 2018 Halloween quests using C# script.
- Added the ability to load external scripts from the "libs" directory
  in scripts loaded by the GameServer project.
- Added new documentation for scripts.
- Updated existing 'holiday_personal_quests.md' to include directions
  for enabling the event quests.
2024-12-31 09:40:11 -05:00
Paul Campbell
e6e5073737 refactor: Refactor code and show different scripting example
- 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.
2024-12-26 10:38:17 -05:00