Initial Upload
|
@ -0,0 +1,18 @@
|
|||
Not so simple mobs by NPX team
|
||||
|
||||
We would like to thank:
|
||||
- PilzAdam, for his wonderful simple-mobs mod;
|
||||
- Tenplus1, for his hard work in making mobs_redo;
|
||||
- rnd, for his pathfinding;
|
||||
- Echoes91, for Spears: simple but amazing;
|
||||
- and obviously Celeron-55 and all the people who contributed to Minetest and its community;
|
||||
- Denise and Ponzi_Duro for the revision of the guide
|
||||
- Double P and Ponzi_Duro for the beta testing
|
||||
|
||||
License GPL v3
|
||||
|
||||
The mod makes the game really hard, please read the Guide before playing:
|
||||
https://dl.orangedox.com/a9tDekhYmWRkJt0J0a
|
||||
|
||||
Note: this is a custom mob pack made from the original nssm mobs to work with
|
||||
mobs redo api for a particular server.
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
mobs:register_mob("nssm:ant_soldier", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 20,
|
||||
collisionbox = {-0.49, 0.00, -0.49, 0.49, 0.9, 0.49},
|
||||
visual = "mesh",
|
||||
mesh = "ant_soldier.x",
|
||||
textures = {{"ant_soldier.png"}},
|
||||
visual_size = {x=3, y=3},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
fear_height = 4,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 3,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "ant",
|
||||
},
|
||||
damage = 4,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 1, min = 1, max = 2},
|
||||
},
|
||||
reach = 2,
|
||||
armor = 90,
|
||||
water_damage = 2,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 35,
|
||||
stand_start = 1,
|
||||
stand_end = 60,
|
||||
walk_start = 90,
|
||||
walk_end = 130,
|
||||
run_start = 90,
|
||||
run_end = 130,
|
||||
punch_start = 60,
|
||||
punch_end = 80,
|
||||
}
|
||||
})
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
mobs:register_mob("nssm:ant_worker", {
|
||||
type = "animal",
|
||||
hp_max = 13,
|
||||
hp_min = 13,
|
||||
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.5, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "ant_worker.x",
|
||||
textures = {{"ant_worker.png"}},
|
||||
visual_size = {x=2, y=2},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
fear_height = 4,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 2,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "ant",
|
||||
},
|
||||
damage = 2,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 3, min = 1, max = 2},
|
||||
|
||||
},
|
||||
armor = 90,
|
||||
water_damage = 2,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 50,
|
||||
walk_start = 120,
|
||||
walk_end = 160,
|
||||
run_start = 120,
|
||||
run_end = 160,
|
||||
punch_start = 50,
|
||||
punch_end = 70,
|
||||
}
|
||||
})
|
|
@ -0,0 +1,60 @@
|
|||
|
||||
mobs:register_mob("nssm:black_widow", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 19,
|
||||
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.8, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "black_widow.x",
|
||||
textures = {{"black_widow.png"}},
|
||||
visual_size = {x=2, y=2},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 15,
|
||||
fear_height = 4,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2.5,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "black_widow",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 1, min = 1, max = 2},
|
||||
},
|
||||
armor = 100,
|
||||
water_damage = 1,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 70,
|
||||
walk_start = 80,
|
||||
walk_end = 120,
|
||||
run_start = 120,
|
||||
run_end = 140,
|
||||
punch_start = 150,
|
||||
punch_end = 160,
|
||||
},
|
||||
do_custom = function(self)
|
||||
|
||||
if math.random(1, 25) > 1 then
|
||||
return
|
||||
end
|
||||
|
||||
local pos = self.object:getpos()
|
||||
local dx = math.random(1, 3)
|
||||
local dz = math.random(1, 3)
|
||||
local p = {x = pos.x + dx, y = pos.y - 1, z = pos.z + dz}
|
||||
local t = {x = pos.x + dx, y = pos.y, z = pos.z + dz}
|
||||
|
||||
if minetest.get_node(p).name ~= "air"
|
||||
and minetest.get_node(t).name == "air" then
|
||||
|
||||
minetest.set_node(t, {name = "nssm:web"})
|
||||
end
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
mobs:register_mob("nssm:crocodile", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 15,
|
||||
collisionbox = {-0.45, -0.30, -0.45, 0.45, 0.3, 0.45},
|
||||
visual = "mesh",
|
||||
mesh = "crocodile.x",
|
||||
textures = {{"croco.png"}},
|
||||
sounds = {
|
||||
random = "crocod",
|
||||
},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 15,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 1,
|
||||
damage = 3,
|
||||
floats = 1,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 1, min = 1, max = 2},
|
||||
},
|
||||
armor = 90,
|
||||
reach = 2,
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 80,
|
||||
walk_start = 230,
|
||||
walk_end = 270,
|
||||
run_start = 230,
|
||||
run_end = 270,
|
||||
punch_start = 205,
|
||||
punch_end = 220,
|
||||
}
|
||||
})
|
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
mobs
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
local path = minetest.get_modpath("nssm")
|
||||
|
||||
-- mobs
|
||||
dofile(path .. "/ant_soldier.lua")
|
||||
dofile(path .. "/ant_worker.lua")
|
||||
dofile(path .. "/black_widow.lua")
|
||||
dofile(path .. "/crocodile.lua")
|
||||
dofile(path .. "/moonheron.lua")
|
||||
dofile(path .. "/octopus.lua")
|
||||
dofile(path .. "/sandworm.lua")
|
||||
dofile(path .. "/tarantula.lua")
|
||||
dofile(path .. "/uloboros.lua")
|
||||
dofile(path .. "/werewolf.lua")
|
||||
dofile(path .. "/white_werewolf.lua")
|
||||
|
||||
-- items
|
||||
dofile(path .. "/nssm_materials.lua")
|
||||
|
||||
-- where do mobs spawn
|
||||
dofile(path .. "/spawn.lua")
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
mobs:register_mob("nssm:moonheron", {
|
||||
type = "monster",
|
||||
hp_max = 23,
|
||||
hp_min = 22,
|
||||
collisionbox = {-0.45, -0.3, -0.45, 0.45, 0.3, 0.45},
|
||||
visual = "mesh",
|
||||
mesh = "moonheron.x",
|
||||
textures = {{"moonheron.png"}},
|
||||
visual_size = {x=10, y=10},
|
||||
view_range = 35,
|
||||
rotate = 270,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "moonheron",
|
||||
distance =40,
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "mobs:mese_crystal_fragment", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
armor = 100,
|
||||
floats = 1,
|
||||
water_damage = 5,
|
||||
lava_damage = 5,
|
||||
light_damage = 5,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 140,
|
||||
stand_end = 200,
|
||||
walk_start = 20,
|
||||
walk_end = 60,
|
||||
run_start = 20,
|
||||
run_end = 60,
|
||||
punch_start = 80,
|
||||
punch_end = 120,
|
||||
}
|
||||
})
|
|
@ -0,0 +1,237 @@
|
|||
|
||||
--ore generation
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:ant_dirt",
|
||||
wherein = "default:cobble",
|
||||
clust_scarcity = 1,
|
||||
clust_num_ores = 27,
|
||||
clust_size = 3,
|
||||
y_min = -1,
|
||||
y_max = 40,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:ant_dirt",
|
||||
wherein = "default:mossycobble",
|
||||
clust_scarcity = 1,
|
||||
clust_num_ores = 27,
|
||||
clust_size = 3,
|
||||
y_min = -1000,
|
||||
y_max = 40,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:ant_dirt",
|
||||
wherein = "default:sandstonebrick",
|
||||
clust_scarcity = 1,
|
||||
clust_num_ores = 27,
|
||||
clust_size = 3,
|
||||
y_min = -1000,
|
||||
y_max = 40,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:ant_dirt",
|
||||
wherein = "stairs:stair_sandstonebrick",
|
||||
clust_scarcity = 1,
|
||||
clust_num_ores = 27,
|
||||
clust_size = 3,
|
||||
y_min = -1000,
|
||||
y_max = 40,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:ant_dirt",
|
||||
wherein = "stairs:stair_cobble",
|
||||
clust_scarcity = 1,
|
||||
clust_num_ores = 27,
|
||||
clust_size = 3,
|
||||
y_min = -1000,
|
||||
y_max = 40,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:web",
|
||||
wherein = "default:junglegrass",
|
||||
clust_scarcity = 2*2*2,
|
||||
clust_num_ores = 2,
|
||||
clust_size = 2,
|
||||
y_min = -20,
|
||||
y_max = 200,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "nssm:web",
|
||||
wherein = "default:jungleleaves",
|
||||
clust_scarcity = 4*4*4,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 5,
|
||||
y_min = -20,
|
||||
y_max = 200,
|
||||
}
|
||||
)
|
||||
|
||||
--nodes
|
||||
|
||||
minetest.register_node("nssm:ant_dirt", {
|
||||
description = "Ant Dirt",
|
||||
tiles = {"ant_dirt.png"},
|
||||
groups = {crumbly=3},
|
||||
})
|
||||
|
||||
minetest.register_node("nssm:web", {
|
||||
description = "Web",
|
||||
inventory_image = "web.png",
|
||||
tiles = {"web.png"} ,
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
pointable = true,
|
||||
diggable = true,
|
||||
buildable_to = false,
|
||||
drop = "",
|
||||
drowning = 0,
|
||||
liquid_renewable = false,
|
||||
liquidtype = "source",
|
||||
liquid_range = 0,
|
||||
liquid_alternative_flowing = "nssm:web",
|
||||
liquid_alternative_source = "nssm:web",
|
||||
liquid_viscosity = 20,
|
||||
groups = {flammable = 2, snappy = 1},
|
||||
})
|
||||
|
||||
--tools
|
||||
|
||||
minetest.register_tool('nssm:sun_sword', {
|
||||
description = 'Sun Sword',
|
||||
inventory_image = 'sun_sword.png',
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.6,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy={times={[1]=0.80, [2]=0.40, [3]=0.20}, uses=70, maxlevel=1},
|
||||
fleshy={times={[2]=0.6, [3]=0.2}, uses=70, maxlevel=1}
|
||||
},
|
||||
damage_groups = {fleshy=10},
|
||||
},
|
||||
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
|
||||
if puncher:get_wielded_item():get_name() == 'nssm:sun_sword' then
|
||||
if node.name ~= "air" then
|
||||
minetest.add_node(pointed_thing.above, {name = "fire:basic_flame"})
|
||||
end
|
||||
end
|
||||
end)
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:masticone_fang_sword", {
|
||||
description = "Masticone Fang Sword",
|
||||
inventory_image = "masticone_fang_sword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval =0.7 ,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy={times={[1]=0.6, [2]=0.5, [3]=0.4}, uses=200, maxlevel=1},
|
||||
fleshy={times={[2]=0.8, [3]=0.4}, uses=200, maxlevel=1}
|
||||
},
|
||||
damage_groups = {fleshy=8},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:night_sword", {
|
||||
description = "Night Sword",
|
||||
inventory_image = "night_sword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval =0.4 ,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy={times={[1]=0.4, [2]=0.3, [3]=0.2}, uses=300, maxlevel=1},
|
||||
fleshy={times={[2]=0.7, [3]=0.3}, uses=300, maxlevel=1}
|
||||
},
|
||||
damage_groups = {fleshy=12},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:crab_light_mace", {
|
||||
description = "Light Crab Mace",
|
||||
inventory_image = "crab_light_mace.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval =2 ,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
fleshy={times={[2]=1.4, [3]=1}, uses=120, maxlevel=1}
|
||||
},
|
||||
damage_groups = {fleshy=8},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:crab_heavy_mace", {
|
||||
description = "Heavy Crab Mace",
|
||||
inventory_image = "crab_heavy_mace.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval =4 ,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
fleshy={times={[2]=2, [3]=1.4}, uses=120, maxlevel=1}
|
||||
},
|
||||
damage_groups = {fleshy=12},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_node("nssm:rope", {
|
||||
description = "Rope",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
drawtype = "plantlike",
|
||||
tiles = { "rope.png" },
|
||||
groups = {snappy=1},
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:stoneater_pick", {
|
||||
description = "Stoneater Pickaxe",
|
||||
inventory_image = "stoneater_pick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[3]=0.0}, uses=200, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:mantis_sword", {
|
||||
description = "Mantis Sword",
|
||||
inventory_image = "mantis_sword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval =0.7 ,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
fleshy={times={[2]=1.0, [3]=0.4}, uses=50, maxlevel=1},
|
||||
snappy={times={[2]=0.80, [3]=0.3}, uses=100, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=6},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:ant_sword", {
|
||||
description = "Ant Sword",
|
||||
inventory_image = "ant_sword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.8,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy={times={[1]=1.30, [2]=0.90, [3]=0.40}, uses=40, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=8},
|
||||
},
|
||||
})
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
mobs:register_mob("nssm:octopus", {
|
||||
type = "monster",
|
||||
hp_max = 22,
|
||||
hp_min = 15,
|
||||
collisionbox = {-0.9, -0.5, -0.9, 0.9, 0.92, 0.9},
|
||||
visual = "mesh",
|
||||
mesh = "octopus.x",
|
||||
textures = {{"octopus.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
view_range = 25,
|
||||
fly = true,
|
||||
fly_in = "default:water_source",
|
||||
fall_speed = -20,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 3,
|
||||
damage = 3,
|
||||
rotate = 270,
|
||||
jump = false,
|
||||
jump_chance = 0,
|
||||
jump_height = 0,
|
||||
sounds = {
|
||||
random = "octopus",
|
||||
},
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 1, min = 2, max = 3},
|
||||
},
|
||||
armor = 100,
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 1,
|
||||
stand_end = 50,
|
||||
walk_start = 60,
|
||||
walk_end = 100,
|
||||
run_start = 60,
|
||||
run_end = 100,
|
||||
punch_start = 120,
|
||||
punch_end = 160,
|
||||
}
|
||||
})
|
|
@ -0,0 +1,60 @@
|
|||
|
||||
mobs:register_mob("nssm:sandworm", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 25,
|
||||
collisionbox = {-0.4, -0.2, -0.4, 0.4, 1.90, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "sandworm.x",
|
||||
textures = {{"sandworm.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = false,
|
||||
view_range = 17,
|
||||
rotate = 270,
|
||||
reach = 4,
|
||||
fear_height = 3,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2,
|
||||
damage = 4,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 2, min = 1, max = 3},
|
||||
},
|
||||
armor = 90,
|
||||
water_damage = 5,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 40,
|
||||
stand_start = 1,
|
||||
stand_end = 100,
|
||||
walk_start = 110,
|
||||
walk_end = 140,
|
||||
run_start = 110,
|
||||
run_end = 140,
|
||||
punch_start = 150,
|
||||
punch_end = 180,
|
||||
},
|
||||
do_custom = function(self)
|
||||
--Worm
|
||||
local c=2
|
||||
local pos = self.object:getpos()
|
||||
local v = self.object:getvelocity()
|
||||
for dx = -c*(math.abs(v.x))-1 , c*(math.abs(v.x))+1 do
|
||||
for dy=0,4 do
|
||||
for dz = -c*(math.abs(v.z))-1 , c*(math.abs(v.z))+1 do
|
||||
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
|
||||
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||
local n = minetest.env:get_node(p).name
|
||||
if (n~="default:water_source" and n~="default:water_flowing") then
|
||||
if n=="default:sand" or n=="default:desert_sand" then
|
||||
minetest.env:set_node(t, {name="air"})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
-- Spawning parameters
|
||||
|
||||
-- ANTS
|
||||
mobs:spawn_specific("nssm:ant_soldier", {"nssm:ant_dirt"}, {"air"}, 0, 20, 7, 30, 4, -31000, 31000)
|
||||
mobs:spawn_specific("nssm:ant_worker", {"nssm:ant_dirt"}, {"air"}, 0, 20, 5, 10, 5, -31000, 31000)
|
||||
|
||||
-- SPIDERS
|
||||
mobs:spawn_specific("nssm:tarantula", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 14, 120, 5000, 1, -31000, 31000)
|
||||
mobs:spawn_specific("nssm:uloboros", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 20, 1000, 1, -31000, 31000)
|
||||
|
||||
-- SEA
|
||||
mobs:spawn_specific("nssm:crocodile", {"default:sand","default:water_source"}, {"default:water_source"}, 0, 20, 60, 35000, 1, -31000, 31000)
|
||||
mobs:spawn_specific("nssm:octopus", {"default:water_source"}, {"default:water_source"}, 0, 20, 60, 40000, 1, -31000, 0)
|
||||
|
||||
-- DESERT
|
||||
mobs:spawn_specific("nssm:sandworm", {"default:desert_sand", "default:desert_stone"}, {"air"}, 0, 20, 20, 30000, 1, -31000, 31000)
|
||||
|
||||
-- MOUNTAINS
|
||||
mobs:spawn_specific("nssm:werewolf", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 0, 10, 30, 20000, 1, 20, 31000)
|
||||
|
||||
-- ICE
|
||||
mobs:spawn_specific("nssm:white_werewolf", {"default:dirt_with_snow","default:snowblock"}, {"air"}, 0, 20, 60, 20000, 1, -31000, 31000)
|
||||
|
||||
-- SKY
|
||||
mobs:spawn_specific("nssm:moonheron", {"air"}, {"air"}, 0, 10, 100, 750000, 1, 10, 40)
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
mobs:register_mob("nssm:tarantula", {
|
||||
type = "monster",
|
||||
hp_max = 70,
|
||||
hp_min = 70,
|
||||
collisionbox = {-0.5, 0.00, -0.5, 0.5, 1, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "tarantula_propower.x",
|
||||
textures = {{"tarantula.png"}},
|
||||
visual_size = {x=10, y=10},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
lifetimer = 500,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 3.3,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "tarry",
|
||||
},
|
||||
damage = 10,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 1, min = 1, max = 2},
|
||||
},
|
||||
armor = 60,
|
||||
water_damage = 1,
|
||||
lava_damage = 3,
|
||||
reach = 4,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 60,
|
||||
walk_start = 100,
|
||||
walk_end = 140,
|
||||
run_start = 140,
|
||||
run_end = 160,
|
||||
punch_start = 180,
|
||||
punch_end = 200,
|
||||
}
|
||||
})
|
After Width: | Height: | Size: 629 B |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 325 B |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 854 B |
After Width: | Height: | Size: 865 B |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 289 B |
After Width: | Height: | Size: 793 B |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 805 B |
After Width: | Height: | Size: 820 B |
After Width: | Height: | Size: 414 B |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 192 B |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 396 B |
After Width: | Height: | Size: 898 B |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 906 B |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 452 B |
After Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 126 KiB |
|
@ -0,0 +1,60 @@
|
|||
|
||||
mobs:register_mob("nssm:uloboros", {
|
||||
type = "monster",
|
||||
hp_max = 18,
|
||||
hp_min = 17,
|
||||
collisionbox = {-0.5, 0.00, -0.5, 0.5, 0.8, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "uloboros.x",
|
||||
textures = {{"uloboros.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 22,
|
||||
walk_velocity = 1.5,
|
||||
fear_height = 4,
|
||||
run_velocity = 2.5,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "uloboros",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 2, min = 1, max = 2},
|
||||
},
|
||||
armor = 100,
|
||||
water_damage = 1,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 30,
|
||||
stand_start = 1,
|
||||
stand_end = 80,
|
||||
walk_start = 120,
|
||||
walk_end = 160,
|
||||
run_start = 120,
|
||||
run_end = 160,
|
||||
punch_start = 80,
|
||||
punch_end = 110,
|
||||
},
|
||||
do_custom = function(self)
|
||||
|
||||
if math.random(1, 25) > 1 then
|
||||
return
|
||||
end
|
||||
|
||||
local pos = self.object:getpos()
|
||||
local dx = math.random(1, 3)
|
||||
local dz = math.random(1, 3)
|
||||
local p = {x = pos.x + dx, y = pos.y - 1, z = pos.z + dz}
|
||||
local t = {x = pos.x + dx, y = pos.y, z = pos.z + dz}
|
||||
|
||||
if minetest.get_node(p).name ~= "air"
|
||||
and minetest.get_node(t).name == "air" then
|
||||
|
||||
minetest.set_node(t, {name = "nssm:web"})
|
||||
end
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
mobs:register_mob("nssm:werewolf", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 25,
|
||||
collisionbox = {-0.85, -0.01, -0.85, 0.85, 3.50, 0.85},
|
||||
visual = "mesh",
|
||||
mesh = "werewolf.x",
|
||||
textures = {{"werewolf.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
walk_velocity = 3,
|
||||
fear_height = 4,
|
||||
run_velocity = 5,
|
||||
sounds = {
|
||||
random = "werewolf",
|
||||
},
|
||||
damage = 4,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 1, min = 3, max = 4},
|
||||
},
|
||||
armor = 100,
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 60,
|
||||
walk_start = 90,
|
||||
walk_end = 130,
|
||||
run_start = 140,
|
||||
run_end = 160,
|
||||
punch_start = 170,
|
||||
punch_end = 193,
|
||||
}
|
||||
})
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
mobs:register_mob("nssm:white_werewolf", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 25,
|
||||
collisionbox = {-0.85, -0.01, -0.85, 0.85, 3.50, 0.85},
|
||||
visual = "mesh",
|
||||
mesh = "werewolf.x",
|
||||
textures = {{"white_werewolf.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
walk_velocity = 3,
|
||||
fear_height = 4,
|
||||
run_velocity = 5,
|
||||
sounds = {
|
||||
random = "werewolf",
|
||||
},
|
||||
damage = 4,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:mese_crystal_fragment", chance = 2, min = 1, max = 1},
|
||||
},
|
||||
armor = 100,
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 60,
|
||||
walk_start = 90,
|
||||
walk_end = 130,
|
||||
run_start = 140,
|
||||
run_end = 160,
|
||||
punch_start = 170,
|
||||
punch_end = 193,
|
||||
}
|
||||
})
|