1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-25 08:27:44 +00:00
Commit graph

245 commits

Author SHA1 Message Date
227c8c1eb2 Add //gm wireframe command 2025-03-29 00:39:00 -04:00
63bc9031c9 Restore player position and rotation on login 2025-03-29 00:28:49 -04:00
5b7e07642a Commit dynamic character values back to the database
This now saves the current zone id, position and the rotation of your
character to the database when you log out. This isn't restored yet
though.
2025-03-29 00:15:29 -04:00
65747b0632 Add scripting function to change a player's territory 2025-03-28 23:43:27 -04:00
e31d81743f Read rotation from UpdatePositionHandler 2025-03-28 23:29:16 -04:00
6bb6377315 Add stubs for the other two starting City-States
Also document how to access and play these scenes in USAGE.
2025-03-28 23:00:32 -04:00
2bf9385079 Load the starting position from the LGB
It turns out (amazingly) that this data exists client-side, I guess because the
server and the client share the same planevent LGB file. So instead of
hardcoding the starting location in each city, it's now literally like retail*

* Except for the fact that we don't support rotation yet, and positions in pop
ranges are probably randomized too. But it's close!
2025-03-28 23:00:32 -04:00
c4b9ad060b Add basic Event scripting capaibilities
This implements the first event script, going from the first Ul'dah opening
cutscene to the next.
2025-03-28 23:00:32 -04:00
bcbe62af06 Add packets related to playing events and scenes 2025-03-28 23:00:32 -04:00
cb740a2a93 Move LuaPlayer to it's own module 2025-03-28 23:00:32 -04:00
bbbe426617 Improve how the status effect list is sent and created
There is now a dedicated StatusEffects struct that provides a nicer API
to work with these. The list is also sent when needed and only when a
status effect changes, as the client handles the ticking down of
durations itself.
2025-03-28 23:00:32 -04:00
13b24e9cfe Try to fix crash after recieving status list 2025-03-28 23:00:32 -04:00
c5e04ba33f Begin wiring status effect Lua API 2025-03-28 23:00:32 -04:00
652beadaa4 Send the welcome server message in the onBeginLogin Lua function
I finally got a proof-of-concept working, and am somewhat happy with how I can
start building this API now.
2025-03-28 23:00:32 -04:00
a99b0e7c17 Pass PlayerData to onBeginLogin function 2025-03-28 23:00:32 -04:00
4d88f78184 Remove a good bit of log spam 2025-03-28 23:00:32 -04:00
54651d7bcb Add scripts to the artifacts 2025-03-28 23:00:32 -04:00
bbe9215902 Add mlua for server-side scripting support
This isn't hooked up to anything yet, just trying it out.
2025-03-28 23:00:32 -04:00
084a8ea664 Remove leftover debugging, edit README 2025-03-26 19:23:14 -04:00
e7dc83effe Update testdata for 7.2 2025-03-26 19:23:14 -04:00
4142143bc8 Move Zone IPC over to the new JSON opcodes file 2025-03-26 19:23:14 -04:00
d0bb7f4ba9 Start defining IPC opcodes in JSON
This is to make it easier to interpolate with other tools and projects,
and to reduce the mental barrier (of me and other contributors) of
changing these. This only ports the Lobby connection to use JSON so far,
the World connection is next.
2025-03-26 19:23:14 -04:00
7e6b493240 Add a note in the README about branching policy 2025-03-26 19:23:14 -04:00
d11c6ad090 Restore and add the remaining 7.2 opcodes
Now Kawari is back to it's full functionality, save for tests being
broken and out of date and PlayerSetup has the wrong padding. Success!
2025-03-26 19:23:14 -04:00
3a66e4466c More various 7.2 packet fixes, attempt to check recieved packet size 2025-03-26 19:23:14 -04:00
99deca8ab1 Update initial batch of opcodes from FFXIVOpcodes 2025-03-26 19:23:14 -04:00
ca83e3ac32 Change supported patch version to 7.2 in README 2025-03-26 19:23:14 -04:00
8696e116f2 Update supported patch versions to 7.2 2025-03-26 19:23:14 -04:00
a217823a64 Quiet some warnings 2025-03-23 18:21:12 -04:00
c29f8ad7df Run Clippy auto-fix, disable large enum size warning 2025-03-23 18:14:14 -04:00
70ec1b99c9 Fill inventory with racial starting gear 2025-03-23 17:49:53 -04:00
8a03c82480 Create Inventory struct, move inventory filling logic to ZoneConnection
This still uses hardcoded item ids, but this should much more extensible.
2025-03-23 17:43:06 -04:00
a36c6dff90 Send a (currently hardcoded) list of equipped items to the client 2025-03-23 17:10:47 -04:00
48b1b9cdc2 Add ContainerType enum 2025-03-23 16:49:48 -04:00
264fac4b4e Start writing tests for ItemInfo and ContainerInfo IPC 2025-03-23 16:45:52 -04:00
8659623eda Allow loading territories without a planmap 2025-03-23 16:31:30 -04:00
90a78fcaa8 ActorControl and ActorMove packet fixes, add support for //gm invis
I don't think this is the right kind of invisibility, but it's more of a test of
ActorControlSelf really. I have also been trying (and failing) to make the
client show another player.
2025-03-23 15:28:53 -04:00
d47779c8d6 Add display flags
This is based off of the display flags from Sapphire, and the weird UNK one that
I see in game.
2025-03-23 13:03:58 -04:00
93409a3c49 Remove persistent_emote field in CommonSpawn
This is a param to CharacterMode.
2025-03-23 12:17:23 -04:00
37dbef99db More CommonSpawn, PlayerSpawn and NPCSpawn struct improvements
This is just a barrage of random stuff I needed to fix, along with finally
figuring out what subkinds are.
2025-03-23 12:16:15 -04:00
45f92e9e54 Add OnlineStatus and GameMasterRank enums 2025-03-23 11:37:00 -04:00
3f23eea9c7 Add ObjectId and ObjectTypeId structs
This is to make it easier to defaut to INVALID_OBJECT_ID. To test if this works,
the actor from !spawnnpc should target the player.
2025-03-23 10:53:22 -04:00
9111ef6a82 Add debug command to spawn a monster (Tiny Mandragora), various fixes
This fixes various problems in CommonSpawn, adds a test for an enemy NPC spawn,
and an unkwon packet I get when entering some zones.
2025-03-23 10:33:49 -04:00
af6f95fa61 Add CONTRIBUTING guide, detailing packet capture and updating to latest patch 2025-03-23 08:33:07 -04:00
1e343d0f10 Add version checks in the patch server for game and boot components
As 7.2 is releasing next week, it would be nice for the patch server to double
check the user has the correct version of the game. Now the patch server rejects
clients that have too new of a version.
2025-03-23 08:21:43 -04:00
65500d15ad Make patch-dl URL configurable 2025-03-23 07:35:11 -04:00
b3f5500d2f Check user-agent in Patch server 2025-03-23 07:25:23 -04:00
d92f0033a9 Fix typo in USAGE 2025-03-23 06:53:58 -04:00
560ee04159 Update patch server for axum changes 2025-03-23 06:34:59 -04:00
d8971b09cc Remove erroneous Position import 2025-03-23 06:34:47 -04:00