1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2024-06-29 15:20:19 +02:00

Merge branch 'master' of github.com:Ombridride/minetest-minetestforfun-server

This commit is contained in:
Ombridride 2015-07-21 22:22:48 +02:00
commit ae3d4b3923
36 changed files with 81 additions and 55 deletions

View File

@ -107,11 +107,16 @@ local function resolve_commands(commands, pos)
farthest = player:get_player_name() farthest = player:get_player_name()
end end
end end
local random = players[math.random(#players)]:get_player_name() local randomp = players[math.random(#players)]
commands = commands:gsub("@nearest", nearest) if randomp then
commands = commands:gsub("@farthest", farthest) local random = randomp:get_player_name()
commands = commands:gsub("@random", random) commands = commands:gsub("@nearest", nearest)
return commands commands = commands:gsub("@farthest", farthest)
commands = commands:gsub("@random", random)
return commands
else
return ""
end
end end
local function commandblock_action_on(pos, node) local function commandblock_action_on(pos, node)

View File

@ -212,11 +212,13 @@ function mobs:register_mob(name, def)
and self.child == false and self.child == false
and math.random(1,self.replace_rate) == 1 then and math.random(1,self.replace_rate) == 1 then
local pos = self.object:getpos() local pos = self.object:getpos()
local nodeunder = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
pos.y = pos.y + self.replace_offset pos.y = pos.y + self.replace_offset
-- print ("replace node = ".. minetest.get_node(pos).name, pos.y) -- print ("replace node = ".. minetest.get_node(pos).name, pos.y)
if self.replace_what if self.replace_what
and self.object:getvelocity().y == 0 and self.object:getvelocity().y == 0
and #minetest.find_nodes_in_area(pos, pos, self.replace_what) > 0 then and #minetest.find_nodes_in_area(pos, pos, self.replace_what) > 0 --then
and nodeunder and nodeunder.name ~= "air" then
--and self.state == "stand" then --and self.state == "stand" then
minetest.set_node(pos, {name = self.replace_with}) minetest.set_node(pos, {name = self.replace_with})
end end
@ -1197,7 +1199,7 @@ end
mobs.spawning_mobs = {} mobs.spawning_mobs = {}
function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height) function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height, spawn_in_area)
mobs.spawning_mobs[name] = true mobs.spawning_mobs[name] = true
minetest.register_abm({ minetest.register_abm({
nodenames = nodes, nodenames = nodes,
@ -1217,7 +1219,8 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, inter
-- mobs cannot spawn inside protected areas if enabled -- mobs cannot spawn inside protected areas if enabled
if mobs.protected == 1 if mobs.protected == 1
and minetest.is_protected(pos, "") then and minetest.is_protected(pos, "")
and not spawn_in_area then
return return
end end

View File

@ -50,7 +50,7 @@ mobs:register_mob("mobs:bee", {
end, end,
}) })
-- spawn on group:flowers between 4 and 20 light, 1 in 5000 chance, 1 bee in area up to 31000 in height -- spawn on group:flowers between 4 and 20 light, 1 in 5000 chance, 1 bee in area up to 31000 in height
mobs:spawn_specific("mobs:bee", {"group:flower"}, {"air"}, 4, 20, 30, 5000, 1, -31000, 31000) mobs:spawn_specific("mobs:bee", {"group:flower"}, {"air"}, 4, 20, 30, 5000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:bee", "Bee", "mobs_bee_inv.png", 0) mobs:register_egg("mobs:bee", "Bee", "mobs_bee_inv.png", 0)

View File

@ -94,5 +94,5 @@ mobs:register_mob("mobs:bunny", {
attack_type = "dogfight", attack_type = "dogfight",
damage = 5, damage = 5,
}) })
mobs:spawn_specific("mobs:bunny", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:bunny", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000, true)
mobs:register_egg("mobs:bunny", "Bunny", "mobs_bunny_inv.png", 0) mobs:register_egg("mobs:bunny", "Bunny", "mobs_bunny_inv.png", 0)

View File

@ -98,7 +98,7 @@ mobs:register_mob("mobs:chicken", {
end, end,
}) })
-- spawn on default or bamboo grass between 8 and 20 light, 1 in 10000 change, 1 chicken in area up to 31000 in height -- spawn on default or bamboo grass between 8 and 20 light, 1 in 10000 change, 1 chicken in area up to 31000 in height
mobs:spawn_specific("mobs:chicken", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:chicken", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:chicken", "Chicken", "mobs_chicken_inv.png", 0) mobs:register_egg("mobs:chicken", "Chicken", "mobs_chicken_inv.png", 0)

