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
69399dc64e
Enable oodle feature in run.sh
2025-03-23 06:20:11 -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
613fa551fb
Add more metadata keys to Cargo.toml
2025-03-22 21:49:05 -04:00
a6b485108f
Enable Oodle feature on the CI
2025-03-22 21:48:51 -04:00
2029caa645
Add note to explicitly enable oodle feature
2025-03-22 21:48:42 -04:00
82709a65ff
Update Cargo dependencies, remove Oodle as a default feature
2025-03-22 21:44:28 -04:00
d6137b62d6
Build with Oodle on the CI
...
This makes it possible to use Kawari easily without compilation. You
still need to acquire Oodle yourself since we build with the shared
library version of Oodle.
The USAGE instructions is modified accordingly.
2025-03-22 21:19:18 -04:00
5214d757e8
You can use Kawari on Windows
2025-03-22 21:19:18 -04:00
ae40e4c066
Upload artifacts from CI
2025-03-22 19:59:00 -04:00
c88e3ca6d7
Add Windows CI
2025-03-22 19:26:46 -04:00
0069196e3c
Move some constants to common module
2025-03-22 19:17:01 -04:00
fb05caaa31
Store zone id and position in the World database
...
This isn't updated by the server yet, but will be soon in the future.
2025-03-22 19:05:29 -04:00
4b740068d4
Remove hardcoded initial zone, derive it from selected City-State
...
This currently might spawn you in the ground in Ul'dah and probably Limsa too,
until I determine the correct spawn location.
2025-03-22 18:53:53 -04:00
15ed586fd0
Fix CharaMake structure, derive City-State from class picked in creation
2025-03-22 18:34:27 -04:00
c4b65f5ecd
Set max characters per world to 8
2025-03-22 18:08:40 -04:00
e4203c0ead
Entitle the user to Dawntrail
...
This gives you the Dawntrail intro screen instead of the Endwalker one.
2025-03-22 18:08:14 -04:00
ff7d096d5d
Fix the name rejection error message not showing correctly
2025-03-22 17:50:31 -04:00
55d0b81ae4
Use LobbyCharacterActionKind in CharacterCreated Lobby IPC
...
Instead of the magic unknown number, replace at least one byte of it with
something that's known!
2025-03-22 17:39:28 -04:00
107a00aa92
Move lobby character actions to LobbyConnection, support deleting characters
2025-03-22 17:32:00 -04:00
5c8998ddb2
Change default world id back to Gilgamesh
...
I quickly realized that the "Dev" server is under the "Unknown" data center, and
that's kinda hard to select in the client. I'll think about a solution later.
2025-03-22 17:08:33 -04:00
6190001caa
Remove more hardcoded values for character
...
Since we are now backed by a database, the remaining usages are erroneous and
should be removed.
2025-03-22 17:06:16 -04:00
a91c59aaaa
Remove hardcoded world id & name, make it configurable
...
Now the world isn't hardcoded to Gilgamesh, and is configurable. It's also now
the "Dev" server listed in the excel sheet which makes a more sensible default.
2025-03-22 17:00:21 -04:00
3f27d2b3df
Change configuration format to YAML, allow configuring the address and ports
...
This removes all of the hardcoded localhost stuff, and allows changing the ports
of various services.
2025-03-22 16:47:21 -04:00
f523aa189f
Move login & world database code/logic to their own modules and structs
...
This should remove some of the pollution I added while working on these
features.
2025-03-22 16:15:29 -04:00
4b67b22c9f
Show the actual character list on the lobby screen
...
This doesn't do any actual account checking yet, but it works pretty well.
2025-03-21 21:26:32 -04:00
7b77c19008
Add TODO to fix the lobby error for name rejection
2025-03-21 19:59:58 -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
3947eebb44
Add new commands to USAGE
2025-03-18 23:49:07 -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
da0860cdd7
Move CharacterMode enum to common_spawn module
2025-03-18 22:17:06 -04:00