166e8024e0
Fill out more fields in PrepareZoning IPC
...
This fixes the loading screen between zones (as it now displays
text.) How we do things isn't very accurate still.
2025-07-14 21:35:32 -04:00
ac785365d3
Begin implementing pathfinding, all NPCs now converge to you
...
This is incredibly simple behavior, and navimesh generation is
currently manually done. But it's progress!
See #38
2025-07-14 20:31:02 -04:00
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
The Dax
421a24aa6f
When adding items to the inventory, prefer existing stacks first before selecting empty slots.
...
-This works for adding items to the inventory in any capacity, including debug and GM commands!
2025-07-14 17:27:45 -04:00
thedax
a5120bb9d6
Fix client-side crashes when discarding items. ( #117 )
...
-Various things were wrong in InventoryTransaction, but they should now be fixed.
2025-07-13 20:11:54 -04:00
a4c8466088
Move packet replay to the global server state
...
This makes it way more stable, and can actually work now.
2025-07-13 20:09:50 -04:00
06debd5eb0
Begin implementing packet replay
...
It doesn't work fantastic yet, I need to move it to the global
server state to truly work as intended.
2025-07-13 18:01:59 -04:00
The Dax
ba1a92c9bc
Rename GilShopRelatedUnk to UpdateInventorySlot
...
-This now matches Karashiiro/FFXIVOpcodes.
2025-07-13 15:22:44 -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
8be1fefa53
Add support for sending the title list, when requested
...
This doesn't allow you to set them yet, just show them in the menu.
2025-07-13 10:15:40 -04:00
c339c89c41
Fix various issues with the Lobby packets
...
Everything should be more consistent now, in regards to "tickets"
and actor ids.
2025-07-13 09:52:00 -04:00
7cfa20052d
Remove appearance updates from ZoneConnection::send_inventory
...
This isn't needed anymore.
2025-07-13 08:47:53 -04:00
b84462fd6f
Send equip item updates again
...
This was lost in the inventory refactoring because it was only
handled by ZoneConnection::send_inventory, but it needs to happen
elsewhere now.
2025-07-13 08:42:56 -04:00
c0daf7b06b
Skip sending empty UpdateItems on first login
...
There's no reason to do this, the client has no pre-existing
inventory state so we're just wasting bytes.
2025-07-13 08:29:45 -04:00
f88d62b80f
Remove comment in lobby to investigate other server's KeepAlive
...
I checked a retail capture, and I think we're doing it correctly
for the chat and zone connection already. They wait until Setup to
send it (so the client is authorized, of course.)
2025-07-13 08:07:25 -04:00
67d01513b1
Begin figuring out various content finder thingies
2025-07-12 20:53:59 -04:00
thedax
45ee95318c
Rename inventory-related opcodes to match Karashiiro/FFXIVOpcodes ( #112 )
...
-Implement keyboard turning packet as a no-op so it'll stop clogging server logs
-Finish implementing inventory actions
2025-07-12 17:40:22 -04:00
217ed2466c
Fix the API for support desk headlines
2025-07-12 10:11:18 -04:00
c688e93f7c
Stop panicking when walking into unused zones lines
...
Fixes #87
2025-07-12 09:10:17 -04:00
87676bafd7
Allow selecting a service account in the lobby
2025-07-12 08:36:00 -04:00
781fea1e35
Fix Chronofoil capturing not working
...
This was because Kawari was not seeing the KeepAliveRequest like
the retail Lobby server does, and Chronofoil didn't know what to
do.
Fixes #113
2025-07-11 23:21:18 -04:00
f7c73a14a6
Various fixes to make serving patches work
...
Only tested against sqexPatch.dll so far, but this helps retail in
general. More correct-looking headers are sent, logging is increased
(to help debugging) and other fixes for boot patch verification.
2025-07-11 21:39:15 -04:00
ade08f9697
Begin implementing navimesh path visualization
...
It doesn't look quite right - probably because the navmesh
generation is bad. But it's progress!
2025-07-09 22:55:35 -04:00
075a2fea11
Begin testing navmesh queries
...
The next step is to visualize the navmesh so I know what's going
on!
2025-07-09 21:23:32 -04:00
b6a445cc34
Complete navmesh generation
...
Still no idea if it's actually correct yet, but the function calls
pass.
2025-07-09 20:37:11 -04:00
5bea7f9b34
Generate more Recast data, start using Detour functions
2025-07-09 20:24:11 -04:00
e929f40e94
Begin building the various bits of Recast navigation
...
I got it to "work" (not checked, but the calls at least don't fail)
and now it's time to include the detour portion.
2025-07-09 19:17:07 -04:00
e269806248
Begin integrating recastnavigation-sys
2025-07-09 15:58:57 -04:00
85cec9f092
Begin adding zone collision visualization
...
If you run kawari-navimesh and give it a zone ID, it can now show
you the loaded collision meshes. I only tested it in inn rooms so
far, but already works super well.
2025-07-09 14:59:02 -04:00
20b26377dc
Begin logging collision asset paths in naivmesh gen
2025-07-08 23:38:03 -04:00
e26820f777
Begin working on a navimesh generation tool
...
This just lays the groundwork for processing a zone, given an ID.
2025-07-08 23:33:33 -04:00
d16c2c6583
Allow loading unpacked game files, add unpacking mode
...
This enables you to subsitute game files with your own more easily,
along with running a server with only a limited amount of game
data.
2025-07-08 22:39:31 -04:00
thedax
17967c9d6a
Attempt to improve the accuracy of a couple things ( #105 )
...
Attempt to improve the accuracy of:
-ItemOperation: Now sends back ItemAcknowledgeAck as well as InventorySlotDiscard and *Fin when discarding items
-ClientTrigger::EventRelatedUnk -> send back commonly observed ActorControlSelf responses
2025-07-05 19:05:43 -04:00
cd55653077
Implement necessary packets for the Unending Journey event
...
This doesn't make cutscenes play *yet*, but stops the client from
getting stuck waiting for a cutscene to begin. Now the event script
continues, and ends the event.
2025-07-04 16:18:39 -04:00
2f1aee9d09
Fill out more unknowns in lobby IPC packets
...
Mostly based off of Sapphire, but fixed in the more modern age.
2025-07-04 15:40:10 -04:00
24edee6548
Fix various size issues with lobby IPC packets
...
Some of these were the wrong size, and were affecting both the
server and packet analyzer alike. This should now more accurately
reflect retail.
2025-07-04 15:01:27 -04:00
7ccd132129
Unify version and file checking behind one config parameter
...
And make it affect the patch server as well, if you really want to
use an unsupported version.
2025-07-04 11:56:12 -04:00
The Dax
1c7570c696
Bounds check the string parts vecs.
...
Fix off by one error
Style nit.
2025-07-04 11:44:35 -04:00
The Dax
b3c954ed83
Fix error string
2025-07-04 11:44:35 -04:00
The Dax
d011f11e54
Lobby server: implement a server-side version check against the version info the client sends.
...
-TLDR: it checks file length and sha1 hash of the game exe, and all of the version strings.
2025-07-04 11:44:35 -04:00
The Dax
57b90ca3dd
Address "warning: this expression borrows a value the compiler would automatically borrow"
2025-07-04 11:42:08 -04:00
The Dax
b3b7b2e57f
Address two of "warning: function call inside of expect
"
2025-07-04 11:42:08 -04:00
The Dax
72915e11d9
Address two of "warning: redundant pattern matching, consider using is_ok()
"
...
-We should really refactor this part of the code, it's a bunch of copy paste.
2025-07-04 11:42:08 -04:00
The Dax
fe25cc6210
Address three of "warning: casting to the same type is unnecessary (u32
-> u32
)"
2025-07-04 11:42:08 -04:00
The Dax
3a9912776f
Address "warning: useless use of format!
"
2025-07-04 11:42:08 -04:00
The Dax
86c8d58fe3
Address "warning: this expression creates a reference which is immediately dereferenced by the compiler"
2025-07-04 11:42:08 -04:00
The Dax
05f83459c1
Address "warning: deref which would be done by auto-deref"
2025-07-04 11:42:08 -04:00
fb46a44e18
Begin correctly implementing packet obsfucation
...
I re-implemented Unscrambler, but in reverse! This currently only
affects names in the PlayerSpawn packet, it needs to be extended
into others to be considered complete.
See #9
2025-07-03 16:12:19 -04:00
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