1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-05-06 12:47:45 +00:00
Commit graph

371 commits

Author SHA1 Message Date
11156ea43c Fix GM commands 2025-05-02 16:17:29 -04:00
8d384c4bd0 Overhaul how we send inventory packets again
I wanted to add armory chest support but the current state of the
inventory was a little frustrating. Adding new containers was too
difficult, so I made the system *even more* generic and easier to use. I
have also split it up into it's own module with a nicer file layout.

Oh yeah, and armory chest works too now.
2025-05-02 16:15:54 -04:00
e7fb661244 Implement Fantasia and remaking your character
Everyone's favorite copying mechanism/purchasable item is now functional
in Kawari. The item doesn't disappear once you use it, because there's
no API for that yet.
2025-05-02 15:36:22 -04:00
cb146f173e Fix tests not compiling 2025-05-02 00:56:48 -04:00
23f9b5f3c1 Move oodle into the packet module
Not sure why I didn't do this before, it's not important enough to be a
top-level item.
2025-05-02 00:52:26 -04:00
5111a38424 Re-organize IPC segments into the ipc module
These were kind of scattered everywhere, instead we should move them
into their own module. Kawari's custom IPC is moved here too.
2025-05-02 00:47:11 -04:00
80b06b3294 Reduce log spam from position updates 2025-05-02 00:31:47 -04:00
9eb9eca1c8 Change unk1/unk2 in PacketHeader to prefix 2025-05-02 00:31:27 -04:00
0f98bfde52 Implement Default trait for PacketSegment
This reduces a *ton* of places where I had to set
source_actor/target_actor to zero because it wasn't relevant.
2025-05-02 00:28:05 -04:00
fb69689f2a Change server_id field in IpcSegment to option 2025-05-02 00:17:15 -04:00
54fd1b90b1 Move chat connection initialization out of WorldConnection
I think this just causes more confusion, it's not really it's job to do
this.
2025-05-02 00:11:37 -04:00
f3f25eb219 Overhaul segment types, their names and their order 2025-05-02 00:03:36 -04:00
b426de677f Begin separating chat IPC, fix tests 2025-05-01 23:34:06 -04:00
5420225c74 Update world IPC packets with better fitting names, fields 2025-05-01 23:20:56 -04:00
67ec72a962 Rename the remaining lobby IPC opcodes, reorder them too 2025-05-01 22:45:49 -04:00
2ec54fa6ec Use more accurate names for some client lobby packet types 2025-05-01 22:36:30 -04:00
6971ef1fc8 Rename PacketHeader's unk3 into "version"
I know the name now, but it's still a mystery what it is?
2025-05-01 22:29:34 -04:00
9976548f04 Make the admin server start-up message fit with the others 2025-05-01 22:19:31 -04:00
afed151488 Add "character backup import" feature to the account management page
We have had an import feature for a while, allowing you to easily
recreate your retail character from Auracite backups. But the feature
was implemented *before* we had proper service accounts, and it always
assigned it to ID 1.

