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
88c7d2ee77
Fix sending status effects setting the player HP/MP to 0
...
For some reason we send some of the player's stats in this packet, and
we can't keep them as 0 because the client will just kill the player.
2025-03-29 14:52:27 -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
0d95f0d5b8
Return nil when pop range isn't found
2025-03-29 08:34:55 -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