59 lines
1.6 KiB
Lua
59 lines
1.6 KiB
Lua
playereffects.register_effect_type("fly_bottle", "Fly", "wings.png", {"fly"},
|
|
function(player)
|
|
local playername = player:get_player_name()
|
|
local privs = minetest.get_player_privs(playername)
|
|
privs.fly = true
|
|
privs.fast = true
|
|
minetest.set_player_privs(playername, privs)
|
|
end,
|
|
function(effect, player)
|
|
local privs = minetest.get_player_privs(effect.playername)
|
|
privs.fly = nil
|
|
privs.fast = nil
|
|
minetest.set_player_privs(effect.playername, privs)
|
|
end,
|
|
false,
|
|
false)
|
|
|
|
|
|
playereffects.register_effect_type("speed_bottle", "High speed", "speed.png", {"speed"},
|
|
function(player)
|
|
player:set_physics_override({speed=2})
|
|
end,
|
|
function(effect, player)
|
|
player:set_physics_override({speed=1})
|
|
end
|
|
)
|
|
|
|
playereffects.register_effect_type("immortal_bottle", "Immortal", "immortal.png", {"immortal"},
|
|
function(user)
|
|
if user and user:is_player() then
|
|
local groups = user:get_armor_groups()
|
|
|
|
playereffects.preset = groups
|
|
user:set_armor_groups({immortal=1})
|
|
end
|
|
end,
|
|
function(effect, user)
|
|
if user and user:is_player() then
|
|
local groups = user:get_armor_groups()
|
|
if groups.immortal then
|
|
user:set_armor_groups(playereffects.preset)
|
|
end
|
|
end
|
|
end
|
|
)
|
|
|
|
-- TODO: integrate into different mod
|
|
minetest.register_on_joinplayer(function(name, param)
|
|
minetest.after(1, function()
|
|
playereffects.apply_effect_type("immortal_bottle", 20, name)
|
|
end)
|
|
end)
|
|
|
|
minetest.register_on_newplayer(function(name, param)
|
|
minetest.after(1, function()
|
|
playereffects.apply_effect_type("immortal_bottle", 1800, name)
|
|
end)
|
|
end)
|