1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-06-30 11:47:45 +00:00

Rename !unlockaction to !unlock

When learning how to unlock emotes, apparently FFXIV just has one
kind of ID for all kinds of stuff. So I picked a number, stuck it
as the max (this is unconfirmed) and you can now unlock everything.
This commit is contained in:
Joshua Goins 2025-06-22 11:17:11 -04:00
parent a8dd106041
commit fd249a2342
5 changed files with 35 additions and 26 deletions

View file

@ -108,7 +108,7 @@ These special debug commands start with `!` and are custom to Kawari.
* `!spawnmonster`: Spawn a monster for debugging
* `!spawnclone`: Spawn a clone of yourself
* `!classjob <id>`: Changes to another class/job
* `!unlockaction <id>`: Unlock an action, for example: `1` for Return and `4` for Teleport.
* `!unlock <id>`: Unlock an action, emote, etc. for example: `1` for Return and `4` for Teleport.
* `!equip <name>`: Forcefully equip an item, useful for bypassing class/job and other client restrictions. This will *overwrite* any item in that slot!
* `!nudge <distance> <up/down (optional)>`: Teleport forward, back, up or down `distance` yalms. Specifying up or down will move the player up or down instead of forward or back. Examples: `!nudge 5 up` to move up 5 yalms, `!nudge 5` to move forward 5 yalms, `!nudge -5` to move backward 5 yalms.
* `!festival <id1> <id2> <id3> <id4>`: Sets the festival in the current zone. Multiple festivals can be set together to create interesting effects.

View file

@ -213,7 +213,7 @@ registerCommand("setspeed", "commands/debug/SetSpeed.lua")
registerCommand("nudge", "commands/debug/Nudge.lua")
registerCommand("festival", "commands/debug/Festival.lua")
registerCommand("permtest", "commands/debug/PermissionTest.lua")
registerCommand("unlockaction", "commands/debug/UnlockAction.lua")
registerCommand("unlock", "commands/debug/Unlock.lua")
registerCommand("wireframe", "commands/debug/ToggleWireframe.lua")
registerCommand("invis", "commands/debug/ToggleInvisibility.lua")
registerCommand("unlockaetheryte", "commands/debug/UnlockAetheryte.lua")

View file

@ -0,0 +1,30 @@
required_rank = GM_RANK_DEBUG
function onCommand(args, player)
local parts = split(args)
local argc = table.getn(parts)
local sender = "[unlockaction] "
local usage = "\nThis command teaches the user an action, emote, etc.\nUsage: !useaction <id/all>"
if argc < 1 then
player:send_message(sender.."This command requires 1 parameter."..usage)
return
end
if parts[1] == "all" then
for i = 0, 1000, 1 do
player:unlock_action(i)
end
player:send_message(string.format("%s Everything is unlocked!", sender, id))
else
local id = tonumber(parts[1])
if not id then
player:send_message(sender.."Error parsing action id! Make sure the id is an integer."..usage)
return
end
player:unlock_action(id)
player:send_message(string.format("%s Action %s unlocked!", sender, id))
end
end

View file

@ -1,23 +0,0 @@
required_rank = GM_RANK_DEBUG
function onCommand(args, player)
local parts = split(args)
local argc = table.getn(parts)
local sender = "[unlockaction] "
local usage = "\nThis command teaches the user an action.\nUsage: !useaction <id>"
if argc < 1 then
player:send_message(sender.."This command requires 1 parameter."..usage)
return
end
local id = tonumber(parts[1])
if not id then
player:send_message(sender.."Error parsing action id! Make sure the id is an integer."..usage)
return
end
player:unlock_action(id)
player:send_message(string.format("%s Action %s unlocked!", sender, id))
end

View file

@ -63,7 +63,9 @@ pub enum ActorControlCategory {
unlocked: bool,
},
#[brw(magic = 0x29u16)]
ToggleActionUnlock {
ToggleUnlock {
/// Corresponds to an UnlockLink. Could be a spell, action, emote, etc.
// See https://github.com/Haselnussbomber/HaselDebug/blob/main/HaselDebug/Tabs/UnlocksTabs/UnlockLinks/UnlockLinksTable.cs
#[brw(pad_before = 2)] //padding
id: u32,
#[br(map = read_bool_from::<u32>)]