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

449 commits

Author SHA1 Message Date
59815df5c1 Add warning message when failing to find poprange 2025-05-12 16:32:55 -04:00
1cdd2d4bff Fix the character currently equipped items not showing in the lobby
We were missing two additional integers in the ClientSelectData work
definition. Once we added those, the equipment now shows up!
2025-05-12 16:11:17 -04:00
6930c18d2a Prevent the chat connection from always forcing a log out
This is just a band-aid fix, we really need to the separate the chat
connection from the rest of the zone connection logic. But this will at
least stop some annoyances when logging out.
2025-05-12 16:00:23 -04:00
b21d9933b3 Add GM rank to database, default to normal user and set online status
Instead of everyone starting out as a GM, they are a normal user by
default. Right now the only way to set GM rank is through editing the
database. The online status is set accordingly.
2025-05-12 15:44:39 -04:00
a88b9037d4 Begin adding disconnection handling
This doesn't work 100% reliably yet, but the world server should now try
to commit your player back to the database if it detects you disconnect.

I also fixed a mistake where the global server state never removed
clients when they errored out. There's now code to remove your actor
from the instance when disconnecting, but this doesn't work reliably yet
either.
2025-05-12 01:17:15 -04:00
f37aa53011 Don't panic if LGBs failed to load 2025-05-11 12:39:35 -04:00
d7499e6015 Fallback to 0,0,0 if we fail to find aetheryte destination 2025-05-11 12:39:13 -04:00
d82cb2d048 Add support for unlocking all aetherytes 2025-05-11 12:38:55 -04:00
94ed036431 Add script for the Teleport action
This makes the Teleport action functional now, although it looks pretty
rough as it warps you instantly instead of waiting for the action to
actually finish.
2025-05-11 10:12:02 -04:00
1914531d89 Add commands to unlock actions, and aetherytes
This doesn't mean teleporting works *yet*, as it needs to be scripted.
The unlocked action/aetheryte is also not persisted yet.
2025-05-11 09:27:29 -04:00
1605098c2e Update CONTRIBUTING to remind myself to update Icarus as needed 2025-05-10 09:28:31 -04:00
90a4f4ea0c Switch to new physis sheets name
Nothing changed API-wise apart from that. We also have the ability to
now pin on a game version, which is super helpful.
2025-05-10 09:25:22 -04:00
477380c8b9 When using the !spawnmonster command, send it to all players
You can't attack it and see it on other clients yet, that will take some
more plumbing.
2025-05-09 20:09:22 -04:00
2e50d1f7ad Move some common code out of ZoneConnection and into a new common module 2025-05-09 19:49:40 -04:00
dba4edc32d Remove some dead, unused code 2025-05-09 19:45:08 -04:00
95fb6a149f Remove ToServer::ActorSpawn
This should be handled in the global server state instead.
2025-05-09 19:42:23 -04:00
0139fbc8c6 Remove the now unused ToServer::ActorDespawned
This is handled in the much-better-named LeftZone message.
2025-05-09 19:30:37 -04:00
cbeaa83307 Implement basic zone isolation for multiplayer
Now you don't see every player from every zone, like some kind of
madman. The code still sucks, but it works.
2025-05-09 19:27:18 -04:00
9787126a1b Replace (most of) the remaining Excel parsing with Physis Sheets
The only one remaining is for Item data, but that can't be ported yet
because the new API only fetches the first page for now.
2025-05-09 18:35:44 -04:00
df789b52c9 Update to latest Physis Sheets API for error handling 2025-05-09 18:11:18 -04:00
99c92d1b67 Update and use the nice, new Physis ColumnData API
Now the GameData::get_warp function looks much closer to how I want it
to!
2025-05-09 18:03:25 -04:00
93923ff7a8 Begin using Physis Sheets, port warp finding code to it
Kawari is starting to have more and more Excel-based code, so having a
nicer way to access it is nice. This only works for simple cases for
now, and easy one is finding a warp.
2025-05-09 17:48:56 -04:00
7f729bfd99 Update dependencies (binrw, physis, bitflags)
This updates three major crates we use to the latest version with all of
their API changes, and the others too. Notably, this removes the Syn v1
dependency thanks to binrw 0.15 switching to Syn v2.
2025-05-09 15:25:57 -04:00
88e02452c4 Propagate pose changes to other players
Building off of the previous propagation work, your current pose is sent
to other players now too.
2025-05-08 23:03:51 -04:00
fd1fbe7188 Start adding support for propagating actor control state
This begins figuring out how we are going to be propagating actor
control state: e.g. targets, poses, and other misc effects. I ended up
sending client triggers to the global server state, who then creates the
needed actor control packet for the other players.

