Commit graph

84 commits

Author SHA1 Message Date
hankhotspur
8bfc9f0612 Result 130 2026-06-27 14:52:51 +01:00
hankhotspur
868c76c8c7 Result 111/112 2026-06-25 20:58:18 +01:00
hankhotspur
882acb8b15 Check 239 2026-06-24 19:57:08 +01:00
hankhotspur
0282959df8 Check 237 and quest updates
- Renames IsSubstoryStateBit21 to DoExtremeSynthesis
- Adds IsSearchClan and TouchClanBoard to .csx command list
- Adds the personal quests: Gathering in the Clan Tavern (Continued) and Banging the Gates of the Clan Hall
- Updates event execution flow for several quests
- Adds banner announces for two S3 trials
- Updates Isaac's quests with proper quest checks directly from the dumps
- Updates wallet rewards for several personal quests
- Breya Coast Request: Troubled Shores 1 order conditions removed, but no longer shows up before completing Crafting Token of the Heart (info straight from the dumps)
- Rathnite Foothills Trial: Captives in the Hills: updated enemy spawns, improved quest logic  (circle marker now vanishes if you go to the wrong spot, general announces added, a checkpoint was added)
- Updates several Hidell Plains world quest banner images, rewards for some also updated, all from the dumps
- A Malice in the Dark: enemies now only spawn at night, announces now show in the proper order
- The Perilous Labyrinth: quest marker now shows up properly
2026-06-23 19:18:18 +01:00
hankhotspur
aa13086d1b Command name updates 2026-06-22 22:08:18 +01:00
hankhotspur
d2560be22d Check 238 2026-06-20 19:19:38 +01:00
hankhotspur
25009e2c29 Command updates 2026-06-20 01:01:48 +01:00
hankhotspur
d8c1bbac96 Check command 235 2026-06-18 23:43:01 +01:00
hankhotspur
9fdead0d7d Update files 2026-06-15 18:29:40 +01:00
hankhotspur
5f8a8e2ccc Command references
Updates quest_command_reference with the new commands, SetDiePlayerReturnPos and ResetDiePlayerReturnPos, also cleans up whitespaces in q50400008
2026-05-31 14:47:57 +01:00
Paul Campbell
dce9495e37 code review: Fix issues reported
- High: persisted instanced rewards are cloned as non-instanced.
- High: instanced reward UIDs are cached on quest definition objects.
- Medium: legacy reward-box materialization inserts instanced box rows without staged rows.
- Medium: missing staged data is treated as success and destroys the reward.
- Low/Medium: JSON crest level default disagrees with the schema.

Additionally:
- Removed support for wrongly spelled json keys in rewards
- Updated generic_quest_state_machine.md
- Cleaned up reward syntax while making it backwards compat.
2026-05-03 22:02:47 -04:00
Paul Campbell
7200ef02f0 feat: World Quest Rewards
- Added support to handle randomization of quest rewards on repeat
  clears.
- Added support to configure reduction of point rewards on repeat
  clears.
- Once the world quest stask fires, full rewards will be available until
  first clear for that period again.
2026-04-24 20:07:16 -04:00
Paul Campbell
8bf10acfd5 Update World Manage Quest Flag Docs
Looking through decoded files to find missing quest flags.
2026-04-23 22:27:48 -04:00
Paul Campbell
0bd7bcd404 feat: Add Sub Story Quest Handlers
Added handlers and required packets for:
- QuestAddPackageQuestPointHandler
- QuestGetPackageQuestInfoDetailHandler
- QuestGetPackageQuestInfoHandler

Added new quests
- q10300102.csx
- q60300030.csx

Added a new settings file substory.csx to describe the mission
requirements.

Database 56 -> 57

