2017-06-11 12:00:23 -07:00
--dofile(minetest.get_modpath("classes").."/ac.lua")
--dofile(minetest.get_modpath("classes").."/admin.lua")
--dofile(minetest.get_modpath("classes").."/armorinit.lua")
dofile ( minetest.get_modpath ( " classes " ) .. " /change-privs.lua " )
--dofile(minetest.get_modpath("classes").."/armor.lua")
dofile ( minetest.get_modpath ( " classes " ) .. " /wizard.lua " )
dofile ( minetest.get_modpath ( " classes " ) .. " /fighter.lua " )
dofile ( minetest.get_modpath ( " classes " ) .. " /experience.lua " )
2017-05-23 11:35:57 -07:00
minetest.register_tool ( " classes:staff_wood " , {
description = " Wooden Staff " ,
inventory_image = " classes_staff_wood_wield.png " ,
wield_image = " classes_staff_wood_wield.png " ,
wield_scale = { x = 1.5 , y = 5.5 , z = 1.5 } ,
tool_capabilities = {
full_punch_interval = 0.9 ,
max_drop_level = 0 ,
groupcaps = {
crumbly = { times = { [ 1 ] = 4.5 , [ 2 ] = 2.2 , [ 3 ] = 1.2 } , uses = 10 , maxlevel = 1 } ,
} ,
damage_groups = { fleshy = 3 } ,
}
} )
minetest.register_craft ( {
2017-06-11 12:00:23 -07:00
output = ' classes:staff_wood ' ,
2017-05-23 11:35:57 -07:00
recipe = {
{ ' default:wood ' } ,
{ ' default:stick ' } ,
{ ' default:wood ' } ,
}
} )
2017-06-11 12:00:23 -07:00
minetest.register_craftitem ( " classes:wizardstuff " , {
inventory_image = " stuff.png "
2017-05-23 11:35:57 -07:00
} )
2017-06-11 12:00:23 -07:00
minetest.register_craftitem ( " classes:fighterstuff " , {
inventory_image = " stuff.png "
2017-05-23 11:35:57 -07:00
} )
2017-06-11 12:00:23 -07:00
minetest.register_craftitem ( " classes:daytheifstuff " , {
inventory_image = " stuff.png "
2017-05-23 11:35:57 -07:00
} )
2017-06-11 12:00:23 -07:00
minetest.register_craftitem ( " classes:nighttheifstuff " , {
inventory_image = " stuff.png "
} )
2017-05-23 11:35:57 -07:00
classes = { }
minetest.register_privilege ( " GAMEwizard " , {
description = " Wizards, masters of the arcane arts, are a formidible class, and extremly powerful, however they pay for that by not haveing any special heavy armor " ,
give_to_singleplayer = false ,
} )
minetest.register_privilege ( " GAMEmale " , {
description = " A male player " ,
give_to_singleplayer = false ,
} )
minetest.register_privilege ( " GAMEfemale " , {
description = " A female player " ,
give_to_singleplayer = false ,
} )
minetest.register_privilege ( " GAMEfighter " , {
description = " useing their heavy arms and armor, this class dominates the frontline battlefield " ,
give_to_singleplayer = false ,
} )
minetest.register_privilege ( " GAMEarcher " , {
description = " masters of the bow, at higher levels can fire as many as 3 arrows at once! " ,
give_to_singleplayer = false ,
} )
minetest.register_privilege ( " GAMEthief " , {
description = " Thieves are not particularly strong, but instead rely on speed, stealth, and their resourcfulness " ,
give_to_singleplayer = false ,
} )
--minetest.register_privilege("GAMEorc", {
-- description = "An orc player",
-- give_to_singleplayer = false,
--})
--minetest.register_privilege("GAMEhobbit", {
-- description = "A hobbit player",
-- give_to_singleplayer = false,
--})
dofile ( minetest.get_modpath ( " classes " ) .. " /change-privs.lua " )
--dofile(minetest.get_modpath("classes").."/allies.lua")
local race_chooser = " size[8,6] " ..
" background[8,6;1,1;gui_formbg.png;true] " ..
" tablecolumns[color;text] " ..
" tableoptions[background=#00000000;highlight=#00000000;border=false] " ..
" table[0,0;6,0.5;race_message;#A52A2A,Please select the race you wish to be:;1] " ..
" image[0.25,1.4;0.75,0.75;wizard.png] " ..
" button_exit[1,1.5;2,0.5;wizard;Wizard] " ..
" image[4.75,1.4;0.75,0.75;archer.png] " ..
" button_exit[5.5,1.5;2,0.5;archer;Archer] " ..
" image[0.25,2.4;0.75,0.75;fighter.png] " ..
" button_exit[1,2.5;2,0.5;fighter;Fighter] " ..
" image[4.75,2.4;0.75,0.75;theif.png] " ..
" button_exit[5.5,2.5;2,0.5;theif;Theif] " ..
-- "image[0.25,3.4;0.75,0.75;hobbit.png]"..
-- "button_exit[1,3.5;2,0.5;hobbit;Hobbit]"..
" dropdown[5.5,3.4;2;gender;Male,Female;1] "
local fly_stuff = " button[1,4.75;2,0.5;fast;Fast] " ..
" button[3,4.75;2,0.5;fly;Fly] " ..
" button[5,4.75;2,0.5;noclip;Noclip] " ..
" button[2.5,5.5;3,0.5;fast_fly_noclip;Fast, Fly & Noclip] "
chance = 0
local function regen_chance ( )
chance = math.random ( 1 , 6 )
end
local function give_stuff_fighter ( player )
regen_chance ( )
if chance >= 1 then
player : get_inventory ( ) : add_item ( ' main ' , ' classes:staff_wood ' )
end
end
local function give_stuff_archer ( player )
regen_chance ( )
if chance >= 1 then
player : get_inventory ( ) : add_item ( ' main ' , ' classes:staff_wood ' )
end
end
local function give_stuff_man ( player )
regen_chance ( )
if chance >= 1 then
player : get_inventory ( ) : add_item ( ' main ' , ' classes:staff_wood ' )
end
end
local function give_stuff_thief ( player )
regen_chance ( )
if chance >= 1 then
player : get_inventory ( ) : add_item ( ' main ' , ' classes:staff_wood ' )
end
end
--local function give_stuff_hobbit(player)
-- regen_chance()
-- if chance >= 1 then
-- player:get_inventory():add_item('main', 'default:pick_stone')
-- end
--end
local function give_stuff_wizard ( player )
regen_chance ( )
if chance >= 1 then
player : get_inventory ( ) : add_item ( ' main ' , ' classes:staff_wood ' )
end
end
minetest.register_on_newplayer ( function ( player )
local name = player : get_player_name ( )
local privs = minetest.get_player_privs ( name )
if minetest.get_player_privs ( name ) . GAMEwizard then
give_stuff_wizard ( player )
end
end )
--minetest.register_on_joinplayer(function(player)
-- local name = player:get_player_name()
-- local privs = minetest.get_player_privs(name)
-- if minetest.get_player_privs(name).GAMEwizard then
-- multiskin[name].skin = "wizard_skin.png"
-- elseif minetest.get_player_privs(name).GAMEmale then
-- if minetest.get_player_privs(name).GAMEfighter then
-- multiskin[name].skin = "fighter_skin.png"
-- elseif minetest.get_player_privs(name).GAMEarcher then
-- multiskin[name].skin = "archer_skin.png"
-- elseif minetest.get_player_privs(name).GAMEtheif then
-- multiskin[name].skin = "theif_skin.png"
-- elseif minetest.get_player_privs(name).GAMEorc then
-- multiskin[name].skin = "orc_skin.png"
-- elseif minetest.get_player_privs(name).GAMEhobbit then
-- multiskin[name].skin = "hobbit_skin.png"
-- end
-- elseif minetest.get_player_privs(name).GAMEfemale then
-- if minetest.get_player_privs(name).GAMEfighter then
-- multiskin[name].skin = "fighter_skinf.png"
-- elseif minetest.get_player_privs(name).GAMEarcher then
-- multiskin[name].skin = "archer_skinf.png"
-- elseif minetest.get_player_privs(name).GAMEtheif then
-- multiskin[name].skin = "theif_skinf.png"
-- elseif minetest.get_player_privs(name).GAMEwizard then
-- multiskin[name].skin = "wizard_skinf.png"
-- elseif minetest.get_player_privs(name).GAMEhobbit then
-- multiskin[name].skin = "hobbit_skinf.png"
-- end
-- else
-- minetest.after(1, function()
-- if minetest.is_singleplayer() then
-- minetest.show_formspec(name, "race_selector", race_chooser .. fly_stuff)
-- else
-- minetest.show_formspec(name, "race_selector", race_chooser)
-- end
-- end)
-- end
--end)
local function player_race_stuff ( class , text , mf , func , name , privs , player )
minetest.chat_send_player ( name , " You are now a member of the class " .. text .. " , go forth into the world. " )
privs [ " GAME " .. class ] = true
privs [ " GAME " .. mf ] = true
minetest.set_player_privs ( name , privs )
func ( player )
-- if mf == "male" or race == "fighter" or race == "wizard" then
-- default.player_set_textures(player, {class .. "_skin.png", "lottarmor_trans.png", "lottarmor_trans.png", "lottarmor_trans.png"})
-- multiskin[name].skin = class .. "_skin.png"
-- elseif mf == "female" then
-- default.player_set_textures(player, {class .. "_skinf.png", "lottarmor_trans.png", "lottarmor_trans.png", "lottarmor_trans.png"})
-- multiskin[name].skin = class .. "_skinf.png"
-- end
-- minetest.log("action", name.. " chose to be a " .. class)
end
minetest.register_on_player_receive_fields ( function ( player , formname , fields )
if formname ~= " race_selector " then return end
local name = player : get_player_name ( )
local privs = minetest.get_player_privs ( name )
if fields.gender == " Male " then
if fields.fighter then
player_race_stuff ( " fighter " , " fighters " , " male " , give_stuff_fighter , name , privs , player )
elseif fields.archer then
player_race_stuff ( " archer " , " archers " , " male " , give_stuff_archer , name , privs , player )
elseif fields.wizard then
player_race_stuff ( " wizard " , " wizards " , " male " , give_stuff_wizard , name , privs , player )
elseif fields.theif then
player_race_stuff ( " thief " , " thieves " , " male " , give_stuff_thief , name , privs , player )
elseif fields.hobbit then
player_race_stuff ( " hobbit " , " hobbits " , " male " , give_stuff_hobbit , name , privs , player )
end
elseif fields.gender == " Female " then
if fields.fighter then
player_race_stuff ( " fighter " , " fighters " , " female " , give_stuff_fighter , name , privs , player )
elseif fields.archer then
player_race_stuff ( " archer " , " archers " , " female " , give_stuff_archer , name , privs , player )
elseif fields.wizard then
player_race_stuff ( " wizard " , " wizards " , " female " , give_stuff_wizard , name , privs , player )
elseif fields.theif then
player_race_stuff ( " thief " , " thieves " , " female " , give_stuff_thief , name , privs , player )
elseif fields.hobbit then
player_race_stuff ( " hobbit " , " hobbits " , " female " , give_stuff_hobbit , name , privs , player )
end
end
-- if fields.fast then
-- privs.fast = true
-- minetest.set_player_privs(name, privs)
-- return
-- elseif fields.fly then
-- privs.fly = true
-- minetest.set_player_privs(name, privs)
-- return
-- elseif fields.noclip then
-- privs.noclip = true
-- minetest.set_player_privs(name, privs)
-- return
-- elseif fields.fast_fly_noclip then
-- privs.fly, privs.fast, privs.noclip = true, true, true
-- minetest.set_player_privs(name, privs)
-- return
-- end
end )
minetest.register_chatcommand ( " class " , {
params = " <name> " ,
description = " print out privileges of player " ,
func = function ( name , param )
param = ( param ~= " " and param or name )
if minetest.check_player_privs ( param , { GAMEwizard = true } ) then
return true , " Class of " .. param .. " : Wizard "
elseif minetest.check_player_privs ( param , { GAMEfighter = true } ) then
return true , " Class of " .. param .. " : Fighter "
elseif minetest.check_player_privs ( param , { GAMEarcher = true } ) then
return true , " Class of " .. param .. " : Archer "
elseif minetest.check_player_privs ( param , { GAMEtheif = true } ) then
return true , " Class of " .. param .. " : Thief "
-- elseif minetest.check_player_privs(param, {GAMEorc = true}) then
-- return true, "Race of " .. param .. ": Orc"
-- elseif minetest.check_player_privs(param, {GAMEhobbit = true}) then
-- return true, "Race of " .. param .. ": Hobbit"
elseif minetest.check_player_privs ( param , { shout = true } ) ~= nil then
if param == name then
if minetest.is_singleplayer ( ) then
minetest.show_formspec ( name , " race_selector " , race_chooser .. fly_stuff )
else
minetest.show_formspec ( name , " race_selector " , race_chooser )
end
else
return true , param .. " has not chosen a class! "
end
else
return true , param .. " does not exist! "
end
end ,
} )