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

131 commits

Author SHA1 Message Date
20030c18c8 Move work definitions to their own module 2025-04-22 16:07:39 -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
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
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
55340f4e8c Update to latest Physis changes
I changed the API for layer groups a bit, and so we need some slight
modifications.
2025-04-13 18:36:43 -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
e9ef724f05 Make get_primary_model_id return an Option 2025-04-11 08:36:17 -04:00
96bcdf1238 Fix various Clippy warnings 2025-04-11 08:32:55 -04:00
f9aefab7b7 Read voice from CharaMake, send voice id in lobby 2025-04-11 08:26:38 -04:00
90e5e191e9 Integrate Login<->Lobby servers, remove placeholder service account id
All accounts were sharing the same character list, but now they should
be properly separated. This also modifies the login database to prepare
for multiple service accounts, but there's no way to manage them in the
web interface yet still.
2025-04-05 21:36:56 -04:00
19b84f4164 Extract new data from Auracite
Now your character's nameday, city-state, guardian and voice is transferred
over. There seems to be a problem with the nameday month, not sure who is wrong
yet.
2025-04-01 23:25:11 -04:00
df1d0b2629 Remove disconnected clients from the client list 2025-04-01 22:24:58 -04:00
121415b163 Add !classjob debug command to change your class/job
This is the workaround for lack of a proper class/job switch when
equipping different weapons.
2025-04-01 21:53:10 -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
f1b674320e Send existing actors to any newly connecting client 2025-04-01 20:23:23 -04:00
268c157180 Send actual player data to other clients
Instead of a placeholder actor, you can now see the other player's
correct appearance.
2025-04-01 19:23:12 -04:00
4f8f0d1fe2 Add !spawnclone command, rename !spawnactor
Curiously the spawned clone shows up as a player, despite not using the
NPCSpawn packet. This might be a suitable workaround for the
PlayerSpawn packet being buggy from our side.
2025-04-01 19:15:08 -04:00
b1653f0808 Commit and restore inventory from the World databse 2025-04-01 18:49:42 -04:00
fed21b3617 Make various packet dumping optional, turned off by default
This creates a lot of clutter, and only really interesting to
developers.
2025-04-01 16:58:39 -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
eae962cc85 Multiple fixes attempting to fix packet errors
It doesn't unfortunately, there's still a bunch of errors when decoding
packets. These are all decent fixes though.
2025-03-30 21:42:46 -04:00
b01ec22950 Fix and check more packet sizes 2025-03-30 19:50:31 -04:00
caf70ea469 Pass GameData into Zone, stop loading the same zone twice on login 2025-03-30 19:13:24 -04:00
243d94c586 Add preliminary support for restoring character backups from Auracite
Not much is importable yet - pretty much just the character's name and
appearance.
2025-03-30 18:52:00 -04:00
e4870762eb Fix various Clippy warnings 2025-03-30 18:03:42 -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
9cb7cd9abd Add initial stuffs for actor replication 2025-03-30 18:03:42 -04:00
ae2a75e1af Initial support for multiplayer
This is quite the architecture change, and I started working on the
first Tokio actor tutorial I could find. This actually works though,
and you can now chat between two characters on the server.

The next steps are to clean up my mess, and send actors over the wire.
2025-03-30 18:03:42 -04:00
7efbc5fd02 Move StatusEffects struct to it's own module 2025-03-30 10:51:36 -04:00
fe318cbc65 Move some more connection tasks into ZoneConnection
Notably part of the initialization and actor control self calls.
2025-03-30 10:49:33 -04:00
7f75a378f4 Create EffectKind enum to hold the different effect kinds 2025-03-30 10:01:41 -04:00
0b1a67fc9c Remove some hardcoded values in ActionResult 2025-03-30 09:35:53 -04:00
e8581cdaba Add script for Fast Blade action
This adds the necessary infrastructure to add actions that deal damage to
enemies, and tests this through the new effects builder exposed through Lua.
2025-03-30 09:31:50 -04:00
d8627c646e Add a more extensible way to add actions
You now reigster actions with registerAction under Global.lua. This should make
it extremely easy to add new actions later.
2025-03-30 09:02:52 -04:00
3bd0d64aa7 Add relevant remake fields to ClientSelectData
This documents a few fields interesting to Fantasia, such as the flag needed to
enable the "Re-edit Character" menu item.
2025-03-30 08:36:01 -04:00
7495f88dd5 Add various lobby character flags
This is based off existing work in FFXIVClientStructs, but I did make
sure to double-check what these actually did as well. These also can be
a combination of flags, but FFXIVClientStructs doesn't consider it one
yet.
2025-03-30 08:32:46 -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