1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-06-30 11:47:45 +00:00
kawari/resources/scripts/commands/debug/SetSpeed.lua
thedax 61616df842
Reimplement several commands in Lua (#37)
* Reimplement !unlockaction in Lua
Rebased on upstream master

* Unlockaction: display the action id that was unlocked

* Reimplement GM speed in Lua

* Fix warnings and errors

* Run cargo fmt

* Reimplement GM wireframe in Lua

* Reimplement GM invis command, with a caveat
It can't toggle the invis state yet, and I'm not sure where to update it.

* Lua invis: add the gm_invisible toggle, but it still doesn't revert back to false...

* Reimplement GM aetheryte in Lua, with a caveat
It's seemingly not working right now though: it doesn't add any new aetherytes to the teleport menu.
But I can't get the command `//gm aetheryte on X` to do it either, so it's possible Kawari isn't responding correctly?
Either way this needs further testing.

* Lua invis: add the forgotten Lua file

* Reimplement GM teri in Lua
Also add a TODO for UnlockAetheryte

* Make comment in lua.rs more useful

* Run cargo fmt again

* Teri: range check the territory ID

* Update USAGE.md to reflect the new commands
Rebased on upstream master

* Clarify unlockaetheryte USAGE and in-script usage

* Refactor UnlockAetheryte.lua, and make ToggleInvisibility actually work properly.
I opted to create a Task for this, because sticking it in kawari-world.rs felt like a hack to me.

* Run cargo fmt for hopefully the last time today

* Move lua.ra:toggle_invisibility down with the other queued tasks

* Fix spaces in USAGE.md, remove stray rebase message
2025-06-21 13:30:52 -04:00

26 lines
955 B
Lua

required_rank = GM_RANK_DEBUG
function onCommand(args, player)
local parts = split(args)
local argc = table.getn(parts)
local sender = "[setspeed] "
local usage = "\nThis command sets the user's speed to a desired multiplier.\nUsage: !setspeed <multiplier>"
local SPEED_MAX = 10 -- Arbitrary, but it's more or less unplayable even at this amount
local speed_multiplier = tonumber(parts[1])
if argc == 1 and not speed_multiplier then
player:send_message(sender.."Error parsing speed multiplier! Make sure the multiplier is an integer."..usage)
return
elseif argc == 0 then
speed_multiplier = 1
end
if speed_multiplier <= 0 then
speed_multiplier = 1
elseif speed_multiplier > SPEED_MAX then
speed_multiplier = SPEED_MAX
end
player:set_speed(speed_multiplier)
player:send_message(string.format("%sSpeed multiplier set to %s.", sender, speed_multiplier))
end