View File

@ -119,7 +119,7 @@ mobs:register_mob("mobs:cow", {
-- spawn on default;green;prairie grass between 0 and 20 light, 1 in 11000 chance, 1 cow in area up to 31000 in height -- spawn on default;green;prairie grass between 0 and 20 light, 1 in 11000 chance, 1 cow in area up to 31000 in height
mobs:spawn_specific("mobs:cow", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:cow", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:cow", "Cow", "default_grass.png", 1) mobs:register_egg("mobs:cow", "Cow", "default_grass.png", 1)

View File

@ -52,5 +52,5 @@ mobs:register_mob("mobs:creeper", {
speed_normal = 15, speed_run = 15, speed_normal = 15, speed_run = 15,
}, },
}) })
mobs:spawn_specific("mobs:creeper", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 20000, 1, -31000, 31000) mobs:spawn_specific("mobs:creeper", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 20000, 1, -31000, 31000, false)
mobs:register_egg("mobs:creeper", "Creeper", "mobs_creeper_inv.png", 1) mobs:register_egg("mobs:creeper", "Creeper", "mobs_creeper_inv.png", 1)

View File

@ -51,6 +51,6 @@ mobs:register_mob("mobs:dirt_monster", {
}, },
}) })
-- spawn on dirt_with_grass and drygrass between -1 and 5 light, 1 in 10000 change, 1 dirt monster in area up to 31000 in height -- spawn on dirt_with_grass and drygrass between -1 and 5 light, 1 in 10000 change, 1 dirt monster in area up to 31000 in height
mobs:spawn_specific("mobs:dirt_monster", {"default:dirt_with_grass", "watershed:drygrass"}, {"air"}, -1, 5, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:dirt_monster", {"default:dirt_with_grass", "watershed:drygrass"}, {"air"}, -1, 5, 30, 10000, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:dirt_monster", "Dirt Monster", "default_dirt.png", 1) mobs:register_egg("mobs:dirt_monster", "Dirt Monster", "default_dirt.png", 1)

View File

@ -68,7 +68,7 @@ mobs:register_mob("mobs:dungeon_master", {
}, },
}) })
-- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 dungeon master in area starting at -100 and below -- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 dungeon master in area starting at -100 and below
mobs:spawn_specific("mobs:dungeon_master", {"default:stone", "default:sandstone", "nether:netherrack"}, {"air"}, -1, 20, 30, 7000, 1, -31000, -250) mobs:spawn_specific("mobs:dungeon_master", {"default:stone", "default:sandstone", "nether:netherrack"}, {"air"}, -1, 20, 30, 7000, 1, -31000, -250, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:dungeon_master", "Dungeon Master", "fire_basic_flame.png", 1) mobs:register_egg("mobs:dungeon_master", "Dungeon Master", "fire_basic_flame.png", 1)

View File

@ -61,6 +61,6 @@ mobs:register_mob("mobs:goat", {
replace_with = "air", replace_with = "air",
}) })
-- spawn on dirt_with_grass between -1 and 20 light, 1 in 20000 chance, 1 goat in area up to 31000 in height -- spawn on dirt_with_grass between -1 and 20 light, 1 in 20000 chance, 1 goat in area up to 31000 in height
mobs:spawn_specific("mobs:goat", {"default:dirt_with_grass"}, {"air"}, -1, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:goat", {"default:dirt_with_grass"}, {"air"}, -1, 20, 30, 10000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:goat", "Goat", "default_grass.png", 1) mobs:register_egg("mobs:goat", "Goat", "default_grass.png", 1)

View File

