Regnum/mods/tutorial/basic/other.lua

4431 lines
177 KiB
Lua

minetest.register_on_joinplayer(function(player)
minetest.setting_set("node_highlighting", "box")
minetest.setting_set("disable_anticheat", "true")
minetest.setting_set("bones_mode", "keep")
minetest.setting_set("time_speed", "0")
minetest.set_timeofday(0.5)
local player_inv = player:get_inventory()
local g1 = player_inv:get_stack("gem", 1):get_name()
local g2 = player_inv:get_stack("gem", 2):get_name()
local g3 = player_inv:get_stack("gem", 3):get_name()
local g4 = player_inv:get_stack("gem", 4):get_name()
local g5 = player_inv:get_stack("gem", 5):get_name()
local g21 = player_inv:get_stack("2gem", 1):get_name()
local g22 = player_inv:get_stack("2gem", 2):get_name()
local g23 = player_inv:get_stack("2gem", 3):get_name()
local g24 = player_inv:get_stack("2gem", 4):get_name()
local g25 = player_inv:get_stack("2gem", 5):get_name()
local gg1 = 0
local gg2 = 0
local gg3 = 0
local gg4 = 0
local gg5 = 0
local gg21 = 0
local gg22 = 0
local gg23 = 0
local gg24 = 0
local gg25 = 0
if g1 == "tutorial:magic_gem1" then
gg1 = 1
end
if g2 == "tutorial:magic_gem2" then
gg2 = 1
end
if g3 == "tutorial:magic_gem3" then
gg3 = 1
end
if g4 == "tutorial:magic_gem4" then
gg4 = 1
end
if g5 == "tutorial:magic_gem5" then
gg5 = 1
end
if g21 == "tutorial:magic_gem1" then
gg21 = 1
end
if g22 == "tutorial:magic_gem2" then
gg22 = 1
end
if g23 == "tutorial:magic_gem3" then
gg23 = 1
end
if g24 == "tutorial:magic_gem4" then
gg24 = 1
end
if g25 == "tutorial:magic_gem5" then
gg25 = 1
end
if gg1 == 1 and gg2 == 1 and gg3 == 1 and gg4 == 1 and gg5 == 1 then
local punched_player_privs = minetest.get_player_privs(player:get_player_name())
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
minetest.set_player_privs(player:get_player_name(), punched_player_privs)
end
if gg21 == 1 and gg22 == 1 and gg23 == 1 and gg24 == 1 and gg25 == 1 then
local punched_player_privs = minetest.get_player_privs(player:get_player_name())
punched_player_privs["fast"] = true
minetest.set_player_privs(player:get_player_name(), punched_player_privs)
end
end)
minetest.register_on_shutdown(function()
minetest.setting_set("disable_anticheat", "false")
minetest.setting_set("bones_mode", "bones")
minetest.setting_set("time_speed", "72")
end)
local gem = {}
gem.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("gem", 5)
player_inv:set_size("2gem", 5)
local g1 = player_inv:get_stack("gem", 1):get_name()
local g2 = player_inv:get_stack("gem", 2):get_name()
local g3 = player_inv:get_stack("gem", 3):get_name()
local g4 = player_inv:get_stack("gem", 4):get_name()
local g5 = player_inv:get_stack("gem", 5):get_name()
local g21 = player_inv:get_stack("2gem", 1):get_name()
local g22 = player_inv:get_stack("2gem", 2):get_name()
local g23 = player_inv:get_stack("2gem", 3):get_name()
local g24 = player_inv:get_stack("2gem", 4):get_name()
local g25 = player_inv:get_stack("2gem", 5):get_name()
formspec = "size[8,8.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[8,8.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."image[1.5,1.25;1,1;tutorial_gem1.png]"
.."image[2.5,1.25;1,1;tutorial_gem2.png]"
.."image[3.5,1.25;1,1;tutorial_gem3.png]"
.."image[4.5,1.25;1,1;tutorial_gem4.png]"
.."image[5.5,1.25;1,1;tutorial_gem5.png]"
if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then
else
formspec = formspec
.."list[current_player;gem;1.5,1.25;5,1;]"
end
if g21 == "tutorial:magic_gem1" and g22 == "tutorial:magic_gem2" and g23 == "tutorial:magic_gem3" and g24 == "tutorial:magic_gem4" and g25 == "tutorial:magic_gem5" then
formspec = formspec
.."image[1.5,2.25;1,1;tutorial_gem1.png]"
.."image[2.5,2.25;1,1;tutorial_gem2.png]"
.."image[3.5,2.25;1,1;tutorial_gem3.png]"
.."image[4.5,2.25;1,1;tutorial_gem4.png]"
.."image[5.5,2.25;1,1;tutorial_gem5.png]"
else
if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then
formspec = formspec
.."list[current_player;2gem;1.5,2.25;5,1;]"
.."image[1.5,2.25;1,1;tutorial_gem1.png]"
.."image[2.5,2.25;1,1;tutorial_gem2.png]"
.."image[3.5,2.25;1,1;tutorial_gem3.png]"
.."image[4.5,2.25;1,1;tutorial_gem4.png]"
.."image[5.5,2.25;1,1;tutorial_gem5.png]"
end
end
formspec = formspec
.."list[current_player;main;0,4.25;8,1;]"
.."list[current_player;main;0,5.5;8,3;8]"
return formspec
end
local crafting5 = {}
crafting5.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("gem1", 8)
player_inv:set_size("gem2", 8)
formspec = "size[10,8.3]"
.."background[10,8.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;cr;Back]"
.."button[2,0;2,0.5;main;Main]"
.."list[current_player;gem1;2,1;8,1;]"
.."label[0,1.2;Gem fragment]"
.."list[current_player;gem2;2,2;8,1;]"
.."label[0,2.2;Uranium Ingot]"
.."button[4,3.3;2,0.5;craftgem;craft]"
.."list[current_player;main;1,4.25;8,1;]"
.."list[current_player;main;1,5.5;8,3;8]"
return formspec
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
local player_inv = player:get_inventory()
player_inv:set_size("rew", 1)
player_inv:set_size("rewb", 1)
local rew = player_inv:get_stack("rew", 1):get_count()
local rewb = player_inv:get_stack("rewb", 1):get_count()
player_inv:set_size("a1", 1)
player_inv:set_size("a2", 1)
player_inv:set_size("a3", 1)
player_inv:set_size("a4", 1)
player_inv:set_size("a5", 1)
player_inv:set_size("a6", 1)
player_inv:set_size("a7", 1)
player_inv:set_size("a8", 1)
player_inv:set_size("a9", 1)
player_inv:set_size("a10", 1)
player_inv:set_size("a11", 1)
player_inv:set_size("a12", 1)
player_inv:set_size("a13", 1)
player_inv:set_size("a14", 1)
player_inv:set_size("a15", 1)
player_inv:set_size("a16", 1)
player_inv:set_size("a17", 1)
player_inv:set_size("a18", 1)
player_inv:set_size("a19", 1)
player_inv:set_size("a20", 1)
player_inv:set_size("a21", 1)
player_inv:set_size("a22", 1)
player_inv:set_size("a23", 1)
player_inv:set_size("a24", 1)
player_inv:set_size("a25", 1)
player_inv:set_size("a26", 1)
player_inv:set_size("a27", 1)
player_inv:set_size("a28", 1)
player_inv:set_size("a29", 1)
player_inv:set_size("a30", 1)
player_inv:set_size("a31", 1)
player_inv:set_size("a32", 1)
player_inv:set_size("a33", 1)
player_inv:set_size("a34", 1)
player_inv:set_size("a35", 1)
player_inv:set_size("a36", 1)
player_inv:set_size("a37", 1)
player_inv:set_size("a38", 1)
player_inv:set_size("a39", 1)
player_inv:set_size("a40", 1)
player_inv:set_size("a41", 1)
player_inv:set_size("a42", 1)
player_inv:set_size("a43", 1)
player_inv:set_size("a44", 1)
player_inv:set_size("a45", 1)
player_inv:set_size("a46", 1)
player_inv:set_size("a47", 1)
player_inv:set_size("a48", 1)
player_inv:set_size("a49", 1)
player_inv:set_size("a50", 1)
local a1 = player_inv:get_stack("a1", 1):get_count()
local a2 = player_inv:get_stack("a2", 1):get_count()
local a3 = player_inv:get_stack("a3", 1):get_count()
local a4 = player_inv:get_stack("a4", 1):get_count()
local a5 = player_inv:get_stack("a5", 1):get_count()
local a6 = player_inv:get_stack("a6", 1):get_count()
local a7 = player_inv:get_stack("a7", 1):get_count()
local a8 = player_inv:get_stack("a8", 1):get_count()
local a9 = player_inv:get_stack("a9", 1):get_count()
local a10 = player_inv:get_stack("a10", 1):get_count()
local a11 = player_inv:get_stack("a11", 1):get_count()
local a12 = player_inv:get_stack("a12", 1):get_count()
local a13 = player_inv:get_stack("a13", 1):get_count()
local a14 = player_inv:get_stack("a14", 1):get_count()
local a15 = player_inv:get_stack("a15", 1):get_count()
local a16 = player_inv:get_stack("a16", 1):get_count()
local a17 = player_inv:get_stack("a17", 1):get_count()
local a18 = player_inv:get_stack("a18", 1):get_count()
local a19 = player_inv:get_stack("a19", 1):get_count()
local a20 = player_inv:get_stack("a20", 1):get_count()
local a21 = player_inv:get_stack("a21", 1):get_count()
local a22 = player_inv:get_stack("a22", 1):get_count()
local a23 = player_inv:get_stack("a23", 1):get_count()
local a24 = player_inv:get_stack("a24", 1):get_count()
local a25 = player_inv:get_stack("a25", 1):get_count()
local a26 = player_inv:get_stack("a26", 1):get_count()
local a27 = player_inv:get_stack("a27", 1):get_count()
local a28 = player_inv:get_stack("a28", 1):get_count()
local a29 = player_inv:get_stack("a29", 1):get_count()
local a30 = player_inv:get_stack("a30", 1):get_count()
local a31 = player_inv:get_stack("a31", 1):get_count()
local a32 = player_inv:get_stack("a32", 1):get_count()
local a33 = player_inv:get_stack("a33", 1):get_count()
local a34 = player_inv:get_stack("a34", 1):get_count()
local a35 = player_inv:get_stack("a35", 1):get_count()
local a36 = player_inv:get_stack("a36", 1):get_count()
local a37 = player_inv:get_stack("a37", 1):get_count()
local a38 = player_inv:get_stack("a38", 1):get_count()
local a39 = player_inv:get_stack("a39", 1):get_count()
local a40 = player_inv:get_stack("a40", 1):get_count()
local a41 = player_inv:get_stack("a41", 1):get_count()
local a42 = player_inv:get_stack("a42", 1):get_count()
local a43 = player_inv:get_stack("a43", 1):get_count()
local a44 = player_inv:get_stack("a44", 1):get_count()
local a45 = player_inv:get_stack("a45", 1):get_count()
local a46 = player_inv:get_stack("a46", 1):get_count()
local a47 = player_inv:get_stack("a47", 1):get_count()
local a48 = player_inv:get_stack("a48", 1):get_count()
local a49 = player_inv:get_stack("a49", 1):get_count()
local a50 = player_inv:get_stack("a50", 1):get_count()
local d1 = 0
if a1 == 1 then
d1 = d1+1
end
if a2 == 1 then
d1 = d1+1
end
if a3 == 1 then
d1 = d1+1
end
if a4 == 1 then
d1 = d1+1
end
if a5 == 1 then
d1 = d1+1
end
if a6 == 1 then
d1 = d1+1
end
if a7 == 1 then
d1 = d1+1
end
if a8 == 1 then
d1 = d1+1
end
if a9 == 1 then
d1 = d1+1
end
if a10 == 1 then
d1 = d1+1
end
if a11 == 1 then
d1 = d1+1
end
if a12 == 1 then
d1 = d1+1
end
if a13 == 1 then
d1 = d1+1
end
if a14 == 1 then
d1 = d1+1
end
if a15 == 1 then
d1 = d1+1
end
if a16 == 1 then
d1 = d1+1
end
if a17 == 1 then
d1 = d1+1
end
if a18 == 1 then
d1 = d1+1
end
if a19 == 1 then
d1 = d1+1
end
if a18 == 1 then
d1 = d1+1
end
if a21 == 1 then
d1 = d1+1
end
if a22 == 1 then
d1 = d1+1
end
if a23 == 1 then
d1 = d1+1
end
if a24 == 1 then
d1 = d1+1
end
if a25 == 1 then
d1 = d1+1
end
if a26 == 1 then
d1 = d1+1
end
if a27 == 1 then
d1 = d1+1
end
if a28 == 1 then
d1 = d1+1
end
if a29 == 1 then
d1 = d1+1
end
if a30 == 1 then
d1 = d1+1
end
if a31 == 1 then
d1 = d1+1
end
if a32 == 1 then
d1 = d1+1
end
if a33 == 1 then
d1 = d1+1
end
if a34 == 1 then
d1 = d1+1
end
if a35 == 1 then
d1 = d1+1
end
if a36 == 1 then
d1 = d1+1
end
if a37 == 1 then
d1 = d1+1
end
if a38 == 1 then
d1 = d1+1
end
if a39 == 1 then
d1 = d1+1
end
if a40 == 1 then
d1 = d1+1
end
if a41 == 1 then
d1 = d1+1
end
if a42 == 1 then
d1 = d1+1
end
if a43 == 1 then
d1 = d1+1
end
if a44 == 1 then
d1 = d1+1
end
if a45 == 1 then
d1 = d1+1
end
if a46 == 1 then
d1 = d1+1
end
if a47 == 1 then
d1 = d1+1
end
if a48 == 1 then
d1 = d1+1
end
if a49 == 1 then
d1 = d1+1
end
if a50 == 1 then
d1 = d1+1
end
if fields.rew then
if d1 > 24 and rew == 0 and player_inv:room_for_item("main", "mobs:knight_1248_egg") then
player_inv:add_item("main", "mobs:knight_1248_egg")
player_inv:add_item("rew", "default:dirt")
minetest.chat_send_all(player:get_player_name().." has 25 Regnum things and is able to spawn a 1248 Knight")
end
end
if fields.rewb then
if d1 > 49 and rewb == 0 and player_inv:room_for_item("main", "tutorial:hammer") then
player_inv:add_item("main", "tutorial:hammer")
player_inv:add_item("rewb", "default:dirt")
minetest.chat_send_all(player:get_player_name().." has 50 Regnum things and is able to repair the color stick")
end
end
if fields.gem then
inventory_plus.set_inventory_formspec(player, gem.get_formspec(player))
end
if fields.main or fields.inven then
local player_inv = player:get_inventory()
local g1 = player_inv:get_stack("gem", 1):get_name()
local g2 = player_inv:get_stack("gem", 2):get_name()
local g3 = player_inv:get_stack("gem", 3):get_name()
local g4 = player_inv:get_stack("gem", 4):get_name()
local g5 = player_inv:get_stack("gem", 5):get_name()
local g21 = player_inv:get_stack("2gem", 1):get_name()
local g22 = player_inv:get_stack("2gem", 2):get_name()
local g23 = player_inv:get_stack("2gem", 3):get_name()
local g24 = player_inv:get_stack("2gem", 4):get_name()
local g25 = player_inv:get_stack("2gem", 5):get_name()
local gg1 = 0
local gg2 = 0
local gg3 = 0
local gg4 = 0
local gg5 = 0
local gg21 = 0
local gg22 = 0
local gg23 = 0
local gg24 = 0
local gg25 = 0
if g1 == "tutorial:magic_gem1" then
gg1 = 1
end
if g2 == "tutorial:magic_gem2" then
gg2 = 1
end
if g3 == "tutorial:magic_gem3" then
gg3 = 1
end
if g4 == "tutorial:magic_gem4" then
gg4 = 1
end
if g5 == "tutorial:magic_gem5" then
gg5 = 1
end
if g21 == "tutorial:magic_gem1" then
gg21 = 1
end
if g22 == "tutorial:magic_gem2" then
gg22 = 1
end
if g23 == "tutorial:magic_gem3" then
gg23 = 1
end
if g24 == "tutorial:magic_gem4" then
gg24 = 1
end
if g25 == "tutorial:magic_gem5" then
gg25 = 1
end
if gg1 == 1 and gg2 == 1 and gg3 == 1 and gg4 == 1 and gg5 == 1 then
local punched_player_privs = minetest.get_player_privs(player:get_player_name())
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
minetest.set_player_privs(player:get_player_name(), punched_player_privs)
end
if gg21 == 1 and gg22 == 1 and gg23 == 1 and gg24 == 1 and gg25 == 1 then
local punched_player_privs = minetest.get_player_privs(player:get_player_name())
punched_player_privs["fast"] = true
minetest.set_player_privs(player:get_player_name(), punched_player_privs)
end
end
if fields.craftgem then
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("gem0", 1)
player_inv:set_size("2gem0", 1)
local gem = player_inv:get_stack("gem0", 1):get_count()
local gem2 = player_inv:get_stack("2gem0", 1):get_count()
local g11 = player_inv:get_stack("gem1", 1):get_name()
local g12 = player_inv:get_stack("gem1", 2):get_name()
local g13 = player_inv:get_stack("gem1", 3):get_name()
local g14 = player_inv:get_stack("gem1", 4):get_name()
local g15 = player_inv:get_stack("gem1", 5):get_name()
local g16 = player_inv:get_stack("gem1", 6):get_name()
local g17 = player_inv:get_stack("gem1", 7):get_name()
local g18 = player_inv:get_stack("gem1", 8):get_name()
local g21 = player_inv:get_stack("gem2", 1):get_name()
local g22 = player_inv:get_stack("gem2", 2):get_name()
local g23 = player_inv:get_stack("gem2", 3):get_name()
local g24 = player_inv:get_stack("gem2", 4):get_name()
local g25 = player_inv:get_stack("gem2", 5):get_name()
local g26 = player_inv:get_stack("gem2", 6):get_name()
local g27 = player_inv:get_stack("gem2", 7):get_name()
local g28 = player_inv:get_stack("gem2", 8):get_name()
local y1 = player_inv:get_stack("gem1", 1):get_count()
local y2 = player_inv:get_stack("gem1", 2):get_count()
local y3 = player_inv:get_stack("gem1", 3):get_count()
local y4 = player_inv:get_stack("gem1", 4):get_count()
local y5 = player_inv:get_stack("gem1", 5):get_count()
local y6 = player_inv:get_stack("gem1", 6):get_count()
local y7 = player_inv:get_stack("gem1", 7):get_count()
local y8 = player_inv:get_stack("gem1", 8):get_count()
local yy1 = player_inv:get_stack("gem2", 1):get_count()
local yy2 = player_inv:get_stack("gem2", 2):get_count()
local yy3 = player_inv:get_stack("gem2", 3):get_count()
local yy4 = player_inv:get_stack("gem2", 4):get_count()
local yy5 = player_inv:get_stack("gem2", 5):get_count()
local yy6 = player_inv:get_stack("gem2", 6):get_count()
local yy7 = player_inv:get_stack("gem2", 7):get_count()
local yy8 = player_inv:get_stack("gem2", 8):get_count()
local k = 0
local d = 0
if g11 == g12 and g12 == g13 and g13 == g14 and g14 == g15 and g15 == g16 and g16 == g17 and g17 == g18 then
if g11 == "tutorial:gem_fragment" then
k = k+1
end
end
if g11 == g12 and g12 == g13 and g13 == g14 and g14 == g15 and g15 == g16 and g16 == g17 and g17 == g18 then
if g11 == "tutorial:gem_fragment2" then
k = k+2
end
end
if g21 == g22 and g22 == g23 and g23 == g24 and g24 == g25 and g25 == g26 and g26 == g27 and g27 == g28 then
if g21 == "technic:uranium_ingot" then
k = k+1
end
end
if k == 2 then
if gem == 0 then
if player_inv:room_for_item("main", "tutorial:magic_gem1") == true then
player_inv:add_item("main", "tutorial:magic_gem1")
player_inv:add_item("gem0", "default:dirt")
d = 1
end
elseif gem == 1 then
if player_inv:room_for_item("main", "tutorial:magic_gem2") == true then
player_inv:add_item("main", "tutorial:magic_gem2")
player_inv:add_item("gem0", "default:dirt")
d = 1
end
elseif gem == 2 then
if player_inv:room_for_item("main", "tutorial:magic_gem3") == true then
player_inv:add_item("main", "tutorial:magic_gem3")
player_inv:add_item("gem0", "default:dirt")
d = 1
end
elseif gem == 3 then
if player_inv:room_for_item("main", "tutorial:magic_gem4") == true then
player_inv:add_item("main", "tutorial:magic_gem4")
player_inv:add_item("gem0", "default:dirt")
d = 1
end
elseif gem == 4 then
if player_inv:room_for_item("main", "tutorial:magic_gem5") == true then
player_inv:add_item("main", "tutorial:magic_gem5")
player_inv:add_item("gem0", "default:dirt")
d = 1
end
end
if d == 1 then
player_inv:set_stack("gem1", 1, "tutorial:gem_fragment "..(y1-1))
player_inv:set_stack("gem1", 2, "tutorial:gem_fragment "..(y2-1))
player_inv:set_stack("gem1", 3, "tutorial:gem_fragment "..(y3-1))
player_inv:set_stack("gem1", 4, "tutorial:gem_fragment "..(y4-1))
player_inv:set_stack("gem1", 5, "tutorial:gem_fragment "..(y5-1))
player_inv:set_stack("gem1", 6, "tutorial:gem_fragment "..(y6-1))
player_inv:set_stack("gem1", 7, "tutorial:gem_fragment "..(y7-1))
player_inv:set_stack("gem1", 8, "tutorial:gem_fragment "..(y8-1))
player_inv:set_stack("gem2", 1, "technic:uranium_ingot "..(yy1-1))
player_inv:set_stack("gem2", 2, "technic:uranium_ingot "..(yy2-1))
player_inv:set_stack("gem2", 3, "technic:uranium_ingot "..(yy3-1))
player_inv:set_stack("gem2", 4, "technic:uranium_ingot "..(yy4-1))
player_inv:set_stack("gem2", 5, "technic:uranium_ingot "..(yy5-1))
player_inv:set_stack("gem2", 6, "technic:uranium_ingot "..(yy6-1))
player_inv:set_stack("gem2", 7, "technic:uranium_ingot "..(yy7-1))
player_inv:set_stack("gem2", 8, "technic:uranium_ingot "..(yy8-1))
end
end
if k == 3 then
if gem2 == 0 then
if player_inv:room_for_item("main", "tutorial:magic_gem1") == true then
player_inv:add_item("main", "tutorial:magic_gem1")
player_inv:add_item("2gem0", "default:dirt")
d = 1
end
elseif gem2 == 1 then
if player_inv:room_for_item("main", "tutorial:magic_gem2") == true then
player_inv:add_item("main", "tutorial:magic_gem2")
player_inv:add_item("2gem0", "default:dirt")
d = 1
end
elseif gem2 == 2 then
if player_inv:room_for_item("main", "tutorial:magic_gem3") == true then
player_inv:add_item("main", "tutorial:magic_gem3")
player_inv:add_item("2gem0", "default:dirt")
d = 1
end
elseif gem2 == 3 then
if player_inv:room_for_item("main", "tutorial:magic_gem4") == true then
player_inv:add_item("main", "tutorial:magic_gem4")
player_inv:add_item("2gem0", "default:dirt")
d = 1
end
elseif gem2 == 4 then
if player_inv:room_for_item("main", "tutorial:magic_gem5") == true then
player_inv:add_item("main", "tutorial:magic_gem5")
player_inv:add_item("2gem0", "default:dirt")
d = 1
end
end
if d == 1 then
player_inv:set_stack("gem1", 1, "tutorial:gem_fragment2 "..(y1-1))
player_inv:set_stack("gem1", 2, "tutorial:gem_fragment2 "..(y2-1))
player_inv:set_stack("gem1", 3, "tutorial:gem_fragment2 "..(y3-1))
player_inv:set_stack("gem1", 4, "tutorial:gem_fragment2 "..(y4-1))
player_inv:set_stack("gem1", 5, "tutorial:gem_fragment2 "..(y5-1))
player_inv:set_stack("gem1", 6, "tutorial:gem_fragment2 "..(y6-1))
player_inv:set_stack("gem1", 7, "tutorial:gem_fragment2 "..(y7-1))
player_inv:set_stack("gem1", 8, "tutorial:gem_fragment2 "..(y8-1))
player_inv:set_stack("gem2", 1, "technic:uranium_ingot "..(yy1-1))
player_inv:set_stack("gem2", 2, "technic:uranium_ingot "..(yy2-1))
player_inv:set_stack("gem2", 3, "technic:uranium_ingot "..(yy3-1))
player_inv:set_stack("gem2", 4, "technic:uranium_ingot "..(yy4-1))
player_inv:set_stack("gem2", 5, "technic:uranium_ingot "..(yy5-1))
player_inv:set_stack("gem2", 6, "technic:uranium_ingot "..(yy6-1))
player_inv:set_stack("gem2", 7, "technic:uranium_ingot "..(yy7-1))
player_inv:set_stack("gem2", 8, "technic:uranium_ingot "..(yy8-1))
end
end
inventory_plus.set_inventory_formspec(player, crafting5.get_formspec(player))
end
end)
local rg18 = {}
rg18.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;II. 4. Ores]"
.."label[0,1.3;You can find ores in the depth.]"
.."label[0,1.6;Where to find ores:]"
.."label[0,1.9;Silver: y < -2]"
.."label[0,2.2;Mithril: y < -512]"
.."label[0,2.5;Tin: y < 8]"
.."label[0,2.8;Coal: y < 0]"
.."label[0,3.1;Iron: y < 2]"
.."label[0,3.4;Mese: y < -64]"
.."label[0,3.7;Gold: y < -64]"
.."label[0,4.0;Diamond: y < -128]"
.."label[0,4.3;Copper: y < ?]"
.."label[0,4.6;Black/White: y < 2]"
.."label[0,4.9;Uranium: y < -128]"
.."label[0,5.2;Admin: y < -500]"
.."label[0,5.5;Titan: y < -400]"
.."label[0,5.8;Rot/Blau: y < -100]"
.."label[0,6.1;Regnum: y < -600]"
.."label[0,6.4;Technic Uranium: y < -80, y > -300]"
.."label[0,6.7;Cromium: y < -100]"
.."label[0,7.0;Zinc: y < 2]"
.."label[0,7.3;Ruby/Sapphire: y < -300]"
.."label[0,7.6;Amethyst: y < -600]"
.."label[0,7.9;Shadow/Pearl: y < -900]"
.."label[0,8.2;Emerald: y < -1200]"
.."button[2,10; 2,0.5;rg17;<]"
.."button[4,10; 2,0.5;rg19;>]"
return formspec
end
local rg19 = {}
rg19.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;II. 5. Armor, Battleaxes & Guns]"
.."label[0,1.3;There are over 120 differend battleaxes and armors]"
.."label[0,1.6;Here you can see witch kind of armor/battleaxe/gun you have to craft:]"
.."label[0,1.9;(starter)]"
.."label[0,2.2;mega lv.1-20]"
.."label[0,2.5;cloud lv.1-20]"
.."label[0,2.8;super lv.1-4]"
.."label[0,3.1;uranium lv.1-2]"
.."label[0,3.4;energie lv.1-12]"
.."label[0,3.7;superenergy lv.1-7]"
.."label[0,4.0;crystal lv.1-5]"
.."label[0,4.3;ultra lv.1-25]"
.."label[0,4.6;superultra]"
.."label[0,4.9;arena lv.1-4]"
.."label[0,5.2;titan lv.1-10]"
.."label[0,5.5;legendary lv.1-6]"
.."label[0,5.8;superlegendary]"
.."label[0,6.1;regnum]"
.."label[0,6.4;There are differend modes for the superlegendary armor/battleaxe/gun]"
.."label[0,6.7;and also for the regnum:]"
.."label[0,7.0;With the armor you can jump higher and run faster,]"
.."label[0,7.3;with the battleaxe you can dig water/lava]"
.."label[0,7.3;and the gun will add thunder]"
.."label[0,7.6;The legendary battleaxe (or higher) will double some ores if you dig them.]"
.."button[2,10; 2,0.5;rg18;<]"
.."button[4,10; 2,0.5;rg20;>]"
return formspec
end
local rg20 = {}
rg20.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;II. 6. Chat commands]"
.."label[0,1.3;/admin for all admin tools]"
.."label[0,1.6;/regnum for all regnum things]"
.."label[0,1.9;/rank to see your rank]"
.."button[2,10; 2,0.5;rg19;<]"
return formspec
end
minetest.register_on_dignode(function(pos, node, player)
if player == nil then
return
end
local name = player:get_player_name()
local inv = player:get_inventory()
if node.name == "tutorial:geschenk_dragon" then
local x = math.random(0,15)
if x == 8 then
inv:set_size("dgon", 1)
local dgon = inv:get_stack("dgon", 1):get_count()
if dgon == 0 then
inv:add_item("main", "tutorial:dragon_schluessel")
inv:add_item("dgon", "default:dirt")
end
else
inv:add_item("main", "default:coal_lump 20")
end
end
if node.name == "tutorial:geschenk_tortoise" then
local x = math.random(0,15)
if x == 8 then
inv:set_size("ttoise", 1)
local dgon = inv:get_stack("ttoise", 1):get_count()
if dgon == 0 then
inv:add_item("main", "tutorial:tortoise_schluessel")
inv:add_item("ttoise", "default:dirt")
end
else
inv:add_item("main", "default:coal_lump 20")
end
end
if node.name == "tutorial:geschenk_gem" then
local x = math.random(0,8)
if x == 2 then
inv:add_item("main", "tutorial:gem_fragment")
elseif x == 5 then
inv:add_item("main", "tutorial:geschenk_legend")
elseif x == 4 then
inv:add_item("main", "tutorial:geschenk_legend")
end
end
if node.name == "tutorial:geschenk_gem2" then
local x = math.random(0,8)
if x == 2 then
inv:add_item("main", "tutorial:gem_fragment2")
elseif x == 5 then
inv:add_item("main", "tutorial:geschenk_legend")
elseif x == 4 then
inv:add_item("main", "tutorial:geschenk_legend")
end
end
if node.name == "tutorial:geschenk" then
local x = math.random(1, 29)
if x < 10 then
inv:add_item("main", "tutorial:lightstone 1")
elseif x < 18 then
inv:add_item("main", "default:mese_crystal_fragment 2")
elseif x < 24 then
inv:add_item("main", "default:ice")
elseif x < 27 then
inv:add_item("main", "tutorial:dunklematerie4")
else
inv:add_item("main", "tutorial:geschenk")
end
end
if node.name == "tutorial:geschenk_silber" then
local x = math.random(1, 20)
if x < 10 then
inv:add_item("main", "tutorial:lightstone 2")
elseif x < 18 then
inv:add_item("main", "default:mese_crystal_fragment 4")
elseif x < 20 then
inv:add_item("main", "tutorial:arena_block")
else
inv:add_item("main", "tutorial:arena_glass")
end
end
if node.name == "tutorial:geschenk_gold" then
local x = math.random(1, 17)
if x < 2 then
inv:add_item("main", "mobs:dirt_monster_egg")
elseif x < 3 then
inv:add_item("main", "mobs:stone_monster_egg")
elseif x < 4 then
inv:add_item("main", "mobs:sand_monster_egg")
elseif x < 5 then
inv:add_item("main", "mobs:desert_sand_monster_egg")
elseif x < 6 then
inv:add_item("main", "mobs:snow_monster_egg")
elseif x < 7 then
inv:add_item("main", "mobs:desert_stone_monster_egg")
elseif x < 8 then
inv:add_item("main", "mobs:ice_monster_egg")
elseif x < 9 then
inv:add_item("main", "mobs:grass_monster_egg")
elseif x < 10 then
inv:add_item("main", "mobs:rainforest_litter_monster_egg")
elseif x < 11 then
inv:add_item("main", "mobs:dry_grass_monster_egg")
elseif x < 12 then
inv:add_item("main", "mobs:silver_sand_monster_egg")
else
inv:add_item("main", "default:mese_crystal")
end
end
if node.name == "tutorial:geschenk_platin" then
local x = math.random(1, 10)
if x < 5 then
inv:add_item("main", "default:mese_crystal 2")
elseif x < 8 then
inv:add_item("main", "tutorial:geschenk_wool")
elseif x < 10 then
inv:add_item("main", "tutorial:geschenk_wool1")
else
inv:add_item("main", "tutorial:geschenk_wool2")
end
end
if node.name == "tutorial:geschenk_wool1" then
local x = math.random(1, 6)
if x == 1 then
inv:add_item("main", "wool:yellow 2")
elseif x == 2 then
inv:add_item("main", "wool:white 2")
elseif x == 3 then
inv:add_item("main", "wool:violet 2")
elseif x == 4 then
inv:add_item("main", "wool:red 2")
elseif x == 5 then
inv:add_item("main", "wool:orange 2")
else
inv:add_item("main", "wool:blue 2")
end
end
if node.name == "tutorial:geschenk_wool2" then
local x = math.random(1, 15)
if x == 1 then
inv:add_item("main", "wool:yellow 3")
elseif x == 2 then
inv:add_item("main", "wool:white 3")
elseif x == 3 then
inv:add_item("main", "wool:violet 3")
elseif x == 4 then
inv:add_item("main", "wool:red 3")
elseif x == 5 then
inv:add_item("main", "wool:pink 3")
elseif x == 6 then
inv:add_item("main", "wool:orange 3")
elseif x == 7 then
inv:add_item("main", "wool:magenta 3")
elseif x == 8 then
inv:add_item("main", "wool:grey 3")
elseif x == 9 then
inv:add_item("main", "wool:green 3")
elseif x == 10 then
inv:add_item("main", "wool:dark_grey 3")
elseif x == 11 then
inv:add_item("main", "wool:dark_green 3")
elseif x == 12 then
inv:add_item("main", "wool:cyan 3")
elseif x == 13 then
inv:add_item("main", "wool:brown 3")
elseif x == 14 then
inv:add_item("main", "wool:blue 3")
else
inv:add_item("main", "wool:black 3")
end
end
end)
local rg14 = {}
rg14.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 12. Gems]"
.."label[0,1.3;Use the gem inventory to get home and fast privs.]"
.."label[0,1.6;How to use Gems:]"
.."label[0,1.9;1. Craft a dragon in the DNA craft.]"
.."label[0,2.2;2. Craft a dragon crystal.]"
.."label[0,2.5;3. Place the drgagon crystal in the dragon inventory.]"
.."label[0,2.8;4. Collect gifts (gem).]"
.."label[0,3.1;5. Get gem fragents from then gift (gem).]"
.."label[0,3.4;6. Craft in the gem craft a magic gem.]"
.."label[0,3.7;7. Place the magic gems in the right order in the gems inventory.]"
.."button[2,10; 2,0.5;rg13;<]"
.."button[4,10; 2,0.5;rg21;>]"
return formspec
end
local rg15 = {}
rg15.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;II. 1. Gifts]"
.."label[0,1.3;Craft gifts to get nice differend things.]"
.."label[0,1.6;Gift: gift, dark matter Lv.4, ice, mese, lightstone]"
.."label[0,1.9;Gift (silver): arena glass, arena block, mese, lightstone, gift]"
.."label[0,2.2;Gift (gold): dirt/sand/stone monster spawn-egg, mese]"
.."label[0,2.5;Gift (platinum): wool gift, colored wool gift lv.1/2]"
.."label[0,2.8;Deathgift: mese, lightstone, ice, deathgift, regnum part]"
.."label[0,3.1;Deathgift (silver): mese, lightstone, ice, deathgift, regnum part]"
.."label[0,3.4;Deathgift (gold): mese, lightstone, ice, deathgift, regnum part]"
.."label[0,3.7;Deathgift (platinum): mese, lightstone, ice, deathgift, regnum part]"
.."label[0,4.0;Gift (DNA): every spawn-egg (but no monsters)]"
.."label[0,4.3;Gift (legendary): ruby, sapphire, amethyst, pearl, shadow, emerald, legendary crystal]"
.."label[0,4.6;Gift (regnum): gold/green/purple/red/blue regnum pixel]"
.."label[0,4.9;Wool gift: white wool]"
.."label[0,5.2;Colored wool gift lv.1: yellow/white/violetta/red/orange/blue wool]"
.."label[0,5.5;Colored wool gift lv.2: every wool]"
.."label[0,5.8;Gift (dragon): coal lump, dragon key]"
.."label[0,6.1;Gift (gem): gift (legendary), gem fragment]"
.."button[2,10; 2,0.5;rg25;<]"
.."button[4,10; 2,0.5;rg16;>]"
return formspec
end
local rg16 = {}
rg16.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;II. 2. Mobs]"
.."label[0,1.3;There are monsters, animals and pets in Regnum]"
.."label[0,1.6;The monster will kill you, but can get wrapping paper and DNA strings or tears]"
.."label[0,1.9;You can get water and sky animals from the dna gift.]"
.."label[0,2.2;There are turtles, sharks, gulls and many other.]"
.."label[0,2.5;If you use the DNA craft you can get pets.]"
.."label[0,2.8;The dog and the cat will kill monsters and collect the wrapping paper]"
.."label[0,3.1;The sheep will produce wool.]"
.."label[0,3.4;The dagon will produce a dragon gift or a gem gift if you have a regnum crystal.]"
.."label[0,3.4;The fox will produce a fox key and treasures.]"
.."label[0,3.4;The tortoise will produce a tortoise gift or a gem gift if you have a regnum crystal.]"
.."label[0,3.7;You can chage the color of the pets and they can folow you.]"
.."button[2,10; 2,0.5;rg15;<]"
.."button[4,10; 2,0.5;rg17;>]"
return formspec
end
local rg17 = {}
rg17.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;II. 3. Xp & Level]"
.."label[0,1.3;If you dig some things you can get Xp]"
.."label[0,1.6;There are 6 differend kind of Xp:]"
.."label[0,1.9;green, red, blue, grey, yellow and cyan Xp.]"
.."label[0,2.2;If you dig uranium you will get 1 green Xp]"
.."label[0,2.5;If you reach level green 100, you will get the lilabattleaxe.]"
.."label[0,2.8;With it, you can dig red and blue ore.]"
.."label[0,3.1;From them you can get red and blue Xp]"
.."label[0,3.4;If you reach level red/blue 20, you will get a red/blue xp block.]"
.."label[0,3.7;With them you can craft the xp block]"
.."label[0,4.0;From the xp block you will get grey xp.]"
.."label[0,4.3;If you reach level gray 100, you will get the xp block (yellow)]"
.."label[0,4.6;From the xp block (yellow) you will get yellow xp.]"
.."label[0,4.9;If you reach level yellow 100, you will get the goldenkey]"
.."label[0,5.2;With the goldenkey you can use the Crystal craft]"
.."label[0,5.5;From there you can get cristal bottles]"
.."label[0,5.8;If you reach level cyan 25, you have completed all levels]"
.."label[0,6.1;Look in the xp guide for your xp and how much xp you need.]"
.."label[0,6.4;If you reach a new level you will get a reward]"
.."label[0,6.7;Look in Xp items for the reward]"
.."button[2,10; 2,0.5;rg16;<]"
.."button[4,10; 2,0.5;rg18;>]"
return formspec
end
local rg10 = {}
rg10.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 8. Achievements]"
.."label[0,1.3;Here you can see your achievement]"
.."label[0,1.6;If you have all 50 achievements,]"
.."label[0,1.9;you will have all Regnum things and you have completed the Regnum Game]"
.."label[0,2.2;If you have 25 or 50 achivements you will get a reward]"
.."label[0,2.5;There is also one spezial achievment.]"
.."label[0,2.8;You will get it for one year Regnum.]"
.."label[0,3.1;How to use Achievements:]"
.."label[0,3.4;1. Craft the needed items]"
.."label[0,3.7;2. Place them at the right place in the inventory]"
.."label[0,4.0;3. Get 25 or 50 achievements]"
.."label[0,4.3;4. Presse 'reward']"
.."label[0,4.6;5. Presse also 'spezial']"
.."button[2,10; 2,0.5;rg9;<]"
.."button[4,10; 2,0.5;rg11;>]"
return formspec
end
local rg11 = {}
rg11.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 9. Regnum Guide]"
.."label[0,1.3;You can read something about the subgame]"
.."label[0,1.6;How to use Regnum Guide:]"
.."label[0,1.9;1. Read]"
.."button[2,10; 2,0.5;rg10;<]"
.."button[4,10; 2,0.5;rg12;>]"
return formspec
end
local rg12 = {}
rg12.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 10. Awards]"
.."label[0,1.3;Here you can see your awards]"
.."label[0,1.6;If you have all awards, you will get the 'all awards' achievement.]"
.."label[0,1.9;How to use Awards:]"
.."label[0,2.2;1. Dig for the ores]"
.."label[0,2.5;2. For the '???' awards you have to die next to a block]"
.."label[0,2.8;3. Find out which block]"
.."button[2,10; 2,0.5;rg11;<]"
.."button[4,10; 2,0.5;rg13;>]"
return formspec
end
local rg13 = {}
rg13.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 11. Xp items]"
.."label[0,1.3;Here you can get your rewards if you reach a new level.]"
.."label[0,1.6;How to use Xp items:]"
.."label[0,1.9;1. Reach a new level]"
.."label[0,2.2;2. Take coins/max level blocks/keys/battleaxes/xp blocks from the 1st page]"
.."label[0,2.5;3. Take green level blocks from the 2nd page]"
.."label[0,2.8;4. Take red/blue level blocks from the 3rd page]"
.."label[0,3.1;5. Take grey level blocks from the 4th page]"
.."label[0,3.4;6. Take yellow level blocks from the 5th page]"
.."label[0,3.7;7. Take cyan level blocks from the 6th page]"
.."button[2,10; 2,0.5;rg12;<]"
.."button[4,10; 2,0.5;rg14;>]"
return formspec
end
local rg8 = {}
rg8.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 6. Craft Guide]"
.."label[0,1.3;Here you can see how to craft items]"
.."label[0,1.6;Click on one item to see the crafting]"
.."label[0,1.9;You can also see 4x4 and 5x5 craftings,]"
.."label[0,2.2;You can see the craftings for battleaxes/armor/gun ]"
.."label[0,2.5;in the Regnum Craft Guide.]"
.."label[0,2.8;How to use Craft guide:]"
.."label[0,3.1;1. Click on one item and you see the crafting above]"
.."label[0,3.4;2. Click on the arrows below to switch to an other page]"
.."label[0,3.7;3. Click on the arrows below 'main' to see the last]"
.."label[0,4.0; crafting you use]"
.."label[0,4.3;4. Click on the arrows above and below the item to see]"
.."label[0,4.6; differend craftings for the same things]"
.."label[0,4.9;5. Click on the 'Regnum' for armor/battleaxe/gun crafts]"
.."button[2,10; 2,0.5;rg7;<]"
.."button[4,10; 2,0.5;rg9;>]"
return formspec
end
local rg9 = {}
rg9.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 7. Crystals]"
.."label[0,1.3;Here you can get legendary fire balls]"
.."label[0,1.6;If you dig a legendary gift you can get a legendary crystal]"
.."label[0,1.9;With every new cristal you get, get can get better fire balls]"
.."label[0,2.2;After some time you will get the fire ball]"
.."label[0,2.5;If you have a crystalkey,the time will be halved]"
.."label[0,2.8;How to use Cristals:]"
.."label[0,3.1;1. Craft legendary gifts and dig them]"
.."label[0,3.4;2. If you have a cristal,click on a]"
.."label[0,3.7; ball damage, thunder damage and thunder length level]"
.."label[0,4.0;3. Click on create]"
.."label[0,4.3;4. Get the crystalkey]"
.."label[0,4.6;5. wait (seconds above 'crate') and you will get a fire ball]"
.."button[2,10; 2,0.5;rg8;<]"
.."button[4,10; 2,0.5;rg10;>]"
return formspec
end
local xpi0 = {}
xpi0.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
local xpi01_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi01",{
on_take = function(inv, listname, index, stack, player)
player:get_inventory():remove_item(listname,stack)
end,
allow_put = function(inv, listname, index, stack, player)
return 0
end,
allow_take = function(inv, listname, index, stack, player)
return stack:get_count()
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
xpi01_inv:set_size("xpi01", 15)
player_inv:set_size("xpi01", 15)
xpi01_inv:set_size("xpi02", 15)
player_inv:set_size("xpi02", 15)
xpi01_inv:set_size("xpi03", 15)
player_inv:set_size("xpi03", 15)
xpi01_inv:set_size("xpi04", 15)
player_inv:set_size("xpi04", 15)
xpi01_inv:set_size("xpi05", 15)
player_inv:set_size("xpi05", 15)
xpi01_inv:set_size("xpi06", 15)
player_inv:set_size("xpi06", 15)
for i=1, 15 do
local stack = player_inv:get_stack("xpi01", i)
xpi01_inv:set_stack("xpi01", i, stack)
local stack = player_inv:get_stack("xpi02", i)
xpi01_inv:set_stack("xpi02", i, stack)
local stack = player_inv:get_stack("xpi03", i)
xpi01_inv:set_stack("xpi03", i, stack)
local stack = player_inv:get_stack("xpi04", i)
xpi01_inv:set_stack("xpi04", i, stack)
local stack = player_inv:get_stack("xpi05", i)
xpi01_inv:set_stack("xpi05", i, stack)
local stack = player_inv:get_stack("xpi06", i)
xpi01_inv:set_stack("xpi06", i, stack)
end
formspec = "size[18,12.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."list[current_player;main;5,7.5;8,1;]"
.."list[current_player;main;5,8.75;8,3;8]"
.."background[18,12.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."list[detached:"..player:get_player_name().."_xpi01;xpi01;3,1.5;5,1]"
.."list[detached:"..player:get_player_name().."_xpi01;xpi02;3,2.7;5,1]"
.."list[detached:"..player:get_player_name().."_xpi01;xpi03;3,3.9;5,1]"
.."list[detached:"..player:get_player_name().."_xpi01;xpi04;10,1.5;5,1]"
.."list[detached:"..player:get_player_name().."_xpi01;xpi05;10,2.7;5,1]"
.."list[detached:"..player:get_player_name().."_xpi01;xpi06;10,3.9;5,1]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi01;xpi01]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi01;xpi02]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi01;xpi03]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi01;xpi04]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi01;xpi05]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi01;xpi06]"
.."label[3,1.1;Green Xp Items]"
.."label[3,2.3;Red Xp Items]"
.."label[3,3.5;Blue Xp Items]"
.."label[10,1.1;Grey Xp Items]"
.."label[10,2.3;Yellow Xp Items]"
.."label[10,3.5;Cyan Xp Items]"
.."button[9,12;2,0.5;xpi;>]"
return formspec
end
local xpi = {}
xpi.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
local xpi1_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi1",{
on_take = function(inv, listname, index, stack, player)
player:get_inventory():remove_item(listname,stack)
end,
allow_put = function(inv, listname, index, stack, player)
return 0
end,
allow_take = function(inv, listname, index, stack, player)
return stack:get_count()
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
xpi1_inv:set_size("xpi1", 100)
player_inv:set_size("xpi1", 100)
for i=1, 100 do
local stack = player_inv:get_stack("xpi1", i)
xpi1_inv:set_stack("xpi1", i, stack)
end
formspec = "size[18,12.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."list[current_player;main;5,7.5;8,1;]"
.."list[current_player;main;5,8.75;8,3;8]"
.."background[18,12.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."list[detached:"..player:get_player_name().."_xpi1;xpi1;0,1.3;18,6]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi1;xpi1]"
.."label[0,0.7;Green Level Blocks]"
.."button[9,12;2,0.5;xpi2;>]"
.."button[7,12;2,0.5;xpi0;<]"
return formspec
end
local xpi2 = {}
xpi2.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
local xpi2_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi2",{
on_take = function(inv, listname, index, stack, player)
player:get_inventory():remove_item(listname,stack)
end,
allow_put = function(inv, listname, index, stack, player)
return 0
end,
allow_take = function(inv, listname, index, stack, player)
return stack:get_count()
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
local xpi3_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi3",{
on_take = function(inv, listname, index, stack, player)
player:get_inventory():remove_item(listname,stack)
end,
allow_put = function(inv, listname, index, stack, player)
return 0
end,
allow_take = function(inv, listname, index, stack, player)
return 1
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
xpi2_inv:set_size("xpi2", 20)
player_inv:set_size("xpi2", 20)
xpi3_inv:set_size("xpi3", 20)
player_inv:set_size("xpi3", 20)
for i=1, 20 do
local stack = player_inv:get_stack("xpi2", i)
xpi2_inv:set_stack("xpi2", i, stack)
local stack2 = player_inv:get_stack("xpi3", i)
xpi3_inv:set_stack("xpi3", i, stack2)
end
xpi2_inv:set_size("xpi2", 20)
player_inv:set_size("xpi2", 20)
xpi3_inv:set_size("xpi3", 20)
player_inv:set_size("xpi3", 20)
formspec = "size[18,12.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."list[current_player;main;5,7.5;8,1;]"
.."list[current_player;main;5,8.75;8,3;8]"
.."background[18,12.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."list[detached:"..player:get_player_name().."_xpi2;xpi2;0,1.3;18,2]"
.."list[detached:"..player:get_player_name().."_xpi3;xpi3;0,3.9;18,2]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi2;xpi2]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi3;xpi3]"
.."label[0,0.7;Red Level Blocks]"
.."label[0,3.3;Blue Level Blocks]"
.."button[7,12;2,0.5;xpi;<]"
.."button[9,12;2,0.5;xpi3;>]"
return formspec
end
local xpi3 = {}
xpi3.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
local xpi4_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi4",{
on_take = function(inv, listname, index, stack, player)
player:get_inventory():remove_item(listname,stack)
end,
allow_put = function(inv, listname, index, stack, player)
return 0
end,
allow_take = function(inv, listname, index, stack, player)
return stack:get_count()
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
xpi4_inv:set_size("xpi4", 100)
player_inv:set_size("xp4", 100)
for i=1, 100 do
local stack = player_inv:get_stack("xpi4", i)
xpi4_inv:set_stack("xpi4", i, stack)
end
xpi4_inv:set_size("xpi4", 100)
player_inv:set_size("xpi4", 100)
formspec = "size[18,12.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."list[current_player;main;5,7.5;8,1;]"
.."list[current_player;main;5,8.75;8,3;8]"
.."background[18,12.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."list[detached:"..player:get_player_name().."_xpi4;xpi4;0,1.3;18,6]"
.."listring[current_player;main]"
.."listring[detached:"..player:get_player_name().."_xpi4;xpi4]"
.."label[0,0.7;Grey Level Blocks]"
.."button[7,12;2,0.5;xpi2;<]"
.."button[9,12;2,0.5;xpi4;>]"
return formspec
end
local rg6 = {}
rg6.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 4. Crafting]"
.."label[0,1.3;There are 10 differend crafts:]"
.."label[0,1.6;The '4x4 craft' to craft in a 4x4 field]"
.."label[0,1.9;The '5x5 craft' to craft in a 5x5 field]"
.."label[0,2.2;The Regnum craft to craft a pixeled regnum]"
.."label[0,2.5;The DNA craft to get mobs]"
.."label[0,2.8;The Gem craft to get magic gems]"
.."label[0,3.1;The Mine craft to level you mining laser/drill up.]"
.."label[0,3.4;The Cooking craft, works like furnaces but without fuel]"
.."label[0,3.7;The Medallion craft to get medallions]"
.."label[0,4.0;The Crystal craft to get crystalbottles]"
.."label[0,4.3;The Trophy craft to get trophys]"
.."label[0,4.6;Look in the Craft Guide which item you can craft in 4x4 and 5x5]"
.."label[0,4.9;For Regnum craft you need regnum pixel.You can get them from Regnum gifts.]"
.."label[0,5.2;For DNA craft you need dna strings.You can get them from monsters.]"
.."label[0,5.5;You will get an animal spawn-egg if this animal has 100%.]"
.."label[0,5.8;For Gem craft you need gem fragments and uranium ingots]"
.."label[0,6.1;For Cooking use uranium to get fuel]"
.."label[0,6.4;For Mine craft you need the mining laser/drill and green coins]"
.."label[0,6.7;to level you mining laser/drill up.]"
.."label[0,7.0;For Medallion craft you need Medallions.You will get them if you run around.]"
.."label[0,7.3;For Crystal craft you have to wait.]"
.."label[0,7.6;For each crystal you have, the crafting will take 200s less.]"
.."label[0,7.9;For Trophy craft you need Tears.You can get them from monsters in the same color.]"
.."label[0,8.2;How to use Crafting:]"
.."label[0,8.5;1. For 4x4, 5x5, Regnum, Gem, Medallion craft and Cooking you need a key]"
.."label[0,8.8;2. Craft the key and put the needed items in the fields]"
.."label[0,9.1;3. Press 'craft/use/build DNA']"
.."button[2,10; 2,0.5;rg5;<]"
.."button[4,10; 2,0.5;rg7;>]"
return formspec
end
local rg7 = {}
rg7.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 5. Skins]"
.."label[0,1.3;Here you can change your skin]"
.."label[0,1.6;Click on one skin to change your skin]"
.."label[0,1.9;If you have the pixeled Regnum key you can use the see-through skin]"
.."label[0,2.2;If you have the knight Regnum key you can use the knight skins]"
.."label[0,2.5;How to use Skins:]"
.."label[0,2.8;1. Click on one skin]"
.."label[0,3.1;2. Craft the Pixeled Regnum key]"
.."label[0,3.4;3. Press 'see-through skin']"
.."label[0,3.7;4. Craft the Knight key]"
.."label[0,4.0;5. Press 'knight']"
.."button[2,10; 2,0.5;rg6;<]"
.."button[4,10; 2,0.5;rg8;>]"
return formspec
end
local rg2 = {}
rg2.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1; CONTENS]"
.."label[0,1.3; I. Inventory]"
.."label[0,1.6; 1. Bags]"
.."label[0,1.9; 2. Armor]"
.."label[0,2.2; 3. XP Guide]"
.."label[0,2.5; 4. Crafting]"
.."label[0,2.8; 5. Skins]"
.."label[0,3.1; 6. Craft Guide]"
.."label[0,3.4; 7. Crystals]"
.."label[0,3.7; 8. Achievements]"
.."label[0,4.0; 9. Regnum guide]"
.."label[0,4.3; 10. Awards]"
.."label[0,4.6; 11. Xp items]"
.."label[0,4.9; 12. Gems]"
.."label[0,5.2; 13. Artifacts]"
.."label[0,5.5; 14. Medallion]"
.."label[0,5.8; 15. Treasures]"
.."label[0,6.1; 16. Trophys]"
.."label[0,6.4; 17. Music]"
.."label[0,6.7; II. Game]"
.."label[0,7.0; 1. Gifts]"
.."label[0,7.3; 2. Mobs]"
.."label[0,7.6; 3. Xp & Level]"
.."label[0,7.9; 4. Ores]"
.."label[0,8.2; 5. Armor, Battleaxes & Guns]"
.."label[0,8.5; 6. Chat commands]"
.."button[2,10; 2,0.5;rg1;<]"
.."button[4,10; 2,0.5;rg3;>]"
return formspec
end
local rg3 = {}
rg3.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 1. Bags]"
.."label[0,1.3;You can use bags to take more things with you.]"
.."label[0,1.6;You can have up to eight bags, every bag has eight level.]"
.."label[0,1.9;Every level for a bag give you more space for it.]"
.."label[0,2.2;If you want more then four bags you need also a bagkey.]"
.."label[0,2.5;With each new bagkey level you can get one more bag.]"
.."label[0,2.8;How to use bags:]"
.."label[0,3.1;1. You have to craft a bag (look in the craft guide how).]"
.."label[0,3.4;2. Put the bag in one of the fields and use the button below.]"
.."label[0,3.7;3. You can put your items in the new inventory.]"
.."label[0,4.0;4. If you put the bag in the lower field and you have no bagkey]"
.."label[0,4.3; you can not use it]"
.."label[0,4.6;5. You can use shift to move items quickly (as you use for chests)]"
.."button[2,10; 2,0.5;rg2;<]"
.."button[4,10; 2,0.5;rg4;>]"
return formspec
end
local rg4 = {}
rg4.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 2. Armor]"
.."label[0,1.3;You can use armor to save you from monsters.]"
.."label[0,1.6;There are 5 differend armor parts.]"
.."label[0,1.9;Make your armor invisible to other when you have the armorkey.]"
.."label[0,2.2;Some armor will also save you from lava and fire]"
.."label[0,2.5;and there is also armor that regenerate you.]"
.."label[0,2.8;Get the Protectionkey to get a save bonus]"
.."label[0,3.1;How to use Armor:]"
.."label[0,3.4;1. You have to craft some armor (look in the craft guide how).]"
.."label[0,3.7;2. You can see five fields on the left.]"
.."label[0,4.0;3. You have to put the helmet at the top and the boots at the bottom.(like in minecraft)]"
.."label[0,4.3;4. You have to put the shield in the right field]"
.."label[0,4.6;5. Craft the armor key and than you can press 'armor off']"
.."label[0,4.9;6. Craft the protectionkey to get a save bonus]"
.."button[2,10; 2,0.5;rg3;<]"
.."button[4,10; 2,0.5;rg5;>]"
return formspec
end
local rg5 = {}
rg5.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;I. 3. XP Guide]"
.."label[0,1.3;If you dig uranium/red ore/blue ore/Xp block/Xp Block (yellow)]"
.."label[0,1.6;or you place a Crystalbottle, you will get xp.]"
.."label[0,1.9;Use the Xp Guide to see how many xp you have]"
.."label[0,2.2;If you want to see how many xp you need for the next level]"
.."label[0,2.5;you have to use the xp key]"
.."label[0,2.8;There are 6 differend kinds of xp.]"
.."label[0,3.1;How to use Xp Guide:]"
.."label[0,3.4;1. On the left you can see how many xp you have]"
.."label[0,3.7;2. Craft the xp key and than you can press 'xp green/red/blue/grey/yellow/cyan you need']"
.."button[2,10; 2,0.5;rg4;<]"
.."button[4,10; 2,0.5;rg6;>]"
return formspec
end
local rg = {}
rg.get_formspec = function(player, pos)
if player == nil then
return
end
formspec = "size[9,10.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[9,10.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."label[0,1;This is the first page of the Regnum guide.]"
.."label[0,1.3;Here you can get some basic informations]"
.."label[0,1.6;about my subgame:Regnum]"
.."label[0,1.9;I develop the Regnum subgame over the last 5 years]"
.."label[0,2.2;Thanks to:]"
.."label[0,2.5;NightmareLP who build a mod for my subgame]"
.."label[0,2.8;et77 who had some great ideas]"
.."label[0,3.1;wuschel1912 who tests the subgame]"
.."button[4,10;2,0.5;rg2;>]"
return formspec
end
minetest.register_on_dignode(function(pos, node, player)
if player == nil then
return
end
local name = player:get_player_name()
local inv = player:get_inventory()
if node.name == "tutorial:geschenk_dna" then
local x = math.random(0,15)
print (x)
if x == 0 then
inv:add_item("main", "mobs:watermob_crocodile_lg_egg")
elseif x == 1 then
inv:add_item("main", "mobs:watermob_crocodile_md_egg")
elseif x == 2 then
inv:add_item("main", "mobs:watermob_crocodile_sm_egg")
elseif x == 3 then
inv:add_item("main", "mobs:watermob_clownfish_egg")
elseif x == 4 then
inv:add_item("main", "mobs:watermob_tropical_fish_egg")
elseif x == 5 then
inv:add_item("main", "mobs:watermob_jellyfish_egg")
elseif x == 6 then
inv:add_item("main", "mobs:watermob_shark_sm_egg")
elseif x == 7 then
inv:add_item("main", "mobs:watermob_shark_md_egg")
elseif x == 8 then
inv:add_item("main", "mobs:watermob_shark_lg_egg")
elseif x == 9 then
inv:add_item("main", "mobs:watermob_turtle_lg_egg")
elseif x == 10 then
inv:add_item("main", "mobs:watermob_turtle_sm_egg")
elseif x == 11 then
inv:add_item("main", "mobs:skymob_butterfly_egg")
elseif x == 12 then
inv:add_item("main", "mobs:skymob_gull_egg")
elseif x == 13 then
inv:add_item("main", "mobs:skymob_bird_sm_egg")
elseif x == 14 then
inv:add_item("main", "mobs:skymob_bird_lg_egg")
elseif x == 15 then
inv:add_item("main", "mobs:skymob_bat_egg")
end
end
end)
local dna = {}
dna.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("dna", 8)
player_inv:set_size("dogdna", 1)
player_inv:set_size("catdna", 1)
player_inv:set_size("sheepdna", 1)
player_inv:set_size("dragondna", 1)
player_inv:set_size("foxdna", 1)
player_inv:set_size("tortoisedna", 1)
local dog = player_inv:get_stack("dogdna", 1):get_count()
local cat = player_inv:get_stack("catdna", 1):get_count()
local sheep = player_inv:get_stack("sheepdna", 1):get_count()
local dragon = player_inv:get_stack("dragondna", 1):get_count()
local fox = player_inv:get_stack("foxdna", 1):get_count()
local tortoise = player_inv:get_stack("tortoisedna", 1):get_count()
if cat == 20 then
if player_inv:room_for_item("main", "mobs:cat_egg") == true then
player_inv:add_item("catdna","default:dirt")
player_inv:add_item("main","mobs:cat_egg")
player_inv:add_item("a16","default:dirt")
percat = ""
else
percat = "100% "
end
elseif cat > 20 then
percat = ""
else
percat = (cat*5).."% "
end
if dog == 20 then
if player_inv:room_for_item("main", "mobs:dog_egg") == true then
player_inv:add_item("dogdna","default:dirt")
player_inv:add_item("main","mobs:dog_egg")
player_inv:add_item("a15","default:dirt")
perdog = ""
else
perdog = "100% "
end
elseif dog > 20 then
perdog = ""
else
perdog = (dog*5).."% "
end
if sheep == 20 then
if player_inv:room_for_item("main", "mobs:sheep_egg") == true then
player_inv:add_item("sheepdna","default:dirt")
player_inv:add_item("main","mobs:sheep_egg")
player_inv:add_item("a17","default:dirt")
persheep = ""
else
persheep = "100% "
end
elseif sheep > 20 then
persheep = ""
else
persheep = (sheep*5).."% "
end
if dragon == 25 then
if player_inv:room_for_item("main", "mobs:dragon_egg") == true then
player_inv:add_item("dragondna","default:dirt")
player_inv:add_item("main","mobs:dragon_egg")
player_inv:add_item("a18","default:dirt")
perdragon = ""
else
perdragon = "100% "
end
elseif dragon > 25 then
perdragon = ""
else
perdragon = (dragon*4).."% "
end
if fox == 25 then
if player_inv:room_for_item("main", "mobs:fox_egg") == true then
player_inv:add_item("foxdna","default:dirt")
player_inv:add_item("main","mobs:fox_egg")
player_inv:add_item("a29","default:dirt")
perfox = ""
else
perfox = "100% "
end
elseif fox > 25 then
perfox = ""
else
perfox = (fox*4).."% "
end
if tortoise == 50 then
if player_inv:room_for_item("main", "mobs:tortoise_egg") == true then
player_inv:add_item("tortoisedna","default:dirt")
player_inv:add_item("main","mobs:tortoise_egg")
player_inv:add_item("a30","default:dirt")
pertortoise = ""
else
pertortoise = "100% "
end
elseif tortoise > 50 then
pertortoise = ""
else
pertortoise = (tortoise*2).."% "
end
formspec = "size[8,9.5]"
.."background[8,9.5;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;cr;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[4,0;2,0.5;mobpos;Mob positions]"
.."label[0,1;loading dog DNA...]"
.."label[0,1.4;loading cat DNA...]"
.."label[0,1.8;loading sheep DNA...]"
.."label[0,2.2;loading dragon DNA...]"
.."label[0,2.6;loading fox DNA...]"
.."label[0,3;loading tortoise DNA...]"
.."label[3,1;"..perdog.."complete]"
.."label[3,1.4;"..percat.."complete]"
.."label[3,1.8;"..persheep.."complete]"
.."label[3,2.2;"..perdragon.."complete]"
.."label[3,2.6;"..perfox.."complete]"
.."label[3,3;"..pertortoise.."complete]"
.."list[current_player;dna;0,3.6;8,1;]"
.."button[5,2.3;2,0.5;dnab;build DNA]"
.."list[current_player;main;0,5.5;8,1;]"
.."list[current_player;main;0,6.75;8,3;8]"
.."listring[current_player;main]"
.."listring[current_player;dna]"
return formspec
end
local mobpos = {}
mobpos.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("gem1", 8)
player_inv:set_size("gem2", 8)
local dog = ""
local cat = ""
local sheep = ""
local dragon = ""
local fox = ""
local tortoise = ""
local knight = ""
if player:get_attribute("dogx") ~= nil then
dog = player:get_attribute("dogx")..", "..player:get_attribute("dogy")..", "..player:get_attribute("dogz")
end
if player:get_attribute("catx") ~= nil then
cat = player:get_attribute("catx")..", "..player:get_attribute("caty")..", "..player:get_attribute("catz")
end
if player:get_attribute("sheepx") ~= nil then
sheep = player:get_attribute("sheepx")..", "..player:get_attribute("sheepy")..", "..player:get_attribute("sheepz")
end
if player:get_attribute("dragonx") ~= nil then
dragon = player:get_attribute("dragonx")..", "..player:get_attribute("dragony")..", "..player:get_attribute("dragonz")
end
if player:get_attribute("foxx") ~= nil then
fox = player:get_attribute("foxx")..", "..player:get_attribute("foxy")..", "..player:get_attribute("foxz")
end
if player:get_attribute("tortoisex") ~= nil then
tortoise = player:get_attribute("tortoisex")..", "..player:get_attribute("tortoisey")..", "..player:get_attribute("tortoisez")
end
if player:get_attribute("knightx") ~= nil then
knight = player:get_attribute("knightx")..", "..player:get_attribute("knighty")..", "..player:get_attribute("knightz")
end
formspec = "size[4,3]"
.."background[4,3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;dna;Back]"
.."button[2,0;2,0.5;main;Main]"
.."label[0,1;Dog pos:"..dog.."]"
.."label[0,1.3;Cat pos:"..cat.."]"
.."label[0,1.6;Sheep pos:"..sheep.."]"
.."label[0,1.9;Dragon pos:"..dragon.."]"
.."label[0,2.2;Fox pos:"..fox.."]"
.."label[0,2.5;Tortoise pos:"..tortoise.."]"
.."label[0,2.8;1248 Knight pos:"..knight.."]"
return formspec
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.dna then
inventory_plus.set_inventory_formspec(player, dna.get_formspec(player))
end
if fields.mobpos then
inventory_plus.set_inventory_formspec(player, mobpos.get_formspec(player))
end
if fields.xpi then
inventory_plus.set_inventory_formspec(player, xpi.get_formspec(player))
end
if fields.xpi0 then
inventory_plus.set_inventory_formspec(player, xpi0.get_formspec(player))
end
if fields.xpi2 then
inventory_plus.set_inventory_formspec(player, xpi2.get_formspec(player))
end
if fields.xpi3 then
inventory_plus.set_inventory_formspec(player, xpi3.get_formspec(player))
end
if fields.rg then
inventory_plus.set_inventory_formspec(player, rg.get_formspec(player))
end
if fields.rg1 then
inventory_plus.set_inventory_formspec(player, rg.get_formspec(player))
end
if fields.rg2 then
inventory_plus.set_inventory_formspec(player, rg2.get_formspec(player))
end
if fields.rg3 then
inventory_plus.set_inventory_formspec(player, rg3.get_formspec(player))
end
if fields.rg4 then
inventory_plus.set_inventory_formspec(player, rg4.get_formspec(player))
end
if fields.rg5 then
inventory_plus.set_inventory_formspec(player, rg5.get_formspec(player))
end
if fields.rg6 then
inventory_plus.set_inventory_formspec(player, rg6.get_formspec(player))
end
if fields.rg7 then
inventory_plus.set_inventory_formspec(player, rg7.get_formspec(player))
end
if fields.rg8 then
inventory_plus.set_inventory_formspec(player, rg8.get_formspec(player))
end
if fields.rg9 then
inventory_plus.set_inventory_formspec(player, rg9.get_formspec(player))
end
if fields.rg10 then
inventory_plus.set_inventory_formspec(player, rg10.get_formspec(player))
end
if fields.rg11 then
inventory_plus.set_inventory_formspec(player, rg11.get_formspec(player))
end
if fields.rg12 then
inventory_plus.set_inventory_formspec(player, rg12.get_formspec(player))
end
if fields.rg13 then
inventory_plus.set_inventory_formspec(player, rg13.get_formspec(player))
end
if fields.rg14 then
inventory_plus.set_inventory_formspec(player, rg14.get_formspec(player))
end
if fields.rg15 then
inventory_plus.set_inventory_formspec(player, rg15.get_formspec(player))
end
if fields.rg16 then
inventory_plus.set_inventory_formspec(player, rg16.get_formspec(player))
end
if fields.rg17 then
inventory_plus.set_inventory_formspec(player, rg17.get_formspec(player))
end
if fields.rg18 then
inventory_plus.set_inventory_formspec(player, rg18.get_formspec(player))
end
if fields.rg19 then
inventory_plus.set_inventory_formspec(player, rg19.get_formspec(player))
end
if fields.rg20 then
inventory_plus.set_inventory_formspec(player, rg20.get_formspec(player))
end
if fields.crafting5 then
inventory_plus.set_inventory_formspec(player, crafting5.get_formspec(player))
end
if fields.dnab then
local player_inv = player:get_inventory()
local x1 = player_inv:get_stack("dna", 1):get_name()
local x2 = player_inv:get_stack("dna", 2):get_name()
local x3 = player_inv:get_stack("dna", 3):get_name()
local x4 = player_inv:get_stack("dna", 4):get_name()
local x5 = player_inv:get_stack("dna", 5):get_name()
local x6 = player_inv:get_stack("dna", 6):get_name()
local x7 = player_inv:get_stack("dna", 7):get_name()
local x8 = player_inv:get_stack("dna", 8):get_name()
local y1 = player_inv:get_stack("dna", 1):get_count()
local y2 = player_inv:get_stack("dna", 2):get_count()
local y3 = player_inv:get_stack("dna", 3):get_count()
local y4 = player_inv:get_stack("dna", 4):get_count()
local y5 = player_inv:get_stack("dna", 5):get_count()
local y6 = player_inv:get_stack("dna", 6):get_count()
local y7 = player_inv:get_stack("dna", 7):get_count()
local y8 = player_inv:get_stack("dna", 8):get_count()
local dog = player_inv:get_stack("dogdna", 1):get_count()
local cat = player_inv:get_stack("catdna", 1):get_count()
local sheep = player_inv:get_stack("sheepdna", 1):get_count()
local dragon = player_inv:get_stack("dragondna", 1):get_count()
local fox = player_inv:get_stack("foxdna", 1):get_count()
local tortoise = player_inv:get_stack("tortoisedna", 1):get_count()
if x1 == "tutorial:dna_string" and x2 == "tutorial:dna_string" and x3 == "tutorial:dna_string" and x4 == "tutorial:dna_string" and x5 == "tutorial:dna_string" and x6 == "tutorial:dna_string" and x7 == "tutorial:dna_string" and x8 == "tutorial:dna_string" then
player_inv:set_stack("dna", 1, "tutorial:dna_string "..(y1-1))
player_inv:set_stack("dna", 2, "tutorial:dna_string "..(y2-1))
player_inv:set_stack("dna", 3, "tutorial:dna_string "..(y3-1))
player_inv:set_stack("dna", 4, "tutorial:dna_string "..(y4-1))
player_inv:set_stack("dna", 5, "tutorial:dna_string "..(y5-1))
player_inv:set_stack("dna", 6, "tutorial:dna_string "..(y6-1))
player_inv:set_stack("dna", 7, "tutorial:dna_string "..(y7-1))
player_inv:set_stack("dna", 8, "tutorial:dna_string "..(y8-1))
local z = math.random(6)
if z == 1 then
if dog < 20 then
player_inv:add_item("dogdna","default:dirt")
end
elseif z == 2 then
if cat < 20 then
player_inv:add_item("catdna","default:dirt")
end
elseif z == 3 then
if sheep < 20 then
player_inv:add_item("sheepdna","default:dirt")
end
elseif z == 4 then
if dragon < 25 then
player_inv:add_item("dragondna","default:dirt")
end
elseif z == 5 then
if fox < 25 then
player_inv:add_item("foxdna","default:dirt")
end
elseif z == 6 then
if tortoise < 50 then
player_inv:add_item("tortoisedna","default:dirt")
end
end
end
if x1 == "tutorial:big_dna_string" and x2 == "tutorial:big_dna_string" and x3 == "tutorial:big_dna_string" and x4 == "tutorial:big_dna_string" and x5 == "tutorial:big_dna_string" and x6 == "tutorial:big_dna_string" and x7 == "tutorial:big_dna_string" and x8 == "tutorial:big_dna_string" then
player_inv:set_stack("dna", 1, "tutorial:big_dna_string "..(y1-1))
player_inv:set_stack("dna", 2, "tutorial:big_dna_string "..(y2-1))
player_inv:set_stack("dna", 3, "tutorial:big_dna_string "..(y3-1))
player_inv:set_stack("dna", 4, "tutorial:big_dna_string "..(y4-1))
player_inv:set_stack("dna", 5, "tutorial:big_dna_string "..(y5-1))
player_inv:set_stack("dna", 6, "tutorial:big_dna_string "..(y6-1))
player_inv:set_stack("dna", 7, "tutorial:big_dna_string "..(y7-1))
player_inv:set_stack("dna", 8, "tutorial:big_dna_string "..(y8-1))
player_inv:add_item("main","mobs:random_monster_egg")
end
inventory_plus.set_inventory_formspec(player, dna.get_formspec(player))
end
end)
local ach = {}
ach.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("a1", 1)
player_inv:set_size("a2", 1)
player_inv:set_size("a3", 1)
player_inv:set_size("a4", 1)
player_inv:set_size("a5", 1)
player_inv:set_size("a6", 1)
player_inv:set_size("a7", 1)
player_inv:set_size("a8", 1)
player_inv:set_size("a9", 1)
player_inv:set_size("a10", 1)
player_inv:set_size("a11", 1)
player_inv:set_size("a12", 1)
player_inv:set_size("a13", 1)
player_inv:set_size("a14", 1)
player_inv:set_size("a15", 1)
player_inv:set_size("a16", 1)
player_inv:set_size("a17", 1)
player_inv:set_size("a18", 1)
player_inv:set_size("a19", 1)
player_inv:set_size("a20", 1)
player_inv:set_size("a21", 1)
player_inv:set_size("a22", 1)
player_inv:set_size("a23", 1)
player_inv:set_size("a24", 1)
player_inv:set_size("a25", 1)
player_inv:set_size("a26", 1)
player_inv:set_size("a27", 1)
player_inv:set_size("a28", 1)
player_inv:set_size("a29", 1)
player_inv:set_size("a30", 1)
player_inv:set_size("a31", 1)
player_inv:set_size("a32", 1)
player_inv:set_size("a33", 1)
player_inv:set_size("a34", 1)
player_inv:set_size("a35", 1)
player_inv:set_size("a36", 1)
player_inv:set_size("a37", 1)
player_inv:set_size("a38", 1)
player_inv:set_size("a39", 1)
player_inv:set_size("a40", 1)
player_inv:set_size("a41", 1)
player_inv:set_size("a42", 1)
player_inv:set_size("a43", 1)
player_inv:set_size("a44", 1)
player_inv:set_size("a45", 1)
player_inv:set_size("a46", 1)
player_inv:set_size("a47", 1)
player_inv:set_size("a48", 1)
player_inv:set_size("a49", 1)
player_inv:set_size("a50", 1)
local a1 = player_inv:get_stack("a1", 1):get_count()
local a2 = player_inv:get_stack("a2", 1):get_count()
local a3 = player_inv:get_stack("a3", 1):get_count()
local a4 = player_inv:get_stack("a4", 1):get_count()
local a5 = player_inv:get_stack("a5", 1):get_count()
local a6 = player_inv:get_stack("a6", 1):get_count()
local a7 = player_inv:get_stack("a7", 1):get_count()
local a8 = player_inv:get_stack("a8", 1):get_count()
local a9 = player_inv:get_stack("a9", 1):get_count()
local a10 = player_inv:get_stack("a10", 1):get_count()
local a11 = player_inv:get_stack("a11", 1):get_count()
local a12 = player_inv:get_stack("a12", 1):get_count()
local a13 = player_inv:get_stack("a13", 1):get_count()
local a14 = player_inv:get_stack("a14", 1):get_count()
local a15 = player_inv:get_stack("a15", 1):get_count()
local a16 = player_inv:get_stack("a16", 1):get_count()
local a17 = player_inv:get_stack("a17", 1):get_count()
local a18 = player_inv:get_stack("a18", 1):get_count()
local a19 = player_inv:get_stack("a19", 1):get_count()
local a20 = player_inv:get_stack("a20", 1):get_count()
local a21 = player_inv:get_stack("a21", 1):get_count()
local a22 = player_inv:get_stack("a22", 1):get_count()
local a23 = player_inv:get_stack("a23", 1):get_count()
local a24 = player_inv:get_stack("a24", 1):get_count()
local a25 = player_inv:get_stack("a25", 1):get_count()
local a26 = player_inv:get_stack("a26", 1):get_count()
local a27 = player_inv:get_stack("a27", 1):get_count()
local a28 = player_inv:get_stack("a28", 1):get_count()
local a29 = player_inv:get_stack("a29", 1):get_count()
local a30 = player_inv:get_stack("a30", 1):get_count()
local a31 = player_inv:get_stack("a31", 1):get_count()
local a32 = player_inv:get_stack("a32", 1):get_count()
local a33 = player_inv:get_stack("a33", 1):get_count()
local a34 = player_inv:get_stack("a34", 1):get_count()
local a35 = player_inv:get_stack("a35", 1):get_count()
local a36 = player_inv:get_stack("a36", 1):get_count()
local a37 = player_inv:get_stack("a37", 1):get_count()
local a38 = player_inv:get_stack("a38", 1):get_count()
local a39 = player_inv:get_stack("a39", 1):get_count()
local a40 = player_inv:get_stack("a40", 1):get_count()
local a41 = player_inv:get_stack("a41", 1):get_count()
local a42 = player_inv:get_stack("a42", 1):get_count()
local a43 = player_inv:get_stack("a43", 1):get_count()
local a44 = player_inv:get_stack("a44", 1):get_count()
local a45 = player_inv:get_stack("a45", 1):get_count()
local a46 = player_inv:get_stack("a46", 1):get_count()
local a47 = player_inv:get_stack("a47", 1):get_count()
local a48 = player_inv:get_stack("a48", 1):get_count()
local a49 = player_inv:get_stack("a49", 1):get_count()
local a50 = player_inv:get_stack("a50", 1):get_count()
local d1 = 0
if a1 == 1 then
d1 = d1+1
end
if a2 == 1 then
d1 = d1+1
end
if a3 == 1 then
d1 = d1+1
end
if a4 == 1 then
d1 = d1+1
end
if a5 == 1 then
d1 = d1+1
end
if a6 == 1 then
d1 = d1+1
end
if a7 == 1 then
d1 = d1+1
end
if a8 == 1 then
d1 = d1+1
end
if a9 == 1 then
d1 = d1+1
end
if a10 == 1 then
d1 = d1+1
end
if a11 == 1 then
d1 = d1+1
end
if a12 == 1 then
d1 = d1+1
end
if a13 == 1 then
d1 = d1+1
end
if a14 == 1 then
d1 = d1+1
end
if a15 == 1 then
d1 = d1+1
end
if a16 == 1 then
d1 = d1+1
end
if a17 == 1 then
d1 = d1+1
end
if a18 == 1 then
d1 = d1+1
end
if a19 == 1 then
d1 = d1+1
end
if a20 == 1 then
d1 = d1+1
end
if a21 == 1 then
d1 = d1+1
end
if a22 == 1 then
d1 = d1+1
end
if a23 == 1 then
d1 = d1+1
end
if a24 == 1 then
d1 = d1+1
end
if a25 == 1 then
d1 = d1+1
end
if a26 == 1 then
d1 = d1+1
end
if a27 == 1 then
d1 = d1+1
end
if a28 == 1 then
d1 = d1+1
end
if a29 == 1 then
d1 = d1+1
end
if a30 == 1 then
d1 = d1+1
end
if a31 == 1 then
d1 = d1+1
end
if a32 == 1 then
d1 = d1+1
end
if a33 == 1 then
d1 = d1+1
end
if a34 == 1 then
d1 = d1+1
end
if a35 == 1 then
d1 = d1+1
end
if a36 == 1 then
d1 = d1+1
end
if a37 == 1 then
d1 = d1+1
end
if a38 == 1 then
d1 = d1+1
end
if a39 == 1 then
d1 = d1+1
end
if a40 == 1 then
d1 = d1+1
end
if a41 == 1 then
d1 = d1+1
end
if a42 == 1 then
d1 = d1+1
end
if a43 == 1 then
d1 = d1+1
end
if a44 == 1 then
d1 = d1+1
end
if a45 == 1 then
d1 = d1+1
end
if a46 == 1 then
d1 = d1+1
end
if a47 == 1 then
d1 = d1+1
end
if a48 == 1 then
d1 = d1+1
end
if a49 == 1 then
d1 = d1+1
end
if a50 == 1 then
d1 = d1+1
end
formspec = "size[10.5,11.3]"
.."background[10.5,11.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[4,0;2,0.5;achc;Spezial]"
.."image[0,1;0.8,0.8;tutorial_"..a1..".png]"
.."image[0,1.8;0.8,0.8;tutorial_"..a2..".png]"
.."image[0,2.6;0.8,0.8;tutorial_"..a3..".png]"
.."image[0,3.4;0.8,0.8;tutorial_"..a4..".png]"
.."image[0,4.2;0.8,0.8;tutorial_"..a5..".png]"
.."image[0,5;0.8,0.8;tutorial_"..a6..".png]"
.."image[0,5.8;0.8,0.8;tutorial_"..a7..".png]"
.."image[0,6.6;0.8,0.8;tutorial_"..a8..".png]"
.."image[0,7.4;0.8,0.8;tutorial_"..a9..".png]"
.."image[0,8.2;0.8,0.8;tutorial_"..a10..".png]"
.."image[0,9;0.8,0.8;tutorial_"..a11..".png]"
.."image[0,9.8;0.8,0.8;tutorial_"..a12..".png]"
.."image[0,10.6;0.8,0.8;tutorial_"..a13..".png]"
.."image[2.5,1.0;0.8,0.8;tutorial_"..a14..".png]"
.."image[2.5,1.8;0.8,0.8;tutorial_"..a15..".png]"
.."image[2.5,2.6;0.8,0.8;tutorial_"..a16..".png]"
.."image[2.5,3.4;0.8,0.8;tutorial_"..a17..".png]"
.."image[2.5,4.2;0.8,0.8;tutorial_"..a18..".png]"
.."image[2.5,5;0.8,0.8;tutorial_"..a19..".png]"
.."image[2.5,5.8;0.8,0.8;tutorial_"..a20..".png]"
.."image[2.5,6.6;0.8,0.8;tutorial_"..a21..".png]"
.."image[2.5,7.4;0.8,0.8;tutorial_"..a22..".png]"
.."image[2.5,8.2;0.8,0.8;tutorial_"..a23..".png]"
.."image[2.5,9;0.8,0.8;tutorial_"..a24..".png]"
.."image[2.5,9.8;0.8,0.8;tutorial_"..a25..".png]"
.."image[2.5,10.6;0.8,0.8;tutorial_"..a26..".png]"
.."image[5,1;0.8,0.8;tutorial_"..a27..".png]"
.."image[5,1.8;0.8,0.8;tutorial_"..a28..".png]"
.."image[5,2.6;0.8,0.8;tutorial_"..a29..".png]"
.."image[5,3.4;0.8,0.8;tutorial_"..a30..".png]"
.."image[5,4.2;0.8,0.8;tutorial_"..a31..".png]"
.."image[5,5;0.8,0.8;tutorial_"..a32..".png]"
.."image[5,5.8;0.8,0.8;tutorial_"..a33..".png]"
.."image[5,6.6;0.8,0.8;tutorial_"..a34..".png]"
.."image[5,7.4;0.8,0.8;tutorial_"..a35..".png]"
.."image[5,8.2;0.8,0.8;tutorial_"..a36..".png]"
.."image[5,9.0;0.8,0.8;tutorial_"..a37..".png]"
.."image[5,9.8;0.8,0.8;tutorial_"..a38..".png]"
.."image[5,10.6;0.8,0.8;tutorial_"..a39..".png]"
.."image[7.5,1;0.8,0.8;tutorial_"..a40..".png]"
.."image[7.5,1.8;0.8,0.8;tutorial_"..a41..".png]"
.."image[7.5,2.6;0.8,0.8;tutorial_"..a42..".png]"
.."image[7.5,3.4;0.8,0.8;tutorial_"..a43..".png]"
.."image[7.5,4.2;0.8,0.8;tutorial_"..a44..".png]"
.."image[7.5,5;0.8,0.8;tutorial_"..a45..".png]"
.."image[7.5,5.8;0.8,0.8;tutorial_"..a46..".png]"
.."image[7.5,6.6;0.8,0.8;tutorial_"..a47..".png]"
.."image[7.5,7.4;0.8,0.8;tutorial_"..a48..".png]"
.."image[7.5,8.2;0.8,0.8;tutorial_"..a49..".png]"
.."image[7.5,9.0;0.8,0.8;tutorial_"..a50..".png]"
.."label[6,0;"..d1.."/50]"
.."button[6.5,0;2,0.5;rew;Reward (25)]"
.."button[8.5,0;2,0.5;rewb;Reward (50)]"
return formspec
end
local ach2 = {}
ach2.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
formspec= "label[0.8,1.1;Regnumbattleaxe]"
.."label[0.8,1.9;Bagkey Lv.MAX]"
.."label[0.8,2.7.5;Armorkey]"
.."label[0.8,3.5;Xp key]"
.."label[0.8,4.3.5;Craftkey Lv.MAX]"
.."label[0.8,5.1;Legendkey]"
.."label[0.8,5.9;Regnumkey]"
.."label[0.8,6.7;Pixeled Regnumkey]"
.."label[0.8,7.5;8 Regnum Trolleys]"
.."label[0.8,8.3;8 Legend crystals]"
.."label[0.8,9.1;Xp green Lv.MAX]"
.."label[0.8,9.9;Xp red Lv.MAX]"
.."label[0.8,10.7;Xp blue Lv.MAX]"
.."label[3.3,1.1;Xp gray Lv.MAX]"
.."label[3.3,1.9;dog spawn-egg]"
.."label[3.3,2.7;cat spawn-egg]"
.."label[3.3,3.5;sheep spawn-egg]"
.."label[3.3,4.3;dragon spawn-egg]"
.."label[3.3,5.1;mining laser lv.150]"
.."label[3.3,5.9;all awards]"
.."label[3.3,6.7;mining drill lv.150]"
.."label[3.3,7.5;Dragon key]"
.."label[3.3,8.3;5 magic gems]"
.."label[3.3,9.1;Regnumhelmet]"
.."label[3.3,9.9;Regnumchestplate]"
.."label[3.3,10.7;Regnumleggings]"
.."label[5.8,1.1;Regnumboots]"
.."label[5.8,1.9;Regnumshield]"
.."label[5.8,2.7;fox spawn-egg]"
.."label[5.8,3.5;tortoise spawn-egg]"
.."label[5.8,4.3;Foxkey]"
.."label[5.8,5.1;10 magic gems]"
.."label[5.8,5.9;Wallplacer lv.MAX]"
.."label[5.8,6.7;Xp yellow Lv.MAX]"
.."label[5.8,7.5;all artifacts]"
.."label[5.8,8.3;Tortoisekey]"
.."label[5.8,9.1;Knightkey]"
.."label[5.8,9.9;all medallions]"
.."label[5.8,10.7;Crystalkey]"
.."label[8.3,1.1;2 Regnum crystal]"
.."label[8.3,1.9;Goldenkey]"
.."label[8.3,2.7;Xp cyan Lv.MAX]"
.."label[8.3,3.5;Cookingkey Lv.MAX]"
.."label[8.3,4.3;2 Pixeled Regnumkeys]"
.."label[8.3,5.1;all trophys]"
.."label[8.3,5.9;Protectionkey lv.MAX]"
.."label[8.3,6.7;all treasures]"
.."label[8.3,7.5;Legendstick lv.MAX]"
.."label[8.3,8.3;Regnumgun]"
.."label[8.3,9.1;Colorstick (broken)]"
return formspec
end
local ach3 = {}
ach3.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("year", 2)
local year = player_inv:get_stack("year", 1):get_count()
local year2 = player_inv:get_stack("year", 2):get_count()
local d = 0
if year == 1 then
d = d+1
end
if year2 == 1 then
d = d+1
end
formspec= "size[10.5,11.3]"
.."background[10.5,11.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;ach;Back]"
.."button[2,0;2,0.5;main;Main]"
.."label[0.8,1.1;one year Trophy]"
.."label[0.8,1.9;two years Trophy]"
.."label[5.5,0;"..d.."/2]"
.."image[0,1;0.8,0.8;tutorial_"..year..".png]"
.."image[0,1.8;0.8,0.8;tutorial_"..year2..".png]"
return formspec
end
for j = 1, 8, 1 do
for i = 1, 8, 1 do
minetest.register_node("tutorial:legend_thunder_"..i.."_"..j, {
description = "Legend thunder: damage lv."..i..",lengh lv."..j,
drawtype = "plantlike",
tiles = {{
name="tutorial_legend_thunder.png",
}},
light_source = 12,
walkable = false,
buildable_to = true,
damage_per_second = (i*8),
drop = {},
groups = {dig_immediate=3},
})
minetest.register_abm({
nodenames = {"tutorial:legend_thunder_"..i.."_"..j},
interval = (j*3),
chance = 1,
action = function(pos)
minetest.env:remove_node(pos)
end,
})
end
end
for k = 1, 8, 1 do
for j = 1, 8, 1 do
for i = 1, 8, 1 do
minetest.register_entity("tutorial:legendball_"..i.."_"..j.."_"..k, {
visual = "mesh",
visual_size = {x=5, y=5},
mesh = "tutorial_fireball.x",
textures = {"tutorial_legendball.png"},
velocity = 5,
light_source = 12,
on_step = function(self, dtime)
local pos = self.object:getpos()
if minetest.env:get_node(self.object:getpos()).name ~= "air"then
self.hit_node(self, pos, node)
self.object:remove()
return
end
pos.y = pos.y-1
for _,player in pairs(minetest.env:get_objects_inside_radius(pos, 1)) do
if player:is_player() then
self.hit_player(self, player)
self.object:remove()
return
end
end
end,
hit_player = function(self, player)
local hp = player:get_hp()
if hp > (k*2) then
player:set_hp(hp-(k*2))
else
player:set_hp(0)
end
local s = player:getpos()
local p = player:get_look_dir()
local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z}
local pos = player:getpos()
for dx=0,1 do
for dy=0,1 do
for dz=0,1 do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if (n == "air") then
minetest.env:add_node(p, {name="tutorial:legend_thunder_"..i.."_"..j})
end
end
end
end
end,
hit_node = function(self, pos, node)
for dx=-1,1 do
for dy=-2,1 do
for dz=-1,1 do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if (n == "air") then
minetest.env:add_node(p, {name="tutorial:legend_thunder_"..i.."_"..j})
end
end
end
end
end
})
minetest.register_tool("tutorial:legendball_"..i.."_"..j.."_"..k, {
description = "Legend Ball: Ball damage lv."..k..", Thunder damage lv."..i..", Thunder lengh lv."..j,
inventory_image = "tutorial_legendball.png",
on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir();
local inv = placer:get_inventory()
local playerpos = placer:getpos();
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_"..i.."_"..j.."_"..k)
local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3}
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
obj:setvelocity(vec)
return itemstack
end,
light_source = 12,
})
end
end
end
local mode_text = {
{"Give player Enemy rank. (revoke all privs)"},
{"Give player Member rank. (interact,shout)"},
{"Give player Premium rank. (interact,shout,fly,fast,home,zoom)"},
{"Give player VIP rank. (interact,shout,fly,fast,home,teleport,zoom)"},
{"Give player Hero rank. (interact,shout,fly,fast,home,teleport,noclip,zoom,debug)"},
{"Give player Legend rank (interact,shout,fly,fast,home,teleport,bring,noclip,settime,zoom,debug)"},
{"Give player Admin rank (all privs)"},
{"Mark player as a youtuber "},
}
local function server_hammer_setmode(user, itemstack, mode, keys)
local puncher = user:get_player_name()
if keys["sneak"] == false and mode == 0 then
minetest.chat_send_player(puncher, "Hold shift and use to change server hammer modes.")
return
end
if keys["sneak"] == true then
mode = mode + 1
if mode == 9 then
mode = 1
end
minetest.chat_send_player(puncher, "Ban hammer mode : "..mode.." - "..mode_text[mode][1] )
end
itemstack:set_name("tutorial:server_hammer"..mode)
itemstack:set_metadata(mode)
return itemstack, mode
end
local function server_hammer_handler(itemstack, user, pointed_thing, mode)
local keys = user:get_player_control()
server_hammer_setmode(user, itemstack, mode, keys)
if pointed_thing.type ~= "object" then
return
end
if not pointed_thing.ref:is_player() then
return
end
local puncher = user:get_player_name()
local puncher_privs = minetest.get_player_privs(puncher)
if (puncher_privs["ban"] == false) then
return
end
local punched_player = pointed_thing.ref:get_player_name()
local punched_player_privs = minetest.get_player_privs(punched_player)
if mode == 1 then
minetest.chat_send_player(punched_player, puncher.." gives you Enemy rank. You have no privs")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Enemy]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()})
end
elseif mode == 2 then
minetest.chat_send_player(punched_player, puncher.." gives you Member rank. You can use interact and shout")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true
punched_player_privs["shout"] = true
minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Youtuber][Member]"..player:get_player_name()})
end
elseif mode == 3 then
minetest.chat_send_player(punched_player, puncher.." gives you Premium rank. You can use interact,shout,fast,fly,home and zoom")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true
punched_player_privs["shout"] = true
punched_player_privs["fly"] = true
punched_player_privs["fast"] = true
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Premium]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
end
elseif mode == 4 then
minetest.chat_send_player(punched_player, puncher.." gives you VIP rank. You can use interact,shout,fast,home,zoom,teleport and fly")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true
punched_player_privs["shout"] = true
punched_player_privs["fly"] = true
punched_player_privs["fast"] = true
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["teleport"] = true
minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[VIP]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
end
elseif mode == 5 then
minetest.chat_send_player(punched_player, puncher.." gives you Hero rank. You can use interact,shout,fast,home,zoom,teleport,noclip,fly and debug")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true
punched_player_privs["shout"] = true
punched_player_privs["fly"] = true
punched_player_privs["fast"] = true
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["teleport"] = true
punched_player_privs["noclip"] = true
punched_player_privs["debug"] = true
minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Hero]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
end
elseif mode == 6 then
minetest.chat_send_player(punched_player, puncher.." gives you Legend rank. You can use interact,shout,fast,home,zoom,teleport,noclip,fly,debug,bring and settime")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true
punched_player_privs["shout"] = true
punched_player_privs["fly"] = true
punched_player_privs["fast"] = true
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["bring"] = true
punched_player_privs["teleport"] = true
punched_player_privs["noclip"] = true
punched_player_privs["debug"] = true
punched_player_privs["settime"] = true
minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Legend]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()})
end
elseif mode == 7 then
minetest.chat_send_player(punched_player, puncher.." gives you Admin rank. You can use every privs")
minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true
punched_player_privs["shout"] = true
punched_player_privs["fly"] = true
punched_player_privs["fast"] = true
punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["bring"] = true
punched_player_privs["teleport"] = true
punched_player_privs["noclip"] = true
punched_player_privs["debug"] = true
punched_player_privs["settime"] = true
punched_player_privs["server"] = true
punched_player_privs["password"] = true
punched_player_privs["delprotect"] = true
punched_player_privs["kick"] = true
punched_player_privs["ban"] = true
punched_player_privs["rollback"] = true
punched_player_privs["privs"] = true
punched_player_privs["basic_privs"] = true
punched_player_privs["give"] = true
punched_player_privs["protection_bypass"] = true
punched_player_privs["travelnet_remove"] = true
punched_player_privs["travelnet_attach"] = true
punched_player_privs["shop_admin"] = true
punched_player_privs["creative"] = true
minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Admin]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()})
end
elseif mode == 8 then
minetest.chat_send_player(punched_player, puncher.." marks you as a youtuber")
pri = minetest.get_player_privs(punched_player)
local player = minetest.get_player_by_name(punched_player)
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()})
end
local inv = player:get_inventory()
inv:set_size("youtube",1)
inv:set_stack("youtube",1,"default:dirt")
end
return itemstack
end
minetest.register_craftitem("tutorial:server_hammer", {
description = "Admin tool 6: Server Hammer",
inventory_image = "ban_hammer.png",
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)
local mode = 0
server_hammer_handler(itemstack, user, pointed_thing, mode)
return itemstack
end,
})
for i = 1, 8 do
minetest.register_craftitem("tutorial:server_hammer"..i, {
description = "Admin tool 6: Server Hammer in Mode "..i,
inventory_image = "ban_hammer.png^technic_tool_mode"..i..".png",
wield_image = "ban_hammer.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
local mode = i
server_hammer_handler(itemstack, user, pointed_thing, mode)
return itemstack
end,
})
end
minetest.register_on_joinplayer(function(player)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("t", 1)
player_inv:add_item("t", "default:dirt")
local pri = minetest.get_player_privs(player:get_player_name())
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({text = "[Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Enemy]"..player:get_player_name()})
end
else
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()})
end
end
end)
local kri = {}
kri.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
local kri_inv = minetest.create_detached_inventory(player:get_player_name().."_kri",{
allow_put = function(inv, listname, index, stack, player)
return 0
end,
allow_take = function(inv, listname, index, stack, player)
return 0
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
kri_inv:set_size("kri", 8)
player_inv:set_size("kri", 8)
player_inv:set_size("de", 1)
player_inv:set_size("td", 1)
player_inv:set_size("tl", 1)
player_inv:set_size("time", 1)
player_inv:set_size("t", 1)
player_inv:set_size("krit", 1)
local dl = player_inv:get_stack("de", 1):get_count()
local tdl = player_inv:get_stack("td", 1):get_count()
local tll = player_inv:get_stack("tl", 1):get_count()
local tes = player_inv:get_stack("t", 1):get_count()
if dl == 0 then
dl = "nil"
end
if tdl == 0 then
tdl = "nil"
end
if tll == 0 then
tll = "nil"
end
local k = 0
for i=1, 8 do
local stack = player_inv:get_stack("kri", i)
kri_inv:set_stack("kri", i, stack)
if not player_inv:get_stack("kri", i):is_empty() then
k = k+1
end
end
local time = 0
if dl ~= "nil" and tdl ~= "nil" and tll ~= "nil" then
time = time+(dl*35)
time = time+(tdl*15)
time = time+(tll*10)
if player_inv:get_stack("krit", 1):get_name() == "tutorial:crystal_schluessel" then
time = time/2
end
else
time = "nil"
end
formspec = "size[10,12.3]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."background[10,8.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."list[current_player;krit;0.3,2.5;1,1;]"
.."list[current_player;main;1,8.75;8,4;]"
.."label[0.3,3.5;crystalkey]"
.."list[detached:"..player:get_player_name().."_kri;kri;3,1;2,1;]"
.."list[detached:"..player:get_player_name().."_kri;kri;5,2;1,2;2]"
.."list[detached:"..player:get_player_name().."_kri;kri;4,4;1,1;4]"
.."list[detached:"..player:get_player_name().."_kri;kri;3,4;1,1;5]"
.."list[detached:"..player:get_player_name().."_kri;kri;2,3;1,1;6]"
.."list[detached:"..player:get_player_name().."_kri;kri;2,2;1,1;7]"
.."listring[current_player;krit]"
.."listring[current_player;main]"
.."label[0,1;You have "..k.."/8 crystals]"
.."image[3.1,2.1;2,2;tutorial_legendenkristall.png]"
.."label[7,1;Ball damage level:"..dl.."]"
.."label[7,1.5;Thunder damage level:"..tdl.."]"
.."label[7,2;Thunder damage level:"..tll.."]"
.."label[7,2.5;Time in s:"..time.."]"
.."label[0,5.75;Ball damage level]"
.."label[0,6.75;Thunder damage level]"
.."label[0,7.75;Thunder length level]"
if k > 0 then
formspec = formspec .."button[2,5.75;1,0.5;adem;1]"
.."button[2,6.75;1,0.5;athu;1]"
.."button[2,7.75;1,0.5;athl;1]"
if time ~= "nil" then
formspec = formspec .."label[7,3;creating..]"
end
end
if k > 1 then
formspec = formspec .."button[3,5.75;1,0.5;bdem;2]"
.."button[3,6.75;1,0.5;bthu;2]"
.."button[3,7.75;1,0.5;bthl;2]"
end
if k > 2 then
formspec = formspec .."button[4,5.75;1,0.5;cdem;3]"
.."button[4,6.75;1,0.5;cthu;3]"
.."button[4,7.75;1,0.5;cthl;3]"
end
if k > 3 then
formspec = formspec .."button[5,5.75;1,0.5;ddem;4]"
.."button[5,6.75;1,0.5;dthu;4]"
.."button[5,7.75;1,0.5;dthl;4]"
end
if k > 4 then
formspec = formspec .."button[6,5.75;1,0.5;edem;5]"
.."button[6,6.75;1,0.5;ethu;5]"
.."button[6,7.75;1,0.5;ethl;5]"
end
if k > 5 then
formspec = formspec .."button[7,5.75;1,0.5;fdem;6]"
.."button[7,6.75;1,0.5;fthu;6]"
.."button[7,7.75;1,0.5;fthl;6]"
end
if k > 6 then
formspec = formspec .."button[8,5.75;1,0.5;gdem;7]"
.."button[8,6.75;1,0.5;gthu;7]"
.."button[8,7.75;1,0.5;gthl;7]"
end
if k > 7 then
formspec = formspec .."button[9,5.75;1,0.5;hdem;8]"
.."button[9,6.75;1,0.5;hthu;8]"
.."button[9,7.75;1,0.5;hthl;8]"
end
if tes > 0 and time ~= "nil" then
formspec = formspec .."button[7,3;2,0.5;cre;create]"
end
return formspec
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if player == nil then
return
end
if fields.kri then
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.ach then
local player_inv = player:get_inventory()
local name = player:get_player_name()
player_inv:set_size("a1", 1)
player_inv:set_size("a2", 1)
player_inv:set_size("a3", 1)
player_inv:set_size("a4", 1)
player_inv:set_size("a5", 1)
player_inv:set_size("a6", 1)
player_inv:set_size("a7", 1)
player_inv:set_size("a8", 1)
player_inv:set_size("a9", 1)
player_inv:set_size("a10", 1)
player_inv:set_size("a11", 1)
player_inv:set_size("a12", 1)
player_inv:set_size("a13", 1)
player_inv:set_size("a14", 1)
player_inv:set_size("a15", 1)
player_inv:set_size("a16", 1)
player_inv:set_size("a17", 1)
player_inv:set_size("a18", 1)
player_inv:set_size("a19", 1)
player_inv:set_size("a20", 1)
player_inv:set_size("a21", 1)
player_inv:set_size("a22", 1)
player_inv:set_size("a23", 1)
player_inv:set_size("a24", 1)
player_inv:set_size("a25", 1)
player_inv:set_size("a26", 1)
player_inv:set_size("a27", 1)
player_inv:set_size("a28", 1)
player_inv:set_size("a29", 1)
player_inv:set_size("a30", 1)
player_inv:set_size("a31", 1)
player_inv:set_size("a32", 1)
player_inv:set_size("a33", 1)
player_inv:set_size("a34", 1)
player_inv:set_size("a35", 1)
player_inv:set_size("a36", 1)
player_inv:set_size("a37", 1)
player_inv:set_size("a38", 1)
player_inv:set_size("a39", 1)
player_inv:set_size("a40", 1)
player_inv:set_size("a41", 1)
player_inv:set_size("a42", 1)
player_inv:set_size("a43", 1)
player_inv:set_size("a44", 1)
player_inv:set_size("a45", 1)
player_inv:set_size("a46", 1)
player_inv:set_size("a47", 1)
player_inv:set_size("a48", 1)
player_inv:set_size("a49", 1)
player_inv:set_size("a50", 1)
local type = player:get_inventory():get_stack("b",1):get_name()
local type2 = player:get_inventory():get_stack("arm",1):get_name()
local type3 = player:get_inventory():get_stack("feld2",1):get_name()
local type4 = player:get_inventory():get_stack("feld",1):get_name()
local type5 = player:get_inventory():get_stack("feld3",1):get_name()
local type6 = player:get_inventory():get_stack("feld4",1):get_name()
local type7 = player:get_inventory():get_stack("skinskey",1):get_name()
local type8 = 0
local type9 = 0
local type10 = player:get_inventory():get_stack("feld5",1):get_name()
local ge = io.open(minetest.get_worldpath().."/"..name.."_experience", "r")
local type10 = ge:read("*l")
local rt = io.open(minetest.get_worldpath().."/"..name.."_experience_rot", "r")
local type11 = rt:read("*l")
local bl = io.open(minetest.get_worldpath().."/"..name.."_experience_blau", "r")
local type12 = bl:read("*l")
local gr = io.open(minetest.get_worldpath().."/"..name.."_experience_grau", "r")
local type13 = gr:read("*l")
local ye = io.open(minetest.get_worldpath().."/"..name.."_experience_gelb", "r")
local type16 = ye:read("*l")
local ce = io.open(minetest.get_worldpath().."/"..name.."_experience_cyan", "r")
local type23 = ce:read("*l")
local type14 = player:get_inventory():get_stack("feld5",1):get_name()
local type15 = player:get_inventory():get_stack("feld6",1):get_name()
local type17 = player:get_inventory():get_stack("feld7",1):get_name()
local type18 = player:get_inventory():get_stack("skinskey2",1):get_name()
local type19 = player:get_inventory():get_stack("krit",1):get_name()
local type20 = player:get_inventory():get_stack("dragon",1):get_name()
local type21 = player:get_inventory():get_stack("tortoise",1):get_name()
local type22 = player:get_inventory():get_stack("feld8",1):get_name()
local type24 = player:get_inventory():get_stack("cookkey",1):get_name()
local type25 = player:get_inventory():get_stack("pixkey",1):get_name()
local type26 = player:get_inventory():get_stack("arm2",1):get_name()
for i=1,8 do
if player:get_inventory():get_stack("bag"..i,1):get_name() == "bags:trolley_admin" then
type8 = type8+1
end
if player:get_inventory():get_stack("kri",i):get_name() == "tutorial:legenden_kristall_"..i then
type9 = type9+1
end
end
local g1 = player_inv:get_stack("gem", 1):get_name()
local g2 = player_inv:get_stack("gem", 2):get_name()
local g3 = player_inv:get_stack("gem", 3):get_name()
local g4 = player_inv:get_stack("gem", 4):get_name()
local g5 = player_inv:get_stack("gem", 5):get_name()
local g11 = player_inv:get_stack("gem2", 1):get_name()
local g12 = player_inv:get_stack("gem2", 2):get_name()
local g13 = player_inv:get_stack("gem2", 3):get_name()
local g14 = player_inv:get_stack("gem2", 4):get_name()
local g15 = player_inv:get_stack("gem2", 5):get_name()
local ar1 = player_inv:get_stack("armor", 1):get_name()
local ar2 = player_inv:get_stack("armor", 2):get_name()
local ar3 = player_inv:get_stack("armor", 3):get_name()
local ar4 = player_inv:get_stack("armor", 4):get_name()
local ar5 = player_inv:get_stack("armor", 5):get_name()
local afaf = player_inv:get_stack("afaf", 1):get_count()
local meme = player_inv:get_stack("meme", 1):get_count()
local trtr = player_inv:get_stack("trtr", 1):get_count()
local tata = player_inv:get_stack("tata", 1):get_count()
if afaf == 71 then
player_inv:set_stack("a35", 1,"tutorial:dirt")
end
if meme == 7 then
player_inv:set_stack("a38", 1,"tutorial:dirt")
end
if trtr == 24 then
player_inv:set_stack("a45", 1,"tutorial:dirt")
end
if tata == 6 then
player_inv:set_stack("a47", 1,"tutorial:dirt")
end
if ar1 == "3d_armor:regnumhelmet" or ar1 == "3d_armor:regnumhelmet2" or ar1 == "3d_armor:regnumhelmet3" or ar1 == "3d_armor:regnumhelmet4" then
player_inv:set_stack("a24", 1,"tutorial:dirt")
end
if ar2 == "3d_armor:regnumchestplate" or ar2 == "3d_armor:regnumchestplate2" or ar2 == "3d_armor:regnumchestplate3" or ar2 == "3d_armor:regnumchestplate4" then
player_inv:set_stack("a25", 1,"tutorial:dirt")
end
if ar3 == "3d_armor:regnumleggings" or ar3 == "3d_armor:regnumleggings2" or ar3 == "3d_armor:regnumleggings3" or ar3 == "3d_armor:regnumleggings4" then
player_inv:set_stack("a26", 1,"tutorial:dirt")
end
if ar4 == "3d_armor:regnumboots" or ar4 == "3d_armor:regnumboots2" or ar4 == "3d_armor:regnumboots3" or ar4 == "3d_armor:regnumboots4" then
player_inv:set_stack("a27", 1,"tutorial:dirt")
end
if ar5 == "shields:regnumshield" or ar5 == "shields:regnumshield2" or ar5 == "shields:regnumshield3" or ar5 == "shields:regnumshield4" then
player_inv:set_stack("a28", 1,"tutorial:dirt")
end
if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then
if g11 == "tutorial:magic_gem1" and g12 == "tutorial:magic_gem2" and g13 == "tutorial:magic_gem3" and g14 == "tutorial:magic_gem4" and g15 == "tutorial:magic_gem5" then
player_inv:set_stack("a23", 1,"tutorial:dirt")
end
end
if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then
player_inv:set_stack("a32", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "tutorial:regnumbattleaxe1") or player:get_inventory():contains_item("main", "tutorial:regnumbattleaxe2") or player:get_inventory():contains_item("main", "tutorial:regnumbattleaxe3") then
player_inv:set_stack("a1", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "tutorial:legendstick9") then
player_inv:set_stack("a48", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "tutorial:wallplacer5_1") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_2") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_3") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_4") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_5") then
player_inv:set_stack("a33", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "technic:laser_mkS150") then
player_inv:set_stack("a19", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "tutorial:colorstick_broken") then
player_inv:set_stack("a50", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "tutorial:regnumgun1") or player:get_inventory():contains_item("main", "tutorial:regnumgun2") then
player_inv:set_stack("a49", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "technic:drill_mkS150") or player:get_inventory():contains_item("main", "technic:drill_mkS150_1") or player:get_inventory():contains_item("main", "technic:drill_mkS150_2") or player:get_inventory():contains_item("main", "technic:drill_mkS150_3") or player:get_inventory():contains_item("main", "technic:drill_mkS150_4") or player:get_inventory():contains_item("main", "technic:drill_mkS150_5")then
player_inv:set_stack("a21", 1,"tutorial:dirt")
end
if type == "tutorial:bag_schluessel4" then
player_inv:set_stack("a2", 1,"tutorial:dirt")
end
if type2 == "tutorial:armor_key" then
player_inv:set_stack("a3", 1, "default:dirt")
end
if type3 == "tutorial:level_schluessel" then
player_inv:set_stack("a4", 1, "default:dirt")
end
if type4 == "tutorial:craft_schluessel7" then
player_inv:set_stack("a5", 1, "default:dirt")
end
if type5 == "tutorial:legenden_schluessel" then
player_inv:set_stack("a6", 1, "default:dirt")
end
if type6 == "tutorial:regnum_key" then
player_inv:set_stack("a7", 1, "default:dirt")
end
if type7 == "tutorial:regnum_key_pixeled" or type25 == "tutorial:regnum_key_pixeled" then
player_inv:set_stack("a8", 1, "default:dirt")
end
if type8 == 8 then
player_inv:set_stack("a9", 1, "default:dirt")
end
if type9 == 8 then
player_inv:set_stack("a10", 1, "default:dirt")
end
if type14 == "tutorial:dragon_schluessel" then
player_inv:set_stack("a22", 1, "default:dirt")
end
if type15 == "tutorial:fox_schluessel" then
player_inv:set_stack("a31", 1, "default:dirt")
end
if type17 == "tutorial:tortoise_schluessel" then
player_inv:set_stack("a36", 1, "default:dirt")
end
if type18 == "tutorial:knight_schluessel" then
player_inv:set_stack("a37", 1, "default:dirt")
end
if type19 == "tutorial:crystal_schluessel" then
player_inv:set_stack("a39", 1, "default:dirt")
end
if type20 == "tutorial:dragon_crystal" and type21 == "tutorial:dragon_crystal" then
player_inv:set_stack("a40", 1, "default:dirt")
end
if type22 == "tutorial:golden_schluessel" then
player_inv:set_stack("a41", 1, "default:dirt")
end
if type24 == "tutorial:cooking_schluessel4" then
player_inv:set_stack("a43", 1, "default:dirt")
end
if type26 == "tutorial:protection_schluessel3" then
player_inv:set_stack("a46", 1, "default:dirt")
end
if type7 == "tutorial:regnum_key_pixeled" and type25 == "tutorial:regnum_key_pixeled" then
player_inv:set_stack("a44", 1, "default:dirt")
end
if tonumber(type10) > 11949 then
player_inv:set_stack("a11", 1, "default:dirt")
end
if tonumber(type11) > 249 then
player_inv:set_stack("a12", 1, "default:dirt")
end
if tonumber(type12) > 249 then
player_inv:set_stack("a13", 1, "default:dirt")
end
if tonumber(type13) > 3199 then
player_inv:set_stack("a14", 1, "default:dirt")
end
if tonumber(type16) > 599 then
player_inv:set_stack("a34", 1, "default:dirt")
end
if tonumber(type23) > 899 then
player_inv:set_stack("a42", 1, "default:dirt")
end
inventory_plus.set_inventory_formspec(player, (ach.get_formspec(player)..ach2.get_formspec(player)))
end
if fields.achc then
local player_inv = player:get_inventory()
player_inv:set_size("year", 2)
if player:get_inventory():contains_item("main", "tutorial:trophy_year1") then
player_inv:set_stack("year", 1,"tutorial:dirt")
end
if player:get_inventory():contains_item("main", "tutorial:trophy_year2") then
player_inv:set_stack("year", 2,"tutorial:dirt")
end
inventory_plus.set_inventory_formspec(player, ach3.get_formspec(player))
end
if fields.adem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 1")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.bdem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 2")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.cdem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 3")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.ddem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 4")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.edem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 5")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.fdem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 6")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.gdem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 7")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.hdem then
local player_inv = player:get_inventory()
player_inv:set_stack("de", 1,"tutorial:dirt 8")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.athu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 1")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.bthu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 2")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.cthu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 3")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.dthu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 4")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.ethu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 5")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.fthu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 6")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.gthu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 7")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.hthu then
local player_inv = player:get_inventory()
player_inv:set_stack("td", 1,"tutorial:dirt 8")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.athl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 1")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.bthl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 2")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.cthl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 3")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.dthl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 4")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.ethl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 5")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.fthl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 6")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.gthl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 7")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.hthl then
local player_inv = player:get_inventory()
player_inv:set_stack("tl", 1,"tutorial:dirt 8")
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
if fields.cre then
local player_inv = player:get_inventory()
local dl = player_inv:get_stack("de", 1):get_count()
local tdl = player_inv:get_stack("td", 1):get_count()
local tll = player_inv:get_stack("tl", 1):get_count()
local time = 0
time = time+(dl*35)
time = time+(tdl*15)
time = time+(tll*10)
player_inv:set_stack("t", 1, nil)
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
if player_inv:get_stack("krit", 1):get_name() == "tutorial:crystal_schluessel" then
time = time/2
end
print(time)
minetest.after(time, function()
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:add_item("main","tutorial:legendball_"..tdl.."_"..tll.."_"..dl)
player_inv:set_stack("t", 1, "default:dirt")
if kri.get_formspec(player) == (player:get_inventory_formspec().."button[10,2;2,0.5;cre;create]") then
inventory_plus.set_inventory_formspec(player, kri.get_formspec(player))
end
end)
end
end)
minetest.register_on_dignode(function(pos, node, player)
if player == nil then
return
end
local name = player:get_player_name()
local inv = player:get_inventory()
if node.name == "tutorial:geschenk_legend" then
local x = math.random(20)
if x == 16 then
local y = math.random(8)
inv:set_stack("kri", y,"tutorial:legenden_kristall_"..y)
else
local z = math.random(16)
if z == 1 then
inv:add_item("main","gems:emerald_gem 2")
elseif z < 3 then
inv:add_item("main","gems:shadow_gem 2")
elseif z < 5 then
inv:add_item("main","gems:pearl_gem 2")
elseif z < 8 then
inv:add_item("main","gems:amethyst_gem 2")
elseif z < 12 then
inv:add_item("main","gems:ruby_gem 2")
else
inv:add_item("main","gems:sapphire_gem 2")
end
end
end
if node.name == "tutorial:geschenk_regnum" then
local x = math.random(1, 5)
if x == 1 then
inv:add_item("main", "tutorial:regnum_pixel_gold 20")
elseif x == 2 then
inv:add_item("main", "tutorial:regnum_pixel_green 20")
elseif x == 3 then
inv:add_item("main", "tutorial:regnum_pixel_purple 55")
elseif x == 4 then
inv:add_item("main", "tutorial:regnum_pixel_red 185")
elseif x == 5 then
inv:add_item("main", "tutorial:regnum_pixel_blue 185")
end
end
end)
local crafting4 = {}
crafting4.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("crvier4", 5)
formspec = "size[8,11.3]"
.."background[8,11.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;cr;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[6,3.5;2,0.5;cra4;Craft]"
.."list[current_player;main;0,7.25;8,1;]"
.."label[2,1;you need 352 gold pixel]"
.."label[2,2;you need 352 green pixel]"
.."label[2,3;you need 1120 purple pixel]"
.."label[2,4;you need 3696 red pixel]"
.."label[2,5;you need 3696 blue pixel]"
.."list[current_player;main;0,8.5;8,3;8]"
.."list[current_player;crvier4;1,1;1,5;]"
.."listring[current_player;main]"
.."listring[current_player;crvier4]"
return formspec
end
minetest.register_on_dignode(function(pos, node, player)
if player == nil then
return
end
local name = player:get_player_name()
local hp = player:get_hp()
local drops = node.name
local x = math.random(1,50)
local inv = player:get_inventory()
if node.name == "tutorial:geschenk_death" then
if x < 6 then
minetest.get_player_by_name(name):set_hp(0)
elseif x < 21 then
if hp > 3 then
minetest.get_player_by_name(name):set_hp(hp-4)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 31 then
if hp > 9 then
minetest.get_player_by_name(name):set_hp(hp-10)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 36 then
inv:add_item("main", "default:mese_crystal_fragment 4")
elseif x < 41 then
inv:add_item("main", "tutorial:lightstone")
elseif x < 46 then
inv:add_item("main", "default:ice")
elseif x < 50 then
inv:add_item("main", "tutorial:geschenk_death")
elseif x == 50 then
inv:add_item("main", "tutorial:regnum_part")
end
end
if node.name == "tutorial:geschenk_death_silber" then
if x < 5 then
minetest.get_player_by_name(name):set_hp(0)
elseif x < 18 then
if hp > 3 then
minetest.get_player_by_name(name):set_hp(hp-4)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 26 then
if hp > 9 then
minetest.get_player_by_name(name):set_hp(hp-10)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 32 then
inv:add_item("main", "default:mese_crystal")
elseif x < 38 then
inv:add_item("main", "tutorial:lightstone")
elseif x < 44 then
inv:add_item("main", "default:ice")
elseif x < 50 then
inv:add_item("main", "tutorial:geschenk_death_silber")
elseif x == 50 then
local y = math.random(1,2)
inv:add_item("main", "tutorial:regnum_part "..y)
end
end
if node.name == "tutorial:geschenk_death_gold" then
if x < 4 then
minetest.get_player_by_name(name):set_hp(0)
elseif x < 15 then
if hp > 3 then
minetest.get_player_by_name(name):set_hp(hp-4)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 21 then
if hp > 9 then
minetest.get_player_by_name(name):set_hp(hp-10)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 28 then
inv:add_item("main", "default:mese_crystal 2")
elseif x < 35 then
inv:add_item("main", "tutorial:lightstone 2")
elseif x < 42 then
inv:add_item("main", "default:ice")
elseif x < 50 then
inv:add_item("main", "tutorial:geschenk_death_gold")
elseif x == 50 then
local y = math.random(1,3)
inv:add_item("main", "tutorial:regnum_part "..y)
end
end
if node.name == "tutorial:geschenk_death_platin" then
if x < 4 then
minetest.get_player_by_name(name):set_hp(0)
elseif x < 15 then
if hp > 3 then
minetest.get_player_by_name(name):set_hp(hp-4)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 16 then
if hp > 9 then
minetest.get_player_by_name(name):set_hp(hp-10)
else
minetest.get_player_by_name(name):set_hp(0)
end
elseif x < 24 then
inv:add_item("main", "default:mese_crystal 3")
elseif x < 33 then
inv:add_item("main", "tutorial:lightstone 2")
elseif x < 41 then
inv:add_item("main", "default:ice")
elseif x < 50 then
inv:add_item("main", "tutorial:geschenk_death_platin")
elseif x == 50 then
local y = math.random(1,4)
inv:add_item("main", "tutorial:regnum_part "..y)
end
end
end)
minetest.override_item("default:water_source", {
groups = {water=3, liquid=3, puts_out_fire=1, cracky = 14},
drop = "default:water_source",
drawtype = "liquid",
diggable = true,
alpha = 180,
})
minetest.override_item("default:water_flowing", {
groups = {water=3, liquid=3, puts_out_fire=1, cracky = 14},
drop = "default:water_source",
drawtype = "flowingliquid",
diggable = true,
alpha = 180,
})
minetest.override_item("default:lava_source", {
groups = {lava=3, liquid=2, hot=3, igniter=1, cracky = 14},
drop = "default:lava_source",
diggable = true,
})
minetest.register_on_dignode(function(pos, node, player)
local dig1 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","default:clay"}
local dig2 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium"}
local dig3 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore"}
local dig4 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","default:clay"}
local dig5 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","tutorial:stone_with_titan"}
local dig6 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","tutorial:stone_with_titan","tutorial:stone_with_rot","tutorial:stone_with_blau"}
local dig7 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","tutorial:stone_with_titan","tutorial:stone_with_rot","tutorial:stone_with_blau","default:lava_source","default:water_source"}
local dig8 = {"default:cobble","default:stone","default:dirt","default:sand","default:desert_sand","default:desert_stone","default:dirt_with_grass","default:gravel","default:clay","default:cobble","default:mossycobble","default:dirt_with_snow","default:dirt_with_rainforest_litter","default:grass_3","default:dry_grass_3","default:grass_4","default:dry_grass_4"}
local name, tool, drops, i, drop, drop_name
if player == nil then
return
end
local inv = player:get_inventory()
tool = player:get_wielded_item():get_name()
if tool == "tutorial:legendenbattleaxe1" then
drops = node.name
for _,node_name in ipairs(dig1) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:legendenbattleaxe2" then
drops = node.name
for _,node_name in ipairs(dig2) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:legendenbattleaxe3" then
drops = node.name
for _,node_name in ipairs(dig3) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:legendenbattleaxe4" then
drops = node.name
for _,node_name in ipairs(dig4) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:legendenbattleaxe5" then
drops = node.name
for _,node_name in ipairs(dig5) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:legendenbattleaxe6" then
drops = node.name
for _,node_name in ipairs(dig6) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:superlegendenbattleaxe1" or tool == "tutorial:superlegendenbattleaxe2" then
drops = node.name
for _,node_name in ipairs(dig7) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
end
if tool == "tutorial:regnumbattleaxe1" or tool == "tutorial:regnumbattleaxe2" or tool == "tutorial:regnumbattleaxe3" then
drops = node.name
for _,node_name in ipairs(dig7) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
for _,node_name in ipairs(dig8) do
if drops == node_name then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
end
end
end
if drops == "default:grass_5" or drops == "default:dry_grass_5" then
droping = minetest.get_node_drops(node.name)
for _, itemname in ipairs(droping) do
inv:add_item("main", itemname)
inv:add_item("main", itemname)
end
end
end
end)
local old_entities = {"mobs:zombie", "mobs:grass_monster", "mobs:geist", "mobs:tree_monster", "mobs:spider", "mobs:dungeon_master", "mobs:lava_flan", "mobs:mese_monster", "mobs:oerkki","mobs:rat","mobs_crocs:crocodile_swim","mobs:cow","mobs:chicken","mobs:pumba","mobs:sheep_white","mobs:kitten","","spidermob:spider"}
local old_nodes = {}
for _,node_name in ipairs(old_nodes) do
minetest.register_node(":"..node_name, {
groups = {old=1},
})
end
minetest.register_abm({
nodenames = {"group:old"},
interval = 1,
chance = 1,
action = function(pos, node)
minetest.env:remove_node(pos)
end,
})
for _,entity_name in ipairs(old_entities) do
minetest.register_entity(":"..entity_name, {
on_activate = function(self, staticdata)
self.object:remove()
end,
})
end
local xp_gui = {}
local xp_gru = {}
local xp_r_b = {}
local xp_gra = {}
local xp_gel = {}
local xp_cya = {}
local crafting = {}
local crafting3 = {}
local crafting4 = {}
local cr = {}
crafting4.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("crvier4", 5)
formspec = "size[8,11.3]"
.."background[8,11.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;cr;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[6,3.5;2,0.5;cra4;Craft]"
.."list[current_player;main;0,7.25;8,1;]"
.."label[2,1;you need 352 gold pixel]"
.."label[2,2;you need 352 green pixel]"
.."label[2,3;you need 1120 purple pixel]"
.."label[2,4;you need 3696 red pixel]"
.."label[2,5;you need 3696 blue pixel]"
.."list[current_player;main;0,8.5;8,3;8]"
.."list[current_player;crvier4;1,1;1,5;]"
.."listring[current_player;main]"
.."listring[current_player;crvier4]"
return formspec
end
crafting3.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("crvier3", 25)
formspec = "size[8,10.3]"
.."background[8,11.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;cr;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[6,2;2,0.5;cra3;Craft (1)]"
.."button[6,3;2,0.5;cra310;Craft (10)]"
.."button[6,4;2,0.5;cra399;Craft (99)]"
.."list[current_player;main;0,6.25;8,1;]"
.."list[current_player;main;0,7.5;8,3;8]"
.."list[current_player;crvier3;1,1;5,5;]"
.."listring[current_player;main]"
.."listring[current_player;crvier3]"
return formspec
end
crafting.get_formspec = function(player, pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("crvier", 16)
formspec = "size[8,9.3]"
.."background[8,9.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;cr;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[5,1.5;2,0.5;cra;Craft (1)]"
.."button[5,2.5;2,0.5;cra10;Craft (10)]"
.."button[5,3.5;2,0.5;cra99;Craft (99)]"
.."list[current_player;main;0,5.25;8,1;]"
.."list[current_player;main;0,6.5;8,3;8]"
.."list[current_player;crvier;1,1;4,4;]"
.."listring[current_player;main]"
.."listring[current_player;crvier]"
return formspec
end
cr.get_formspec = function(player,pos)
if player == nil then
return
end
local player_inv = player:get_inventory()
player_inv:set_size("feld", 1)
player_inv:set_size("feld3", 1)
player_inv:set_size("feld4", 1)
player_inv:set_size("feld5", 1)
player_inv:set_size("feld6", 1)
player_inv:set_size("feld7", 1)
player_inv:set_size("feld8", 1)
local type = player:get_inventory():get_stack("feld",1):get_name()
local type3 = player:get_inventory():get_stack("feld3",1):get_name()
local type4 = player:get_inventory():get_stack("feld4",1):get_name()
local type5 = player:get_inventory():get_stack("feld5",1):get_name()
local type6 = player:get_inventory():get_stack("feld6",1):get_name()
local type7 = player:get_inventory():get_stack("feld7",1):get_name()
local type8 = player:get_inventory():get_stack("feld8",1):get_name()
if type == "tutorial:craft_schluessel7" then
image = "crafting"
else
image = "cr"
end
if type3 == "tutorial:legenden_schluessel" then
image3 = "crafting3"
else
image3 = "cr"
end
if type4 == "tutorial:regnum_key" then
image4 = "crafting4"
else
image4 = "cr"
end
if type5 == "tutorial:dragon_schluessel" then
image5 = "crafting5"
else
image5 = "cr"
end
if type6 == "tutorial:fox_schluessel" then
image6 = "crafting6"
else
image6 = "cr"
end
if type7 == "tutorial:tortoise_schluessel" then
image7 = "crafting7"
else
image7 = "cr"
end
if type8 == "tutorial:golden_schluessel" then
image8 = "crafting8"
else
image8 = "cr"
end
formspec = "size[14,8.55]"
.."background[14,8.55;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[0,0;2,0.5;inven;Back]"
.."button[2,0;2,0.5;main;Main]"
.."button[0,2.5;2,0.5;"..image..";4x4 craft]"
.."button[2,2.5;2,0.5;"..image3..";5x5 craft]"
.."button[4,2.5;2,0.5;"..image4..";Regnum craft]"
.."button[6,2.5;2,0.5;"..image5..";Gem craft]"
.."button[8,2.5;2,0.5;"..image6..";Cooking]"
.."button[10,2.5;2,0.5;"..image7..";Medallion craft]"
.."button[12,2.5;2,0.5;"..image8..";Crystal craft]"
.."button[4,3.5;2,0.5;dna;DNA craft]"
.."button[6,3.5;2,0.5;mine;Mining craft]"
.."button[8,3.5;2,0.5;troph;Trophy craft]"
.."label[0.5,1.8;Craftkey]"
.."label[2.4,1.8;Legendkey]"
.."label[4.35,1.8;Regnumkey]"
.."label[6.35,1.8;Dragonkey]"
.."label[8.5,1.8;Foxkey]"
.."label[10.4,1.8;Tortoisekey]"
.."label[12.4,1.8;Goldenkey]"
.."list[current_player;feld;0.5,1;1,1;]"
.."list[current_player;feld3;2.5,1;1,1;]"
.."list[current_player;feld4;4.5,1;1,1;]"
.."list[current_player;feld5;6.5,1;1,1;]"
.."list[current_player;feld6;8.5,1;1,1;]"
.."list[current_player;feld7;10.5,1;1,1;]"
.."list[current_player;feld8;12.5,1;1,1;]"
.."list[current_player;main;3,4.5;8,1;]"
.."list[current_player;main;3,5.75;8,3;8]"
return formspec
end
xp_gra.get_formspec = function(player)
formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]"
.."background[6.2,5.95;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[2.5,0;2,0.5;main;Main]"
.."textlist[0,1;6,5;xp_gra;Lv.1 = 5xp,Lv.2 = 10xp,Lv.3 = 15xp,Lv.4 = 20xp,Lv.5 = 25xp,Lv.6 = 30xp,Lv.7 = 35xp,Lv.8 = 40xp,Lv.9 = 45xp,Lv.10 = 50xp,Lv.11 = 60xp,Lv.12 = 70xp,Lv.13 = 80xp,Lv.14 = 90xp,Lv.15 = 100xp,Lv.16 = 110xp,Lv.17 = 120xp,Lv.18 = 130xp,Lv.19 = 140xp,Lv.20 = 150xp,Lv.21 = 165xp,Lv.22 = 180xp,Lv.23 = 195xp,Lv.24 = 210xp,Lv.25 = 225xp,Lv.26 = 240xp,Lv.27 = 255xp,Lv.28 = 270xp,Lv.29 = 285xp,Lv.30 = 300xp,Lv.31 = 320xp,Lv.32 = 340xp,Lv.33 = 360xp,Lv.34 = 380xp,Lv.35 = 400xp,Lv.36 = 420xp,Lv.37 = 440xp,Lv.38 = 460xp,Lv.39 = 480xp,Lv.40 = 500xp,Lv.41 = 525xp,Lv.42 = 550xp,Lv.43 = 575xp,Lv.44 = 600xp,Lv.45 = 625xp,Lv.46 = 650xp,Lv.47 = 675xp,Lv.48 = 700xp,Lv.49 = 725xp,Lv.50 = 750xp,Lv.51 = 780xp,Lv.52 = 810xp,Lv.53 = 840xp,Lv.54 = 870xp,Lv.55 = 900xp,Lv.56 = 930xp,Lv.57 = 960xp,Lv.58 = 990xp,Lv.59 = 1020xp,Lv.60 = 1050xp,Lv.61 = 1085xp,Lv.62 = 1120xp,Lv.63 = 1155xp,Lv.64 = 1190xp,Lv.65 = 1225xp,Lv.66 = 1260xp,Lv.67 = 1295xp,Lv.68 = 1330xp,Lv.69 = 1365xp,Lv.70 = 1400xp,Lv.71 = 1440xp,Lv.72 = 1480xp,Lv.73 = 1520xp,Lv.74 = 1560xp,Lv.75 = 1600xp,Lv.76 = 1640xp,Lv.77 = 1680xp,Lv.78 = 1720xp,Lv.79 = 1760xp,Lv.80 = 1800xp,Lv.81 = 1845xp,Lv.82 = 1890xp,Lv.83 = 1935xp,Lv.84 = 1980xp,Lv.85 = 2025xp,Lv.86 = 2070xp,Lv.87 = 2115xp,Lv.88 = 2160xp,Lv.89 = 2205xp,Lv.90 = 2250xp,Lv.91 = 2300xp,Lv.92 = 2350xp,Lv.93 = 2400xp,Lv.94 = 2450xp,Lv.95 = 2500xp,Lv.96 = 2550xp,Lv.97 = 2600xp,Lv.98 = 2650xp,Lv.99 = 2700xp,Lv.100 = 2750xp,Lv.MAX = 3200xp]"
return formspec
end
xp_r_b.get_formspec = function(player)
formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]"
.."background[6.2,5.95;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[2.5,0;2,0.5;main;Main]"
.."textlist[0,1;6,5;xp_r_b;Lv.1 = 1xp,Lv.2 = 3xp,Lv.3 = 6xp,Lv.4 = 10xp,Lv.5 = 15xp,Lv.6 = 21xp,Lv.7 = 28xp,Lv.8 = 36xp,Lv.9 = 45xp,Lv.10 = 55xp,Lv.11 = 66xp,Lv.12 = 78xp,Lv.13 = 91xp,Lv.14 = 105xp,Lv.15 = 120xp,Lv.16 = 136xp,Lv.17 = 153xp,Lv.18 = 171xp,Lv.19 = 190xp,Lv.20 = 210xp,Lv.MAX = 250xp]"
return formspec
end
xp_gru.get_formspec = function(player)
formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]"
.."background[6.2,5.95;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[2.5,0;2,0.5;main;Main]"
.."textlist[0,1;6,5;xp_gru;Lv.1 = 10xp,Lv.2 = 20xp,Lv.3 = 30xp,Lv.4 = 40xp,Lv.5 = 50xp,Lv.6 = 70xp,Lv.7 = 90xp,Lv.8 = 110xp,Lv.9 = 130xp,Lv.10 = 150xp,Lv.11 = 180xp,Lv.12 = 210xp,Lv.13 = 240xp,Lv.14 = 270xp,Lv.15 = 300xp,Lv.16 = 340xp,Lv.17 = 380xp,Lv.18 = 420xp,Lv.19 = 460xp,Lv.20 = 500xp,Lv.21 = 550xp,Lv.22 = 600xp,Lv.23 = 650xp,Lv.24 = 700xp,Lv.25 = 750xp,Lv.26 = 810xp,Lv.27 = 870xp,Lv.28 = 930xp,Lv.29 = 990xp,Lv.30 = 1050xp,Lv.31 = 1120xp,Lv.32 = 1190xp,Lv.33 = 1260xp,Lv.34 = 1330xp,Lv.35 = 1400xp,Lv.36 = 1480xp,Lv.37 = 1560xp,Lv.38 = 1640xp,Lv.39 = 1720xp,Lv.40 = 1800xp,Lv.41 = 1890xp,Lv.42 = 1980xp,Lv.43 = 2070xp,Lv.44 = 2160xp,Lv.45 = 2250xp,Lv.45 = 2250xp,Lv.46 = 2350xp,Lv.47 = 2450xp,Lv.48 = 2550xp,Lv.49 = 2650xp,Lv.50 = 2750xp,Lv.51 = 2860xp,Lv.52 = 2970xp,Lv.53 = 3080xp,Lv.54 = 3190xp,Lv.55 = 3300xp,Lv.56 = 3420xp,Lv.57 = 3540xp,Lv.58 = 3660xp,Lv.59 = 3780xp,Lv.60 = 3900xp,Lv.61 = 4030xp,Lv.62 = 4160xp,Lv.63 = 4290xp,Lv.64 = 4420xp,Lv.65 = 4550xp,Lv.66 = 4690xp,Lv.67 = 4830xp,Lv.68 = 4970xp,Lv.69 = 5110xp,Lv.70 = 5250xp,Lv.71 = 5400xp,Lv.72 = 5550xp,Lv.73 = 5700xp,Lv.74 = 5850xp,Lv.75 = 6000xp,Lv.76 = 6160xp,Lv.77 = 6320xp,Lv.78 = 6480xp,Lv.79 = 6640xp,Lv.80 = 6800xp,Lv.81 = 6970xp,Lv.82 = 7140xp,Lv.83 = 7310xp,Lv.84 = 7480xp,Lv.85 = 7650xp,Lv.86 = 7830xp,Lv.87 = 8010xp,Lv.88 = 8190xp,Lv.89 = 8370xp,Lv.90 = 8550xp,Lv.91 = 8740xp,Lv.92 = 8930xp,Lv.93 = 9120xp,Lv.94 = 9310xp,Lv.95 = 9500xp,Lv.96 = 9700xp,Lv.97 = 9900xp,Lv.98 = 10100xp,Lv.99 = 10300xp,Lv.100 = 10500xp,Lv.MAX = 11950xp]"
return formspec
end
xp_gel.get_formspec = function(player)
formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]"
.."background[6.2,5.95;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[2.5,0;2,0.5;main;Main]"
.."textlist[0,1;6,5;xp_gel;Lv.1 = 1xp,Lv.2 = 2xp,Lv.3 = 3xp,Lv.4 = 4xp,Lv.5 = 5xp,Lv.6 = 6xp,Lv.7 = 7xp,Lv.8 = 8xp,Lv.9 = 9xp,Lv.10 = 10xp,Lv.11 = 12xp,Lv.12 = 14xp,Lv.13 = 16xp,Lv.14 = 18xp,Lv.15 = 20xp,Lv.16 = 22xp,Lv.17 = 24xp,Lv.18 = 26xp,Lv.19 = 28xp,Lv.20 = 30xp,Lv.21 = 33xp,Lv.22 = 36xp,Lv.23 = 39xp,Lv.24 = 42xp,Lv.25 = 45xp,Lv.26 = 48xp,Lv.27 = 51xp,Lv.28 = 54xp,Lv.29 = 57xp,Lv.30 = 60xp,Lv.31 = 64xp,Lv.32 = 68xp,Lv.33 = 72xp,Lv.34 = 76xp,Lv.35 = 80xp,Lv.36 = 84xp,Lv.37 = 88xp,Lv.38 = 92xp,Lv.39 = 96xp,Lv.40 = 100xp,Lv.41 = 105xp,Lv.42 = 110xp,Lv.43 = 115xp,Lv.44 = 120xp,Lv.45 = 125xp,Lv.46 = 130xp,Lv.47 = 135xp,Lv.48 = 140xp,Lv.49 = 145xp,Lv.50 = 150xp,Lv.51 = 156xp,Lv.52 = 162xp,Lv.53 = 168xp,Lv.54 = 174xp,Lv.55 = 180xp,Lv.56 = 186xp,Lv.57 = 192xp,Lv.58 = 198xp,Lv.59 = 204xp,Lv.60 = 210xp,Lv.61 = 217xp,Lv.62 = 224xp,Lv.63 = 231xp,Lv.64 = 238xp,Lv.65 = 245xp,Lv.66 = 252xp,Lv.67 = 259xp,Lv.68 = 266xp,Lv.69 = 273xp,Lv.70 = 280xp,Lv.71 = 288xp,Lv.72 = 296xp,Lv.73 = 304xp,Lv.74 = 312xp,Lv.75 = 320xp,Lv.76 = 328xp,Lv.77 = 336xp,Lv.78 = 344xp,Lv.79 = 352xp,Lv.80 = 360xp,Lv.81 = 369xp,Lv.82 = 378xp,Lv.83 = 387xp,Lv.84 = 396xp,Lv.85 = 405xp,Lv.86 = 414xp,Lv.87 = 423xp,Lv.88 = 432xp,Lv.89 = 441xp,Lv.90 = 450xp,Lv.91 = 460xp,Lv.92 = 470xp,Lv.93 = 480xp,Lv.94 = 490xp,Lv.95 = 500xp,Lv.96 = 510xp,Lv.97 = 520xp,Lv.98 = 530xp,Lv.99 = 540xp,Lv.100 = 550xp,Lv.MAX = 600xp]"
return formspec
end
xp_cya.get_formspec = function(player)
formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]"
.."background[6.2,5.95;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[2.5,0;2,0.5;main;Main]"
.."textlist[0,1;6,5;xp_cya;Lv.1 = 1xp,Lv.2 = 4xp,Lv.3 = 9xp,Lv.4 = 16xp,Lv.5 = 25xp,Lv.6 = 36xp,Lv.7 = 49xp,Lv.8 = 64xp,Lv.9 = 81xp,Lv.10 = 100xp,Lv.11 = 121xp,Lv.12 = 144xp,Lv.13 = 169xp,Lv.14 = 196xp,Lv.15 = 225xp,Lv.16 = 256xp,Lv.17 = 289xp,Lv.18 = 324xp,Lv.19 = 361xp,Lv.20 = 400xp,Lv.21 = 441xp,Lv.22 = 484xp,Lv.23 = 529xp,Lv.24 = 576xp,Lv.25 = 625xp,Lv.MAX = 900xp]"
return formspec
end
xp_gui.get_formspec = function(player)
if player == nil then
return
end
local name = player:get_player_name()
local player_inv = player:get_inventory()
local xp_gruen_o = io.open(minetest.get_worldpath().."/"..name.."_experience", "r")
local xp_gruen = xp_gruen_o:read("*l")
local xp_rot_o = io.open(minetest.get_worldpath().."/"..name.."_experience_rot", "r")
local xp_rot = xp_rot_o:read("*l")
local xp_blau_o = io.open(minetest.get_worldpath().."/"..name.."_experience_blau", "r")
local xp_blau = xp_blau_o:read("*l")
local xp_grau_o = io.open(minetest.get_worldpath().."/"..name.."_experience_grau", "r")
local xp_grau = xp_grau_o:read("*l")
local xp_gelb_o = io.open(minetest.get_worldpath().."/"..name.."_experience_gelb", "r")
local xp_gelb = xp_gelb_o:read("*l")
local xp_cyan_o = io.open(minetest.get_worldpath().."/"..name.."_experience_cyan", "r")
local xp_cyan = xp_cyan_o:read("*l")
player_inv:set_size("feld2", 1)
local type = player:get_inventory():get_stack("feld2",1):get_name()
if type == "tutorial:level_schluessel" then
image1 = "xp_gru"
image2 = "xp_r_b"
image3 = "xp_gra"
image4 = "xp_gel"
image5 = "xp_cya"
else
image1 = "xp_gui"
image2 = "xp_gui"
image3 = "xp_gui"
image4 = "xp_gui"
image5 = "xp_gui"
end
formspec = "size[8,8.3]button[0,0;2,0.5;inven;Back]"
.."background[8,8.3;1,1;gui_formbg.png;true]"
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]"
.."button[2,0;2,0.5;main;Main]"
.."label[0,1;Xp green (Part1) : "..xp_gruen.."xp]"
.."label[0,1.4;Xp red (Part2) : "..xp_rot.."xp]"
.."label[0,1.8;Xp blue (Part2) : "..xp_blau.."xp]"
.."label[0,2.2;Xp gray (Part3) : "..xp_grau.."xp]"
.."label[0,2.6;Xp yellow (Part4) : "..xp_gelb.."xp]"
.."label[0,3;Xp cyan (Part5) : "..xp_cyan.."xp]"
.."list[current_player;main;0,4.25;8,1;]"
.."list[current_player;main;0,5.5;8,3;8]"
.."list[current_player;feld2;5,0;1,1;]"
.."label[5,0.9;Xp key]"
.."button[3.5,1.5;2.0,0.2;"..image1..";Xp green you need]"
.."button[3.5,2.2;2.0,0.2;"..image2..";Xp red/blue you need]"
.."button[5.5,1.5;2.0,0.2;"..image3..";Xp gray you need]"
.."button[5.5,2.2;2.0,0.2;"..image4..";Xp yellow you need]"
.."button[4.5,2.9;2.0,0.2;"..image5..";Xp cyan you need]"
.."listring[current_player;feld2]"
.."listring[current_player;main]"
return formspec
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if player == nil then
return
end
if fields.xp_gui then
inventory_plus.set_inventory_formspec(player, xp_gui.get_formspec(player))
end
if fields.cra then
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("crvier")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist})
end
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
local kk = nil
if not kk == ture then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier", table_dec.items)
end
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end
if fields.cra10 then
for i=1,10 do
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("crvier")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist})
end
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
local kk = nil
if not kk == ture then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier", table_dec.items)
end
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end
end
if fields.cra99 then
for i=1,99 do
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("crvier")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist})
end
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
local kk = nil
if not kk == ture then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier", table_dec.items)
end
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end
end
if fields.cra3 then
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("crvier3")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist})
end
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier3", table_dec.items)
end
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end
if fields.cra310 then
for i=1,10 do
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("crvier3")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist})
end
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier3", table_dec.items)
end
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end
end
if fields.cra399 then
for i=1,99 do
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("crvier3")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist})
end
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier3", table_dec.items)
end
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end
end
if fields.cra4 then
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local k = 1
local x1 = player_inv:get_stack("crvier4", 1):get_name()
local x2 = player_inv:get_stack("crvier4", 2):get_name()
local x3 = player_inv:get_stack("crvier4", 3):get_name()
local x4 = player_inv:get_stack("crvier4", 4):get_name()
local x5 = player_inv:get_stack("crvier4", 5):get_name()
local y1 = player_inv:get_stack("crvier4", 1):get_count()
local y2 = player_inv:get_stack("crvier4", 2):get_count()
local y3 = player_inv:get_stack("crvier4", 3):get_count()
local y4 = player_inv:get_stack("crvier4", 4):get_count()
local y5 = player_inv:get_stack("crvier4", 5):get_count()
if x1 == "tutorial:regnum_pixel_gold" and y1 >= 352 then
else
k = 0
end
if x2 == "tutorial:regnum_pixel_green" and y2 >= 352 then
else
k = 0
end
if x3 == "tutorial:regnum_pixel_purple" and y3 >= 1120 then
else
k = 0
end
if x4 == "tutorial:regnum_pixel_red" and y4 >= 3696 then
else
k = 0
end
if x5 == "tutorial:regnum_pixel_blue" and y5 >= 3696 then
else
k = 0
end
if k == 1 then
player_inv:add_item("main", "tutorial:regnum_pixeled")
print (y1-352)
player_inv:set_stack("crvier4", 1, "tutorial:regnum_pixel_gold "..(y1-352))
player_inv:set_stack("crvier4", 2, "tutorial:regnum_pixel_green "..(y2-352))
player_inv:set_stack("crvier4", 3, "tutorial:regnum_pixel_purple "..(y3-1120))
player_inv:set_stack("crvier4", 4, "tutorial:regnum_pixel_red "..(y4-3696))
player_inv:set_stack("crvier4", 5, "tutorial:regnum_pixel_blue "..(y5-3696))
end
inventory_plus.set_inventory_formspec(player, crafting4.get_formspec(player))
end
if fields.xp_gru then
inventory_plus.set_inventory_formspec(player, xp_gru.get_formspec(player))
end
if fields.xp_r_b then
inventory_plus.set_inventory_formspec(player, xp_r_b.get_formspec(player))
end
if fields.xp_gra then
inventory_plus.set_inventory_formspec(player, xp_gra.get_formspec(player))
end
if fields.xp_gel then
inventory_plus.set_inventory_formspec(player, xp_gel.get_formspec(player))
end
if fields.xp_cya then
inventory_plus.set_inventory_formspec(player, xp_cya.get_formspec(player))
end
if fields.cr then
inventory_plus.set_inventory_formspec(player, cr.get_formspec(player))
end
if fields.crafting then
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end
if fields.crafting3 then
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end
if fields.crafting4 then
inventory_plus.set_inventory_formspec(player, crafting4.get_formspec(player))
end
end)
local function has_locked_chest_privilege(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
tutorial = {}
local function add_spawner(pos)
minetest.set_node(pos, {name="tutorial:spawner_mummy"})
if not minetest.setting_getbool("only_peaceful_mobs") then tutorial.spawn_mummy({x=pos.x,y=pos.y,z=pos.z-2},2) end
end
local function can_replace(pos)
local n = minetest.get_node_or_nil(pos)
if n and n.name and minetest.registered_nodes[n.name] and not minetest.registered_nodes[n.name].walkable then
return true
elseif not n then
return true
else
return false
end
end
local function get_sign(i)
if i == 0 then
return 0
else
return i/math.abs(i)
end
end
local function get_velocity(vx, vy, vz, yaw)
local x = math.cos(yaw)*vx+math.cos(math.pi/2+yaw)*vz
local z = math.sin(yaw)*vx+math.sin(math.pi/2+yaw)*vz
return {x=x, y=vy, z=z}
end
local function get_v(v)
return math.sqrt(vx^2+vz^2)
end
local heli = {
physical = true,
collisionbox = {-1,-0.6,-1, 1,0.3,1},
collide_with_objects = true,
weight = 5,
visual = "mesh",
mesh = "root.x",
driver = nil,
model = nil,
motor = nil,
left = true,
timer=0,
yaw=0,
prev_y=0,
vx=0,
vy=0,
vz=0
}
local heliModel = {
visual = "mesh",
mesh = "heli.x",
textures = {"bladest.png","bladest.png","helit.png","Glasst.png"},
}
local motor = {
physical = true,
collisionbox = {-2,0.5,-1, 1,1,1},
visual = "mesh",
mesh = "motor.x",
textures = {"motort.png"},
driver = nil,
left = true,
timer=0,
vx = 0,
vy = 0,
vz = 0
}
function heli:on_rightclick(clicker)
if not clicker or not clicker:is_player() then
return
end
if self.driver and clicker == self.driver then
clicker:set_attach(self.model, "Root", {x=0,y=0,z=0}, {x=0,y=0,z=0})
self.driver = nil
clicker:set_detach()
self.model:set_animation({x=0,y=1},0, 0)
elseif not self.driver then
self.model:set_animation({x=0,y=10},10, 0)
self.driver = clicker
clicker:set_attach(self.model, "Root", {x=0,y=0,z=-10}, {x=-90,y=0,z=-90})
end
end
function heliModel:on_activate(staticdata, dtime_s)
self.object:set_armor_groups({immortal=1})
local is_attached = false
for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 2)) do
if object and object:get_luaentity() and object:get_luaentity().name=="tutorial:heli" then
if object:get_luaentity().model == nil then
object:get_luaentity().model = self
end
if object:get_luaentity().model == self then
is_attached = true
end
end
end
if is_attached == false then
self.object:remove()
end
end
function heli:on_activate(staticdata, dtime_s)
self.object:set_armor_groups({immortal=1})
self.prev_y=self.object:getpos()
if self.model == nil then
self.model = minetest.env:add_entity(self.object:getpos(), "tutorial:heliModel")
self.model:set_attach(self.object, "Root", {x=0,y=0,z=2}, {x=0,y=0,z=0})
end
end
function heli:get_staticdata(self)
end
function heli:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
if self.model ~= nil then
self.model:remove()
end
self.object:remove()
if puncher and puncher:is_player() then
puncher:get_inventory():add_item("main", "tutorial:heli")
end
end
function heliModel:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
self.object:remove()
end
function heli:on_step(dtime)
if self.driver and ( math.abs(self.driver:getpos().x-self.object:getpos().x)>10*dtime or math.abs(self.driver:getpos().y-self.object:getpos().y)>10*dtime or math.abs(self.driver:getpos().z-self.object:getpos().z)>10*dtime) then
self.driver = nil
end
if self.driver then
self.yaw = self.driver:get_look_yaw()
v = self.object:getvelocity()
local ctrl = self.driver:get_player_control()
if ctrl.up then
self.vx = self.vx + math.cos(self.driver:get_look_yaw())*0.1
self.vz = self.vz + math.sin(self.driver:get_look_yaw())*0.1
end
if ctrl.down then
self.vx = self.vx-math.cos(self.driver:get_look_yaw())*0.1
self.vz = self.vz-math.sin(self.driver:get_look_yaw())*0.1
end
if ctrl.left then
self.vz = self.vz+math.cos(self.driver:get_look_yaw())*0.1
self.vx = self.vx+math.sin(math.pi+self.driver:get_look_yaw())*0.1
end
if ctrl.right then
self.vz = self.vz-math.cos(self.driver:get_look_yaw())*0.1
self.vx = self.vx-math.sin(math.pi+self.driver:get_look_yaw())*0.1
end
if ctrl.jump then
if self.vy<1.5 then
self.vy = self.vy+0.2
end
end
if ctrl.sneak then
if self.vy>-1.5 then
self.vy = self.vy-0.2
end
end
if math.abs(self.vx) > 4.5 then
self.vx = 4.5*get_sign(self.vx)
end
if math.abs(self.vz) > 4.5 then
self.vz = 4.5*get_sign(self.vz)
end
end
local sx=get_sign(self.vx)
self.vx = self.vx - 0.02*sx
local sz=get_sign(self.vz)
self.vz = self.vz - 0.02*sz
local sy=get_sign(self.vy)
self.vy = self.vy-0.01*sy
if sx ~= get_sign(self.vx) then
self.vx = 0
end
if sz ~= get_sign(self.vz) then
self.vz = 0
end
if math.abs(self.vx) > 4.5 then
self.vx = 4.5*get_sign(self.vx)
end
if math.abs(self.vz) > 4.5 then
self.vz = 4.5*get_sign(self.vz)
end
if math.abs(self.vy) > 4.5 then
self.vz = 4.5*get_sign(self.vz)
end
self.object:setvelocity({x=self.vx, y=self.vy,z=self.vz})
if self.model then
self.model:set_attach(self.object,"Root", {x=0,y=0,z=0}, {
x=-90+self.vz*4*math.cos(self.yaw)-self.vx*4*math.sin(self.yaw),
y=0-self.vz*4*math.sin(self.yaw)-self.vx*4*math.cos(self.yaw),
z=self.yaw*57})
end
end
minetest.register_entity("tutorial:heli", heli)
minetest.register_entity("tutorial:heliModel", heliModel)
minetest.register_entity("tutorial:motor", motor)