diff --git a/mods/broomstick/depends.txt b/mods/broomstick/depends.txt new file mode 100755 index 00000000..636d7dae --- /dev/null +++ b/mods/broomstick/depends.txt @@ -0,0 +1 @@ +mana \ No newline at end of file diff --git a/mods/broomstick/init.lua b/mods/broomstick/init.lua new file mode 100755 index 00000000..f85469b0 --- /dev/null +++ b/mods/broomstick/init.lua @@ -0,0 +1,87 @@ +local broomstick_time = 120 -- Seconds (for default 2 minutes) +local broomstick_mana = 210 +local broomstick_actual_users = {} +local had_fly_privilege = {} +local privs = {} + +-- Register broomstick +minetest.register_craftitem("broomstick:broomstick", { + description = "Broomstick", + inventory_image = "broomstick.png", + on_use = function(itemstack, user, pointed_thing) + local playername = user:get_player_name() + if mana.get(playername) >= broomstick_mana then + local has_already_a_broomstick = false + for i in ipairs(broomstick_actual_users) do + if i.name == playername then + has_already_a_broomstick = true + end + end + if not has_already_a_broomstick then + privs = minetest.get_player_privs(playername) + -- Set player privs... + if not privs.fly == true then + privs.fly = true + minetest.set_player_privs(playername, privs) + else + minetest.chat_send_player(playername, "You known you " .. + "can fly by yourself, don't you?") + return + end + -- Send a message... + minetest.chat_send_player(playername, "You can now fly during " + .. tostring(broomstick_time) .. " seconds.") + minetest.log("action", "Player " .. playername + .." has use a broomstick.") + -- Subtract mana... + mana.subtract(playername, broomstick_mana) + -- And insert player in the list. + table.insert(broomstick_actual_users, { + name = playername, + time = 0, + is_warning_said = false + }) + -- Remove broomstick... + return ItemStack("") + else + minetest.chat_send_player(playername, "You already have a " .. + "broomstick ! Please wait until the end of your actual " .. + "broomstick.") + end + else + minetest.chat_send_player(playername, "You must have " .. + tostring(broomstick_mana) .. " of mana to use a broomstick !") + end + end, +}) + +-- Broomstick timer +minetest.register_globalstep(function(dtime) + for index, i in ipairs(broomstick_actual_users) do + i.time = i.time + dtime + -- Just a little warning message + if i.time >= broomstick_time - 10 and not i.is_warning_said then + minetest.chat_send_player(i.name, + "WARNING ! You'll fall in 10 seconds !") + i.is_warning_said = true + elseif i.time >= broomstick_time then + -- Send a message... + minetest.chat_send_player(i.name, "End of broomstick. " .. + "I hope you're not falling down...") + -- Set player privs... + privs = minetest.get_player_privs(i.name) + privs["fly"] = nil + minetest.set_player_privs(i.name, privs) + -- And remove the player in the list. + table.remove(broomstick_actual_users, index) + end + end +end) + +-- Craft +minetest.register_craft({ + output = "broomstick:broomstick", + recipe = {{"default:stick","default:stick","farming:wheat",}}, +}) + +minetest.log("action", "[OK] broomstick") diff --git a/mods/broomstick/textures/broomstick.png b/mods/broomstick/textures/broomstick.png new file mode 100755 index 00000000..c6e4584f Binary files /dev/null and b/mods/broomstick/textures/broomstick.png differ diff --git a/worlds/minetestforfun/news.txt b/worlds/minetestforfun/news.txt index 3da028a8..254e5ffd 100755 --- a/worlds/minetestforfun/news.txt +++ b/worlds/minetestforfun/news.txt @@ -4,6 +4,9 @@ News de FR - MinetestForFun (Survival - PVP - Hardcore) /!\ Le serveur étant devenu stable, les MAJs vont se rarifier pour un temps /!\ /!\ En effet, nous profitons de cette stabilitée pour préparer une grosse MAJ qui boulversera à jamais le gameplay de Minetest /!\ +---Next merge--- (Remerciements : ???) +Ajout du mod "broomstick" de palige (permet d'utiliser un balai volant contre 210 de mana) + ---21/06/2015--- (Remerciements : mgl512/Le_Docteur, LeMagnesium/Mg, crabman77/crabman, Obani) MAJ de "tsm_pyramids/mummy.lua" (bugfix de la texture des mommies) MAJ de "plantlife" (amélioration du code, bugfix) diff --git a/worlds/minetestforfun/world.mt b/worlds/minetestforfun/world.mt index f6fb25f6..df53ae34 100755 --- a/worlds/minetestforfun/world.mt +++ b/worlds/minetestforfun/world.mt @@ -152,6 +152,7 @@ load_mod_sprint = true load_mod_mana = true load_mod_solarmana = true load_mod_runes = false +load_mod_broomstick = true load_mod_awards = true load_mod_fail = true