- 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
- 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.
- 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.
- 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.
- 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)
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
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.
- 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.
- 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
- 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
- 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".
- 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
- 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
- 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.
- 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.
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.
- 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.
- Added docs which contain information found about buffs, objectives and rewards.
- Started a new document guide.md which describes the epitaph assets.
- 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.
- 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.