@ -158,8 +158,8 @@ mobs:register_mob("mobs:greenbig", {
mobs:register_egg("mobs:greenbig", "Big Green Slime", "mobs_green_slime_egg.png", 1) mobs:register_egg("mobs:greenbig", "Big Green Slime", "mobs_green_slime_egg.png", 1)
--mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height) --mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
mobs:spawn_specific("mobs:greenbig", {"default:acid_source"},{"default:acid_flowing"}, -1, 20, 30, 4000, 1, -32000, 32000) mobs:spawn_specific("mobs:greenbig", {"default:acid_source"},{"default:acid_flowing"}, -1, 20, 30, 4000, 1, -32000, 32000, false)
mobs:spawn_specific("mobs:greenmedium", {"default:acid_source"},{"default:acid_flowing"},-1, 20, 30, 4000, 2, -32000, 32000) mobs:spawn_specific("mobs:greenmedium", {"default:acid_source"},{"default:acid_flowing"},-1, 20, 30, 4000, 2, -32000, 32000, false)
--mobs:spawn_specific("mobs:greensmall", {"default:acid_source"},{"default:acid_flowing"},-1, 20, 30, 10000, 2, -32000, 32000) --mobs:spawn_specific("mobs:greensmall", {"default:acid_source"},{"default:acid_flowing"},-1, 20, 30, 10000, 2, -32000, 32000)
--mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height) --mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height)

View File

