099dfbd134
Remove most of the hardcoded effect durations and params
2025-07-14 20:26:13 -04:00
3d81d1ed01
Implement enough status effect handling to make Sprint work
...
This includes making Sprint degrade into Jog, and now status
effects start to be scripted.
2025-07-14 19:52:50 -04:00
404681f395
Begin laying infrastructure for status effect scripting
2025-07-14 19:19:21 -04:00
The Dax
9a60faa15d
Hook up an equipment sales NPC for testing non-stackable items
2025-07-14 17:27:45 -04:00
The Dax
eb9d08866e
Implement better support for buying from gil shops
...
-You can now purchase multiple things in a row
-It shows the proper log messages
-For the moment all items go to the very first inventory slot, and overwrite each other
2025-07-13 15:22:44 -04:00
c86a5f70a6
Add command, actor control to unlock instanced content
2025-07-12 18:33:52 -04:00
thedax
0cf359e8c9
Update the Unending Journey's cutscene replay scene flags one more time ( #108 )
...
-This is what retail sends, and it has smooth fade ins and outs on upon start and end of cutscenes.
2025-07-05 21:42:06 -04:00
The Dax
c00b398dbb
The House Fortemps guard finally spawns!
2025-07-05 19:06:34 -04:00
The Dax
cbc2c7953f
Add the Port Official in Tuliyollal, interestingly their counterpart in Old Sharlayan does not spawn currently...
2025-07-05 19:06:34 -04:00
The Dax
e25fa9354b
Add even more ferry skippers that have either direct or indirect connections to Limsa/La Noscea
2025-07-05 19:06:34 -04:00
The Dax
95ec3628b8
Enable a number of ferry skippers around La Noscean areas
2025-07-05 19:06:34 -04:00
The Dax
c292033960
Return control to the menu after the cutscene finishes
2025-07-05 17:14:08 -04:00
The Dax
ebd9fcc842
Fix a couple issues with the Unending Journey:
...
-Fade to black smoothly so the transition into a cutscene isn't so jarring
-Don't softlock when exiting the menu without playing anything
2025-07-05 17:14:08 -04:00
f056b3f978
Finish implementing the Unending Journey (mostly)
...
The cutscenes actually play now, which is super swell! There's a
few missing bits and bobs, but we can consider this event mostly
finished now.
2025-07-04 16:29:42 -04:00
de2d32266d
When running !completeallquests, show a success message
2025-07-04 16:11:11 -04:00
thedax
ca90d8b787
Move the login message from Lua scripts into the config file. ( #100 )
...
-Provide a new API function: getLoginMessage which will fetch it from the config file.
2025-07-04 11:42:52 -04:00
thedax
a83d455e86
Hook up a couple more generic gatekeepers ( #95 )
2025-07-02 08:18:10 -04:00
thedax
9bed7595cc
Implement items costing money now ( #94 )
...
-Includes an extra check for trying to bypass the client-side
-Update dependencies
-Include a message that selling isn't supported yet
-Display a message indicating an item was bought
2025-07-01 21:21:47 -04:00
927c093915
Send your completed quests list
...
We aren't going to be adding quests ever or anytime soon, so all you
can do right now is force every quest to unlock with the aptly named
!completeallquests.
2025-07-01 19:51:33 -04:00
The Dax
97682086f0
Re-enable //gm collect
...
-It requires a player to be targeted ingame, no target or any actor that isn't a player
will result in a generic "GM Command Failed" message
2025-07-01 13:06:49 -04:00
The Dax
4b52ae6d0a
InspectPlayer: make various variables local
2025-07-01 13:06:49 -04:00
The Dax
4841a5e469
InspectPlayer: add quantity amount to the print statements for the inventory
2025-07-01 13:06:49 -04:00
The Dax
3b6fcb7ba1
Extend the Lua API:
...
-Implement GM command collect (subtracts gil from player), but the ingame command's params are unknown, Lua only
-Implement GM command inspect, but the IPC opcode for it is different than GMCommand and is thus far unimplemented, Lua only
-The Lua API can now access all of the player's inventory (read-only)
2025-07-01 13:06:49 -04:00
3695ee4352
Begin implementing gil shops, add free item to inventory
...
Tested against the Florist in New Gridania, although we don't
deduct the item price from you and such.
2025-06-30 21:38:04 -04:00
The Dax
7294da465c
Document the missing exit-to-inn warps for Tuliyollal and Old Sharlayan
2025-06-30 17:08:36 -04:00
The Dax
a5522bb637
Document the missing big aetheryte event ids, enable them, and note they don't work for now
...
-Also update the newest thoughts on why the limsa <-> costa ferrys don't work
2025-06-30 17:08:36 -04:00
thedax
5a580149b4
Document some opcodes related to shops and implement a generic gil shopkeeper script ( #85 )
...
Document some opcodes related to shops and implement a generic gil shopkeeper script
* You can now interact with shopkeepers, and if you have enough gil, you can attempt to purchase items
* Upon trying to buy items the event will auto-cancel for now, because we're missing implementations of several opcodes related to inventory management
2025-06-30 15:21:08 -04:00
thedax
9d4f1eeb93
Small Events.lua nits. ( #84 )
2025-06-28 14:45:08 -04:00
thedax
72bff848b5
Document more currently broken warp NPCs ( #82 )
2025-06-28 14:07:56 -04:00
thedax
77dc945381
Implement 3 more generic warp NPCs, including an out of bounds one ( #81 )
2025-06-28 13:27:44 -04:00
thedax
7d5e9e3c57
Account for the user pressing escape/cancel on controller to exit the bed menu ( #80 )
...
Yes, it's different than hitting Nothing on the menu!
2025-06-28 11:50:01 -04:00
thedax
2c159f591a
Enable some more ferry skippers now that they work ( #79 )
2025-06-28 11:44:57 -04:00
f1b9461eb2
Add the //gm item command back
...
I never actually finished the Lua version, oops.
2025-06-28 11:18:17 -04:00
thedax
ad4edf801d
Implement skeleton levemete script ( #78 )
...
Like all the others this needs special handling but the menu at least opens and reports no available leves.
2025-06-28 11:06:28 -04:00
thedax
58eb154ae4
Inn bed: do player:begin_log_out() so the server-side hangs up properly ( #77 )
...
The client doesn't send that it disconnected, perhaps a bug on SE's end.
2025-06-28 10:33:02 -04:00
dfac7702fa
Expose a zone's intended use ID in the Lua API
2025-06-28 10:27:56 -04:00
e6536da9dd
Split up the command arguments on the Rust side
...
This removes some boilerplate code we need in every command to do
this ourselves.
See #65
2025-06-28 10:27:56 -04:00
6951f9448d
Port GM commands to Lua
...
This removes a ton of implementation overlap between the two
command systems. For example, we had two different implementations
of unlocking aetherytes which is just unnecessary.
On the flipside, this makes implementing new GM commands just as
easy as writing debug ones. I moved the existing debug Lua
implementations into their GM counterparts and updated the USAGE
accordingly.
2025-06-28 10:27:56 -04:00
db0bdd511c
Fix the !unlockaetheryte command not working as expected
2025-06-27 23:59:09 -04:00
02b8e92d6b
Reduce the amount of unlocks to what's actually possible
...
This stops the !unlock all debug command from crashing the server.
There's only 511 possible unlocks in the game, I guess.
2025-06-27 23:40:19 -04:00
0b470dc28b
Make unlocks persistent, fix player name in chat
...
The PlayerStatus struct shifted around recently, so I fixed the offsets
yet again. Unlocks should be persistent now, but this as usual requires
a database wipe, sorry!
I also included some refactors of the !unlock debug command that still
had references to the old unlock_action API.
2025-06-27 23:28:56 -04:00
thedax
1fa861a35a
Rewrite the inn bed logic for hopefully the final time ( #71 )
...
It is now ~99% accurate. If we need to adjust the player's positioning after the cutscenes, we can do that at some other point
2025-06-27 22:40:40 -04:00
The Dax
ee3a7c54bb
Update event scripts to use tables, since passing params now gets dropped into a Vec<u32> on the rust side.
2025-06-27 21:26:10 -04:00
thedax
a3d32b67aa
Rename forgotten variable in Events.lua ( #70 )
2025-06-26 21:02:15 -04:00
thedax
b560642978
Implement Gold Saucer lift operators, aethernet shards, and every MGP vendor ( #69 )
...
Except for the mahjong vendor. He needs something different apparently.
2025-06-26 20:48:09 -04:00
thedax
c5695f5ed7
Parially implement Gemstone Traders and Hunt currency exchangers ( #67 )
2025-06-26 08:04:13 -04:00
The Dax
2c60e4f8fa
Fix a typo in Events.lua
2025-06-26 07:47:05 -04:00
The Dax
385672d797
Add support on the Rust side for resetting the command identifier.
...
-sender was also renamed to command_sender in case we'd like to reserve the word "sender" in the future.
2025-06-26 07:47:05 -04:00
The Dax
0f7e068ba3
Further reduce boilerplate in various scripts
...
-Introduce a printf helper command which can print the sending command's name for you,
and treats the message as a format string if additional params follow
2025-06-26 07:47:05 -04:00
476958a054
Move crystal bell script
...
I finally found what client-side script it's calling into, they
call it "BeautySalon" internally.
2025-06-25 23:20:37 -04:00