mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2024-11-24 20:03:45 +01:00
add options for nametagged mobs and range
This commit is contained in:
parent
e5de4bba65
commit
5282a63bcb
@ -102,14 +102,22 @@ local mod_armor = minetest.get_modpath("mcl_armor") ~= nil
|
|||||||
local mod_experience = minetest.get_modpath("mcl_experience") ~= nil
|
local mod_experience = minetest.get_modpath("mcl_experience") ~= nil
|
||||||
|
|
||||||
--Helper function to clear all mobs because /clearobjects removes too much
|
--Helper function to clear all mobs because /clearobjects removes too much
|
||||||
|
local function is_mob(o)
|
||||||
|
return o.type == "ambient" or o.type == "animal" or o.type == "monster" or o.type == "npc"
|
||||||
|
end
|
||||||
minetest.register_chatcommand("clearmobs",{
|
minetest.register_chatcommand("clearmobs",{
|
||||||
privs={maphack=true},
|
privs={maphack=true},
|
||||||
params = "<all>",
|
params = "<all>|<nametagged>|<range>",
|
||||||
description=S("Removes all spawned mobs except nametagged ones. Supply the optional all argument to remove all mobs"),
|
description=S("Removes all spawned mobs except nametagged and tamed ones. all removes all mobs, nametagged only nametagged ones and with the range paramter all mobs in a distance of the current player are removed."),
|
||||||
func=function(n,p)
|
func=function(n,param)
|
||||||
for k,o in pairs(minetest.luaentities) do
|
local p = minetest.get_player_by_name(n)
|
||||||
if o.type == "ambient" or o.type == "animal" or o.type == "monster" or o.type == "npc" then
|
local num=tonumber(param)
|
||||||
if p == "all" or not o.nametag then
|
for _,o in pairs(minetest.luaentities) do
|
||||||
|
if is_mob(o) then
|
||||||
|
if param == "all" or
|
||||||
|
( param == "nametagged" and o.nametag ) or
|
||||||
|
( param == "" and not o.nametag and not o.tamed ) or
|
||||||
|
( num and num > 0 and vector.distance(p:get_pos(),o.object:get_pos()) <= num ) then
|
||||||
o.object:remove()
|
o.object:remove()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user