Commit graph

102 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
Ryan Yappert
5af9f3cde2 Review comments.
Fix suspicious mismatch of PlusValue and ItemSafetySetting that may be causing a visual bug relating to the plus value of some items.

Fix BBM messing up your inventory sort order.

MigrateDatabase.cmd to make it a bit easier. More FAQs and instruction for newbies.

Bad workaround fix for the client being confused about emblems during job changes.

Fix second slot job items not being properly recorded in the DB.

Promote Shout to cross-channel chat. Try and make some of the RPC stuff a little more asynchronous for performance reasons.
2025-08-03 22:58:07 -07:00
Paul Campbell
211b15b035 fix: Fix issues found in 3.1 tree
- Fixed an issue where the wrong group id was used for special
  conditions
- Fixed an issue where some nodes had the wrong unlock dependencies.
2025-07-23 08:39:21 -04:00
Paul Campbell
b262246232 default gathering: Adjust script
- Added better checks for gathering types.
- Improved type print outs when the script is calculating drops.
- Moved gathering config rank data from the server into the script
  so if someone wants to modify certain fields or remove them completely.
2025-07-07 19:31:26 -04:00
Paul Campbell
585fb51708 feat: Epitaph Road (Feryana District)
- Implemented the personal quest to unlock Epitaph Road (Feryana
  District).
- Implemented Trials for the dungeon.
- Updated enemy spawn for the dungeon.

Co-authored-by: @Nirrudn-SOK
2025-06-21 22:07:22 -04: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
de31430edd doc: Update doc file
Added small section about DropRate.csx and added some text about where
to find LibDdon.
2024-12-31 09:40:11 -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
Paul Campbell
e768534423 docs: Add new docs for epitaph
- Added docs which contain information found about buffs, objectives and rewards.
- Started a new document guide.md which describes the epitaph assets.
2024-11-24 19:01:20 -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