1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-07-22 12:37:47 +00:00
Commit graph

56 commits

Author SHA1 Message Date
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
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
ca94e26e1c Attempt to fix other player rotations
This doesn't work just yet, but I guess I'm getting closer.
2025-04-11 10:32:52 -04:00
dbfd5fccc4 Use bool type in ToggleInvisible Actor Control 2025-04-11 08:46:54 -04:00
216778ea8b Add more inventory management
Instead of one single slot available in your inventory, all four pages
should be available now. Moving items around should be less buggy, and
it's now possible to discard items.

Items cannot stack still, and when given will always take up the next
free slot.
2025-04-01 21:37:41 -04:00
6d1e9d4e73 Add //gm lv command to set your current level 2025-04-01 20:39:57 -04:00
822d1f5139 Add GM command to give items, support equipping from inventory
Now with this command and support for *one* inventory slot, you can
now freely equip items to your character for testing.
2025-03-31 23:23:29 -04:00
924c5a1530 Fix various warnings 2025-03-31 21:58:51 -04:00
0c76d847d5 Allow unequipping items, add packet for updating equipped model ids
The unequipped item currently disappears into the aether, but this
works now!
2025-03-31 21:49:12 -04:00
1bdacaaede Add inventory modification packet
The size isn't quite right yet, but whatever.
2025-03-31 20:05:37 -04:00
fccd752246 More misc packet size fixes 2025-03-30 22:29:17 -04:00
b01ec22950 Fix and check more packet sizes 2025-03-30 19:50:31 -04:00
ae1ca2f92d Replicate actor spawning and movement to other clients
This now works and Kawari has achieved basic multiplayer! This is of course with
a hundred caveats:
* Previously spawned players are not backfilled
* There is no range or zone detection
* They are carbuncle clones of you, not the other character's data

But it actually WORKS!
2025-03-30 18:03:42 -04:00
7f75a378f4 Create EffectKind enum to hold the different effect kinds 2025-03-30 10:01:41 -04:00
89db2ce920 Fix crash when entering certain zones, remove stuff doesn't work
There's some fadein/fadeout nonsense that isn't really doing anything right now,
and can be killed.
2025-03-29 16:43:06 -04:00
1ef4078ec1 Fixes and workarounds for battling 2025-03-29 14:38:40 -04:00
d54b4c945e Start informing the player of the consequences of their actions
This doesn't work 100% reliably yet, but I do see the action appear in
my battle log.
2025-03-29 14:15:01 -04:00
ff3313a0f9 Add UpdateHpMpTp packet, make sprint take away debug monster health
This is just for debugging, I want to make attack actions do this
instead.
2025-03-29 12:25:22 -04:00
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
e31d81743f Read rotation from UpdatePositionHandler 2025-03-28 23:29:16 -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
13b24e9cfe Try to fix crash after recieving status list 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
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
c29f8ad7df Run Clippy auto-fix, disable large enum size warning 2025-03-23 18:14:14 -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
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
1acf73c484 Move Position struct to common module 2025-03-22 22:01:32 -04:00
d10552f653 Rename player_spawn.dat to player_spawn.bin 2025-03-22 21:59:06 -04:00
0069196e3c Move some constants to common module 2025-03-22 19:17:01 -04:00
b3a22ebdce Fix size of WeatherChange packet 2025-03-21 19:58:48 -04:00
0900d0b94e Implement basic character persistence, World <-> Lobby server communication
This is unfortunately lumped into one big commit, and is very hacky and WIP but
does indeed work! Since the Lobby and World server are two separate servers, it
uses it's own custom IPC packets (reusing the same packet structures as regular
game ones.)

The characters you create in the Lobby server are now saved in the World server,
but this is not yet reflected in the Lobby screen.
2025-03-21 19:56:16 -04:00
f4536f2cb7 Implement basic support for actions
This only works for sprint, and it adds 30 sprint buffs. It also regularly
crashes the server afterwards usually.
2025-03-19 00:28:47 -04:00
788cbf114a Add support for the GM command to change the weather
You can now change the weather with `//gm weather <id>`.
2025-03-18 23:48:00 -04:00
4927fa9119 Send ActorControl and StatusEffectList packets in vain
This was hopefully supposed to show the player spawned by !spawnactor, but it
still doesn't work...
2025-03-18 23:30:59 -04:00