0005
37
azarmor/init.lua
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
armor:register_armor("zarmor:hat_head", {
|
||||||
|
description = "Hat",
|
||||||
|
inventory_image = "inv_hat.png",
|
||||||
|
groups = {armor_head=1, armor_heal=6, armor_use=300,
|
||||||
|
physics_speed=-0.02, physics_gravity=0.02},
|
||||||
|
armor_groups = {fleshy=10},
|
||||||
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
|
})
|
||||||
|
|
||||||
|
armor:register_armor("zarmor:Jacket_torso", {
|
||||||
|
description = "Jacket",
|
||||||
|
inventory_image = "inv_Jacket.png",
|
||||||
|
groups = {armor_torso=1, armor_heal=6, armor_use=300,
|
||||||
|
physics_speed=-0.05, physics_gravity=0.05},
|
||||||
|
armor_groups = {fleshy=15},
|
||||||
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
armor:register_armor("zarmor:jeanspants_legs", {
|
||||||
|
description = "jeans pants",
|
||||||
|
inventory_image = "inv_jeanspants.png",
|
||||||
|
groups = {armor_legs=1, armor_heal=6, armor_use=300,
|
||||||
|
physics_speed=-0.04, physics_gravity=0.04},
|
||||||
|
armor_groups = {fleshy=15},
|
||||||
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
armor:register_armor("zarmor:tennis_feet", {
|
||||||
|
description = "Tennis",
|
||||||
|
inventory_image = "inv_tennis.png",
|
||||||
|
groups = {armor_feet=1, armor_heal=6, armor_use=300,
|
||||||
|
physics_speed=-0.02, physics_gravity=0.02},
|
||||||
|
armor_groups = {fleshy=10},
|
||||||
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
|
})
|
2
azarmor/mod.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name = zarmor
|
||||||
|
depends = default , 3d_armor
|
BIN
azarmor/textures/inv_Jacket.png
Normal file
After Width: | Height: | Size: 675 B |
BIN
azarmor/textures/inv_hat.png
Normal file
After Width: | Height: | Size: 623 B |
BIN
azarmor/textures/inv_jeanspants.png
Normal file
After Width: | Height: | Size: 615 B |
BIN
azarmor/textures/inv_tennis.png
Normal file
After Width: | Height: | Size: 646 B |
BIN
azarmor/textures/zarmor_Jacket_torso.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
azarmor/textures/zarmor_Jacket_torso_preview.png
Normal file
After Width: | Height: | Size: 989 B |
BIN
azarmor/textures/zarmor_hat_head.png
Normal file
After Width: | Height: | Size: 890 B |
BIN
azarmor/textures/zarmor_hat_head_preview.png
Normal file
After Width: | Height: | Size: 726 B |
BIN
azarmor/textures/zarmor_jeanspants_legs.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
azarmor/textures/zarmor_jeanspants_legs_preview.png
Normal file
After Width: | Height: | Size: 713 B |
BIN
azarmor/textures/zarmor_tennis_feet.png
Normal file
After Width: | Height: | Size: 728 B |
BIN
azarmor/textures/zarmor_tennis_feet_preview.png
Normal file
After Width: | Height: | Size: 714 B |
277
changex/init.lua
@ -21,5 +21,282 @@ walkable = false,
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- DOORS SOUND : ===============================================================
|
||||||
|
-- sounds door : https://freesound.org/people/utsuru/sounds/183450/ ( by:utsuru)
|
||||||
|
minetest.override_item ("doors:door_wood_a",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_wood_b",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_wood_c",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_wood_d",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
-- GLASS
|
||||||
|
minetest.override_item ("default:glass",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_glass", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- DOOR GLASS
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_glass_a",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_glass", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_glass_b",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_glass", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_glass_c",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_glass", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:door_glass_d",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_glass", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- SUPORTE A OUTRAS DOORS : ==========================================================
|
||||||
|
|
||||||
|
if minetest.get_modpath("moretrapdoors") then
|
||||||
|
|
||||||
|
minetest.override_item ("doors:pine_door_a",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:pine_door_b",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:pine_door_c",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:pine_door_d",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
-- aspen
|
||||||
|
minetest.override_item ("doors:aspen_doors_a",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.override_item ("doors:aspen_doors_b",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:aspen_doors_c",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:aspen_doors_d",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- acacia
|
||||||
|
minetest.override_item ("doors:acacia_door_a",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:acacia_door_b",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:acacia_door_c",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:acacia_door_d",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Jungle
|
||||||
|
minetest.override_item ("doors:jungle_door_a",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:jungle_door_b",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:jungle_door_c",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item ("doors:jungle_door_d",{
|
||||||
|
on_destruct = function(pos)
|
||||||
|
minetest.sound_play("crack_door", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 5,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
end
|
@ -1,2 +1,3 @@
|
|||||||
name = changex
|
name = changex
|
||||||
depends = default
|
depends = default
|
||||||
|
optional_depends = doors ,moretrapdoors
|
||||||
|
BIN
changex/sounds/crack_door.ogg
Normal file
BIN
changex/sounds/crack_glass.ogg
Normal file
150
deco/init.lua
@ -2,7 +2,7 @@ minetest.register_node("deco:stopsign", {
|
|||||||
description = "stop sign",
|
description = "stop sign",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "stopsign.obj",
|
mesh = "stopsign.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
--wield_image = "stop_sign.png",
|
--wield_image = "stop_sign.png",
|
||||||
tiles = {"stop_sign.png"},
|
tiles = {"stop_sign.png"},
|
||||||
@ -46,7 +46,7 @@ minetest.register_node("deco:trashcan", {
|
|||||||
description = "trashcan",
|
description = "trashcan",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "trashcan.obj",
|
mesh = "trashcan.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
wield_image = "trashcan.png",
|
wield_image = "trashcan.png",
|
||||||
tiles = {"trashcan.png"},
|
tiles = {"trashcan.png"},
|
||||||
@ -99,7 +99,7 @@ minetest.register_node("deco:vendingmachine", {
|
|||||||
description = "Vending machine",
|
description = "Vending machine",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "vending_machine.obj",
|
mesh = "vending_machine.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
--wield_image = "monitor.png",
|
--wield_image = "monitor.png",
|
||||||
tiles = {"vending_machine.png"},
|
tiles = {"vending_machine.png"},
|
||||||
@ -124,6 +124,10 @@ minetest.register_node("deco:vendingmachine", {
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, 1.4, 0.5},
|
fixed = {-0.5, -0.5, -0.5, 0.5, 1.4, 0.5},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
||||||
|
minetest.chat_send_player(player:get_player_name(), "This machine is empty!")
|
||||||
|
end,
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -141,11 +145,12 @@ minetest.register_craft({ ------ CRaFT
|
|||||||
|
|
||||||
|
|
||||||
---- RADIO :
|
---- RADIO :
|
||||||
|
--- Sound : https://freesound.org/people/arialfa07/sounds/516618/
|
||||||
minetest.register_node("deco:radio", {
|
minetest.register_node("deco:radio", {
|
||||||
description = "Radio",
|
description = "Radio",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "radio.obj",
|
mesh = "radio.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"radio.png"},
|
tiles = {"radio.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -168,6 +173,15 @@ minetest.register_node("deco:radio", {
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.2, 0.3},
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.2, 0.3},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
||||||
|
-- Play a sound to the player at the node position
|
||||||
|
minetest.sound_play("radioo", {
|
||||||
|
pos = pos,
|
||||||
|
gain = 1.0,
|
||||||
|
max_hear_distance = 10,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -189,7 +203,7 @@ minetest.register_node("deco:table", {
|
|||||||
description = "Table",
|
description = "Table",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "table.obj",
|
mesh = "table.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"table.png"},
|
tiles = {"table.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -233,7 +247,7 @@ minetest.register_node("deco:computer", {
|
|||||||
description = "Computer",
|
description = "Computer",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "computer.obj",
|
mesh = "computer.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"computerr.png"},
|
tiles = {"computerr.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -249,7 +263,7 @@ minetest.register_node("deco:computer", {
|
|||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
-- esqueda,altura,tras..,direita ,negativo aumenta para baixo, positivo aumenta para cima
|
-- esqueda,altura,tras..,direita ,negativo aumenta para baixo, positivo aumenta para cima
|
||||||
fixed = {-0.4, -0.5, -0.4, 0.4, 0.1, 0.4},
|
fixed = {-0.4, -0.5, -0.001, 0.4, 0.1, 0.15},
|
||||||
},
|
},
|
||||||
|
|
||||||
node_box = {
|
node_box = {
|
||||||
@ -257,6 +271,10 @@ minetest.register_node("deco:computer", {
|
|||||||
fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
|
fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
||||||
|
local formspec = "size[8,8;]image[-0.9,-0.3;12,11;pc.png]"
|
||||||
|
minetest.show_formspec(player:get_player_name(), "mymod:img_formspec", formspec) -- falta a imagem
|
||||||
|
end
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -277,7 +295,7 @@ minetest.register_node("deco:armchair", {
|
|||||||
description = "Armchair",
|
description = "Armchair",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "armchair.obj",
|
mesh = "armchair.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"armchair.png"},
|
tiles = {"armchair.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -300,7 +318,37 @@ minetest.register_node("deco:armchair", {
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.4, -0.5, -0.4, 0.4, -0.1, 0.4},
|
fixed = {-0.4, -0.5, -0.4, 0.4, -0.1, 0.4},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
--[[
|
||||||
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||||
|
|
||||||
|
for _, player in ipairs(minetest.get_connected_players()) do
|
||||||
|
minetest.chat_send_player(player:get_player_name(), "punch the armchair to get up!")
|
||||||
|
end
|
||||||
|
|
||||||
|
clicker:set_physics_override({
|
||||||
|
gravity = 0,
|
||||||
|
jump = 0,
|
||||||
|
speed = 0,
|
||||||
|
})
|
||||||
|
clicker:set_eye_offset({x = 0, y = -3, z = 0}, {x = 0, y = 0, z = 0})
|
||||||
|
clicker:set_animation({x=81,y=160}, 0, 0)
|
||||||
|
minetest.after(0.1, function()
|
||||||
|
clicker:set_pos({x=pos.x, y=pos.y-0.5, z=pos.z})
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_punch = function(pos, node, puncher)
|
||||||
|
puncher:set_physics_override({
|
||||||
|
gravity = 1,
|
||||||
|
jump = 1,
|
||||||
|
speed = 1,
|
||||||
|
})
|
||||||
|
puncher:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
|
||||||
|
puncher:set_animation({x=1,y=80}, 0, 0)
|
||||||
|
end,
|
||||||
|
|
||||||
|
]]
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -320,7 +368,7 @@ minetest.register_node("deco:shelving", {
|
|||||||
description = "Shelving",
|
description = "Shelving",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "shelving.obj",
|
mesh = "shelving.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"shalving.png"},
|
tiles = {"shalving.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -364,7 +412,7 @@ minetest.register_node("deco:medicinebox", {
|
|||||||
description = "Medicine Box",
|
description = "Medicine Box",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "medicine_box.obj",
|
mesh = "medicine_box.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"medicine_box.png"},
|
tiles = {"medicine_box.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -415,7 +463,7 @@ minetest.register_node("deco:trafficcone", {
|
|||||||
description = "Traffic Cone",
|
description = "Traffic Cone",
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "traffic_cone.obj",
|
mesh = "traffic_cone.obj",
|
||||||
isual_size = {x=1, y=1},
|
--visual_size = {x=1, y=1},
|
||||||
--inventory_image = "",
|
--inventory_image = "",
|
||||||
tiles = {"traffic_cone.png"},
|
tiles = {"traffic_cone.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -575,6 +623,7 @@ minetest.register_node("deco:cardboardbox", {
|
|||||||
|
|
||||||
-- Foods:
|
-- Foods:
|
||||||
|
|
||||||
|
--[[
|
||||||
{
|
{
|
||||||
items = {'foodx:canned_beans'},
|
items = {'foodx:canned_beans'},
|
||||||
rarity = 2,
|
rarity = 2,
|
||||||
@ -584,7 +633,7 @@ minetest.register_node("deco:cardboardbox", {
|
|||||||
items = {'foodx:canned_tomato'},
|
items = {'foodx:canned_tomato'},
|
||||||
rarity = 1,
|
rarity = 1,
|
||||||
},
|
},
|
||||||
|
]]
|
||||||
|
|
||||||
-- Bullets :
|
-- Bullets :
|
||||||
|
|
||||||
@ -770,3 +819,78 @@ minetest.register_craft({ ------ CRaFT
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---- BEDS :
|
||||||
|
minetest.register_node("deco:dirtybeds", {
|
||||||
|
description = "Dirty beds",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "bedx.obj",
|
||||||
|
--visual_size = {x=1, y=1},
|
||||||
|
--inventory_image = "",
|
||||||
|
tiles = {"bedx.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
--on_place = minetest.rotate_node,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = true,
|
||||||
|
floodable = false,
|
||||||
|
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||||
|
--drop = " ",
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
-- esqueda,altura,tras..,direita ,negativo aumenta para baixo, positivo aumenta para cima
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.01, 1.5},
|
||||||
|
},
|
||||||
|
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.01, 1.5},
|
||||||
|
},
|
||||||
|
|
||||||
|
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
||||||
|
|
||||||
|
minetest.chat_send_player(player:get_player_name(), "That bed is contaminated, you can't sleep in it!")
|
||||||
|
|
||||||
|
end,
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---- VASES :
|
||||||
|
minetest.register_node("deco:vases", {
|
||||||
|
description = "Vases",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "vases.obj",
|
||||||
|
--visual_size = {x=1, y=1},
|
||||||
|
--inventory_image = "",
|
||||||
|
tiles = {"vases.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
--on_place = minetest.rotate_node,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = true,
|
||||||
|
floodable = false,
|
||||||
|
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||||
|
--drop = " ",
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
-- esqueda,altura,tras..,direita ,negativo aumenta para baixo, positivo aumenta para cima
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
})
|
@ -1,2 +1,2 @@
|
|||||||
name = deco
|
name = deco
|
||||||
depends = default , foodx , rangedweapons
|
depends = default , foodx , rangedweapons , player_api
|
||||||
|
4
deco/models/bedx.mtl
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Made in Blockbench 4.7.1
|
||||||
|
newmtl m_a7718c50-5473-416a-9c73-58e66dc4c77a
|
||||||
|
map_Kd bedx.png
|
||||||
|
newmtl none
|
49
deco/models/bedx.obj
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Made in Blockbench 4.7.1
|
||||||
|
mtllib bedx.mtl
|
||||||
|
|
||||||
|
o cube
|
||||||
|
v 0.5 0 1.5
|
||||||
|
v 0.5 0 -0.5
|
||||||
|
v 0.5 -0.5 1.5
|
||||||
|
v 0.5 -0.5 -0.5
|
||||||
|
v -0.5 0 -0.5
|
||||||
|
v -0.5 0 1.5
|
||||||
|
v -0.5 -0.5 -0.5
|
||||||
|
v -0.5 -0.5 1.5
|
||||||
|
vt 0.5 0.875
|
||||||
|
vt 0.75 0.875
|
||||||
|
vt 0.75 0.75
|
||||||
|
vt 0.5 0.75
|
||||||
|
vt 0 0.5
|
||||||
|
vt 0.5 0.5
|
||||||
|
vt 0.5 0.375
|
||||||
|
vt 0 0.375
|
||||||
|
vt 0.5 0.75
|
||||||
|
vt 0.75 0.75
|
||||||
|
vt 0.75 0.625
|
||||||
|
vt 0.5 0.625
|
||||||
|
vt 0.5 1
|
||||||
|
vt 1 1
|
||||||
|
vt 1 0.875
|
||||||
|
vt 0.5 0.875
|
||||||
|
vt 0.25 0.5
|
||||||
|
vt 0 0.5
|
||||||
|
vt 0 1
|
||||||
|
vt 0.25 1
|
||||||
|
vt 0.5 1
|
||||||
|
vt 0.25 1
|
||||||
|
vt 0.25 0.5
|
||||||
|
vt 0.5 0.5
|
||||||
|
vn 0 0 -1
|
||||||
|
vn 1 0 0
|
||||||
|
vn 0 0 1
|
||||||
|
vn -1 0 0
|
||||||
|
vn 0 1 0
|
||||||
|
vn 0 -1 0
|
||||||
|
usemtl m_a7718c50-5473-416a-9c73-58e66dc4c77a
|
||||||
|
f 4/4/1 7/3/1 5/2/1 2/1/1
|
||||||
|
f 3/8/2 4/7/2 2/6/2 1/5/2
|
||||||
|
f 8/12/3 3/11/3 1/10/3 6/9/3
|
||||||
|
f 7/16/4 8/15/4 6/14/4 5/13/4
|
||||||
|
f 6/20/5 1/19/5 2/18/5 5/17/5
|
||||||
|
f 7/24/6 4/23/6 3/22/6 8/21/6
|
1
deco/models/vases.bbmodel
Normal file
4
deco/models/vases.mtl
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Made in Blockbench 4.7.1
|
||||||
|
newmtl m_37b0ccb5-1e4f-0e00-f6e0-b5c731fddc79
|
||||||
|
map_Kd vases.png
|
||||||
|
newmtl none
|
187
deco/models/vases.obj
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
# Made in Blockbench 4.7.1
|
||||||
|
mtllib vases.mtl
|
||||||
|
|
||||||
|
o cube
|
||||||
|
v 0.375 0.3125 0.4375
|
||||||
|
v 0.375 0.3125 -0.4375
|
||||||
|
v 0.375 -0.5 0.4375
|
||||||
|
v 0.375 -0.5 -0.4375
|
||||||
|
v -0.4375 0.3125 -0.4375
|
||||||
|
v -0.4375 0.3125 0.4375
|
||||||
|
v -0.4375 -0.5 -0.4375
|
||||||
|
v -0.4375 -0.5 0.4375
|
||||||
|
vt 0 0.5
|
||||||
|
vt 0.203125 0.5
|
||||||
|
vt 0.203125 0.296875
|
||||||
|
vt 0 0.296875
|
||||||
|
vt 0.25 1
|
||||||
|
vt 0.46875 1
|
||||||
|
vt 0.46875 0.796875
|
||||||
|
vt 0.25 0.796875
|
||||||
|
vt 0.203125 0.375
|
||||||
|
vt 0.40625 0.375
|
||||||
|
vt 0.40625 0.171875
|
||||||
|
vt 0.203125 0.171875
|
||||||
|
vt 0.25 0.796875
|
||||||
|
vt 0.46875 0.796875
|
||||||
|
vt 0.46875 0.59375
|
||||||
|
vt 0.25 0.59375
|
||||||
|
vt 0.453125 0.375
|
||||||
|
vt 0.25 0.375
|
||||||
|
vt 0.25 0.59375
|
||||||
|
vt 0.453125 0.59375
|
||||||
|
vt 0.65625 0.59375
|
||||||
|
vt 0.453125 0.59375
|
||||||
|
vt 0.453125 0.375
|
||||||
|
vt 0.65625 0.375
|
||||||
|
vn 0 0 -1
|
||||||
|
vn 1 0 0
|
||||||
|
vn 0 0 1
|
||||||
|
vn -1 0 0
|
||||||
|
vn 0 1 0
|
||||||
|
vn 0 -1 0
|
||||||
|
usemtl m_37b0ccb5-1e4f-0e00-f6e0-b5c731fddc79
|
||||||
|
f 4/4/1 7/3/1 5/2/1 2/1/1
|
||||||
|
f 3/8/2 4/7/2 2/6/2 1/5/2
|
||||||
|
f 8/12/3 3/11/3 1/10/3 6/9/3
|
||||||
|
f 7/16/4 8/15/4 6/14/4 5/13/4
|
||||||
|
f 6/20/5 1/19/5 2/18/5 5/17/5
|
||||||
|
f 7/24/6 4/23/6 3/22/6 8/21/6
|
||||||
|
o cube
|
||||||
|
v 0.4375 0.5 0.5
|
||||||
|
v 0.4375 0.5 -0.5
|
||||||
|
v 0.4375 0.25 0.5
|
||||||
|
v 0.4375 0.25 -0.5
|
||||||
|
v -0.5 0.5 -0.5
|
||||||
|
v -0.5 0.5 0.5
|
||||||
|
v -0.5 0.25 -0.5
|
||||||
|
v -0.5 0.25 0.5
|
||||||
|
vt 0.40625 0.375
|
||||||
|
vt 0.65625 0.375
|
||||||
|
vt 0.65625 0.3125
|
||||||
|
vt 0.40625 0.3125
|
||||||
|
vt 0.65625 0.59375
|
||||||
|
vt 0.90625 0.59375
|
||||||
|
vt 0.90625 0.53125
|
||||||
|
vt 0.65625 0.53125
|
||||||
|
vt 0.65625 0.53125
|
||||||
|
vt 0.90625 0.53125
|
||||||
|
vt 0.90625 0.46875
|
||||||
|
vt 0.65625 0.46875
|
||||||
|
vt 0.65625 0.46875
|
||||||
|
vt 0.90625 0.46875
|
||||||
|
vt 0.90625 0.40625
|
||||||
|
vt 0.65625 0.40625
|
||||||
|
vt 0.25 0.75
|
||||||
|
vt 0 0.75
|
||||||
|
vt 0 1
|
||||||
|
vt 0.25 1
|
||||||
|
vt 0.25 0.75
|
||||||
|
vt 0 0.75
|
||||||
|
vt 0 0.5
|
||||||
|
vt 0.25 0.5
|
||||||
|
vn 0 0 -1
|
||||||
|
vn 1 0 0
|
||||||
|
vn 0 0 1
|
||||||
|
vn -1 0 0
|
||||||
|
vn 0 1 0
|
||||||
|
vn 0 -1 0
|
||||||
|
usemtl m_37b0ccb5-1e4f-0e00-f6e0-b5c731fddc79
|
||||||
|
f 12/28/7 15/27/7 13/26/7 10/25/7
|
||||||
|
f 11/32/8 12/31/8 10/30/8 9/29/8
|
||||||
|
f 16/36/9 11/35/9 9/34/9 14/33/9
|
||||||
|
f 15/40/10 16/39/10 14/38/10 13/37/10
|
||||||
|
f 14/44/11 9/43/11 10/42/11 13/41/11
|
||||||
|
f 15/48/12 12/47/12 11/46/12 16/45/12
|
||||||
|
o cube
|
||||||
|
v 0.5625 1.875 0
|
||||||
|
v 0.5625 1.875 0
|
||||||
|
v 0.5625 0.5 0
|
||||||
|
v 0.5625 0.5 0
|
||||||
|
v -0.625 1.875 0
|
||||||
|
v -0.625 1.875 0
|
||||||
|
v -0.625 0.5 0
|
||||||
|
v -0.625 0.5 0
|
||||||
|
vt 0.46875 0.796875
|
||||||
|
vt 0.671875 0.796875
|
||||||
|
vt 0.671875 0.59375
|
||||||
|
vt 0.46875 0.59375
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0.671875 0.796875
|
||||||
|
vt 0.46875 0.796875
|
||||||
|
vt 0.46875 0.59375
|
||||||
|
vt 0.671875 0.59375
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0.203125 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0.203125 1
|
||||||
|
vt 0.203125 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0.203125 1
|
||||||
|
vn 0 0 -1
|
||||||
|
vn 1 0 0
|
||||||
|
vn 0 0 1
|
||||||
|
vn -1 0 0
|
||||||
|
vn 0 1 0
|
||||||
|
vn 0 -1 0
|
||||||
|
usemtl m_37b0ccb5-1e4f-0e00-f6e0-b5c731fddc79
|
||||||
|
f 20/52/13 23/51/13 21/50/13 18/49/13
|
||||||
|
f 19/56/14 20/55/14 18/54/14 17/53/14
|
||||||
|
f 24/60/15 19/59/15 17/58/15 22/57/15
|
||||||
|
f 23/64/16 24/63/16 22/62/16 21/61/16
|
||||||
|
f 22/68/17 17/67/17 18/66/17 21/65/17
|
||||||
|
f 23/72/18 20/71/18 19/70/18 24/69/18
|
||||||
|
o cube
|
||||||
|
v 5.983367168393983e-8 1.875 0.5624999999999978
|
||||||
|
v 5.983367168393983e-8 1.875 0.5624999999999978
|
||||||
|
v 5.179692696977156e-8 0.4999999999999998 0.5624999999999978
|
||||||
|
v 5.179692696977156e-8 0.4999999999999998 0.5624999999999978
|
||||||
|
v -4.334577413667162e-8 1.875 -0.6249999999999977
|
||||||
|
v -4.334577413667162e-8 1.875 -0.6249999999999977
|
||||||
|
v -5.1382518850839887e-8 0.5000000000000004 -0.6249999999999977
|
||||||
|
v -5.1382518850839887e-8 0.5000000000000004 -0.6249999999999977
|
||||||
|
vt 0.46875 0.796875
|
||||||
|
vt 0.671875 0.796875
|
||||||
|
vt 0.671875 0.59375
|
||||||
|
vt 0.46875 0.59375
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0.671875 0.796875
|
||||||
|
vt 0.46875 0.796875
|
||||||
|
vt 0.46875 0.59375
|
||||||
|
vt 0.671875 0.59375
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0 0.796875
|
||||||
|
vt 0.203125 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0.203125 1
|
||||||
|
vt 0.203125 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0 1
|
||||||
|
vt 0.203125 1
|
||||||
|
vn 0.9999999999999962 -5.844905260405698e-9 -8.68879543869383e-8
|
||||||
|
vn 8.68879543869383e-8 -5.07851861662108e-16 0.9999999999999962
|
||||||
|
vn -0.9999999999999962 5.844905260405698e-9 8.68879543869383e-8
|
||||||
|
vn -8.68879543869383e-8 5.07851861662108e-16 -0.9999999999999962
|
||||||
|
vn 5.8449052604057195e-9 1 -8.493418847481753e-26
|
||||||
|
vn -5.8449052604057195e-9 -1 8.493418847481753e-26
|
||||||
|
usemtl m_37b0ccb5-1e4f-0e00-f6e0-b5c731fddc79
|
||||||
|
f 28/76/19 31/75/19 29/74/19 26/73/19
|
||||||
|
f 27/80/20 28/79/20 26/78/20 25/77/20
|
||||||
|
f 32/84/21 27/83/21 25/82/21 30/81/21
|
||||||
|
f 31/88/22 32/87/22 30/86/22 29/85/22
|
||||||
|
f 30/92/23 25/91/23 26/90/23 29/89/23
|
||||||
|
f 31/96/24 28/95/24 27/94/24 32/93/24
|
BIN
deco/sounds/radioo.ogg
Normal file
BIN
deco/textures/bedx.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
deco/textures/pc.png
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
deco/textures/pc.png~
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
deco/textures/vases.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
local climb_node = { "default:ladder_wood" ,"default:ladder_steel"}
|
local climb_node = { "default:ladder_wood" ,"default:ladder_steel"}
|
||||||
|
|
||||||
local zombienods = {
|
local zombienods = {
|
||||||
@ -22,7 +25,6 @@ local zombienods = {
|
|||||||
"nodex:whiteblock",
|
"nodex:whiteblock",
|
||||||
}
|
}
|
||||||
|
|
||||||
---- SKULL SWORD ------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
mobs:register_mob("doctorzombie:doctorzombie", {
|
mobs:register_mob("doctorzombie:doctorzombie", {
|
||||||
--nametag = "Doctor Zombie" ,
|
--nametag = "Doctor Zombie" ,
|
||||||
@ -35,8 +37,8 @@ mobs:register_mob("doctorzombie:doctorzombie", {
|
|||||||
pathfinding = true,
|
pathfinding = true,
|
||||||
reach = 3,
|
reach = 3,
|
||||||
damage = 3,
|
damage = 3,
|
||||||
hp_min = 10,
|
hp_min = 100,
|
||||||
hp_max = 10,
|
hp_max = 100,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
collisionbox = {-0.4, 0, -0.4, 0.4, 1.8, 0.4},
|
collisionbox = {-0.4, 0, -0.4, 0.4, 1.8, 0.4},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
@ -56,7 +58,7 @@ mobs:register_mob("doctorzombie:doctorzombie", {
|
|||||||
walk_velocity = 1,
|
walk_velocity = 1,
|
||||||
run_velocity = 4,
|
run_velocity = 4,
|
||||||
jump_height = 2,
|
jump_height = 2,
|
||||||
stepheight = 1.2,
|
stepheight = 1.1,
|
||||||
floats = 0,
|
floats = 0,
|
||||||
view_range = 35,
|
view_range = 35,
|
||||||
drops = {
|
drops = {
|
||||||
@ -88,22 +90,91 @@ mobs:register_mob("doctorzombie:doctorzombie", {
|
|||||||
do_custom = function(self, dtime)
|
do_custom = function(self, dtime)
|
||||||
|
|
||||||
|
|
||||||
local pos = self.object:get_pos() -- consegue sua propia posição
|
local pos = self.object:get_pos() -- consegue sua propia posição
|
||||||
local vel = {x=0, y=0.2, z=0} -- deveria ser velocidade hehe
|
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
||||||
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
local face2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
|
local face3 = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
|
local face4 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
|
||||||
for i,v in ipairs (climb_node) do
|
--local ladders = {"default:ladder_wood","default:ladder_steel" }
|
||||||
if face.name == v then -- se o bloco em sua frente é escadas
|
|
||||||
|
--for i,v in ipairs (climb_node) do
|
||||||
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
if face.name == "default:ladder_wood" or face.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
self.object:set_velocity(vel) -- velocidade, não eficiente :/
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face2.name == "default:ladder_wood" or face2.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face3.name == "default:ladder_wood" or face3.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face4.name == "default:ladder_wood" or face4.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
|
-- BREACK DOOR :
|
||||||
|
|
||||||
|
for _,players in pairs(minetest.get_objects_inside_radius(pos,5)) do
|
||||||
|
|
||||||
|
if players:is_player() then
|
||||||
|
|
||||||
|
local door_pos = minetest.find_node_near(pos, 1, {
|
||||||
|
"doors:door_wood_a" ,
|
||||||
|
"doors:door_wood_b",
|
||||||
|
"doors:door_wood_c",
|
||||||
|
"doors:door_wood_d",
|
||||||
|
"default:glass",
|
||||||
|
"doors:door_glass_a",
|
||||||
|
"doors:door_glass_b",
|
||||||
|
"doors:door_glass_c",
|
||||||
|
"doors:door_glass_d",
|
||||||
|
"doors:pine_door_a",
|
||||||
|
"doors:pine_door_b",
|
||||||
|
"doors:pine_door_c",
|
||||||
|
"doors:pine_door_d",
|
||||||
|
"doors:aspen_doors_a",
|
||||||
|
"doors:aspen_doors_b",
|
||||||
|
"doors:aspen_doors_c",
|
||||||
|
"doors:aspen_doors_d",
|
||||||
|
"doors:acacia_door_a",
|
||||||
|
"doors:acacia_door_b",
|
||||||
|
"doors:acacia_door_c",
|
||||||
|
"doors:acacia_door_d",
|
||||||
|
"doors:jungle_door_a",
|
||||||
|
"doors:jungle_door_b",
|
||||||
|
"doors:jungle_door_c",
|
||||||
|
"doors:jungle_door_d"
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
if door_pos ~= nil then
|
||||||
|
|
||||||
|
minetest.after(3, function() -- remover depois de 2 segundos
|
||||||
|
minetest.remove_node(door_pos)
|
||||||
|
end)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -123,3 +194,4 @@ mobs:spawn({
|
|||||||
|
|
||||||
|
|
||||||
mobs:register_egg("doctorzombie:doctorzombie", "Doctor Zombie", "zombies_egg.png", 0)
|
mobs:register_egg("doctorzombie:doctorzombie", "Doctor Zombie", "zombies_egg.png", 0)
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
name = doctorzombie
|
name = doctorzombie
|
||||||
depends = default, mobs ,itemx
|
depends = default, mobs ,itemx ,doors
|
||||||
|
|
||||||
|
BIN
doctorzombie/sounds/crack_door.ogg
Normal file
@ -5,7 +5,6 @@ local zombienods = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
---- SKULL SWORD ------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
mobs:register_mob("lumberjackzombie:lumberjackzombie", {
|
mobs:register_mob("lumberjackzombie:lumberjackzombie", {
|
||||||
--nametag = "Lumberjack Zombie" ,
|
--nametag = "Lumberjack Zombie" ,
|
||||||
@ -39,7 +38,7 @@ mobs:register_mob("lumberjackzombie:lumberjackzombie", {
|
|||||||
walk_velocity = 1,
|
walk_velocity = 1,
|
||||||
run_velocity = 3,
|
run_velocity = 3,
|
||||||
jump_height = 2,
|
jump_height = 2,
|
||||||
stepheight = 1.5,
|
stepheight = 1.1,
|
||||||
floats = 0,
|
floats = 0,
|
||||||
view_range = 35,
|
view_range = 35,
|
||||||
drops = {
|
drops = {
|
||||||
@ -65,6 +64,91 @@ mobs:register_mob("lumberjackzombie:lumberjackzombie", {
|
|||||||
die_start = 280,
|
die_start = 280,
|
||||||
die_end = 300,
|
die_end = 300,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
do_custom = function(self, dtime)
|
||||||
|
|
||||||
|
|
||||||
|
local pos = self.object:get_pos() -- consegue sua propia posição
|
||||||
|
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
||||||
|
local face2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
|
local face3 = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
|
local face4 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
|
||||||
|
--local ladders = {"default:ladder_wood","default:ladder_steel" }
|
||||||
|
|
||||||
|
--for i,v in ipairs (climb_node) do
|
||||||
|
if face.name == "default:ladder_wood" or face.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face2.name == "default:ladder_wood" or face2.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face3.name == "default:ladder_wood" or face3.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face4.name == "default:ladder_wood" or face4.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
|
-- BREACK DOOR :
|
||||||
|
|
||||||
|
for _,players in pairs(minetest.get_objects_inside_radius(pos,5)) do
|
||||||
|
|
||||||
|
if players:is_player() then
|
||||||
|
|
||||||
|
local door_pos = minetest.find_node_near(pos, 1, {
|
||||||
|
"doors:door_wood_a" ,
|
||||||
|
"doors:door_wood_b",
|
||||||
|
"doors:door_wood_c",
|
||||||
|
"doors:door_wood_d",
|
||||||
|
"default:glass",
|
||||||
|
"doors:door_glass_a",
|
||||||
|
"doors:door_glass_b",
|
||||||
|
"doors:door_glass_c",
|
||||||
|
"doors:door_glass_d",
|
||||||
|
"doors:pine_door_a",
|
||||||
|
"doors:pine_door_b",
|
||||||
|
"doors:pine_door_c",
|
||||||
|
"doors:pine_door_d",
|
||||||
|
"doors:aspen_doors_a",
|
||||||
|
"doors:aspen_doors_b",
|
||||||
|
"doors:aspen_doors_c",
|
||||||
|
"doors:aspen_doors_d",
|
||||||
|
"doors:acacia_door_a",
|
||||||
|
"doors:acacia_door_b",
|
||||||
|
"doors:acacia_door_c",
|
||||||
|
"doors:acacia_door_d",
|
||||||
|
"doors:jungle_door_a",
|
||||||
|
"doors:jungle_door_b",
|
||||||
|
"doors:jungle_door_c",
|
||||||
|
"doors:jungle_door_d"
|
||||||
|
})
|
||||||
|
|
||||||
|
if door_pos ~= nil then
|
||||||
|
|
||||||
|
minetest.after(3, function() -- remover depois de 2 segundos
|
||||||
|
minetest.remove_node(door_pos)
|
||||||
|
end)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,9 +9,6 @@ local zombienods = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
---- SKULL SWORD ------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
mobs:register_mob("minerzombie:minerzombie", {
|
mobs:register_mob("minerzombie:minerzombie", {
|
||||||
--nametag = "Miner Zombie" ,
|
--nametag = "Miner Zombie" ,
|
||||||
type = "monster",
|
type = "monster",
|
||||||
@ -70,6 +67,12 @@ mobs:register_mob("minerzombie:minerzombie", {
|
|||||||
die_start = 280,
|
die_start = 280,
|
||||||
die_end = 300,
|
die_end = 300,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
--[[
|
||||||
|
on_die = function(self, pos)
|
||||||
|
|
||||||
|
end
|
||||||
|
]]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ minetest.register_node("nodex:greenblock", {
|
|||||||
tiles = {"green_node.png"},
|
tiles = {"green_node.png"},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky = 3},
|
groups = {cracky = 3},
|
||||||
drop = "nodex:green_node",
|
drop = "nodex:greenblock",
|
||||||
sounds = default.node_sound_stone_defaults()
|
sounds = default.node_sound_stone_defaults()
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@ -20,7 +20,6 @@ local zombienods = {
|
|||||||
"nodex:road3",
|
"nodex:road3",
|
||||||
}
|
}
|
||||||
|
|
||||||
---- SKULL SWORD ------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
mobs:register_mob("runner:runner", {
|
mobs:register_mob("runner:runner", {
|
||||||
--nametag = "Runner Zombie" ,
|
--nametag = "Runner Zombie" ,
|
||||||
@ -56,7 +55,7 @@ mobs:register_mob("runner:runner", {
|
|||||||
walk_velocity = 2,
|
walk_velocity = 2,
|
||||||
run_velocity = 8,
|
run_velocity = 8,
|
||||||
jump_height = 2,
|
jump_height = 2,
|
||||||
stepheight = 1.7,
|
stepheight = 1.1,
|
||||||
floats = 0,
|
floats = 0,
|
||||||
view_range = 35,
|
view_range = 35,
|
||||||
drops = {
|
drops = {
|
||||||
@ -86,21 +85,87 @@ mobs:register_mob("runner:runner", {
|
|||||||
do_custom = function(self, dtime)
|
do_custom = function(self, dtime)
|
||||||
|
|
||||||
|
|
||||||
local pos = self.object:get_pos() -- consegue sua propia posição
|
local pos = self.object:get_pos() -- consegue sua propia posição
|
||||||
local vel = {x=0, y=0.2, z=0} -- deveria ser velocidade hehe
|
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
||||||
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
local face2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
|
local face3 = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
for i,v in ipairs (climb_node) do
|
local face4 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
|
||||||
if face.name == v then -- se o bloco em sua frente é escadas
|
--local ladders = {"default:ladder_wood","default:ladder_steel" }
|
||||||
|
|
||||||
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
--for i,v in ipairs (climb_node) do
|
||||||
self.object:set_velocity(vel) -- velocidade, não eficiente :/
|
if face.name == "default:ladder_wood" or face.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
end
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face2.name == "default:ladder_wood" or face2.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face3.name == "default:ladder_wood" or face3.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face4.name == "default:ladder_wood" or face4.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
end
|
-- BREACK DOOR :
|
||||||
|
|
||||||
|
for _,players in pairs(minetest.get_objects_inside_radius(pos,5)) do
|
||||||
|
|
||||||
|
if players:is_player() then
|
||||||
|
|
||||||
|
local door_pos = minetest.find_node_near(pos, 1, {
|
||||||
|
"doors:door_wood_a" ,
|
||||||
|
"doors:door_wood_b",
|
||||||
|
"doors:door_wood_c",
|
||||||
|
"doors:door_wood_d",
|
||||||
|
"default:glass",
|
||||||
|
"doors:door_glass_a",
|
||||||
|
"doors:door_glass_b",
|
||||||
|
"doors:door_glass_c",
|
||||||
|
"doors:door_glass_d",
|
||||||
|
"doors:pine_door_a",
|
||||||
|
"doors:pine_door_b",
|
||||||
|
"doors:pine_door_c",
|
||||||
|
"doors:pine_door_d",
|
||||||
|
"doors:aspen_doors_a",
|
||||||
|
"doors:aspen_doors_b",
|
||||||
|
"doors:aspen_doors_c",
|
||||||
|
"doors:aspen_doors_d",
|
||||||
|
"doors:acacia_door_a",
|
||||||
|
"doors:acacia_door_b",
|
||||||
|
"doors:acacia_door_c",
|
||||||
|
"doors:acacia_door_d",
|
||||||
|
"doors:jungle_door_a",
|
||||||
|
"doors:jungle_door_b",
|
||||||
|
"doors:jungle_door_c",
|
||||||
|
"doors:jungle_door_d"
|
||||||
|
})
|
||||||
|
|
||||||
|
if door_pos ~= nil then
|
||||||
|
|
||||||
|
minetest.after(3, function() -- remover depois de 2 segundos
|
||||||
|
minetest.remove_node(door_pos)
|
||||||
|
end)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
name = runner
|
name = runner
|
||||||
depends = default, mobs
|
depends = default, mobs
|
||||||
|
|
||||||
|
@ -20,9 +20,31 @@ local zombienods = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function poison_part (pos) --- PARTICULAS
|
||||||
|
|
||||||
|
minetest.add_particlespawner({
|
||||||
|
amount = 5,
|
||||||
|
time = 0.1,
|
||||||
|
minpos = pos,
|
||||||
|
maxpos = pos,
|
||||||
|
minvel = {x = dir.x - 1, y = dir.y, z = dir.z - 1},
|
||||||
|
maxvel = {x = dir.x + 1, y = dir.y, z = dir.z + 1},
|
||||||
|
minacc = {x = 0, y = -5, z = 0},
|
||||||
|
maxacc = {x = 0, y = -9, z = 0},
|
||||||
|
minexptime = 1,
|
||||||
|
maxexptime = 1,
|
||||||
|
minsize = 1,
|
||||||
|
maxsize = 2,
|
||||||
|
texture = "stamina_poison_particle.png"
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
----- ACID =====================================================================
|
----- ACID =====================================================================
|
||||||
|
|
||||||
--- Particules :
|
--- Particules :
|
||||||
|
--[[
|
||||||
|
|
||||||
function gas(pos) --- PARTICULAS
|
function gas(pos) --- PARTICULAS
|
||||||
|
|
||||||
@ -80,6 +102,8 @@ minetest.register_node("spitterzombie:acid", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
]]
|
||||||
|
|
||||||
---- VOMITER ZOMBIE ============================================================
|
---- VOMITER ZOMBIE ============================================================
|
||||||
|
|
||||||
mobs:register_mob("spitterzombie:spitterzombie", {
|
mobs:register_mob("spitterzombie:spitterzombie", {
|
||||||
@ -161,9 +185,56 @@ mobs:register_arrow("spitterzombie:spitter_arrow", {
|
|||||||
|
|
||||||
|
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local pp = player:get_pos() -- Pos player
|
-- Quando estar de armadura , o escudo bloquei parte do dano causado por evenenamento
|
||||||
|
|
||||||
minetest.set_node(pp, {name = "spitterzombie:acid"})
|
minetest.chat_send_player(player:get_player_name(), "You are poisoned!") -- msg para p player
|
||||||
|
|
||||||
|
local count = 15 -- Contagem de tempo do dano era 15
|
||||||
|
local delay = 1 -- Intervaloe entre danos
|
||||||
|
|
||||||
|
local function countdown()
|
||||||
|
if count > 0 then -- Se o contador ainda não chegou a 0
|
||||||
|
|
||||||
|
---------- PARTICULAS :
|
||||||
|
local pos = player:get_pos()
|
||||||
|
local dir = player:get_look_dir() -- direção em que o jogador está olhando
|
||||||
|
local distance = 1 -- distância a partir da cabeça do jogador
|
||||||
|
local front_player = {
|
||||||
|
x = pos.x + (dir.x * distance),
|
||||||
|
y = pos.y + (dir.y * distance) + 1.5, -- altura da cabeça do jogador
|
||||||
|
z = pos.z + (dir.z * distance)
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.add_particlespawner({
|
||||||
|
amount = 3, -- quantidade de particulas
|
||||||
|
time = 2, -- quanto tempo geradas
|
||||||
|
minpos = front_player,
|
||||||
|
maxpos = front_player,
|
||||||
|
minvel = {x = -0.1, y = 0.1, z = -0.1}, -- velocidade das particulas
|
||||||
|
maxvel = {x = 0.1, y = 0.3, z = 0.1},
|
||||||
|
minacc = {x = 0, y = -0.1, z = 0}, -- acelaração das particulas , direção
|
||||||
|
maxacc = {x = 0, y = -0.2, z = 0},
|
||||||
|
minexptime = 0, -- tempo de vida da particula
|
||||||
|
maxexptime = 0.5, -- tempo de vida da particula
|
||||||
|
minsize = 1,
|
||||||
|
maxsize = 2,
|
||||||
|
collisiondetection = true,
|
||||||
|
collision_removal = true,
|
||||||
|
object_collision = false,
|
||||||
|
vertical = false,
|
||||||
|
texture = "poison_particle.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
--- DANO :
|
||||||
|
player:set_hp(player:get_hp() - 1)
|
||||||
|
count = count - 1 -- Decrementar o contador
|
||||||
|
minetest.after(delay, countdown) -- Chamar a função novamente após um atraso
|
||||||
|
|
||||||
|
--else
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.after(delay, countdown) -- Iniciar a contagem regressiva
|
||||||
|
|
||||||
|
|
||||||
end,
|
end,
|
||||||
|
Before Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 915 B |
BIN
spitterzombie/textures/heart_poison.png
Normal file
After Width: | Height: | Size: 745 B |
BIN
spitterzombie/textures/poison_particle.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
structures/schematics/road.mts
Normal file
Before Width: | Height: | Size: 922 B |
Before Width: | Height: | Size: 1.0 KiB |
@ -3,9 +3,10 @@ minetest.register_on_newplayer(function(player)
|
|||||||
player:get_inventory():add_item('main','toolx:baseball_bat')
|
player:get_inventory():add_item('main','toolx:baseball_bat')
|
||||||
player:get_inventory():add_item('main','foodx:canned_tomato 8')
|
player:get_inventory():add_item('main','foodx:canned_tomato 8')
|
||||||
player:get_inventory():add_item('main','itemx:walkietalkie')
|
player:get_inventory():add_item('main','itemx:walkietalkie')
|
||||||
--player:get_inventory():add_item('main','')
|
player:get_inventory():add_item('main','zarmor:hat_head')
|
||||||
--player:get_inventory():add_item('main','')
|
player:get_inventory():add_item('main','zarmor:Jacket_torso')
|
||||||
--player:get_inventory():add_item('main','')
|
player:get_inventory():add_item('main','zarmor:jeanspants_legs')
|
||||||
--player:get_inventory():add_item('main','')
|
player:get_inventory():add_item('main','zarmor:tennis_feet')
|
||||||
|
player:get_inventory():add_item('main','itemx:bandaid')
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
name = stuffx
|
name = stuffx
|
||||||
depends = default
|
depends = default ,itemx,zarmor,foodx,toolx
|
||||||
|
@ -60,7 +60,7 @@ mobs:register_mob("survivorzombie:survivorzombie", {
|
|||||||
walk_velocity = 1,
|
walk_velocity = 1,
|
||||||
run_velocity = 3,
|
run_velocity = 3,
|
||||||
jump_height = 2,
|
jump_height = 2,
|
||||||
stepheight = 1.2,
|
stepheight = 1.1,
|
||||||
floats = 0,
|
floats = 0,
|
||||||
view_range = 35,
|
view_range = 35,
|
||||||
drops = {
|
drops = {
|
||||||
@ -90,20 +90,85 @@ mobs:register_mob("survivorzombie:survivorzombie", {
|
|||||||
do_custom = function(self, dtime)
|
do_custom = function(self, dtime)
|
||||||
|
|
||||||
|
|
||||||
local pos = self.object:get_pos() -- consegue sua propia posição
|
local pos = self.object:get_pos() -- consegue sua propia posição
|
||||||
local vel = {x=0, y=0.2, z=0} -- deveria ser velocidade hehe
|
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
||||||
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
local face2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
|
local face3 = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
for i,v in ipairs (climb_node) do
|
local face4 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
|
||||||
if face.name == v then -- se o bloco em sua frente é escadas
|
--local ladders = {"default:ladder_wood","default:ladder_steel" }
|
||||||
|
|
||||||
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
--for i,v in ipairs (climb_node) do
|
||||||
self.object:set_velocity(vel) -- velocidade, não eficiente :/
|
if face.name == "default:ladder_wood" or face.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
end
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face2.name == "default:ladder_wood" or face2.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face3.name == "default:ladder_wood" or face3.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face4.name == "default:ladder_wood" or face4.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
end
|
-- BREACK DOOR :
|
||||||
|
|
||||||
|
for _,players in pairs(minetest.get_objects_inside_radius(pos,5)) do
|
||||||
|
|
||||||
|
if players:is_player() then
|
||||||
|
|
||||||
|
local door_pos = minetest.find_node_near(pos, 1, {
|
||||||
|
"doors:door_wood_a" ,
|
||||||
|
"doors:door_wood_b",
|
||||||
|
"doors:door_wood_c",
|
||||||
|
"doors:door_wood_d",
|
||||||
|
"default:glass",
|
||||||
|
"doors:door_glass_a",
|
||||||
|
"doors:door_glass_b",
|
||||||
|
"doors:door_glass_c",
|
||||||
|
"doors:door_glass_d",
|
||||||
|
"doors:pine_door_a",
|
||||||
|
"doors:pine_door_b",
|
||||||
|
"doors:pine_door_c",
|
||||||
|
"doors:pine_door_d",
|
||||||
|
"doors:aspen_doors_a",
|
||||||
|
"doors:aspen_doors_b",
|
||||||
|
"doors:aspen_doors_c",
|
||||||
|
"doors:aspen_doors_d",
|
||||||
|
"doors:acacia_door_a",
|
||||||
|
"doors:acacia_door_b",
|
||||||
|
"doors:acacia_door_c",
|
||||||
|
"doors:acacia_door_d",
|
||||||
|
"doors:jungle_door_a",
|
||||||
|
"doors:jungle_door_b",
|
||||||
|
"doors:jungle_door_c",
|
||||||
|
"doors:jungle_door_d"
|
||||||
|
})
|
||||||
|
|
||||||
|
if door_pos ~= nil then
|
||||||
|
|
||||||
|
minetest.after(3, function() -- remover depois de 2 segundos
|
||||||
|
minetest.remove_node(door_pos)
|
||||||
|
end)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@ -32,7 +32,7 @@ mobs:register_mob("tankzombie:tankzombie", {
|
|||||||
passive = false,
|
passive = false,
|
||||||
attack_type = "dogfight",
|
attack_type = "dogfight",
|
||||||
--attack_animals = true,
|
--attack_animals = true,
|
||||||
pathfinding = true,
|
pathfinding = 1,
|
||||||
reach = 5,
|
reach = 5,
|
||||||
damage = 12,
|
damage = 12,
|
||||||
hp_min = 250,
|
hp_min = 250,
|
||||||
@ -40,7 +40,8 @@ mobs:register_mob("tankzombie:tankzombie", {
|
|||||||
armor = 60,
|
armor = 60,
|
||||||
collisionbox = {-0.4, 0, -0.4, 0.4, 3.0, 0.4},
|
collisionbox = {-0.4, 0, -0.4, 0.4, 3.0, 0.4},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "zombietank.b3d",
|
mesh = "ztank.b3d",
|
||||||
|
visual_size = {x=12, y=12},
|
||||||
--rotate = 180,
|
--rotate = 180,
|
||||||
textures = {
|
textures = {
|
||||||
{"tankzombiex.png"},
|
{"tankzombiex.png"},
|
||||||
@ -88,13 +89,17 @@ mobs:register_mob("tankzombie:tankzombie", {
|
|||||||
punch_speed = 25,
|
punch_speed = 25,
|
||||||
punch_start = 200,
|
punch_start = 200,
|
||||||
punch_end = 250,
|
punch_end = 250,
|
||||||
--die_speed = 20,
|
die_speed = 15,
|
||||||
die_start = 260,
|
die_start = 260,
|
||||||
die_end = 380,
|
die_end = 399,
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
--[[
|
||||||
on_die = function(self, pos) -- POSIÇÃO
|
on_die = function(self, pos) -- POSIÇÃO
|
||||||
|
|
||||||
|
self.object:set_animation({x=260, y=380}, 20, 0)
|
||||||
for _,players in pairs(minetest.get_objects_inside_radius(pos,64)) do -- CONSEGUIR RADIUS ( POSIÇÃO ,64 NODES?)
|
for _,players in pairs(minetest.get_objects_inside_radius(pos,64)) do -- CONSEGUIR RADIUS ( POSIÇÃO ,64 NODES?)
|
||||||
if players:is_player() then -- SE PLAYER
|
if players:is_player() then -- SE PLAYER
|
||||||
awards.unlock(players:get_player_name(), "tank") -- DESBLOQUEAR CONQUISTAS?
|
awards.unlock(players:get_player_name(), "tank") -- DESBLOQUEAR CONQUISTAS?
|
||||||
@ -103,6 +108,10 @@ mobs:register_mob("tankzombie:tankzombie", {
|
|||||||
end
|
end
|
||||||
--custom_attack = function()
|
--custom_attack = function()
|
||||||
--end,
|
--end,
|
||||||
|
|
||||||
|
]]
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ADICIONANDO ATAQUE QUE MUDA O POSIÇÃO
|
-- ADICIONANDO ATAQUE QUE MUDA O POSIÇÃO
|
||||||
@ -113,6 +122,8 @@ minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch,
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mobs:spawn({
|
mobs:spawn({
|
||||||
name = "tankzombie:tankzombie",
|
name = "tankzombie:tankzombie",
|
||||||
nodes = hunternods,
|
nodes = hunternods,
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
name = tankzombie
|
name = tankzombie
|
||||||
depends = default, mobs ,
|
depends = default, mobs
|
||||||
|
|
||||||
|
|
||||||
|
BIN
tankzombie/models/ztank.b3d
Normal file
@ -20,6 +20,9 @@ local zombienods = {
|
|||||||
"nodex:road3",
|
"nodex:road3",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
local zdoors = { }
|
||||||
|
|
||||||
---- SKULL SWORD ------------------------------------------------------------------------------------------------------
|
---- SKULL SWORD ------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
mobs:register_mob("walkingzombie:walkingzombie", {
|
mobs:register_mob("walkingzombie:walkingzombie", {
|
||||||
@ -56,7 +59,7 @@ mobs:register_mob("walkingzombie:walkingzombie", {
|
|||||||
walk_velocity = 1,
|
walk_velocity = 1,
|
||||||
run_velocity = 3,
|
run_velocity = 3,
|
||||||
jump_height = 2,
|
jump_height = 2,
|
||||||
stepheight = 1.2,
|
stepheight = 1.1,
|
||||||
floats = 0,
|
floats = 0,
|
||||||
view_range = 35,
|
view_range = 35,
|
||||||
drops = {
|
drops = {
|
||||||
@ -86,20 +89,85 @@ mobs:register_mob("walkingzombie:walkingzombie", {
|
|||||||
do_custom = function(self, dtime)
|
do_custom = function(self, dtime)
|
||||||
|
|
||||||
|
|
||||||
local pos = self.object:get_pos() -- consegue sua propia posição
|
local pos = self.object:get_pos() -- consegue sua propia posição
|
||||||
local vel = {x=0, y=0.2, z=0} -- deveria ser velocidade hehe
|
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
||||||
local face = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1}) -- bloco que estar em sua frente
|
local face2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
|
local face3 = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
for i,v in ipairs (climb_node) do
|
local face4 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
|
||||||
if face.name == v then -- se o bloco em sua frente é escadas
|
--local ladders = {"default:ladder_wood","default:ladder_steel" }
|
||||||
|
|
||||||
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
--for i,v in ipairs (climb_node) do
|
||||||
self.object:set_velocity(vel) -- velocidade, não eficiente :/
|
if face.name == "default:ladder_wood" or face.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
end
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face2.name == "default:ladder_wood" or face2.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face3.name == "default:ladder_wood" or face3.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
|
||||||
|
if face4.name == "default:ladder_wood" or face4.name == "default:ladder_steel" then -- se o bloco em sua frente é escadas
|
||||||
|
|
||||||
|
self.object:set_pos({x=pos.x, y=pos.y+1, z=pos.z}) -- enquanto o bloco for escadas y+1
|
||||||
|
self.object:set_velocity({x=0, y=-5, z=0}) -- velocidade, não eficiente :/
|
||||||
|
end
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
end
|
-- BREACK DOOR :
|
||||||
|
|
||||||
|
for _,players in pairs(minetest.get_objects_inside_radius(pos,5)) do
|
||||||
|
|
||||||
|
if players:is_player() then
|
||||||
|
|
||||||
|
local door_pos = minetest.find_node_near(pos, 1, {
|
||||||
|
"doors:door_wood_a" ,
|
||||||
|
"doors:door_wood_b",
|
||||||
|
"doors:door_wood_c",
|
||||||
|
"doors:door_wood_d",
|
||||||
|
"default:glass",
|
||||||
|
"doors:door_glass_a",
|
||||||
|
"doors:door_glass_b",
|
||||||
|
"doors:door_glass_c",
|
||||||
|
"doors:door_glass_d",
|
||||||
|
"doors:pine_door_a",
|
||||||
|
"doors:pine_door_b",
|
||||||
|
"doors:pine_door_c",
|
||||||
|
"doors:pine_door_d",
|
||||||
|
"doors:aspen_doors_a",
|
||||||
|
"doors:aspen_doors_b",
|
||||||
|
"doors:aspen_doors_c",
|
||||||
|
"doors:aspen_doors_d",
|
||||||
|
"doors:acacia_door_a",
|
||||||
|
"doors:acacia_door_b",
|
||||||
|
"doors:acacia_door_c",
|
||||||
|
"doors:acacia_door_d",
|
||||||
|
"doors:jungle_door_a",
|
||||||
|
"doors:jungle_door_b",
|
||||||
|
"doors:jungle_door_c",
|
||||||
|
"doors:jungle_door_d"
|
||||||
|
})
|
||||||
|
|
||||||
|
if door_pos ~= nil then
|
||||||
|
|
||||||
|
minetest.after(3, function() -- remover depois de 2 segundos
|
||||||
|
minetest.remove_node(door_pos)
|
||||||
|
end)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
})
|
})
|
||||||
|