[Mod]Timber, Spawnpoint, CoalFromwood,CMDS

User avatar
wtfsamcrap
Member
 
Posts: 25
Joined: Mon Dec 09, 2013 21:23

[Mod]Timber, Spawnpoint, CoalFromwood,CMDS

by wtfsamcrap » Mon Dec 23, 2013 22:58

If this does not work it will be 2-3 weeks after a minetest update i will update the mods or you can yourself

check my review (my mic is broken)

The timber mod you cut the tree down (Not with leaves still working on it) and it auto goes to your inventory
Spawn-point use n++ and edit it the cords at top
Coal from wood Use jungle wood or wood
CMDS
the chat cmds
/say <MSG> --Has this
**Console**
User: Message
/tp --Copy of teleport
/sa <the admin> --Tells everyone you are admin
/mese <x,y,z> -- Tell everyone you found mese and put yoor cords after the mese
/setp <password> <user> --New password copy of setpassword
/idpchat --No-name chat
####: MSG



Download site:
wtfsamcrap-biz





Codes[spoiler]
Timber
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
local timber_nodenames={"default:jungletree", "default:papyrus", "default:cactus", "default:tree", "default:leaves", "default:jungleleaves"}
local timber_leaves={"default:leaves", "default:jungleleaves"}
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
        if oldnode.name == timber_nodenames[i] then
            local npos = { x=pos.x, y=pos.y+1, z=pos.z }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_nodenames[i] then
                minetest.node_dig(npos, nnode, digger)
            end
        end
        i = i+1
    end
end)


--
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
       
            local npos = { x=pos.x, y=pos.y-1, z=pos.z }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_leaves[i] then
                minetest.node_dig(npos, nnode, digger)
            end
       
        i = i+1
       
    end
end)
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
       
            local npos = { x=pos.x-1, y=pos.y, z=pos.z }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_leaves[i] then
                minetest.node_dig(npos, nnode, digger)
            end
       
        i = i+1
       
    end
end)
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
       
            local npos = { x=pos.x, y=pos.y, z=pos.z-1 }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_leaves[i] then
                minetest.node_dig(npos, nnode, digger)
            end
       
        i = i+1
       
    end
end)
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
       
            local npos = { x=pos.x, y=pos.y+1, z=pos.z }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_leaves[i] then
                minetest.node_dig(npos, nnode, digger)
            end
       
        i = i+1
       
    end
end)
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
       
            local npos = { x=pos.x+1, y=pos.y, z=pos.z }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_leaves[i] then
                minetest.node_dig(npos, nnode, digger)
            end
       
        i = i+1
       
    end
end)
minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
       
            local npos = { x=pos.x, y=pos.y, z=pos.z+1 }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_leaves[i] then
                minetest.node_dig(npos, nnode, digger)
            end
       
        i = i+1
       
    end
end)
--


minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
        if oldnode.name == timber_nodenames[i] then
            local npos = { x=pos.x, y=pos.y, z=pos.z+1 }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_nodenames[i] then
                minetest.node_dig(npos, nnode, digger)
            end
        end
        i = i+1
    end
end)