Co-authored-by: @hankhotspur
2026-04-21 23:02:46 -04:00
Paul Campbell
905e2adfd0 feat: Support chain dungeons
- Fix null pointer exception when weekly chest is opened.
- Play around with enabling 0 timeout in the dungeon.
- Add support for random layout in the dungeon.
2026-04-20 07:06:30 -04:00
Paul Campbell
d04d4e24fe timer support: Add support for short quest timers
- Added support for short lived quest timers. Works in csx and json.
- Updated quest reference documentation with details from research.
- Added new packet S2C_QUEST_TIMER_NTC.
- Updated the quest "Extend Garden", q60300000.csx to use the new timer
  command since it has a sequence which waits 3 minutes.

If writing csx quests, there is a helper type AddDelayBlock.
If writing json quests need to use:
 - result command: StartTimer(timerNo, waitTimeInSeconds)
 - check command : IsEndTimer(timerNo), IsNotEndTimer(timerNo)
2026-04-13 21:10:18 -04:00
Paul Campbell
1f4fec1c6e fix: Fix issues with new quests
Fixed issues with new quests due to name changes and parameter type
enforcement.
2026-04-12 02:13:36 -04:00
Paul Campbell
d04e043ba9 feat: Enable World Quest completion detection
Added the ability to detect if a world quest was completed for the area.
Updated the quests to use the proper behavior.

- q60000014.csx
- q00000012.json
- q00000023.json
2026-04-09 23:44:08 -04:00
Paul Campbell
b72476c032 feat: Add new S3 quest commands
Add new quest commands found in disassembly and experiment.