@ -79,5 +79,5 @@ mobs:register_mob("mobs:kitten", {
mobs:capture_mob(self, clicker, 50, 50, 90, false, nil) mobs:capture_mob(self, clicker, 50, 50, 90, false, nil)
end end
}) })
mobs:spawn_specific("mobs:kitten", {"default:dirt_with_grass"}, {"air"}, 0, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:kitten", {"default:dirt_with_grass"}, {"air"}, 0, 20, 30, 10000, 1, -31000, 31000, true)
mobs:register_egg("mobs:kitten", "Kitten", "mobs_kitten_inv.png", 0) mobs:register_egg("mobs:kitten", "Kitten", "mobs_kitten_inv.png", 0)

View File

@ -56,7 +56,7 @@ mobs:register_mob("mobs:lava_flan", {
end, end,
}) })
-- spawns in lava between -1 and 20 light, 1 in 2000 chance, 3 in area below 31000 in height -- spawns in lava between -1 and 20 light, 1 in 2000 chance, 3 in area below 31000 in height
mobs:spawn_specific("mobs:lava_flan", {"default:lava_source"}, {"air"}, -1, 20, 30, 2500, 3, -31000, 31000) mobs:spawn_specific("mobs:lava_flan", {"default:lava_source"}, {"air"}, -1, 20, 30, 2500, 3, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:lava_flan", "Lava Flan", "default_lava.png", 1) mobs:register_egg("mobs:lava_flan", "Lava Flan", "default_lava.png", 1)

View File

@ -165,9 +165,9 @@ mobs:register_mob("mobs:lavabig", {
mobs:register_egg("mobs:lavabig", "Big Lava Slime", "mobs_lava_slime_egg.png", 1) mobs:register_egg("mobs:lavabig", "Big Lava Slime", "mobs_lava_slime_egg.png", 1)
--mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height) --mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
mobs:spawn_specific("mobs:lavabig", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 4000, 1, -32000, 32000) mobs:spawn_specific("mobs:lavabig", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 4000, 1, -32000, 32000, false)
mobs:spawn_specific("mobs:lavamedium", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 4000, 2, -32000, 32000) mobs:spawn_specific("mobs:lavamedium", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 4000, 2, -32000, 32000, false)
--mobs:spawn_specific("mobs:lavasmall", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 10s000, 2, -32000, 32000) --mobs:spawn_specific("mobs:lavasmall", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 10s000, 2, -32000, 32000, false)
-- lava orb -- lava orb
minetest.register_craftitem("mobs:lava_orb", { minetest.register_craftitem("mobs:lava_orb", {

View File

@ -62,7 +62,7 @@ mobs:register_mob("mobs:mese_monster", {
}, },
}) })
-- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 in area below -25 -- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 in area below -25
mobs:spawn_specific("mobs:mese_monster", {"default:stone", "default:sandstone"}, {"air"}, -1, 20, 30, 7000, 1, -31000, -125) mobs:spawn_specific("mobs:mese_monster", {"default:stone", "default:sandstone"}, {"air"}, -1, 20, 30, 7000, 1, -31000, -125, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:mese_monster", "Mese Monster", "default_mese_block.png", 1) mobs:register_egg("mobs:mese_monster", "Mese Monster", "default_mese_block.png", 1)

View File

@ -60,7 +60,7 @@ mobs:register_mob("mobs:minotaur", {
}, },
}) })
-- spawns on desert sand between -1 and 20 light, 1 in 20000 chance, 1 Minotaur in area up to 31000 in height -- spawns on desert sand between -1 and 20 light, 1 in 20000 chance, 1 Minotaur in area up to 31000 in height
mobs:spawn_specific("mobs:minotaur", {"watershed:drygrass"}, {"air"}, -1, 20, 30, 100000, 1, -31000, 31000) mobs:spawn_specific("mobs:minotaur", {"watershed:drygrass"}, {"air"}, -1, 20, 30, 100000, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:minotaur", "Minotaur", "default_desert_sand.png", 1) mobs:register_egg("mobs:minotaur", "Minotaur", "default_desert_sand.png", 1)

View File

@ -125,6 +125,6 @@ mobs:register_mob("mobs:npc", {
end, end,
}) })
-- spawning enable for now -- spawning enable for now
mobs:spawn_specific("mobs:npc", {"default:dirt_with_grass", "default:dirt", "default:junglegrass", "default:sand"}, {"air"}, -1, 20, 30, 50000, 1, -31000, 31000) mobs:spawn_specific("mobs:npc", {"default:dirt_with_grass", "default:dirt", "default:junglegrass", "default:sand"}, {"air"}, -1, 20, 30, 50000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:npc", "Npc", "default_brick.png", 1) mobs:register_egg("mobs:npc", "Npc", "default_brick.png", 1)

View File

@ -58,6 +58,6 @@ mobs:register_mob("mobs:oerkki", {
replace_offset = -1, replace_offset = -1,
}) })
-- spawns on stone/sandstone between 5 and -1 light, 1 in 7000 chance, 1 in area starting at -10 and below -- spawns on stone/sandstone between 5 and -1 light, 1 in 7000 chance, 1 in area starting at -10 and below
mobs:spawn_specific("mobs:oerkki", {"default:stone", "default:sandstone"}, {"air"}, -1, 5, 30, 7000, 1, -31000, -75) mobs:spawn_specific("mobs:oerkki", {"default:stone", "default:sandstone"}, {"air"}, -1, 5, 30, 7000, 1, -31000, -75, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:oerkki", "Oerkki", "default_obsidian.png", 1) mobs:register_egg("mobs:oerkki", "Oerkki", "default_obsidian.png", 1)

View File

@ -45,7 +45,7 @@ mobs:register_mob("mobs:rat", {
]] ]]
}) })
-- spawn on stone between 1 and 20 light, 1 in 7000 chance, 1 per area up to 31000 in height -- spawn on stone between 1 and 20 light, 1 in 7000 chance, 1 per area up to 31000 in height
mobs:spawn_specific("mobs:rat", {"default:stone", "default:sandstone"}, {"air"}, 0, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:rat", {"default:stone", "default:sandstone"}, {"air"}, 0, 20, 30, 10000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:rat", "Rat", "mobs_rat_inventory.png", 0) mobs:register_egg("mobs:rat", "Rat", "mobs_rat_inventory.png", 0)

View File

