Commit graph

2693 commits

Author SHA1 Message Date
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
Paul Campbell
62d1d74e0e code review: Remove GameLogicSettings from deserialization
Moved game logic settings from the server settings object.
2024-12-26 10:38:17 -05:00
Paul Campbell
568688841d code review feedback
Replaced File.ReadAllText with Util.ReadAllText.
2024-12-26 10:38:16 -05:00
Paul Campbell
872275e95e feat: Add C# scripting support
- 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.
2024-12-26 10:38:16 -05:00
alborrajo
0baa6fec19
Merge pull request #666 from mjsalerno/fix-postgres
Fix postgres
2024-12-23 18:57:27 +01:00
Mike Salerno
5acc1b621e fix data type of boolean column so postgres works 2024-12-22 19:50:46 -05:00
Mike Salerno
cc52087788 make clan_id an autoincrement column 2024-12-22 19:50:46 -05:00
Mike Salerno
fd053eb280 redo giant community list case sql 2024-12-22 19:50:46 -05:00
Mike Salerno
d34567b176 WIP: fixing postgres 2024-12-22 19:50:46 -05:00
Ryan Yappert
4ae8eed187
Merge pull request #662 from RyanYappert/feat/auto-kick-on-login
Feat: Auto Kick on login
2024-12-20 11:30:44 -08:00
Ryan Yappert
fa92b014ab Better default behavior for config files. 2024-12-20 11:27:16 -08:00
Ryan Yappert
a874eabcf0 Clean up ClientLoginHandler's implementation of the kicking stuff. 2024-12-20 11:26:22 -08:00
Ryan Yappert
ef4222d59f TrackingRoute -> CommandRoute. Move Epitaph reset command to CommandRoute since its not really a packet. Move some Rpc machinery to Shared so it can be called from the Login Server. Add setting to have the login server request the game server to kick clients on 6008. 2024-12-20 11:26:22 -08:00
Ryan Yappert
b7b2401001
Merge pull request #663 from RyanYappert/fix/fixes-12-11
Fix: Small fixes 12/11
2024-12-19 18:25:20 -08:00
Ryan Yappert
ab63860448 Review feedback. 2024-12-19 18:24:09 -08:00
Ryan Yappert
27764839ef Reduce error logging when we can't find questScheduleIds known to be associated with pcap world manage quests. 2024-12-19 18:24:09 -08:00
Ryan Yappert
b9989a8366 Restore moon phase behavior using the values from pcaps. 2024-12-19 18:24:09 -08:00
Ryan Yappert
b2945bf137 Don't send a client's own lobby context to themselves, it causes issues. 2024-12-19 18:24:09 -08:00
alborrajo
a0b4c4d28c
Merge pull request #665 from alborrajo/feature/bazaar-timers
Configurable bazaar timers and bazaar related GP course effects
2024-12-20 00:45:03 +01:00
alborrajo
411132c970 Implement bazaar related GP course effects 2024-12-20 00:43:54 +01:00
alborrajo
24030b2876 Added configurable bazaar timers 2024-12-20 00:43:54 +01:00
Paul Campbell
4d5080acf0
Merge pull request #664 from pacampbell/add_event_em_level_restraint
feat: Add enemy constraints for event drop systems
2024-12-19 18:40:49 -05:00
Paul Campbell
24deeffaaf feat: Add enemy constraints for event drop systems
- 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"}
2024-12-19 09:38:20 -05:00
Paul Campbell
86fe018271
Merge pull request #660 from pacampbell/task_migration_fix2
fix: Commit file that was changed
2024-12-16 09:08:59 -05:00
Paul Campbell
7c9008cd7e fix: Commit file that was changed 2024-12-16 09:05:54 -05:00
Paul Campbell
3e736df73c
Merge pull request #659 from pacampbell/task_scheduling_fix
fix: Rename task scheduling migration file
2024-12-16 09:05:00 -05:00
Paul Campbell
ab1b5d0953 fix: Rename task scheduling migration file
Rename file to match version of migration.
2024-12-16 09:02:38 -05:00
Paul Campbell
a1f9c33e0a
Merge pull request #653 from pacampbell/task_scheduling
feat: Implement a generic task scheduler
2024-12-16 09:01:10 -05:00
Paul Campbell
d1f75c8a85 Enable Epitaph Road weekly reset by default
Enabled weekly reset as the default setting.
2024-12-16 08:56:37 -05:00
Paul Campbell
ccb4ebdeba Adjust hourly task
- Move current hourly task implementation to NextTimeAmountTask
- Implemented a new hourly task which occurs wgen transitioning from x:59
  to y:00.
2024-12-15 08:30:30 -05:00
Paul Campbell
09d2999776 Introduce concept of a head server
- 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
2024-12-15 08:30:26 -05:00
Paul Campbell
7fe9fc94c0 feat: Implement a task scheduler
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.
2024-12-15 08:29:07 -05:00
Paul Campbell
e036a652fe
Merge pull request #657 from pacampbell/adjust_quest_base_exp_implementation
enhance: Add new global modifiers
2024-12-15 08:26:33 -05:00
Paul Campbell
a14e604fbb Adjust default values
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.
2024-12-15 08:24:44 -05:00
Paul Campbell
ddea96198e enhance: Add new global modifiers
- 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.
2024-12-15 08:24:44 -05:00
alborrajo
c76ce33ea2
Merge pull request #658 from alborrajo/feature/rpcport
Include RpcPort field in the server status endpoint response
2024-12-15 00:26:55 +01:00
alborrajo
bf33ff103c Include RpcPort field in the server status endpoint response 2024-12-14 22:23:12 +01:00
Paul Campbell
1c40aed2e9
Merge pull request #654 from 13masj/fix/BugFix
Fixed drop tables for enemy spawns that were off after introduction o…
2024-12-13 18:26:48 -05:00
Paul Campbell
810931dd7d enemyspawn
Save new enemyspawn with latest tool.
2024-12-12 20:23:20 -05:00
Jun
f61316c92d Fixed drop tables for enemy spawns that were off after introduction of new ID 210/211 2024-12-12 20:14:40 -05:00
Paul Campbell
765c70250c
Merge pull request #656 from pacampbell/world_quest_fixes
fix: World Quest Fixes
2024-12-12 10:06:58 -05:00
Paul Campbell
9cd32b8877 fix: Update quest monster drops
- Added new orc enemy ids and items.
2024-12-12 10:03:24 -05:00
Paul Campbell
33c467b269 fix: Correct small issues in multiple world quest files
- 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
2024-12-12 09:50:13 -05:00
alborrajo
5593bde0a2
Merge pull request #655 from alborrajo/feature/lostpawn
Lost Pawns
2024-12-11 13:38:32 +01:00
alborrajo
abeba7d5ff oops i missed adding the serializers again 2024-12-10 18:24:48 +01:00
alborrajo
0a11d4c3a6 Save pawn state in the database 2024-12-10 17:47:06 +01:00
alborrajo
1076855c3f Handle rental pawns getting lost 2024-12-10 17:46:38 +01:00
alborrajo
6b2e380a43 Handle reviving lost pawns 2024-12-10 16:37:12 +01:00
alborrajo
0fd9a1ce9b Add to Arrowgene course the effect that allows reviving lost pawns with RP 2024-12-10 16:36:43 +01:00
alborrajo
6124e14a43 Add enemies to The Rift stage (StageId 140) 2024-12-10 16:33:38 +01:00