local S = minetest.get_translator("walkingzombie") local climb_node = { "default:ladder_wood" ,"default:ladder_steel"} local zombienods = { "default:dirt", "default:dirt_with_rainforest", "default:dirt_with_grass", "default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass", "default:dirt_with_coniferous_litter", "default:stone", "default:ice", "default:snowblock", "default:dirt_with_snow", "default:desert_sand", "default:desert_stone", "default:desert_stone", "default:ice", "nodex:road", "nodex:road2", "nodex:road3", } local zdoors = { } ---- SKULL SWORD ------------------------------------------------------------------------------------------------------ mobs:register_mob("walkingzombie:walkingzombie", { --nametag = "Walking Zombie" , type = "monster", passive = false, attack_type = "dogfight", --attack_animals = true, attack_npcs = false, group_attack = true, pathfinding = true, reach = 3, damage = 3, hp_min = 20, hp_max = 20, armor = 100, collisionbox = {-0.4, 0, -0.4, 0.4, 1.8, 0.4}, visual = "mesh", mesh = "walkingzombie.b3d", --rotate = 180, textures = { {"walkingzombie2.png"}, {"walkingzombie.png"}, }, --glow = 4, --blood_texture = " ", makes_footstep_sound = true, sounds = { --random ="zombie_angry", --attack = "zombie_hit", death = "zombie_death ", }, walk_velocity = 1, run_velocity = 3, jump_height = 2, stepheight = 1.1, floats = 0, view_range = 35, drops = { {name = "default:coal_lump", chance = 2, min = 1, max = 1}, {name = "farming:bread 3", chance = 2, min = 1, max = 1}, {name = "foodx:canned_tomato", chance = 4, min = 1, max = 1}, }, water_damage = 0, lava_damage = 1, light_damage = 0, animation = { speed_normal = 15, speed_run = 15, stand_start = 0, stand_end = 80, walk_start = 100, walk_end = 180, run_start = 200, run_end = 240, punch_start = 200, punch_end = 240, die_start = 280, 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 }) mobs:spawn({ name = "walkingzombie:walkingzombie", nodes = hunternods, min_light = 0, max_light = 7, -- 14 chance = 7000, min_height = -100, max_height = 200, --max_height = 200, active_object_count = 1, }) mobs:register_egg("walkingzombie:walkingzombie", S("Walking Zombie"), "zombies_egg.png", 0)