@ -52,6 +52,6 @@ mobs:register_mob("mobs:sand_monster", {
}, },
}) })
-- spawns on desert sand between -1 and 20 light, 1 in 15000 chance, 1 sand monster in area up to 31000 in height -- spawns on desert sand between -1 and 20 light, 1 in 15000 chance, 1 sand monster in area up to 31000 in height
mobs:spawn_specific("mobs:sand_monster", {"default:desert_sand", "default:sand"}, {"air"}, -1, 20, 30, 20000, 1, -31000, 31000) mobs:spawn_specific("mobs:sand_monster", {"default:desert_sand", "default:sand"}, {"air"}, -1, 20, 30, 20000, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:sand_monster", "Sand Monster", "default_desert_sand.png", 1) mobs:register_egg("mobs:sand_monster", "Sand Monster", "default_desert_sand.png", 1)

View File

@ -152,7 +152,7 @@ mobs:register_mob("mobs:sheep", {
end, end,
}) })
-- spawn on default;green grass between 20 and 8 light, 1 in 9000 chance, 1 sheep in area up to 31000 in height -- spawn on default;green grass between 20 and 8 light, 1 in 9000 chance, 1 sheep in area up to 31000 in height
mobs:spawn_specific("mobs:sheep", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:sheep", {"default:dirt_with_grass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:sheep", "Sheep", "wool_white.png", 1) mobs:register_egg("mobs:sheep", "Sheep", "wool_white.png", 1)

View File

@ -58,7 +58,7 @@ mobs:register_mob("mobs:spider", {
}, },
}) })
-- spawn on jungleleaves/jungletree, between 0 and 5 light, 1 in 10000 chance, 1 in area up to 31000 in height -- spawn on jungleleaves/jungletree, between 0 and 5 light, 1 in 10000 chance, 1 in area up to 31000 in height
mobs:spawn_specific("mobs:spider", {"default:jungleleaves", "default:jungletree"}, {"air"}, -1, 20, 30, 7000, 1, -31000, 31000) mobs:spawn_specific("mobs:spider", {"default:jungleleaves", "default:jungletree"}, {"air"}, -1, 20, 30, 7000, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:spider", "Spider", "mobs_cobweb.png", 1) mobs:register_egg("mobs:spider", "Spider", "mobs_cobweb.png", 1)

View File

@ -57,6 +57,6 @@ mobs:register_mob("mobs:stone_monster", {
}, },
}) })
-- spawns on stone between -1 and 5 light, 1 in 7000 chance, 1 in area below -25 -- spawns on stone between -1 and 5 light, 1 in 7000 chance, 1 in area below -25
mobs:spawn_specific("mobs:stone_monster", {"default:stone", "default:sandstone"}, {"air"}, -1, 5, 30, 7000, 1, -31000, -25) mobs:spawn_specific("mobs:stone_monster", {"default:stone", "default:sandstone"}, {"air"}, -1, 5, 30, 7000, 1, -31000, -25, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:stone_monster", "Stone Monster", "default_stone.png", 1) mobs:register_egg("mobs:stone_monster", "Stone Monster", "default_stone.png", 1)

View File

@ -58,7 +58,7 @@ mobs:register_mob("mobs:tree_monster", {
}, },
}) })
-- spawn on leaves and beech_leaves, between 0 and 5 light, 1 in 8000 chance, 1 in area up to 31000 in height -- spawn on leaves and beech_leaves, between 0 and 5 light, 1 in 8000 chance, 1 in area up to 31000 in height
mobs:spawn_specific("mobs:tree_monster", {"default:leaves", "moretrees:beech_leaves"}, {"air"}, 0, 5, 30, 8000, 1, -31000, 31000) mobs:spawn_specific("mobs:tree_monster", {"default:leaves", "moretrees:beech_leaves"}, {"air"}, 0, 5, 30, 8000, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:tree_monster", "Tree Monster", "default_tree_top.png", 1) mobs:register_egg("mobs:tree_monster", "Tree Monster", "default_tree_top.png", 1)

View File

@ -94,7 +94,7 @@ mobs:register_mob("mobs:pumba", {
end, end,
}) })
-- spawns on dirt or junglegrass, between 8 and 20 light, 1 in 10000 chance, 1 in area up to 31000 in height -- spawns on dirt or junglegrass, between 8 and 20 light, 1 in 10000 chance, 1 in area up to 31000 in height
mobs:spawn_specific("mobs:pumba", {"default:dirt", "default:junglegrass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:pumba", {"default:dirt", "default:junglegrass"}, {"air"}, 8, 20, 30, 10000, 1, -31000, 31000, true)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:pumba", "Warthog", "wool_pink.png", 1) mobs:register_egg("mobs:pumba", "Warthog", "wool_pink.png", 1)

View File

@ -67,5 +67,5 @@ mobs:register_mob("mobs:wolf", {
end end
end end
}) })
mobs:spawn_specific("mobs:wolf", {"default:dirt_with_grass"}, {"air"}, -1, 3, 30, 10000, 1, -31000, 31000) mobs:spawn_specific("mobs:wolf", {"default:dirt_with_grass"}, {"air"}, -1, 3, 30, 10000, 1, -31000, 31000, false)
mobs:register_egg("mobs:wolf", "Wolf", "mobs_wolf_inv.png", 1) mobs:register_egg("mobs:wolf", "Wolf", "mobs_wolf_inv.png", 1)

