61 lines
2.3 KiB
Lua
61 lines
2.3 KiB
Lua
|
|
--register the infinite ammo privelage.
|
|
minetest.register_privilege(Guns4d.config.infinite_ammo_priv, {
|
|
description = "allows player to have infinite ammo.",
|
|
give_to_singleplayer = false,
|
|
on_grant = function(name, granter_name)
|
|
local handler = Guns4d.players[name]
|
|
handler.infinite_ammo = true
|
|
minetest.chat_send_player(name, "infinite ammo enabled by "..(granter_name or "unknown"))
|
|
if handler.gun then
|
|
handler.gun:update_image_and_text_meta()
|
|
end
|
|
end,
|
|
on_revoke = function(name, revoker_name)
|
|
local handler = Guns4d.players[name]
|
|
handler.infinite_ammo = false
|
|
minetest.chat_send_player(name, "infinite ammo disabled by "..(revoker_name or "unknown"))
|
|
if handler.gun then
|
|
handler.gun:update_image_and_text_meta()
|
|
end
|
|
end,
|
|
})
|
|
minetest.register_chatcommand("ammoinf", {
|
|
parameters = "player",
|
|
description = "quick toggle infinite ammo",
|
|
privs = {privs=true},
|
|
func = function(caller, arg)
|
|
local trgt
|
|
local args = string.split(arg, " ")
|
|
local set_arg
|
|
if #args > 1 then
|
|
trgt = args[1]
|
|
set_arg = args[2]
|
|
else
|
|
set_arg = args[1]
|
|
trgt = caller
|
|
end
|
|
local handler = Guns4d.players[trgt]
|
|
local set_to
|
|
if set_arg then
|
|
if set_arg == "true" then
|
|
set_to = true
|
|
elseif set_arg ~= "false" then --if it's false we leave it as nil
|
|
minetest.chat_send_player(caller, "cannot toggle ammoinf, invalid value:"..set_arg)
|
|
return
|
|
end
|
|
else
|
|
set_to = not handler.infinite_ammo --if it's false set it to nil, otherwise set it to true.
|
|
if set_to == false then set_to = nil end
|
|
end
|
|
local privs = minetest.get_player_privs(trgt)
|
|
privs[Guns4d.config.infinite_ammo_priv] = set_to
|
|
minetest.set_player_privs(trgt, privs)
|
|
minetest.chat_send_player(caller, "infinite ammo "..((set_to and "granted to") or "revoked from") .." user '"..trgt.."'")
|
|
handler.infinite_ammo = set_to or false
|
|
if handler.gun then
|
|
handler.gun:update_image_and_text_meta()
|
|
handler.player:set_wielded_item(handler.gun.itemstack)
|
|
end
|
|
end
|
|
}) |