thedax
bc7ab11deb
Lobby server: send back more accurate error messages for problems ( #97 )
...
* Lobby server: send back more accurate error messages for problems
* Send the dreaded 2002 error code instead. Exact error codes would probably be better.
-It is unknown if there's a list somewhere.
2025-07-02 21:59:25 -04:00
thedax
01b396a656
Refactor gamedata to use a more general get_item_info function ( #96 )
...
-You can search for items by id or name
-The logic is all centrally located, eliminating all of the duplicated loops everywhere
2025-07-02 17:30:48 +00: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
e304e895bf
Update USAGE.md
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
thedax
877ec335a9
Address four of "warning: variables can be used directly in the format!
string" ( #92 )
2025-07-01 06:55:25 -04:00
The Dax
d14dd3ccd9
Address: "warning: the variable sequence
is used as a loop counter"
2025-06-30 21:55:11 -04:00
The Dax
b0282eb6bc
Address "warning: you seem to be trying to use match
for destructuring a single pattern. Consider using if let
"
2025-06-30 21:55:11 -04:00
The Dax
1fe3e3e81d
Address "warning: using clone
on type [u32; 10]
which implements the Copy
trait"
2025-06-30 21:55:11 -04:00
The Dax
1f065472d0
Address "warning: casting to the same type is unnecessary (u32
-> u32
)"
2025-06-30 21:55:11 -04:00
The Dax
3fc863616c
Address "warning: unneeded return
statement"
2025-06-30 21:55:11 -04:00
The Dax
02472a2332
Address "warning: useless use of format!
"
2025-06-30 21:55:11 -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
a1e6488533
Update Icarus to 2025.06.10.0000.0000
...
Not only does this include schema updates, but we gain support for
subrows and comments.
2025-06-30 20:23:09 -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
f778f9a571
Support sending an arbitrary amount of event params
...
This ended up as a giant, disgusting match statement but I don't
really have anything better right now.
2025-06-28 16:17:54 -04:00
5b8a61c1ce
Add the various sizes of EventScene
...
This isn't hooked up to the Lua API yet, it's just the
needed opcode bits.
2025-06-28 16:05:36 -04:00
2762407585
Rename EventReturnHandler to EventYieldHandler, make generic
...
This also makes EventScene generic for use in the future.
2025-06-28 15:57:45 -04:00
670d25a980
Disable sending exp again
2025-06-28 15:27:53 -04:00
fd4436db01
Fix a few more fields in PlayerStatus
...
Class is determined correctly now, and we now set the expansion
level too.
2025-06-28 15:23:56 -04:00
41d8424615
Read unknown packet data in more places
2025-06-28 15:15:45 -04:00
ff3a7d6835
Remove more leftover debugging code
2025-06-28 15:10:57 -04:00
d230a86844
Fix leftover test debugging thing
2025-06-28 15:01:26 -04:00
f46b62ad9e
Store classjob EXP
...
This isn't sent in the PlayerStatus packet *yet*, only on
UpdateClassInfo. For some reason, passing it makes the client freak
out and I'm not sure why yet.
2025-06-28 14:57:21 -04:00
0a740198f8
Initial support for item glamours and condition
...
The only way to glamour items is to import them from Auracite, same
with condition. But these are actually sent to the client now!
2025-06-28 14:57:21 -04:00
thedax
9d4f1eeb93
Small Events.lua nits. ( #84 )
2025-06-28 14:45:08 -04:00
Jules
fe234920f2
Use raw-dylib
when linking to Oodle on Windows ( #83 )
...
This means that the static .lib is no longer required at compile time, but
the .dll is still required at runtime. On Linux, the .so is still
required at both compile time and runtime, because linking works
differently there.
2025-06-28 14:45:01 -04:00
66da9abc90
Fix bad assumption with EXP/Level array indices
...
They don't always correspond to their classjob id, because jobs share
the same EXP/Levels as their base classes.
2025-06-28 14:15:46 -04:00
8f61fc36bd
Support importing even more data from Auracite
...
This includes unlocked class jobs, levels, your inventory and unlock
flags.
2025-06-28 14:15:46 -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
b2f14dffee
Add the !item debug command to give items by name
...
Compared to the //gm item command which only accepts IDs.
Fixes #50
2025-06-28 11:22:21 -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
99a165e405
When changing equip display flags, store that for new spawns
...
See #50
2025-06-28 11:13:11 -04:00
9a3652fb42
When equipping items, network that to other players
...
See #50
2025-06-28 11:13:11 -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
554d42a904
Equip the correct starting weapon for your selected classjob
...
This prevents all sorts of oopsies because the client will refuse
to equip certain items, if you happen to be using a Gladiator
weapon on an Archer or vice-versa.
See #50
2025-06-28 10:44:25 -04:00
61f0ccdacd
Fix deleting characters in the lobby not working
...
This statement broke at some point, and the size of the custom IPC
was wrong too.
2025-06-28 10:43:53 -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