--mobs_badplayer v1.4 --maikerumine --made for Extreme Survival game --License for code is WTFPL --friendly npc drops when right click with gold lump. mobs.npc_drops = { "default:pick_steel", "mobs:meat", "default:sword_steel", "default:shovel_steel", "farming:bread", "default:wood" }--Added 20151121 mobs.npc2_drops = { "default:pick_mese", "mobs:meat", "default:sword_diamond", "default:pick_diamond", "farming:bread", "default:wood" }--Added 20151121 ------------------------- --GOOD NPC'S ------------------------- mobs:register_mob("mobs_badplayer:Sam", { type = "npc", hp_min = 25, hp_max = 35, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_1.png", "3d_armor_trans.png", minetest.registered_items["default:sword_steel"].inventory_image,} }, visual_size = {x=1, y=1.0}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 4, damage = 2, drops = { {name = "default:apple", chance = 1, min = 1, max = 2,}, {name = "default:sword_steel", chance = 2, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 13, max=30,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Sam: Let's go kick some Mob butt!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:John", { type = "npc", hp_min = 27, hp_max = 34, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_5.png", "3d_armor_trans.png", minetest.registered_items["default:sword_wood"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 4, damage = 3, drops = { {name = "default:apple", chance = 1, min = 1, max = 5,}, {name = "default:sword_wood", chance = 1, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 13, max=30,}, }, armor = 85, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"John: Let's go grief some monsters!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death2", attack = "default_punch2", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Janette", { type = "npc", hp_min = 13, hp_max = 15, collisionbox = {-0.3, -0.8, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_13.png", "3d_armor_trans.png", minetest.registered_items["default:stick"].inventory_image,} }, visual_size = {x=1, y=.8}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1.6, run_velocity = 4, damage = 2.5, drops = { {name = "default:leaves", chance = 1, min = 3, max = 5,}, {name = "default:sword_steel", chance = 2, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 13, max=30,}, }, armor = 40, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, follow = "default:apple", on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Jannette: Stop flirting with me!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_oerkki_attack", death = "mobs_death1", attack = "default_punch", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Crybaby", { type = "npc", hp_min = 27, hp_max = 45, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_14.png", "3d_armor_trans.png", minetest.registered_items["default:sword_wood"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 4, damage = 3, drops = { {name = "default:papyrus", chance = 1, min = 3, max = 5,}, {name = "default:sword_steel", chance = 2, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 1, max=3,}, }, armor = 90, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Crybaby: I am too whimpy to fight mobs, but I can do my best!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_barbarian_yell1", death = "mobs_death1", attack = "default_punch2", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:SepiaSam", { type = "npc", hp_min = 47, hp_max = 55, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_15.png", "3d_armor_trans.png", minetest.registered_items["default:sword_mese"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1.3, run_velocity = 3.9, damage = 3, drops = { {name = "default:sword_mese", chance = 2, min = 0, max = 1,}, {name = "default:sword_steel", chance = 1, min = 0, max = 1,}, {name = "default:apple", chance = 2, min = 1, max=3,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Sepia Sam: MESE sword + Monster = My pleasure!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death2", attack = "default_punch3", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:OGSam", { type = "npc", hp_min = 37, hp_max = 45, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_17.png", "3d_armor_trans.png", minetest.registered_items["default:sword_wood"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 3.3, damage = 4, drops = { {name = "default:apple", chance = 1, min = 0, max = 5,}, {name = "default:sword_wood", chance = 1, min = 1, max = 1,}, {name = "default:stick", chance = 2, min = 4, max=12,}, }, armor = 90, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"O.G. Sam: Mobs, let me at 'em, I'll splat 'em!!!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch2", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Vanessa", { type = "npc", hp_min = 28, hp_max = 35, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_19.png", "3d_armor_trans.png", minetest.registered_items["default:axe_mese"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1.6, run_velocity = 3.8, drops = { {name = "default:torch", chance = 1, min = 3, max = 5,}, {name = "default:sword_steel", chance = 1, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 13, max=30,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Vanessa: I'll code out the very instance of those mobs!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, --attack_type = "dogshoot", shoot_interval = 0.7, arrow = "mobs_badplayer:axebullet", shoot_offset = 2, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "default_punch", death = "mobs_slash_attack", attack = "default_punch", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:FemaleSam", { type = "npc", hp_min = 92, hp_max = 125, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_20.png", "3d_armor_trans.png", minetest.registered_items["default:pick_steel"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1.7, run_velocity = 3.5, damage = 4, drops = { {name = "default:pick_steel", chance = 4, min = 0, max = 2,}, {name = "default:sword_steel", chance = 7, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 1, max=3,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Female Sam: Minetest is the greatest voxel game ever created!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_stone", death = "mobs_slash_attack", attack = "default_punch2", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Battleboy", { type = "npc", hp_min = 157, hp_max = 180, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_21.png", "3d_armor_trans.png", minetest.registered_items["default:pick_mese"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 14, walk_velocity = 2.5, run_velocity = 7, damage = 4, drops = { {name = "default:pick_mese", chance = 2, min = 0, max = 1,}, {name = "default:sword_steel", chance = 1, min = 0, max = 1,}, {name = "default:apple", chance = 1, min = 1, max=3,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Battlefield 3 Soldier: All suited up, let's roll out and destroy those creatures!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_barbarian_yell1", death = "mobs_barbarian_death", attack = "default_punch3", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Wilbert", { type = "npc", hp_max = 115, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_35.png", "3d_armor_trans.png", minetest.registered_items["default:sword_steel"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 3.5, damage = 5, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch", }, drops = { {name = "default:apple", chance = 1, min = 10, max = 28,}, {name = "default:sword_steel", chance = 2, min = 1, max = 1,}, {name = "default:stick", chance = 2, min = 13, max=30, }, }, armor = 75, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Old man: I am getting too old for this... Okay, I'll help ya!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 17, speed_run = 25, stand_start = 0, stand_end = 40, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 189, punch_end = 191, }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Thelma", { type = "npc", hp_max = 115, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_34.png", "3d_armor_trans.png", minetest.registered_items["default:sword_steel"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 3, damage = 5, sounds = { war_cry = "mobs_oerkki_attack", death = "mobs_death1", attack = "default_punch", }, drops = { {name = "default:jungletree", chance = 1, min = 5, max = 23,}, {name = "default:sword_steel", chance = 2, min = 1, max = 1,}, {name = "default:stick", chance = 2, min = 13, max=30, }, }, armor = 75, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Old woman: I may walk slow, but I can fight like a champ!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 17, speed_run = 25, stand_start = 0, stand_end = 40, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 189, punch_end = 191, }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:DrifterDan", { type = "npc", hp_min = 117, hp_max = 129, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_36.png", "3d_armor_trans.png", minetest.registered_items["default:pick_mese"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 14, walk_velocity = 2.5, run_velocity = 7, damage = 4, drops = { {name = "default:pick_mese", chance = 2, min = 0, max = 1,}, {name = "default:steel_ingot", chance = 1, min = 3, max = 19,}, {name = "default:apple", chance = 1, min = 1, max=3,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Drifter Dan: Let's roll out and destroy those creatures!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_barbarian_yell1", death = "mobs_barbarian_death", attack = "default_punch3", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Mr_White", { type = "npc", hp_min = 35, hp_max = 65, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_38.png", "3d_armor_trans.png", minetest.registered_items["default:sword_wood"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 3, run_velocity = 4, damage = 2, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch", }, drops = { {name = "default:apple", chance = 1, min = 0, max = 2,}, {name = "default:sword_steel", chance = 2, min = 0, max = 1,}, }, armor = 75, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, sounds = { attack = "default_punch1", }, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Mr. White: Let's go kick some Mob butt!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, attacks_monsters = true, peaceful = true, group_attack = true, --step = 1, }) mobs:register_mob("mobs_badplayer:Mr_Pink", { type = "npc", hp_min = 35, hp_max = 65, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_37.png", "3d_armor_trans.png", minetest.registered_items["default:sword_stone"].inventory_image,} }, visual_size = {x=1, y=1}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1, run_velocity = 3, damage = 2, sounds = { war_cry = "mobs_barbarian_yell1", death = "mobs_barbarian_death", attack = "default_punch1", }, drops = { {name = "default:apple", chance = 1, min = 1, max = 2,}, {name = "default:sword_steel", chance = 2, min = 0, max = 1,}, }, armor = 75, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, attack_type = "dogfight", pathfinding = true, sounds = { attack = "default_punch3", }, --TENPLUS1 and CProgrammerRU AWESOME CODES. -- right clicking with cooked meat will give npc more health on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Mr. Pink: My name is Norman, how may I assist?",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, attacks_monsters = true, peaceful = true, group_attack = true, --step = 1, }) ------------------------- --GOOD NPC'S ------------------------- mobs:register_mob("mobs_badplayer:Candy", { type = "npc", hp_min = 125, hp_max = 135, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_41.png", "3d_armor_trans.png", minetest.registered_items["default:diamond"].inventory_image,} --minetest.registered_items["es:sword_ruby"].inventory_image, }, visual_size = {x=1, y=1.0}, makes_footstep_sound = true, view_range = 15, walk_velocity = 1.9, run_velocity = 3.9, damage = 9, drops = { {name = "default:apple", chance = 1, min = 1, max = 5,}, {name = "es:sword_ruby", chance = 5, min = 0, max = 1,}, {name = "default:stick", chance = 2, min = 1, max=4,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 1, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Candy Raver: My Ruby Sword will cut through anything, let's do it!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc2_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) mobs:register_mob("mobs_badplayer:Infiniumman", { type = "npc", hp_min = 25, hp_max = 35, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_40.png", "3d_armor_trans.png", minetest.registered_items["default:sword_diamond"].inventory_image,} }, visual_size = {x=1, y=1.0}, makes_footstep_sound = true, view_range = 15, walk_velocity = 3, run_velocity = 5, damage = 3, drops = { {name = "default:apple", chance = 1, min = 1, max = 2,}, {name = "default:sword_diamond", chance = 3, min = 0, max = 1,}, {name = "default:meselamp", chance = 2, min = 1, max=3,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 5, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Infinium Man: I'll give those monsters a good whack on the head with this Infinium ingot!",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc2_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, attack_type = "dogfight", pathfinding = true, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) --TEXTURE BY: http://minetest.fensta.mobslaced.net/#author=bajanhgk mobs:register_mob("mobs_badplayer:Maikerumine", { type = "npc", hp_min = 95, hp_max = 175, collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "3d_armor_character.b3d", textures = {{"badplayer_39.png", "3d_armor_trans.png", minetest.registered_items["default:book"].inventory_image,} --minetest.registered_items["throwing:bow_steel"].inventory_image, --minetest.registered_items["mobs:bow_wood"].inventory_image, }, visual_size = {x=1, y=1.0}, makes_footstep_sound = true, view_range = 15, walk_velocity = 3, run_velocity = 5, damage = 9, attack_type = "dogfight", pathfinding = true, --attack_type = "shoot", shoot_interval = 0.5, arrow = "mobs:axebullet", shoot_offset = 2, drops = { {name = "default:apple", chance = 1, min = 1, max = 2,}, {name = "default:book", chance = 3, min = 0, max = 1,}, {name = "farming:bread", chance = 2, min = 23, max=90,}, }, armor = 80, drawtype = "front", owner = "", water_damage = 0, lava_damage = 50, light_damage = 0, fear_height = 4, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() --local_chat(clicker:getpos(),"Maikerumine: Maybe a new game is in the works... Hmmm...",3) if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end local pos = self.object:getpos() pos.y = pos.y + 0.5 minetest.add_item(pos, {name = mobs.npc_drops[math.random(1,#mobs.npc2_drops)]}) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "textlist[2.85,0;2.1,0.5;dialog;What can I do for you?]" formspec = formspec .. "button_exit[1,1;2,2;gfollow;follow]" formspec = formspec .. "button_exit[5,1;2,2;gstand;stand]" formspec = formspec .. "button_exit[0,2;4,4;gfandp;follow and protect]" formspec = formspec .. "button_exit[4,2;4,4;gsandp;stand and protect]" --formspec = formspec .. "button_exit[1,2;2,2;ggohome; go home]" --formspec = formspec .. "button_exit[5,2;2,2;gsethome; sethome]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.gfollow then self.order = "follow" self.attacks_monsters = false end if fields.gstand then self.order = "stand" self.attacks_monsters = false end if fields.gfandp then self.order = "follow" self.attacks_monsters = true end if fields.gsandp then self.order = "stand" self.attacks_monsters = true end if fields.gsethome then self.floats = self.object:getpos() end if fields.ggohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, animation = { speed_normal = 30, speed_run = 30, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219, }, sounds = { war_cry = "mobs_die_yell", death = "mobs_death1", attack = "default_punch", }, attacks_monsters = true, peaceful = true, group_attack = true, step = 1, }) --REFERENCE --function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height) --mobs:register_spawn("mobs:dirt_monster", {"default:dirt_with_grass", "ethereal:gray_dirt"}, 7, 0, 7000, 2, 31000) --NOTE: ALWAYS PUT THE REGISTER_SPAWN BELOW THE REGISTER_ENTITY!!!!! mobs:register_spawn("mobs_badplayer:Sam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:John", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:John", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 5, -1, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Janette", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Crybaby", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:SepiaSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:OGSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Vanessa", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:FemaleSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Battleboy", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7,30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Wilbert", {"default:dirt_with_grass","default:snowblock","default:snow_block","default:stone", "default:stonebrick","default:cobble","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Thelma", {"default:dirt_with_grass","default:snowblock","default:snow_block","default:stone", "default:stonebrick","default:cobble","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:DrifterDan", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7,30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Mr_White", {"default:dirt_with_grass", "ethereal:green_dirt","default:grass","default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Mr_Pink", {"default:dirt_with_grass","default:desert_sand","default:sand","default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Candy", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","es:strange_grass","es:aiden_grass"},5, -1, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Infiniumman", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) mobs:register_spawn("mobs_badplayer:Maikerumine", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble","default:dirt_with_dry_grass","es:strange_grass","es:aiden_grass"}, 12, 7, 30000, 1, 31000) --spawn eggs mobs:register_egg("mobs_badplayer:Sam", "NPC Sam", "badplayer_1.png", 1) mobs:register_egg("mobs_badplayer:John", "NPC John", "badplayer_5.png", 1) mobs:register_egg("mobs_badplayer:Janette", "NPC Janette", "badplayer_13.png", 1) mobs:register_egg("mobs_badplayer:Crybaby", "NPC Crybaby", "badplayer_14.png", 1) mobs:register_egg("mobs_badplayer:SepiaSam", "NPC Sepia Sam", "badplayer_15.png", 1) mobs:register_egg("mobs_badplayer:OGSam", "NPC O.G. Sam", "badplayer_17.png", 1) mobs:register_egg("mobs_badplayer:Vanessa", "NPC Vanessa", "badplayer_19.png", 1) mobs:register_egg("mobs_badplayer:FemaleSam", "NPC Female Sam", "badplayer_20.png", 1) mobs:register_egg("mobs_badplayer:Wilbert", "NPC Wilbert", "badplayer_35.png", 1) mobs:register_egg("mobs_badplayer:Thelma", "NPC Thelma", "badplayer_34.png", 1) mobs:register_egg("mobs_badplayer:DrifterDan", "NPC Drifter Dan", "badplayer_36.png", 1) mobs:register_egg("mobs_badplayer:Mr_White", "NPC Mr. White", "badplayer_38.png", 1) mobs:register_egg("mobs_badplayer:Mr_Pink", "NPC Mr. Pink", "badplayer_37.png", 1) mobs:register_egg("mobs_badplayer:Candy", "NPC Candy", "badplayer_41.png", 1) mobs:register_egg("mobs_badplayer:Infiniumman", "NPC Infinium Man", "badplayer_40.png", 1) mobs:register_egg("mobs_badplayer:Maikerumine", "NPC Maikerumine", "badplayer_39.png", 1)