update npc drops and skins

master
tenplus1 2021-04-25 13:20:08 +01:00
parent 446fa0215c
commit aac3e4650e
5 changed files with 51 additions and 21 deletions

View File

@ -4,8 +4,12 @@ local S = mobs.intllib
-- Igor by TenPlus1
mobs.igor_drops = {
"vessels:glass_bottle", "mobs:meat_raw", "default:sword_steel",
"farming:bread", "bucket:bucket_water"
"vessels:glass_bottle", "mobs:meat_raw", {"default:sword_steel", 2},
"farming:bread", {"bucket:bucket_water", 2}, "flowers:mushroom_red",
"default:jungletree", {"fire:flint_and_steel", 3}, "mobs:leather",
"default:acacia_sapling", {"fireflies:bug_net", 3}, "default:clay_lump",
"default:ice", "default:coral_brown", "default:iron_lump",
"default:obsidian_shard", "default:mossycobble", {"default:obsidian", 2}
}
mobs:register_mob("mobs_npc:igor", {
@ -31,7 +35,7 @@ mobs:register_mob("mobs_npc:igor", {
{"mobs_igor5.png"},
{"mobs_igor6.png"},
{"mobs_igor7.png"},
{"mobs_igor8.png"},
{"mobs_igor8.png"}
},
makes_footstep_sound = true,
sounds = {},
@ -42,7 +46,7 @@ mobs:register_mob("mobs_npc:igor", {
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 2},
{name = "default:gold_lump", chance = 3, min = 1, max = 1},
{name = "default:gold_lump", chance = 3, min = 1, max = 1}
},
water_damage = 1,
lava_damage = 3,
@ -51,7 +55,6 @@ mobs:register_mob("mobs_npc:igor", {
view_range = 15,
owner = "",
order = "follow",
-- model animation
animation = {
speed_normal = 30,
speed_run = 30,
@ -62,8 +65,9 @@ mobs:register_mob("mobs_npc:igor", {
run_start = 168,
run_end = 187,
punch_start = 200,
punch_end = 219,
punch_end = 219
},
-- right clicking with raw meat will give Igor more health
on_rightclick = function(self, clicker)
@ -88,10 +92,20 @@ mobs:register_mob("mobs_npc:igor", {
pos.y = pos.y + 0.5
local drops = self.igor_drops or mobs.igor_drops
local drop = drops[math.random(#drops)]
local chance = 1
minetest.add_item(pos, {
name = drops[math.random(1, #drops)]
})
if type(drop) == "table" then
chance = drop[2]
drop = drop[1]
end
if not minetest.registered_items[drop]
or math.random(chance) > 1 then
drop = "default:coal_lump"
end
minetest.add_item(pos, {name = drop})
minetest.chat_send_player(name, S("NPC dropped you an item for gold!"))
@ -112,12 +126,13 @@ mobs:register_mob("mobs_npc:igor", {
minetest.chat_send_player(name, S("NPC stands still."))
else
self.order = "follow"
minetest.chat_send_player(name, S("NPC will follow you."))
end
end
end,
})
-- register spawn egg
mobs:register_egg("mobs_npc:igor", S("Igor"), "mobs_meat_raw.png", 1)
-- compatibility

View File

@ -5,7 +5,6 @@ if minetest.get_modpath("lucky_block") then
{"spw", "mobs:npc", 1, true, true},
{"spw", "mobs:igor", 1, true, true, 5, "Igor"},
{"spw", "mobs:trader", 1, false, false},
{"lig", "fire:permanent_flame"},
{"lig", "fire:permanent_flame"}
})
end

34
npc.lua
View File

@ -4,8 +4,12 @@ local S = mobs.intllib
-- Npc by TenPlus1
mobs.npc_drops = {
"default:pick_steel", "mobs:meat", "default:sword_steel",
"default:shovel_steel", "farming:bread", "bucket:bucket_water"
{"default:pick_steel", 2}, "mobs:meat", {"default:sword_steel", 2},
{"default:shovel_steel", 2}, "farming:bread", "bucket:bucket_water",
"default:sapling", "default:tree", "mobs:leather", "default:coral_orange",
{"default:mese_crystal_fragment", 3}, "default:clay", {"default:sign_wall", 2},
"default:ladder", "default:copper_lump", "default:blueberries",
"default:aspen_sapling", "default:permafrost_with_moss"
}
mobs:register_mob("mobs_npc:npc", {
@ -27,9 +31,11 @@ mobs:register_mob("mobs_npc:npc", {
textures = {
{"mobs_npc.png"},
{"mobs_npc2.png"}, -- female by nuttmeg20
{"mobs_npc3.png"}, -- male by swagman181818
{"mobs_npc4.png"} -- female by Sapphire16
},
child_texture = {
{"mobs_npc_baby.png"}, -- derpy baby by AmirDerAssassine
{"mobs_npc_baby.png"} -- derpy baby by AmirDerAssassine
},
makes_footstep_sound = true,
sounds = {},
@ -39,7 +45,7 @@ mobs:register_mob("mobs_npc:npc", {
drops = {
{name = "default:wood", chance = 1, min = 1, max = 3},
{name = "default:apple", chance = 2, min = 1, max = 2},
{name = "default:axe_stone", chance = 5, min = 1, max = 1},
{name = "default:axe_stone", chance = 5, min = 1, max = 1}
},
water_damage = 0,
lava_damage = 2,
@ -59,7 +65,7 @@ mobs:register_mob("mobs_npc:npc", {
run_start = 168,
run_end = 187,
punch_start = 200,
punch_end = 219,
punch_end = 219
},
on_rightclick = function(self, clicker)
@ -89,10 +95,20 @@ mobs:register_mob("mobs_npc:npc", {
pos.y = pos.y + 0.5
local drops = self.npc_drops or mobs.npc_drops
local drop = drops[math.random(#drops)]
local chance = 1
minetest.add_item(pos, {
name = drops[math.random(1, #drops)]
})
if type(drop) == "table" then
chance = drop[2]
drop = drop[1]
end
if not minetest.registered_items[drop]
or math.random(chance) > 1 then
drop = "default:clay_lump"
end
minetest.add_item(pos, {name = drop})
minetest.chat_send_player(name, S("NPC dropped you an item for gold!"))
@ -129,7 +145,7 @@ mobs:spawn({
chance = 10000,
active_object_count = 1,
min_height = 0,
day_toggle = true,
day_toggle = true
})
end

BIN
textures/mobs_npc3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

BIN
textures/mobs_npc4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B