resize_mod = {} -- =================================================================== minetest.register_privilege ("setmysize", { description = "Allows players to set their own size.", }) -- =================================================================== function resize_mod.restore (player) local properties = player:get_properties() local prop = { visual_size = {x=1,y=1,z=1}, eye_height = 1.4700000286102, collisionbox = {-0.30000001192093, 0, -0.30000001192093, 0.30000001192093, 1.7000000476837, 0.30000001192093}, selectionbox = {-0.30000001192093, 0, -0.30000001192093, 0.30000001192093, 1.7000000476837, 0.30000001192093}, } player:set_properties(prop) player:set_physics_override({jump=1}) end -- =================================================================== function resize_mod.set_size (player, size) local eye_height = 1.4700000286102*size local prop = { visual_size = {x = size, y = size, z = size}, eye_height = eye_height, collisionbox = {-0.30000001192093*size, 0*size, -0.30000001192093*size, 0.30000001192093*size, 1.7000000476837*size, 0.30000001192093*size}, selectionbox = {-0.30000001192093*size, 0*size, -0.30000001192093*size, 0.30000001192093*size, 1.7000000476837*size, 0.30000001192093*size}, } player:set_properties(prop) player:set_physics_override({jump=size}) end -- =================================================================== minetest.register_chatcommand ("fixmysize", { params = "", description = "Restore own size", privs = {setmysize=true}, func = function(name) local player = minetest.get_player_by_name(name) resize_mod.restore(player) return true, "Size set to normal." end }) -- =================================================================== local cmd_resizeme = { params = "" , description = "Set own size: verysmall, small, normal, big, verybig" , privs = { setmysize=true } , func = function (name, text) if text == "verysmall" then text = "0.25" end if text == "very_small" then text = "0.25" end if text == "very-small" then text = "0.25" end if text == "small" then text = "0.50" end if text == "normal" then text = "1.00" end if text == "big" then text = "2.00" end if text == "verybig" then text = "4.00" end if text == "very_big" then text = "4.00" end if text == "very-big" then text = "4.00" end if tonumber (text) then local x = tonumber (text) if x < 0.25 then x = 0.25 end if x > 4.00 then x = 4.00 end local player = minetest.get_player_by_name (name) resize_mod.set_size (player, x) return true, "Size set to " .. text end return false, "'"..text.."' is not a valid number." end , } minetest.register_chatcommand ("resizeme" , cmd_resizeme) minetest.register_chatcommand ("setmysize" , cmd_resizeme) -- =================================================================== local cmd_resizeplayer = { params = " " , description = "Set a player's size: 0.25 to 4.00" , privs = { basic_privs=true } , func = function (name, params) local plname, text = params:match ("(%S+)%s+(.+)") if not (plname and text) then return false, "Usage: /resizeplayer " end if text == "verysmall" then text = "0.25" end if text == "very_small" then text = "0.25" end if text == "very-small" then text = "0.25" end if text == "small" then text = "0.50" end if text == "normal" then text = "1.00" end if text == "big" then text = "2.00" end if text == "verybig" then text = "4.00" end if text == "very_big" then text = "4.00" end if text == "very-big" then text = "4.00" end if tonumber (text) then local x = tonumber (text) if x < 0.25 then x = 0.25 end if x > 4.00 then x = 4.00 end local player = minetest.get_player_by_name (plname) if player then resize_mod.set_size (player, x) return true, "Size set to " .. text else return false, "Player is not in game." end end return false, "'"..text.."' is not a valid number." end , } minetest.register_chatcommand ("resizeplayer" , cmd_resizeplayer) minetest.register_chatcommand ("setplayersize" , cmd_resizeplayer) -- =================================================================== -- End of file.