From 19a2dea36779328a229adea5801a2dc33b62b77e Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Tue, 23 Jun 2015 17:46:00 +0200 Subject: [PATCH] Added broomstick by @paly2 - Added a broomstick craftable from wheat and sticks, and allowing you to fly for 2 minutes using 210 units of mana --- mods/broomstick/depends.txt | 1 + mods/broomstick/init.lua | 87 ++++++++++++++++++++++++ mods/broomstick/textures/broomstick.png | Bin 0 -> 1134 bytes worlds/minetestforfun/news.txt | 3 + worlds/minetestforfun/world.mt | 1 + 5 files changed, 92 insertions(+) create mode 100755 mods/broomstick/depends.txt create mode 100755 mods/broomstick/init.lua create mode 100755 mods/broomstick/textures/broomstick.png 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 0000000000000000000000000000000000000000..c6e4584fc7f290c11e98bc2d1502f797751a6aa0 GIT binary patch literal 1134 zcmV-!1d;oRP)88Ygr>K8*kX02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00Y)ZL_t(o!|j(}Oj~sn$G_+P zqj&w6+qK0K3S6Kt5pW6t_00q%#`z~%NM^#bKA7mslKE;(%ocq$M)$Jl;)98Any4(q zZR(sbqRl8c%l`lm z0bsx?gROGS0i@j@*5;--lU#vvzzuhx8&1DYqTEm)fMU+T+SN&HF8&EYl3;WC(EsXj zb~kpBAWF3lfoyZ4W#A1I^Cn999Fj|6TswCf+2k@aTlL8Sf5#B@j=hUw?lwpOR>D7E z;qo`grEhY5l8^}c@KNe`{uqk6EHbGz-1y~dEdTW*@|o0Ib*Ta(0lhE3N3G8uf!uHa z>Gde)r%q!ddg=2*HeH`SKqO#b`~zz09fhc@+ zgq*pFo7aBDdh`;Cg&dw{o(%SnkrHi28dvHI1p@Z zMtAoi=(;ENY8ARdpSTrS@SP_bOoH1zfLp|`h>91h1GZ#>dS=JWX| z6zYPaD0q+|%#2hjg_)Td%+6lnbUNL>`@cs5kR%B$EiI=;Mn(|`1nxrYx+IgyAQFjS zZfSBL=^S_5D_Fvf+YRhoQlQLiJI&M{m%^1@bGhJknchX zf&f)j;dDCTbh_Yh*r6!OXjRJaVY0LsmqK@U70FEmYq-|s^p(6rMR zYO)!%w&~>eH=Jd{*U{P8d8)DT36f@2IQ4f%Wl*=z=0uNNMV z=ZdCz2E|>E6xC`yujnn6O0X;oq9{U=_P%}p0JzkaL;EM>7ytkO07*qoM6N<$g6A|0 A761SM literal 0 HcmV?d00001 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