@Co-authored-by: @hankhotspur
2026-04-07 21:00:55 -04:00
sebastian-heinz
afc14ad4ae
Networking 2.x (#982) 2026-03-17 09:29:37 +08:00
Paul Campbell
1fecb64ac3 feat: Implement 3.0 HiBO tree and enable Epitaph Road (Rathnite)
- Added support for the 3.0 HiBO tree.
- Enabled Epitaph Road (Rathnite)
  - Updated q60300020.json
  - Moved unlock from MSQ to personal quest
- Reorganized scripts for job orb tree
  - Delete old ones if copy+paste
2025-06-11 21:00:20 -04:00
Paul Campbell
90255eb0fe feat: Add Main Story Quests for Season 3.0
- Implemented the main story quest "The Land of Despair".
- Implemented the main story quest "In Search of Hope".
- Implemented the main story quest "Meirova The Veteran General".
- Implemented the main story quest "The Princes Whereabouts".
- Implemented the main story quest "Survivors Village".
- Implemented the main story quest "The Opposition".
- Implemented the main story quest "Prince Nedo".
2025-06-07 21:22:59 -04:00
Sehkah
50c245943d Update to net9.0/C#13, expand range of item UIDs, fix docker builds, fix mariadb. 2025-04-12 17:01:55 +02:00
Paul Campbell
fbf3350d92 fixes: Add more unlocks
- q00020110.json: Bloodbane Isle Precipice
- q00020140.json: Bloodbane Isle Summit
2025-04-04 10:08:01 -04:00
Paul Campbell
9fe538b410 fixes: Fix issues related to content locks
- Fix issue with party invite in BBM
- Fix issue with BBM entrance not persisting
- Renamed the file q790000001.csx to q79000001.csx
- Updated q60000014.csx to add back missing EXM functions to Seneka,
  Isaac and Doris.
- Added dungeon unlock:
  - q00000010.json: Dreed Castle
  - q00000016.json: Gardnox Fortress
  - q00000020.json: Mergoda Security District
  - q00020180.json: Path to Morrow
  - q00020190.json: Shadolean Great Temple
- Added door unlock:
  - q00020170.json: Dana Gates
  - q00020180.json: Morfaul West Gate
  - q00020190.json: Glyndwr Gates
- Added Area Information:
  - q00020040.json: Bloodbane Island
  - q00020170.json: Farana Plains
  - q00020180.json: Morrow Forest and Elan Water Grove
  - q00020190.json: Kingal Canyon
2025-04-04 00:36:37 -04:00
Paul Campbell
305a4d503b feat: Add support for contents release
- Added support for the adventure guide.
- Add support for quests to unlock different content and menus.
- Implemented a world manage quest to track job tutorials.
- Implemented the following personal quests which unlock systems:
    - The Arisen's Abilities
    - Reliable Source of Information
    - Crafted Token of the Heart
    - Gathering in the Clan Tavern
    - Lestania's Best Dressed
    - Road to Mastery
    - The Temple's Tradespeople
    - Living with the Partner Pawn
    - Shining Within a Loyal Heart
    - Extend Garden
    - Custom-Made Workshop 1: Searcher's Return
    - Custom-Made Workshop 2: Limit Break
    - Custom-Made Workshop 3: Ultimate Arms Synthesis
    - Arms With the Power of the Dragon 1
    - Arms With the Power of the Dragon 2
- Implemented the following job quests:
    - Fighter Tactics Trial: A Stubborn Shield
    - Fighter Tactics Trial: Break Attack
    - Seeking the Master Fighter
    - Priest Tactics Trial: Purification
    - Priest Tactics Trial: Break Attack
    - Seeking the Master Priest
    - Seeker Tactics Trial: A Whirlwind
    - Seeking the Master Seeker
    - Shield Sage Tactics Trial: A Magick Shield
    - Shield Sage Tactics Trial: Break Attack
    - Seeking the Master Shield Sage
    - Hunter Tactics Trial: An Ambushing Bow
    - Hunter Tactics Trial: Break Attack
    - Seeking the Master Hunter
    - Sorcer Tactics Trial: A Magick Attack
    - Seeking the Master Sorcerer
    - Element Archer Tactics Trial: A Magick Bow
    - Seeking the Master Element Archer
    - Warrior Tactics Trial: A Strong Sword
    - Seeking the Master Warrior
    - Alchemist Tactics Trial: Alchemy
    - Seeking the Master Alchemist
    - Spirit Lancer Tactics Trial: A Spirit Lance
    - Seeking the Master Spirit Lancer
- Rewrote or updated the following main story quests:
    - Rewrote "Resolutions and Omens" as a quest script
    - Updated "The Slumbering God" to use newer JSON block types
    - Rewrote "Soldiers of the Rift" as a quest script
    - Rewrote "The Crimson Crystal" as a quest script
    - Updated "The Dull Grey Ark" to have proper enemies for the boss fight
    - Updated "Envoy of Reconciliation" to have proper enemy nameplates in
      the cellar
    - Updated additional existing main story quests to distribute contents released
- Split IsBo an IsHo enemy parameter from the BO amount field to match
  behavior of old playback videos where an enemy has a normal health bar
  but still rewards BO/HO
- Added a generic mechanism to handle quest work items
- Added the message "The entire party has returned to a safe area." when
  the instance gets reset while the player is in a party
- Added better unlock support to json
2025-04-01 20:57:15 -04:00
Paul Campbell
060de5cb1c feat: Implement the EXM "Recurrence of Darkness"
- Partial implemention of the EXM "Recurrence of Darkness" (q50204000) using the
  scripted quest system.
- Moved all scripts to a seperate Arrowgene.Ddon.Scripts project to
  support out of project comde completion in csx scripts.
- Updated the README.md in the scripting project with details on how to
  enable csx autocompletion in Visual Studio Code.
- Enabled scripted quests to have some dyanmic state for the instance of
  the quest.
- Continued to build out QuestBlockUtil and QuestResultCommnandUtil to
  make it more convient to write scripted quests.
- Updated the script callback function to pass a new object
  QuestCallbackParam and updated the function to support passing
  anonymous functions as an argument.
- Moved index calculations for JSON quests to the asset deserializer.
- Adjusted some "discovered quests" to not show the marker on the map
  until after the quest is engaged.
- Renamed the script_dll directory to script_assemblies which is used
  for csx debug support.
- Updated the README.md for the scripts directory.
2025-02-26 10:28:00 -05:00
Paul Campbell
d482e6c903 feat: Add EXM "Crucible of Demons"
- Added an implementation of the EXM "Crucible of Demons".
- Added + icons to Gritten Fort time enemies.
- Add party in stage checks to prevent desync in "Phindym War
  Chronicles".
- Added new InstancedRandomEnemy class and libddon helper function to
  use it in scripts.
2025-02-17 14:44:30 -05:00
Paul Campbell
6fc80283f8 docs: Update endgame content document
Marked "Battle for Gritten Fort: Recapture Battle" as implemented.
2025-02-08 20:18:50 -05:00
Paul Campbell
94c2b72672 docs: Fix formatting in engame content
Added shorter hyperlink text for the references column.
2025-02-04 22:26:08 -05:00
Paul Campbell
a3d5d1944e feat: Season 3.0: Implemnt 2 quests
- Implemented the season 3.0 quest "The Land of Despair".
- Partially implemented the season 3.0 quest "In Search of Hope"
2025-02-04 17:11:54 -05:00
Paul Campbell
5a6b386e7c feat: Add NpcTouch command
Added a new command where the player touches a quest NPC and they don't
speak but trigger a cutscene instead.
2025-02-04 17:10:20 -05:00
Paul Campbell
b132e3c03b docs: Add Quest Endgame Content document
Created a document which tracks the different endgame contents which are
implemented using the quest system. Intended to track which EXMs, Clan
Quests and War Missions still need to be implemented.
2025-02-04 17:05:04 -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
ff82d290e0 event quest: Implement Christmas seasonal event quest
Implemented the 2018 Christmas quests.
2024-11-29 12:38:59 -05:00
Ryan Yappert
094dee7799 Review comments. 2024-10-28 22:01:09 -07:00
Paul Campbell
1cbde9031a feat: Wild Hunt
- Added support for Wild Hunt.
- Added sample quest q15040003 which is a hunt for S-Rank monster in
  volden mines.
- Documented what the different image IDs are.
2024-10-19 17:32:00 -04:00
Paul Campbell
cb50c6f007 revert improved enemy group handling 2024-10-04 23:13:45 -04:00
Paul Campbell
3b9d5149f7 feat: Add support for seasonal events
- Added a new config file EventDrops.json which allows the server admin
  to inject item drops server wide to some set of enemies.
- Added an instance item manager for event items.
- Implemented season quests for Halloween.
- Implemented lantern NTCs
- Added quest pseudo block NewDeliverItems which puts a marker above
  NPCs who have items delivered to them which are spawned by flags.
2024-10-01 23:54:05 -04:00
Paul Campbell
cce579edf3 Fixes based on testing 2024-09-25 17:02:34 -04:00
Paul Campbell
6ed9c60dcb feat: Season 2.3 MSQ "The New Generation" 2024-09-25 17:02:33 -04:00
Paul Campbell
1d9f71a0b4 feat: Season 2.3 MSQ "The Spirit Land" 2024-09-25 17:02:33 -04:00
Paul Campbell
0e0df697f2 feat: Season 2.2 MSQ "The Darkness of the Heart" 2024-09-24 00:25:48 -04:00
Paul Campbell
9494f86a3d feat: Season 2.2 MSQ "The Village of Soldiers" 2024-09-24 00:25:48 -04:00
Paul Campbell
a4919d8d45 feat: Season 2.2 MSQ "The Lost Hometown" 2024-09-24 00:25:48 -04:00
Paul Campbell
5d76670b21 feat: Season 2.2 MSQ "A New Continent" 2024-09-24 00:25:48 -04:00
Paul Campbell
a24334a771 feat: Season 2.1 MSQ "The Entrusted One" 2024-09-22 10:01:25 -04:00
Paul Campbell
47bbe5a529 feat: Season 2.1 MSQ "The Lone Arisen"
- Implemented MSQ "The Lone Arisen".
- Fixed bug in OM action parsing.
2024-09-22 10:01:25 -04:00
Paul Campbell
14f8ed3cc3 feat: Season 2.1 MSQ "A Strange Land's Light" 2024-09-22 10:01:25 -04:00
Paul Campbell
fb620d695c feat: Season 2.1 MSQ "A Fresh Incident" 2024-09-22 10:01:25 -04:00