View File

@ -58,7 +58,7 @@ mobs:register_mob("mobs:yeti", {
}, },
}) })
-- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 in area below 31000 -- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 in area below 31000
mobs:spawn_specific("mobs:yeti", {"default:dirt_with_snow", "default:snow", "default:snowblock"}, {"air"}, -1, 20, 30, 30000, 1, -31000, 31000) mobs:spawn_specific("mobs:yeti", {"default:dirt_with_snow", "default:snow", "default:snowblock"}, {"air"}, -1, 20, 30, 30000, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:yeti", "Yeti", "default_snow.png", 1) mobs:register_egg("mobs:yeti", "Yeti", "default_snow.png", 1)

View File

@ -59,7 +59,7 @@ mobs:register_mob("mobs:zombie", {
}) })
-- spawn in nether forest between -1 and 5 light, 1 in 6000 change, 1 zombie in area up to 31000 in height -- spawn in nether forest between -1 and 5 light, 1 in 6000 change, 1 zombie in area up to 31000 in height
mobs:spawn_specific("mobs:zombie", {"nether:dirt_top"}, {"air"}, -1, 5, 30, 6600, 1, -31000, 31000) mobs:spawn_specific("mobs:zombie", {"nether:dirt_top"}, {"air"}, -1, 5, 30, 6600, 1, -31000, 31000, false)
-- register spawn egg -- register spawn egg
mobs:register_egg("mobs:zombie", "Zombie", "mobs_zombie_head.png", 1) mobs:register_egg("mobs:zombie", "Zombie", "mobs_zombie_head.png", 1)

View File

@ -55,12 +55,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},
}, nil) }, nil)
self.object:remove() self.object:remove()
local toughness = 0.9 minetest.add_item(self.lastpos, "throwing:arrow_dig")
if math.random() < toughness then
minetest.add_item(self.lastpos, 'throwing:arrow_dig')
else
minetest.add_item(self.lastpos, 'default:stick')
end
end end
end end
end end
@ -68,18 +63,15 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
if self.lastpos.x~=nil then if self.lastpos.x~=nil then
if node.name ~= "air" then if node.name ~= "air" then
self.object:remove()
if minetest.get_item_group(node.name, "unbreakable") == 0 if minetest.get_item_group(node.name, "unbreakable") == 0
and areas:canInteract(self.lastpos, self.player:get_player_name()) and areas:canInteract(self.lastpos, self.player:get_player_name())
and node.diggable ~= false then and node.diggable ~= false then
minetest.set_node(pos, {name = "air"}) minetest.set_node(pos, {name = "air"})
end end
local toughness = 0.65 minetest.add_item(self.lastpos, node.name)
if math.random() < toughness then minetest.add_item(self.lastpos, "throwing:arrow_dig")
minetest.add_item(self.lastpos, 'default:pick_steel') self.object:remove()
else
minetest.add_item(self.lastpos, 'default:stick')
end
end end
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}

View File

