warp.lua - Switched to warp type 0x16 for flipping between city zones. Zero gameplay interruption with this type.
etc5u1 - Added in a spawn location for privateArea
etc5g1 - Scripted, aside from the means of accepting the quest which requires special handling to trigger the intro CS for it.
Etc5u1 & Etc5g1 - Added handling for the Ul'dah Inn NPC to re-issue an item as needed, otherwise play his other dialog.
Music - Made it play current zone's music if no id present.
Anim - Cleaned up some. It had old code sitting in it for whatever reason despite not affecting anything.
Setstate, Warpplayer & Yolo - Fixed them up so they function again
ChangeJobCommand - Just the script filled out to handle the equipping/dequipping of job stones, but it can cause issues, particularly with how the server handles a 'job' vs. a class, along with checking against skill compatibility.
PopulaceChocoboLender - Made rental time 10 minutes again (as retail had it). Added Vesper Bay NPC's rental location as close as I could get it from a blurry source.
ChocoboRideCommand - Fixed the method used to pull a zone's music so the script doesn't fail.
MarketEntrance - Adjusted events parameter so it works again
Warp - Added shortcut for switching between a given town's zones so I can stop having to look up the right zone id
Weather - Added shortcut for weather ids to +8000 to the value if the're within a certain range.
DftSea - Inn NPC check
etc5u0 - Used a constant in place of a value, updated a constant's name.
etc5l0 - Fully scripted.
etc5u1 - Mostly scripted. Requires Dream handling and privArea + NPC placement.
etc5g1 - Mostly scripted. Requires Dream handling and privArea + NPC placement.
quest.lua - Script refactored. Moved as much as possible out of the main function to tidy it up. Folded in a complete-quest function from another script. Only works with quest id numbers for now. String support (eg. Man0u0) to come in another commit.
ObjectInnDoor.lua - Fixed it to handle events again with the current system.
- InstanceRaid Guide : Added DefaultTalk handling for the npcs we have currently. Included a couple commented-out client functions for two of the raids.
- EmoteSitCommand : Added eventType to the function so sitting on environment objects works again.
- Man0u0 : SourceTree added hunk-change garbage during a conflict resolving during the last merge. I just replaced it with the raw of that commit so it matches what it should have been.
- DftFst : Added the Gridania InstanceRaidGuide NPCs to the list for documentation sake, even though it'd never be called from that script with how things are currently set up.
- DftFst - Every uniqueId script covered from the previous system. Still a lot of functions to still map and actors to pose & position for them.
- AfterQuestWarpDirector - Added Man0g1 as a check.
- Nuked PopulaceStandard uId scripts for Forest region since unneeded now.
- man0g1 - Initial privateArea mostly scripted.
- SimpleContent30010 - Fixed Yda/Papalymo Id being backwards, added Active states to match retail
- QuestDirectorMan0g001- Updated to play itself out (this is a mess to wrap my head around). Mostly sorta kinda working on both DoW & DoM tutorials. End cutscene on DoW not firing currently, will fix later.
- Etc5u0 scripted start to finish. Ul'dah Inn quest.
- DftWil - Added quest checks to the Inn NPCs.
- DfFst - Commiting what's been done thus far. fst0Town01 zone nearly done. Still have 100 something fst0Town01a & field npcs to add.
- Removed some fst0Town01 uniqueId scripts
Added a Chocobo to it also that we already had spawned, unsure if authentic or not, added a comment reflecting that.
Cleaned up more orphaned scripts from Wil region.
- DftSea - 96% finished
- DftWil - minor comment addition
- EmoteStandardCommand - Added the new event params so the script functions again
- Mass deletion of all PplStd & PplShopSalesman for La Noscea NPCs. No longer needed
- Man0u1 barely started. Just enough there to get the player out of the PrivateArea and into the public zone.
- All of the old Populace uniqueId scripts for both quests nuked into high orbit.
- DftSea: Master list of function names and argument counts added to the list. Will be whittling away at this over the coming week.
- GM Warp: For whatever reason using "" to compare against a nil wasn't working anymore. Set it to nil instead.
Etc3g0: Polished up the script, made it as authentic to retail as I could get it barring reward hand-out and starting the quest
Etc5g0: Ported the quest over from the old scripting setup.
Man0u1: Still very early wip.
Man0u0 nearly finished. Needs some misc. background actors Id'd and placed, and some additional bug-testing.
Man0u1 still very early. Initial area's actors mostly scripted.
PopulaceCompanyWarp made to look more retail authentic. Can't figure out how to make it not play the 'npc untargeted' sound though like retail.
Music command has second argument for transition type. Added an overloaded function in Player.cs to support this.
Setappearance adjusted to work again on player targets.
DftWil updated to cover near everything.
Re-added shop-related luas that were removed for some reason.
=============
ChocoboRideCommand - Fixed the mount speed to be retail accurate.
TeleportCommand - Added anima costs, mount check, and placeholder for Favoured destinations
nudge/spawn/warpid - Plus 1 to GetPos() arrays
MarketEntrance.lua - Script mostly laid out and documented. Some debugging info left in while various warp locations and PrivateAreas still need finishing up.
CraftCommand.lua - WIP on crafting menu + minigame. Menu flow worked out for the most part, it's just a matter of plugging in various data for them to replace the debugging values I set currently.
DummyCommand.lua - WIP on Mining minigame. Still lots missing but it's a start. Cannot use mining nodes ingame currently without modifying KickEventPacket.cs
Removed orphaned individual ShopSalesman scripts since their info was tabled into a single script awhile back.
Base
- gcseals.lua
Helper functions for GC seals. Tables the seal caps per rank and checks against it when adding seals.
Commands
- PartyTargetCommand.lua :
Handles markers above head. Basic documentation, only works on self. "Heart" doesn't work, client bug?
Eventually will need an object in the party class to handle tracking marked players/targets for the group.
Class Scripts
- PopulaceCaravanAdviser.lua
Documented. Can purchase gysahl greens from them, unsure what else their use is.
- PopulaceCaravanGuide.lua
Documented the Caravan Guide NPC, who escorts the chocobos with you.
- PopulaceCaravanManager.lua
NPC who handles signing up for Caravan escort, among other functions.
- PopulaceSpecialEventCryer.lua
Covers three NPCs for the Foundation Event. They handle trading specific items in exchange for GC seals.
Unique ID Script fixes
- flame_private_sisimuza_tetemuza.lua
Foundation Event NPC functions laid out.
- flame_sergeant_mimio_mio.lua
Foundation Event NPC functions laid out.
- serpent_lieutenant_marette.lua
Foundation Event NPC functions laid out.
- serpent_private_tristelle.lua
Foundation Event NPC functions laid out.
- serpent_sergeant_frilaix.lua
Foundation Event NPC functions laid out.
- serpent_sergeant_nelhah.lua
Removed unique script. PopulaceSpecialEventCryer handles it.
- ansgor.lua
Had incorrect defaultTalk value
- ne_of_eshtaimes.lua
Door @ !warp 209 -139 206.113 195 Had incorrect mapObj value.
- AddItem functions to cast INV_ERROR to INT for LUA
- Fixed unique item check. It was checking for Rare flag, not EX
Scripts :
Base
- shop.lua : Functions for buying/selling from a variety of shop scripts
Commands
- EmoteStandardCommand.lua fixed not being able to use emotes when sitting
- DiceCommand.lua fixed. No arguments sets default value of 100 as per the ingame description.
Max value raised from 999 to 1000.
GM Commands
- speed.lua fixed when using single argument
- nudge.lua fixed sanitizing. Made arguments reversible to allow !nudge up 10 & !nudge 10 up
- giveitem.lua added inv_error handling. Need to do to rest of item commands at some point
- givecurrency.lua changed to have you enter a regex'd name of item rather than item ID.
Eg. "!givecurrency fire_crystal 10". Added inv_error handling to it.
- warpplayer.lua added. Moves yourself to name of player, or moves first player to second player
- warpid.lua added. For warping to the first instance of an actor's uniqueId the server comes across.
- quest.lua added. For adding/adjusting quests for debugging them.
Class Scripts
- PopulaceBlackMarketeer.lua updated to utilize shop.lua
- PopulaceShopSalesman.lua updated to utilize shop.lua
- PopulaceCompanyShop.lua updated to utilize shop.lua
- PopulaceCompanyBuffer.lua added and documented along with menu layout. Needs working status effect to finish.
- PopulaceCompanyGLPublisher.lua added. Mostly documented, barely functional.
- PopulaceCompanyGuide.lua added. Documented, fully functional.
- PopulaceCompanyOfficer.lua added. Documented. Menus work. Needs GC rank table at some point
for documenting GC ranks/seal caps.
- PopulaceCompanySupply.lua added and mostly documented. Read-only basic menu flow, static LUA tables
used to set it up, will need SQL tables at some point to replace them with.
Some guesswork on what menus show since no video reference could be found.
- PopulaceGuildShop.lua updated. Mostly documented. Read-only shop menus.
Added a quest completion check to etc5g0.lua to prevent it showing "!" on quest-givers' head when you've cleared the quest already.
Fixed regression on select GM commands, !warp instant-warps within same zone again, !mypos reports to the thousandths place, !speed command works with one argument again.
Some required changes to the database:
Task Board - Change 1200195 in gamedata_actor_class to /Chara/Npc/Object/TaskBoard
Serpent_Private_White - Change 1500324 in gamedata_actor_class to /Chara/Npc/Populace/PopulaceCompanyWarp
Beaudonet - Adjust 1001708 in gamedata_actor_class. There is a linebreak in there causing problems