Now players can see what other players are targeting!
2025-05-08 22:53:36 -04:00
f338530e6d Fix rotations sent to other players
There was two problems I was running into:
1. The move packet changed slightly, using a different way to encode the
rotation. In hindsight, it should seem obvious they would encode it the
same way for CommonSpawn and ActorMove.
2. write_quantized_rotation did it's order of operations wrong, and
it would spit out nonsensical rotations.

Both issues are fixed and you can see the other player's rotation
correctly now!
2025-05-08 21:52:50 -04:00
e43ab6c42a When no session is found when logging into the lobby, show an error msg
It's the wrong error message, but it's better than getting an empty
lobby screen!
2025-05-08 21:01:15 -04:00
7c96edc9a4 "Implement" the Crystal Bell
Like the Unending Journey, just tell the player they aren't authorized
to summon him.
2025-05-06 22:39:57 -04:00
ed44de8956 "Implement" the Unending Journey
Apparently there's a scene that's super easy to use, that omniously says
"You cannot consult The Unending Journey at this time". That's cool,
though.
2025-05-06 22:37:02 -04:00
515ec59d92 Port classjob debug command to Lua 2025-05-06 22:03:31 -04:00
4c17f28eb0 Add Lua API for commands
This is super simple, you get the player and the args (which you can
choose to split if you so choose.) I reimplemented the !setpos, and will
start doing the rest of the commands.
2025-05-06 21:57:52 -04:00
5b35896365 Show the statusText on login error, not the empty response 2025-05-06 18:28:51 -04:00
ebec139fa3 Don't hardcode login server URL on the launcher page 2025-05-06 18:18:24 -04:00
8790f443a2 Fix SID generation
I messed this up when porting to fastrand, it ended up extending *one*
single letter to 56 chars.
2025-05-06 18:18:24 -04:00
Sayaniku
092cec19d5 Update USAGE.md
Updated the dependance needed for windows and explain a little bit more for the folder oodle
2025-05-06 17:27:14 -04:00
6af3392679 Fix broken login link on some webpages 2025-05-06 16:09:05 -04:00
e455bc10e5 Add links to return home on the login pages 2025-05-06 16:03:16 -04:00
adb1259829 Add some simple instructions to the homepage 2025-05-06 16:01:00 -04:00
6ff67a55e3 Make instructions on where/place Oodle more clear in USAGE 2025-05-06 15:55:02 -04:00
014fc0beea Redirect to account management page after signing up
See #17
2025-05-06 15:41:55 -04:00
ca8d36e48c Fix remaining inn warps, prevent the player from getting stuck
This means the three ARR inns are now "functional" (as in, you can enter
and exit them.) I also added some code to give you control of your
character in case you hit an unimplemented event.
2025-05-05 23:45:22 -04:00
e237cbe84d Create GenericWarp script to handle simple warps
It turns out that most warps are just a yes/no, and can be handled by
one single script. I scripted the lift attendants from Bulwark Hall <->
Airship Landing <-> Drowning Wench this way.
2025-05-05 23:30:36 -04:00
6dc8194aa8 Add inn bed handling, let event scripts decie when they are finished
The inn bed is the most complex script we have written so far, and needs
a little bit more logic to when it finishes. I also made it play the bed
animation, although you *will* sleep forever as we don't know how to
disconnect you yet.
2025-05-05 23:04:53 -04:00
00671ae741 Add script for limsa inn door 2025-05-05 22:28:45 -04:00
fec6665d8d Make Limsa Inn warp functional
This was surprisingly easy, so now this works. You can't exit the inn
yet, though!
2025-05-05 22:04:39 -04:00
afbadf85c4 Clean up talk event handling, use Event struct 2025-05-05 21:15:03 -04:00
873d7f5951 Move custom IPC handling to a separate file 2025-05-05 21:03:47 -04:00
3139d63b91 Begin scripting the inn NPCs
This kinda works, you can now talk to them without locking up your
character but you aren't warped yet. I also need to clean up the mess of
the Lua API.
2025-05-05 20:51:49 -04:00
85a2abb49e Add a warning to not enter your real account's credentials
I added a warning to the bottom of the login pages everywhere to make
sure users do not try to enter their real account credentials.
2025-05-03 20:46:50 -04:00
073ae89174 Fixup launcher styling, simplify the craziness
Now that I have a working launcher page, I have now cleaned up the mess
so it looks less insane with debugging stuff everywhere.
2025-05-03 20:33:41 -04:00