minetest.register_on_dignode(function(pos, oldnode, digger)
    local i=1
    while timber_nodenames[i] ~= nil do
        if oldnode.name == timber_nodenames[i] then
            local npos = { x=pos.x+1, y=pos.y, z=pos.z }
            local nnode = minetest.env:get_node(npos)
            if nnode.name == timber_nodenames[i] then
                minetest.node_dig(npos, nnode, digger)
            end
        end
        i = i+1
    end


CMDS
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
--prives

minetest.registered_privileges = {}

function minetest.register_privilege(name, param)
    local function fill_defaults(def)
        if def.give_to_singleplayer == nil then
            def.give_to_singleplayer = true
        end
        if def.description == nil then
            def.description = "(no description)"
        end
    end
    local def = {}
    if type(param) == "table" then
        def = param
    else
        def = {description = param}
    end
    fill_defaults(def)
    minetest.registered_privileges[name] = def
end

minetest.register_privilege("admin", "Can interact with things and modify the world")
minetest.register_privilege("owner", "Can interact with things and modify the world")
--
--

--
minetest.register_chatcommand("tp", {
    params = "<X>,<Y>,<Z> | <to_name> | <name> <X>,<Y>,<Z> | <name> <to_name>",
    description = "teleport to given position",
    privs = {admin=true},
    func = function(name, param)
        -- Returns (pos, true) if found, otherwise (pos, false)
        local function find_free_position_near(pos)
            local tries = {
                {x=1,y=0,z=0},
                {x=-1,y=0,z=0},
                {x=0,y=0,z=1},
                {x=0,y=0,z=-1},
            }
            for _, d in ipairs(tries) do
                local p = {x = pos.x+d.x, y = pos.y+d.y, z = pos.z+d.z}
                local n = minetest.get_node(p)
                if not minetest.registered_nodes[n.name].walkable then
                    return p, true
                end
            end
            return pos, false
        end

        local teleportee = nil
        local p = {}
        p.x, p.y, p.z = string.match(param, "^([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$")
        p.x = tonumber(p.x)
        p.y = tonumber(p.y)
        p.z = tonumber(p.z)
        teleportee = minetest.get_player_by_name(name)
        if teleportee and p.x and p.y and p.z then
            minetest.chat_send_player(name, "Teleporting to ("..p.x..", "..p.y..", "..p.z..")")
            teleportee:setpos(p)
            return
        end
       
        local teleportee = nil
        local p = nil
        local target_name = nil
        target_name = string.match(param, "^([^ ]+)$")
        teleportee = minetest.get_player_by_name(name)
        if target_name then
            local target = minetest.get_player_by_name(target_name)
            if target then
                p = target:getpos()
            end
        end
        if teleportee and p then
            p = find_free_position_near(p)
            minetest.chat_send_player(name, "Teleporting to "..target_name.." at ("..p.x..", "..p.y..", "..p.z..")")
            teleportee:setpos(p)
            return
        end
       
        if minetest.check_player_privs(name, {bring=true}) then
            local teleportee = nil
            local p = {}
            local teleportee_name = nil
            teleportee_name, p.x, p.y, p.z = string.match(param, "^([^ ]+) +([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$")
            p.x = tonumber(p.x)
            p.y = tonumber(p.y)
            p.z = tonumber(p.z)
            if teleportee_name then
                teleportee = minetest.get_player_by_name(teleportee_name)
            end
            if teleportee and p.x and p.y and p.z then
                minetest.chat_send_player(name, "Teleporting "..teleportee_name.." to ("..p.x..", "..p.y..", "..p.z..")")
                teleportee:setpos(p)
                return
            end
           
            local teleportee = nil
            local p = nil
            local teleportee_name = nil
            local target_name = nil
            teleportee_name, target_name = string.match(param, "^([^ ]+) +([^ ]+)$")
            if teleportee_name then
                teleportee = minetest.get_player_by_name(teleportee_name)
            end
            if target_name then
                local target = minetest.get_player_by_name(target_name)
                if target then
                    p = target:getpos()
                end
            end
            if teleportee and p then
                p = find_free_position_near(p)
                minetest.chat_send_player(name, "Teleporting "..teleportee_name.." to "..target_name.." at ("..p.x..", "..p.y..", "..p.z..")")
                teleportee:setpos(p)
                return
            end
        end

        minetest.chat_send_player(name, "Invalid parameters (""..param.."") or player not found (see /help teleport)")
        return
    end,
})

--Next

minetest.register_chatcommand("sa", {
    params = "<player>",
    description = "After sa put the server admin",
    privs = {admin=true},
    func = function(name, param)
        minetest.chat_send_all("**Server** " .. param .. " is a admin")
    end,
})

--Next
minetest.register_chatcommand("mese", {
    params = "<x> <y> <z>",
    description = "After mese add x, y, and z",
    privs = {server=true},
    func = function(name, param)
        minetest.chat_send_all("**Server** " .. name .. " Found mese at " .. param )   
    end,
})
--next
minetest.register_chatcommand("setp", {
    params = "<password> <name>",
    description = "setp <password> <name> ",
    privs = {admin=true},
    func = function(name, param)
        local toname, raw_password = string.match(param, "^([^ ]+) +(.+)$")
        if not toname then
            toname = string.match(param, "^([^ ]+) *$")
            raw_password = nil
        end
        if not toname then
            minetest.chat_send_player(name, "Name field required")
            return
        end
        local actstr = "?"
        if not raw_password then
            minetest.set_player_password(toname, "")
            actstr = "cleared"
        else
            minetest.set_player_password(toname, minetest.get_password_hash(toname, raw_password))
            actstr = "set"
        end
        if toname ~= name then
            minetest.chat_send_player(toname, "Your password is now" ..param)
        end
    end,
})
--next
minetest.register_chatcommand("say", {
    params = "<msg>",
    description = "say <msg>",
    privs = {},
    func = function(name, param)
        minetest.chat_send_all("**Console**  ")   
        minetest.chat_send_all("  "..name..": " .. param )   
    end,
})
--
minetest.register_chatcommand("idpchat", {
    params = "<msg>",
    description = "say <msg>",
    privs = {owner=true},
    func = function(name, param)
        minetest.chat_send_all("#####: " ..param)   
    end,
})
--


[/spoiler]
Last edited by wtfsamcrap on Tue Dec 24, 2013 15:42, edited 1 time in total.
Mods
 

User avatar
Krock
Member
 
Posts: 3598
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker

by Krock » Tue Dec 24, 2013 07:48

Nice mod, that password setting is a good thing for friends-of-me-who-forgot-their-passsword-after-playing-10-hours.

But your timber thingie does only seem to dig 1 node over the current dug node, means if there's a stone and a tree trunk over it: I dig the stone, it digs for me the trunk.
I don't know if that's your target but it's a good idea.
Newest Win32 builds - Find a mod - All my mods
ALL YOUR DONATION ARE BELONG TO PARAMAT (Please support him and Minetest)
New DuckDuckGo !bang: !mtmod <keyword here>
 

User avatar
wtfsamcrap
Member
 
Posts: 25
Joined: Mon Dec 09, 2013 21:23

by wtfsamcrap » Tue Dec 24, 2013 14:18

Well i fixed the timber :D it is slow tho :(
Krock wrote:Nice mod, that password setting is a good thing for friends-of-me-who-forgot-their-passsword-after-playing-10-hours.

But your timber thingie does only seem to dig 1 node over the current dug node, means if there's a stone and a tree trunk over it: I dig the stone, it digs for me the trunk.
I don't know if that's your target but it's a good idea.
Mods
 

User avatar
wtfsamcrap
Member
 
Posts: 25
Joined: Mon Dec 09, 2013 21:23

by wtfsamcrap » Tue Dec 24, 2013 20:08

I made it faster BUT I will now relese it till it is stable(it will not work on some and it sometimes crashes)
Mods
 


Return to WIP Mods

Who is online

Users browsing this forum: No registered users and 9 guests

cron