@ -17,11 +17,13 @@ minetest.register_on_leaveplayer(function(player)
end) end)
function throwing_shoot_arrow (itemstack, player, stiffness, is_cross) function throwing_shoot_arrow (itemstack, player, stiffness, is_cross)
if not player then return end
local arrow = itemstack:get_metadata() local arrow = itemstack:get_metadata()
itemstack:set_metadata("") itemstack:set_metadata("")
player:set_wielded_item(itemstack) player:set_wielded_item(itemstack)
local playerpos = player:getpos() local playerpos = player:getpos()
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow) local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow)
if not obj then return end
local dir = player:get_look_dir() local dir = player:get_look_dir()
obj:setvelocity({x=dir.x*stiffness, y=dir.y*stiffness, z=dir.z*stiffness}) obj:setvelocity({x=dir.x*stiffness, y=dir.y*stiffness, z=dir.z*stiffness})
obj:setacceleration({x=dir.x*-3, y=-10, z=dir.z*-3}) obj:setacceleration({x=dir.x*-3, y=-10, z=dir.z*-3})
@ -44,6 +46,7 @@ function throwing_unload (itemstack, player, unloaded, wear)
if not minetest.setting_getbool("creative_mode") then if not minetest.setting_getbool("creative_mode") then
player:get_inventory():add_item("main", arrow[1]) player:get_inventory():add_item("main", arrow[1])
end end
break
end end
end end
end end

View File

