This commit is contained in:
parent
274c929c33
commit
af56d7a372
3 changed files with 65 additions and 29 deletions
|
@ -1,67 +1,99 @@
|
||||||
---
|
---
|
||||||
title: "Kawari Progress Report 12 - Shopping"
|
title: "Kawari Progress Report 12 - Viewing"
|
||||||
date: 2025-06-30
|
date: 2025-07-04
|
||||||
draft: true
|
draft: true
|
||||||
tags:
|
tags:
|
||||||
- FFXIV
|
- FFXIV
|
||||||
- Reverse Engineering
|
- Reverse Engineering
|
||||||
series:
|
series:
|
||||||
- Kawari Progress Report
|
- Kawari Progress Report
|
||||||
summary: "PLACEHOLDER"
|
summary: "This is quite a large update, and we implemented quite a few game features now."
|
||||||
bluesky_url: ""
|
bluesky_url: ""
|
||||||
mastodon_url: ""
|
mastodon_url: ""
|
||||||
draft: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
This is quite a large update, thank you to our contributors making this list huge! We implemented quite a few game features now.
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
Currency (gil for now) and EXP are now supported and sent to the client.
|
Currency (just gil) and EXP are now supported, and these are sent to the client.
|
||||||
|
|
||||||
Thanks to thedax, the Aetheryte and Aethernet network is mostly functional - save for the starting town's Aetherytes which are hidden right now.
|
Thanks to thedax, the Aetheryte and Aethernet network is now mostly functional. We still have trouble making the Aetherytes in the starting town show up though.
|
||||||
|
|
||||||
Unlocks (Actions, Emotes, etc), unlocked Aetherytes EXP, item glamours and condition are now persistent and is saved on log out.
|
Unlocks (Actions, Emotes, etc), unlocked Aetherytes, EXP, item glamours and their condition are now persistent and saved on log out.
|
||||||
|
|
||||||
The inn bed is now 99% functional, save for the waking up animation.
|
The inn bed is now 99% functional, but we are still missing the waking up animation. Fun fact: the Dreamfitting feature works completely offline and doesn't seem to contact SqEx servers at all.
|
||||||
|
|
||||||
|
SCREENSHOT
|
||||||
|
|
||||||
|
The Unending Journey is now functional, which means **we can now play most FFXIV cutscenes offline**! Here it is in action:
|
||||||
|
|
||||||
|
VID
|
||||||
|
|
||||||
|
Most Gil shops are now partially implemented, allowing you to buy items. They all seem to share a common Lua script, so now it's just a matter of mapping them. Here is one in New Gridania:
|
||||||
|
|
||||||
|
VID
|
||||||
|
|
||||||
|
Thanks to thedax, the Lobby server now performs the same version and hash checking as retail. You can turn it off with a config option, of course.
|
||||||
|
|
||||||
|
The welcome message displayed on login can now be customized in the config:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
I have begun implementing packet obsfucation which is used on retail. It can obsfucate player names properly, but that's about it for now:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
# Multiplayer
|
# Multiplayer
|
||||||
|
|
||||||
Emotes are now shown from other players, but they do not interrupt yet:
|
Other player's emotes are networked now (they do not interrupt yet):
|
||||||
|
|
||||||
Sheathing and unsheathing weapons are also shown, but the animation does not play yet:
|
VID
|
||||||
|
|
||||||
The various display flags for equipment (like hiding headgear) is now shown to other players, and yourself.
|
Sheathing and unsheathing weapons are now networked, but the animation does not play properly:
|
||||||
|
|
||||||
|
VID
|
||||||
|
|
||||||
|
The various display flags for equipment (e.g. hiding headgear) is now shown to other players, and yourself:
|
||||||
|
|
||||||
|
VID
|
||||||
|
|
||||||
# Commands
|
# Commands
|
||||||
|
|
||||||
You can now reload scripts like `Global.lua` that are loaded on start-up with the new `!reload` command.
|
You can now reload global scripts like `Global.lua` which are only loaded on start-up with the new `!reload` debug command. This makes authoring new events, commands, etc much easier.
|
||||||
|
|
||||||
I added the `!finishevent` command to forcefully tell the client to stop it's current event. This is useful if you got stuck while talking to something.
|
I added the `!finishevent` command to forcefully tell the client to stop it's current event. This is useful if you got stuck while talking to something.
|
||||||
|
|
||||||
thedax added support for the `//gm teri_info` command for listing lots of useful information about your current zone.
|
Thanks to thedax, `//gm teri_info` is now supported and can list useful information about your current zone:
|
||||||
|
|
||||||
I added support for the `//gm gil` command.
|
SCREENSHOT
|
||||||
|
|
||||||
GM commands are now ported to Lua, this will make it easier to add even more GM commands in the future. It also helped consolidate a lot of command implementation details.
|
|
||||||
|
|
||||||
I added the `!item <name>` debug command to give you an item by name, like our `!equip` command.
|
I added the `!item <name>` debug command to give you an item by name, like our `!equip` command.
|
||||||
|
|
||||||
|
I added support for the `//gm gil` command to give yourself gil. Thanks to thedax, you can now remove gil using `//gm collect` (just from yourself, for now.)
|
||||||
|
|
||||||
|
Thanks to thedax, you can now inspect the current player using `!inspect`:
|
||||||
|
|
||||||
|
SCREENSHOT
|
||||||
|
|
||||||
|
I added the `!completeallquests` command, allowing you to use features otherwise unavailable. Like for example, the Toybox:
|
||||||
|
|
||||||
|
SCREENSHOT
|
||||||
|
|
||||||
# Scripting
|
# Scripting
|
||||||
|
|
||||||
I added a generic Aetheryte script, and thedax tirelessly worked to script all of the Aetherytes in the game!
|
|
||||||
|
|
||||||
|
|
||||||
When encountering an unscripted event, it's now shown in chat and the server log:
|
When encountering an unscripted event, it's now shown in chat and the server log:
|
||||||
|
|
||||||
When encountering Lua errors, the server now panics less. This - combined with the `!reload` command - makes scripting even easier than before!
|
SCREENSHOT
|
||||||
|
|
||||||
thedax also implemented various things, most notably:
|
|
||||||
* Toy Chest (not currently functional until we can set unlocked quest bits)
|
|
||||||
* Orchestrion
|
|
||||||
|
|
||||||
It's now possible to send an arbitrary number of parameters for event scenes, which are needed to implement some complex events.
|
It's now possible to send an arbitrary number of parameters for event scenes, which are needed to implement some complex events.
|
||||||
|
|
||||||
|
It's now possible to read the player's inventory in Lua, we are also planning to let you modify it.
|
||||||
|
|
||||||
# Bugfixes
|
# Bugfixes
|
||||||
|
|
||||||
|
When encountering Lua errors, the server should now panic less.
|
||||||
|
|
||||||
Most zones should work again (in terms of exiting zone lines, aetherytes, etc) thanks to better LGB support in Physis.
|
Most zones should work again (in terms of exiting zone lines, aetherytes, etc) thanks to better LGB support in Physis.
|
||||||
|
|
||||||
Action scripts are now executed at the end of it's actual cast time, which makes Teleporting look _a little_ better.
|
Action scripts are now executed at the end of it's actual cast time, which makes Teleporting look _a little_ better.
|
||||||
|
@ -76,19 +108,23 @@ It's no longer possible to connect with an older client, which never worked anyw
|
||||||
|
|
||||||
The correct starting weapon for your selected class is now equipped, instead of it always being a GLA weapon.
|
The correct starting weapon for your selected class is now equipped, instead of it always being a GLA weapon.
|
||||||
|
|
||||||
|
The way the server loads LGBs is more accurate, by fetching the list of LGBs directly from the game files. This doesn't fix anything specifically, though.
|
||||||
|
|
||||||
|
Thanks to thedax, the Lobby server returns more relevant error messages.
|
||||||
|
|
||||||
# Updates
|
# Updates
|
||||||
|
|
||||||
thedax updated Kawari to support 7.25h2.
|
Thanks to thedax, Kawari is updated to support 7.25h2 and 7.25h3. I bet we will see a fourth hotfix before 7.3!
|
||||||
|
|
||||||
# Tooling
|
# Tooling
|
||||||
|
|
||||||
I created Packet Analyzer, which re-uses Kawari's existing and semi-comphrensive packet infrastructure and switches it to "reverse". This allows you to view the contents of Chronofoil captures in a nice and structured fashion:
|
I created Packet Analyzer, which re-uses Kawari's existing and already comphrensive packet parsing to let you view Chronofoil captures:
|
||||||
|
|
||||||
You can try it out at https://analyze.xiv.zone/.
|
SCREENSHOT
|
||||||
|
|
||||||
It's now possible to compile Kawari to WebAssembly. The servers aren't compiled in, but the packet parser can be re-used.
|
You can try it out [on the web](https://analyze.xiv.zone/) now, and the source code is available [here](https://codeberg.org/redstrate/PacketAnalzyer).
|
||||||
|
|
||||||
Thanks to NotNite, grabbing _both_ the static (`.lib`) and dynamic (`.dll`) versions of Oodle is no longer nessecary. The documentation was also updated to reflect this.
|
Thanks to NotNite, grabbing _both_ the static (`.lib`) and dynamic (`.dll`) versions of Oodle on Windows is no longer nessecary! The documentation was also updated to reflect this.
|
||||||
|
|
||||||
# Community
|
# Community
|
||||||
|
|
||||||
|
|
BIN
content/blog/kawari12/scrambler.webp
Normal file
BIN
content/blog/kawari12/scrambler.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
BIN
content/blog/kawari12/welcome.webp
Normal file
BIN
content/blog/kawari12/welcome.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
Loading…
Add table
Reference in a new issue