Code: Select all
local function healing_effect(itemstack, user)
local player_hp = user:get_hp()
local hp_change = 3
local player_pos = user:get_pos()
if player_hp < 20 then
minetest.add_particlespawner({
amount = 1,
time = 2,
minpos = {x = player_pos.x + 0.4, y = player_pos.y + 2, z = player_pos.z + 0.4},
maxpos = {x = player_pos.x + 0.8, y = player_pos.y + 2, z = player_pos.z + 0.8},
minvel = {x = 0, y = 0.2, z = 0},
maxvel = {x = 0, y = 0.4, z = 0},
minexptime = time,
maxexptime = time,
minsize = 4,
colissiondetection = true,
texture = "healing_effect.png",
playername = user:get_player_name()
})
minetest.add_particlespawner({
amount = 1,
time = 2,
minpos = {x = player_pos.x - 0.4, y = player_pos.y + 2, z = player_pos.z - 0.4},
maxpos = {x = player_pos.x - 0.8, y = player_pos.y + 2, z = player_pos.z - 0.8},
minvel = {x = 0, y = 0.2, z = 0},
maxvel = {x = 0, y = 0.4, z = 0},
minexptime = time,
maxexptime = time,
minsize = 4,
colissiondetection = true,
texture = "healing_effect.png",
playername = user:get_player_name()
})
minetest.add_particlespawner({
amount = 1,
time = 2,
minpos = {x = player_pos.x - 0.4, y = player_pos.y + 2, z = player_pos.z + 0.4},
maxpos = {x = player_pos.x - 0.8, y = player_pos.y + 2, z = player_pos.z + 0.8},
minvel = {x = 0, y = 0.2, z = 0},
maxvel = {x = 0, y = 0.4, z = 0},
minexptime = time,
maxexptime = time,
minsize = 4,
colissiondetection = true,
texture = "healing_effect.png",
playername = user:get_player_name()
})
minetest.add_particlespawner({
amount = 1,
time = 2,
minpos = {x = player_pos.x + 0.4, y = player_pos.y + 2, z = player_pos.z - 0.4},
maxpos = {x = player_pos.x + 0.8, y = player_pos.y + 2, z = player_pos.z - 0.8},
minvel = {x = 0, y = 0.2, z = 0},
maxvel = {x = 0, y = 0.4, z = 0},
minexptime = time,
maxexptime = time,
minsize = 4,
colissiondetection = true,
texture = "healing_effect.png",
playername = user:get_player_name()
})
while player_hp ~= 20 do
if player_hp >= 20 then
local playername = user:get_player_name()
minetest.chat_send_player(playername, "You are cured!")
break
end
player_hp = player_hp + hp_change
minetest.after(3, function()
user:set_hp(player_hp)
end)
end
end
end
minetest.register_craftitem('medicine:healing_pill', {
description = 'Healing Pill',
inventory_image = 'healing_pill.png',
stack_max = 12,
on_use = function(itemstack, user, pointed_thing)
itemstack:take_item()
return itemstack, healing_effect(itemstack, user)
end
})