mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2024-12-24 17:50:37 +01:00
Merge branch 'master' of github.com:Ombridride/minetest-minetestforfun-server
This commit is contained in:
commit
ae3d4b3923
@ -107,11 +107,16 @@ local function resolve_commands(commands, pos)
|
||||
farthest = player:get_player_name()
|
||||
end
|
||||
end
|
||||
local random = players[math.random(#players)]:get_player_name()
|
||||
commands = commands:gsub("@nearest", nearest)
|
||||
commands = commands:gsub("@farthest", farthest)
|
||||
commands = commands:gsub("@random", random)
|
||||
return commands
|
||||
local randomp = players[math.random(#players)]
|
||||
if randomp then
|
||||
local random = randomp:get_player_name()
|
||||
commands = commands:gsub("@nearest", nearest)
|
||||
commands = commands:gsub("@farthest", farthest)
|
||||
commands = commands:gsub("@random", random)
|
||||
return commands
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
local function commandblock_action_on(pos, node)
|
||||
|
@ -212,11 +212,13 @@ function mobs:register_mob(name, def)
|
||||
and self.child == false
|
||||
and math.random(1,self.replace_rate) == 1 then
|
||||
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
|
||||
-- print ("replace node = ".. minetest.get_node(pos).name, pos.y)
|
||||
if self.replace_what
|
||||
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
|
||||
minetest.set_node(pos, {name = self.replace_with})
|
||||
end
|
||||
@ -1197,7 +1199,7 @@ end
|
||||
|
||||
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
|
||||
minetest.register_abm({
|
||||
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
|
||||
if mobs.protected == 1
|
||||
and minetest.is_protected(pos, "") then
|
||||
and minetest.is_protected(pos, "")
|
||||
and not spawn_in_area then
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -50,7 +50,7 @@ mobs:register_mob("mobs:bee", {
|
||||
end,
|
||||
})
|
||||
-- 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
|
||||
mobs:register_egg("mobs:bee", "Bee", "mobs_bee_inv.png", 0)
|
||||
|
||||
|
@ -94,5 +94,5 @@ mobs:register_mob("mobs:bunny", {
|
||||
attack_type = "dogfight",
|
||||
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)
|
||||
|
@ -98,7 +98,7 @@ mobs:register_mob("mobs:chicken", {
|
||||
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
|
||||
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
|
||||
mobs:register_egg("mobs:chicken", "Chicken", "mobs_chicken_inv.png", 0)
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:cow", "Cow", "default_grass.png", 1)
|
||||
|
||||
|
@ -52,5 +52,5 @@ mobs:register_mob("mobs:creeper", {
|
||||
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)
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:dirt_monster", "Dirt Monster", "default_dirt.png", 1)
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:dungeon_master", "Dungeon Master", "fire_basic_flame.png", 1)
|
||||
|
||||
|
@ -61,6 +61,6 @@ mobs:register_mob("mobs:goat", {
|
||||
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
|
||||
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
|
||||
mobs:register_egg("mobs:goat", "Goat", "default_grass.png", 1)
|
||||
|
@ -158,8 +158,8 @@ mobs:register_mob("mobs:greenbig", {
|
||||
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("mobs:greenbig", {"default:acid_source"},{"default:acid_flowing"}, -1, 20, 30, 4000, 1, -32000, 32000)
|
||||
mobs:spawn_specific("mobs:greenmedium", {"default:acid_source"},{"default:acid_flowing"},-1, 20, 30, 4000, 2, -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, false)
|
||||
--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)
|
||||
|
@ -79,5 +79,5 @@ mobs:register_mob("mobs:kitten", {
|
||||
mobs:capture_mob(self, clicker, 50, 50, 90, false, nil)
|
||||
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)
|
||||
|
@ -56,7 +56,7 @@ mobs:register_mob("mobs:lava_flan", {
|
||||
end,
|
||||
})
|
||||
-- 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
|
||||
mobs:register_egg("mobs:lava_flan", "Lava Flan", "default_lava.png", 1)
|
||||
|
||||
|
@ -165,9 +165,9 @@ mobs:register_mob("mobs:lavabig", {
|
||||
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("mobs:lavabig", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 4000, 1, -32000, 32000)
|
||||
mobs:spawn_specific("mobs:lavamedium", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 4000, 2, -32000, 32000)
|
||||
--mobs:spawn_specific("mobs:lavasmall", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 10s000, 2, -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, false)
|
||||
--mobs:spawn_specific("mobs:lavasmall", {"default:lava_source"},{"default:lava_flowing"}, -1, 20, 30, 10s000, 2, -32000, 32000, false)
|
||||
|
||||
-- lava orb
|
||||
minetest.register_craftitem("mobs:lava_orb", {
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:mese_monster", "Mese Monster", "default_mese_block.png", 1)
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:minotaur", "Minotaur", "default_desert_sand.png", 1)
|
||||
|
||||
|
@ -125,6 +125,6 @@ mobs:register_mob("mobs:npc", {
|
||||
end,
|
||||
})
|
||||
-- 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
|
||||
mobs:register_egg("mobs:npc", "Npc", "default_brick.png", 1)
|
||||
|
@ -58,6 +58,6 @@ mobs:register_mob("mobs:oerkki", {
|
||||
replace_offset = -1,
|
||||
})
|
||||
-- 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
|
||||
mobs:register_egg("mobs:oerkki", "Oerkki", "default_obsidian.png", 1)
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:rat", "Rat", "mobs_rat_inventory.png", 0)
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:sand_monster", "Sand Monster", "default_desert_sand.png", 1)
|
||||
|
@ -152,7 +152,7 @@ mobs:register_mob("mobs:sheep", {
|
||||
end,
|
||||
})
|
||||
-- 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
|
||||
mobs:register_egg("mobs:sheep", "Sheep", "wool_white.png", 1)
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:spider", "Spider", "mobs_cobweb.png", 1)
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:stone_monster", "Stone Monster", "default_stone.png", 1)
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:tree_monster", "Tree Monster", "default_tree_top.png", 1)
|
||||
|
||||
|
@ -94,7 +94,7 @@ mobs:register_mob("mobs:pumba", {
|
||||
end,
|
||||
})
|
||||
-- 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
|
||||
mobs:register_egg("mobs:pumba", "Warthog", "wool_pink.png", 1)
|
||||
|
||||
|
@ -67,5 +67,5 @@ mobs:register_mob("mobs:wolf", {
|
||||
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)
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:yeti", "Yeti", "default_snow.png", 1)
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
mobs:register_egg("mobs:zombie", "Zombie", "mobs_zombie_head.png", 1)
|
||||
|
||||
|
@ -55,12 +55,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
|
||||
damage_groups={fleshy=damage},
|
||||
}, nil)
|
||||
self.object:remove()
|
||||
local toughness = 0.9
|
||||
if math.random() < toughness then
|
||||
minetest.add_item(self.lastpos, 'throwing:arrow_dig')
|
||||
else
|
||||
minetest.add_item(self.lastpos, 'default:stick')
|
||||
end
|
||||
minetest.add_item(self.lastpos, "throwing:arrow_dig")
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -68,18 +63,15 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
|
||||
|
||||
if self.lastpos.x~=nil then
|
||||
if node.name ~= "air" then
|
||||
self.object:remove()
|
||||
|
||||
if minetest.get_item_group(node.name, "unbreakable") == 0
|
||||
and areas:canInteract(self.lastpos, self.player:get_player_name())
|
||||
and node.diggable ~= false then
|
||||
minetest.set_node(pos, {name = "air"})
|
||||
end
|
||||
local toughness = 0.65
|
||||
if math.random() < toughness then
|
||||
minetest.add_item(self.lastpos, 'default:pick_steel')
|
||||
else
|
||||
minetest.add_item(self.lastpos, 'default:stick')
|
||||
end
|
||||
minetest.add_item(self.lastpos, node.name)
|
||||
minetest.add_item(self.lastpos, "throwing:arrow_dig")
|
||||
self.object:remove()
|
||||
end
|
||||
end
|
||||
self.lastpos={x=pos.x, y=pos.y, z=pos.z}
|
||||
|
@ -17,11 +17,13 @@ minetest.register_on_leaveplayer(function(player)
|
||||
end)
|
||||
|
||||
function throwing_shoot_arrow (itemstack, player, stiffness, is_cross)
|
||||
if not player then return end
|
||||
local arrow = itemstack:get_metadata()
|
||||
itemstack:set_metadata("")
|
||||
player:set_wielded_item(itemstack)
|
||||
local playerpos = player:getpos()
|
||||
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()
|
||||
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})
|
||||
@ -44,6 +46,7 @@ function throwing_unload (itemstack, player, unloaded, wear)
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
player:get_inventory():add_item("main", arrow[1])
|
||||
end
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -51,7 +51,7 @@ function throwing_register_arrow_standard (kind, desc, eq, toughness, craft)
|
||||
if obj:get_luaentity() ~= nil 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 damage = ((speed + eq)^1.2)/10
|
||||
local damage = ((speed + eq)^1.2)/10 -- Modif MFF, damage tweakable here
|
||||
obj:punch(self.object, 1.0, {
|
||||
full_punch_interval=1.0,
|
||||
damage_groups={fleshy=damage},
|
||||
|
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 472 B |
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 431 B |
@ -7,6 +7,7 @@ DISABLE_LONGBOW = false
|
||||
DISABLE_COMPOSITE_BOW = false
|
||||
DISABLE_STEEL_BOW = false
|
||||
DISABLE_ROYAL_BOW = false
|
||||
DISABLE_MINOTAUR_HORN_BOW = false
|
||||
|
||||
-- Crossbows
|
||||
DISABLE_CROSSBOW = false
|
||||
|
@ -38,6 +38,24 @@ if not DISABLE_ROYAL_BOW then
|
||||
})
|
||||
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
|
||||
throwing_register_bow ('crossbow', 'Crossbow', {x=1, y=1.3, z=0.5}, 28, 5, 80, true, {
|
||||
{'group:wood', 'farming:string', ''},
|
||||
|
@ -1,19 +1,23 @@
|
||||
News de FR - MinetestForFun (Survival - PVP - Hardcore)
|
||||
|
||||
---Bientôt---
|
||||
/!\ Nouveau mod pour les arcs, équilibré => 90% complété /!\
|
||||
/!\ Ajout des classes "Hunter" et "Warrior" qui ne vont plus tarder => 80% complété /!\
|
||||
/!\ Ajout des classes "Hunter" et "Warrior" qui ne vont plus tarder => 85% complété /!\
|
||||
|
||||
---Informations---
|
||||
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.
|
||||
|
||||
---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 "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 "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)
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user