Now it's moved to the user-visible account management page.
2025-05-01 15:35:51 -04:00
ed8ccb86ee Move model id grabbing to Inventory, fixup ClientSelectData
I wanted to make the lobby screen reflect your currently equipped items,
but that doesn't yet for some reason. These are still good refactorings
though!
2025-04-30 23:05:43 -04:00
614e470669 Add an option to enable packet obsfucation for the World server
There's no point in doing this yet:
1. This *crashes* the client, nice. Most likely because we're not
actually obsfucating anything, only tricking the client into thinking we
were. Why this can crash the client is beyond me?
2. Obsfucation is still optional.
2025-04-30 22:37:57 -04:00
d94c3a8e03 Update (almost) the rest of the opcodes for 7.21
The few that I haven't tested yet is event-related, but those are a low
priority anyway. PlayerSetup has changed of course, but it only affects
minor things.
2025-04-30 22:19:59 -04:00
c8a971a5e6 Remove that one annoying unused variable 2025-04-30 22:19:56 -04:00
15af4bc1d0 Support the latest released boot version 2025-04-30 22:19:46 -04:00
029c161e54 Add stubs for the frontier API used by the client
This is the support desk functions, although this doesn't work quite yet
and the game complains that it can't recieve any data.
2025-04-24 14:42:01 -04:00
9c9a1e8086 Fix more 7.21 opcodes
This now gets you into the World server, but your player character
doesn't spawn yet.
2025-04-23 16:30:37 -04:00
cdfebce9f7 Add some helpful warnings to patch server, add FFXIV_Patch as user agent
This is used by sqexPatch.dll, so it should be legitimate. I also made
sure the URLs actually work again!
2025-04-22 19:27:19 -04:00
0e31cc047d Update supported patch version to 7.21 2025-04-22 18:46:17 -04:00
d89a976c78 Begin adding save data bank 2025-04-22 18:46:04 -04:00
2a6c9ee76c Add support for Shanda (Chinese) logins to the lobby server
This only means logging into the lobby server works, trying to login to
a World doesn't work as even the current version is too old. It probably
won't work without modifications anyway.
2025-04-22 18:15:13 -04:00
76ad6822c3 Add more test buttons to the launcher page 2025-04-22 17:56:54 -04:00
516a91620e A few more fixes to get the launcher page to load 2025-04-22 16:29:21 -04:00
4d06ae2d14 Add initial set of opcodes for 7.21h
This is *not* complete so the client probably won't work, this is just
what FFXIVOpcodes has.
2025-04-22 16:17:40 -04:00
20030c18c8 Move work definitions to their own module 2025-04-22 16:07:39 -04:00
28b27866db Serve a launcher page under launcher.ffxiv.localhost
This can eventually be put into a retail launcher, but it doesn't do
much yet.
2025-04-22 16:00:10 -04:00
ef58358756 Expose Damage kind, element and type in Lua API 2025-04-18 14:32:39 -04:00
fa2caa6647 Make EquippedContainer iteratable, simplify sending equipped item code 2025-04-18 13:52:18 -04:00
e5672e91f2 Show the currently equipped weapon on your character
Oops, I was turning u64 model ids into u16 and then changing it to
either a u32/u16. That's stupid, but now it's fixed and we can display
weapons!
2025-04-18 13:20:25 -04:00
510d07e3e4 Fill out more fields of damage action results
Now we can actually set whether the damage was physical, magical,
aspected etc. This is not yet exposed in the Lua API.
2025-04-18 13:11:29 -04:00
d507547dd3 Fix action results not working
The opcode wasn't updated for 7.20h, and I think was overlapping with
some status effect list one (hence the weird stuff happening in the
update showcase video.) Also updated the testdata, even though it wasn't
needed.

I also added back the actor hp/mp update, because I deleted that
thinking it would fix something but it didn't.
2025-04-18 12:38:02 -04:00
db877938ac Attempt to remove actors when killed
This doesn't work on the test monster yet - I don't know why, but this
is what it's supposed to do.
2025-04-18 01:38:47 -04:00
3d9bbf8719 Fix world server with RCON disabled 2025-04-18 01:17:51 -04:00
a8e746b7c4 Switch to released rkon 2025-04-15 23:42:39 -04:00
717a2b7785 Add RCON support
Just for fun, but this isn't hooked up to any commands yet. I need to
make some command changes anyway, and will hook it up when I do that
refactoring.
2025-04-15 23:35:49 -04:00
16af49cea4 Allow attacking the monster spawned by !spawnmonster again
I broke this while refactoring other actor things.
2025-04-15 16:27:49 -04:00
42dce0f9c2 Fix some grammar in the README 2025-04-14 16:35:44 -04:00
01cab0f3a1 Send position and rotation on initial spawn, and keep it updated
Now other players won't spawn at 0,0,0 (which is wrong, almost nobody
is there) and will reflect their actual position/rotation when spawned
in. This is also updated on the server - so new clients are aware of
your last position/rotation - and can be used later for visibility
checks.
2025-04-14 16:34:30 -04:00
ba91ca4291 Fix various Clippy warnings 2025-04-14 16:24:46 -04:00
79f3ac73b6 Move player stat sending function to ZoneConnection 2025-04-14 16:18:03 -04:00
10c1369119 Add opcode for despawning actors, send that when changing zones
This is to workaround a bigger bug where I don't properly enclose actors
in their zone, so you can hit an assert while traveling between zones.
But this is something that has been needed anyway, and also fixes that.
2025-04-14 16:09:14 -04:00