@ -51,7 +51,7 @@ function throwing_register_arrow_standard (kind, desc, eq, toughness, craft)
if obj:get_luaentity() ~= nil then if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "throwing:arrow_" .. kind .. "_entity" and obj:get_luaentity().name ~= "__builtin:item" then if obj:get_luaentity().name ~= "throwing:arrow_" .. kind .. "_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local speed = vector.length(self.object:getvelocity()) local speed = vector.length(self.object:getvelocity())
local damage = ((speed + eq)^1.2)/10 local damage = ((speed + eq)^1.2)/10 -- Modif MFF, damage tweakable here
obj:punch(self.object, 1.0, { obj:punch(self.object, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},

View File

Before

Width:  |  Height:  |  Size: 472 B

After

Width:  |  Height:  |  Size: 472 B

View File

Before

Width:  |  Height:  |  Size: 431 B

After

Width:  |  Height:  |  Size: 431 B

View File

@ -7,6 +7,7 @@ DISABLE_LONGBOW = false
DISABLE_COMPOSITE_BOW = false DISABLE_COMPOSITE_BOW = false
DISABLE_STEEL_BOW = false DISABLE_STEEL_BOW = false
DISABLE_ROYAL_BOW = false DISABLE_ROYAL_BOW = false
DISABLE_MINOTAUR_HORN_BOW = false
-- Crossbows -- Crossbows
DISABLE_CROSSBOW = false DISABLE_CROSSBOW = false

View File

@ -38,6 +38,24 @@ if not DISABLE_ROYAL_BOW then
}) })
end end
--function throwing_register_bow (name, desc, scale, stiffness, reload_time, toughness, is_cross, craft)
if not DISABLE_MINOTAUR_HORN_BOW then
throwing_register_bow ('bow_minotaur_horn', 'Minotaur Horn Bow', {x=1, y=1.5, z=0.5}, 30, 1, 1000, false, {
{'farming:string', 'mobs:minotaur_horn', 'mobs:minotaur_horn'},
{'farming:string', '', 'moreores:mithril_ingot'},
{'farming:string', 'mobs:minotaur_horn', 'mobs:minotaur_horn'},
})
end
-- NOT YET CHOOSEN, material ? craft ? name ?
--[[if not DISABLE_xxx_BOW then
throwing_register_bow ('bow_xxx', 'xxx Bow', {x=1, y=1.5, z=0.5}, 35, 0.8, 1250, false, {
{'farming:string', 'group:wood', 'default:diamond'},
{'farming:string', '', 'default:gold_ingot'},
{'farming:string', 'group:wood', 'default:diamond'},
})
end--]]
if not DISABLE_CROSSBOW then if not DISABLE_CROSSBOW then
throwing_register_bow ('crossbow', 'Crossbow', {x=1, y=1.3, z=0.5}, 28, 5, 80, true, { throwing_register_bow ('crossbow', 'Crossbow', {x=1, y=1.3, z=0.5}, 28, 5, 80, true, {
{'group:wood', 'farming:string', ''}, {'group:wood', 'farming:string', ''},

View File

@ -1,19 +1,23 @@
News de FR - MinetestForFun (Survival - PVP - Hardcore) News de FR - MinetestForFun (Survival - PVP - Hardcore)
---Bientôt--- ---Bientôt---
/!\ Nouveau mod pour les arcs, équilibré => 90% complété /!\ /!\ Ajout des classes "Hunter" et "Warrior" qui ne vont plus tarder => 85% complété /!\
/!\ Ajout des classes "Hunter" et "Warrior" qui ne vont plus tarder => 80% complété /!\
---Informations--- ---Informations---
Venez visiter notre nouveau site "minetestforfun.com" ! (nouveaux logos/bannières) Venez visiter notre nouveau site "minetestforfun.com" ! (nouveaux logos/bannières)
Pour mieux comprendre ce qui est arrivé récemment au serveur nous vous invitons à lire le dernier article de la section "NEWS > Evénements" de notre site. Pour mieux comprendre ce qui est arrivé récemment au serveur nous vous invitons à lire le dernier article de la section "NEWS > Evénements" de notre site.
---20/07/2015--- (Remerciements : crabman77/crabman, Cyberpangolin, LeMagnesium/Mg, gravgun) ---??/07/2015--- (Remerciements : crabman77/crabman, Cyberpangolin, LeMagnesium/Mg, gravgun)
/!\ Activation du nouveau mod "throwing" en BETA (à la place de l'ancien) /!\
MAJ de "awards" (ajout d'un bouton d'accès à vos awards depuis l'inventaire)
MAJ de "3d_armor" (tous les boucliers ont une nouvelles texture en 32px)
Ajout du mod "automappercolors" (permet la génération automatique de toute les couleurs du mapper au démarrage du serveur)
Suppression du mod "dumpnodes" (devenu inutile, remplacé par "automappercolors")
MAJ de "invtweak" (bugfix de la destruction aléatoire des outils quand vous les utilisez) MAJ de "invtweak" (bugfix de la destruction aléatoire des outils quand vous les utilisez)
MAJ de "homedecor_modpack/building_blocks" (suppression du "tar_knife" car totalement inutile) MAJ de "homedecor_modpack/building_blocks" (suppression du "tar_knife" car totalement inutile)
MAJ de "hud/hbhunger" (l'actualisation de la faim ce fait toute les secondes - auparavant toutes les 0.1 sec - ceci pour réduire la charge serveur, la régénération de vie est maintenant plus lente car les clases vont bientot arrivés et nous préparons l'équilibrage de celles-ci) MAJ de "hud/hbhunger" (l'actualisation de la faim ce fait toute les secondes - auparavant toutes les 0.1 sec - ceci pour réduire la charge serveur, la régénération de vie est maintenant plus lente car les clases vont bientot arrivés et nous préparons l'équilibrage de celles-ci)
MAJ de "track_player" (la position des joueurs est maintenant récupérée toute les 30 secondes) MAJ de "track_player" (la position des joueurs est maintenant récupérée toute les 30 secondes)
MAJ de "mobs" (le taux de spawn du Minotaur a été divisé par 2, les monstres ne spawent plus dans les zones protégées, le Tree Monster gagne un légé taux de drop de "Super Apple" ce qui cet ennemi plus attractif, bugfix du knockback) MAJ de "mobs" (le taux de spawn du Minotaur a été divisé par 2, les monstres ne spawent plus dans les zones protégées, le Tree Monster gagne un légé taux de drop de "Super Apple" ce qui cet ennemi plus attractif, bugfix du knockback, les objets Dungeon Master Blood et Diamond ce dropent maintenant plus facilement)
---18/07/2015--- (Remerciements : LeMagnesium/Mg, crabman77/crabman, gravgun, Ataron, paly2/Palige) ---18/07/2015--- (Remerciements : LeMagnesium/Mg, crabman77/crabman, gravgun, Ataron, paly2/Palige)
MAJ de "track_player" (la position des joueurs est maintenant récupérée toute les 60secondes, celle-ci est utilisée pour l'actualisation du mapper, auparavant toutes les 1 secondes ce qui surchargeait inutilement le serveur) MAJ de "track_player" (la position des joueurs est maintenant récupérée toute les 60secondes, celle-ci est utilisée pour l'actualisation du mapper, auparavant toutes les 1 secondes ce qui surchargeait inutilement le serveur)