fixed bug in skills mod + added quest button to the crafting guide
This commit is contained in:
parent
8e3d28ebd1
commit
435a3556fa
@ -1 +1,2 @@
|
||||
default
|
||||
quests
|
||||
|
@ -3,7 +3,7 @@ crafting_guide = {}
|
||||
crafting_guide.form = "size[3,3;]"..default.gui_colors..default.gui_bg;
|
||||
crafting_guide.form_back = "size[3,4;]"..default.gui_colors..default.gui_bg.."button[0,3;3,1;btn_back;Back]";
|
||||
|
||||
crafting_guide.form_items = "size[8,7]"..default.gui_colors..default.gui_bg.."button[0,6;3,1;btn_left;<]button[5,6;3,1;btn_right;>]"
|
||||
crafting_guide.form_items = "size[8,7]"..default.gui_colors..default.gui_bg.."button[0,6;3,1;btn_left;<]button[5,6;3,1;btn_right;>]button[3,6;2,1;btn_quests;Quests]"
|
||||
|
||||
crafting_guide.pages = {}
|
||||
|
||||
@ -89,6 +89,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
elseif fields.btn_right then
|
||||
crafting_guide.pages[player:get_player_name()] = crafting_guide.pages[player:get_player_name()] +1
|
||||
minetest.show_formspec(player:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(crafting_guide.pages[player:get_player_name()]))
|
||||
elseif fields.btn_quests then
|
||||
minetest.show_formspec(player:get_player_name(), "quests:show_quests", quests.get_formspec(player:get_player_name()))
|
||||
elseif fields.quit then
|
||||
crafting_guide.pages[player:get_player_name()] = nil
|
||||
else
|
||||
|
@ -186,35 +186,39 @@ function quests.format_goal(player, quest, goal)
|
||||
end
|
||||
end
|
||||
|
||||
function quests.get_formspec(name)
|
||||
local player_quests = quests.player_quests[name]
|
||||
if not player_quests or #player_quests == 0 then
|
||||
local s = quests.show_quests_form
|
||||
s = string.format(s, "You have not got any quests yet.")
|
||||
return s
|
||||
end
|
||||
|
||||
local s = quests.show_quests_form
|
||||
local txt = ""
|
||||
for _, quest in pairs(player_quests) do
|
||||
if quest.done then
|
||||
txt = txt .. " -> " .. (quest.title or "[NO TITLE]") .. " (Completed)\n"
|
||||
else
|
||||
txt = txt .. " -> " .. (quest.title or "[NO TITLE]") .. "\n"
|
||||
for _, goal in pairs(quest.goals) do
|
||||
if not goal.requires or goal.requires.done then
|
||||
txt = txt .. quests.format_goal(name, quest, goal)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
s = string.format(s, minetest.formspec_escape(txt))
|
||||
|
||||
return s
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("quests", {
|
||||
params = "",
|
||||
description = "Shows your quests",
|
||||
privs = {},
|
||||
func = function(name, text)
|
||||
local player_quests = quests.player_quests[name]
|
||||
if not player_quests or #player_quests == 0 then
|
||||
local s = quests.show_quests_form
|
||||
s = string.format(s, "You have not got any quests yet.")
|
||||
minetest.show_formspec(name, "quests:show_quests", s)
|
||||
return
|
||||
end
|
||||
|
||||
local s = quests.show_quests_form
|
||||
local txt = ""
|
||||
for _, quest in pairs(player_quests) do
|
||||
if quest.done then
|
||||
txt = txt .. " -> " .. (quest.title or "[NO TITLE]") .. " (Completed)\n"
|
||||
else
|
||||
txt = txt .. " -> " .. (quest.title or "[NO TITLE]") .. "\n"
|
||||
for _, goal in pairs(quest.goals) do
|
||||
if not goal.requires or goal.requires.done then
|
||||
txt = txt .. quests.format_goal(name, quest, goal)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
s = string.format(s, minetest.formspec_escape(txt))
|
||||
minetest.show_formspec(name, "quests:show_quests", s)
|
||||
minetest.show_formspec(name, "quests:show_quests", quests.get_formspec(name))
|
||||
return true, ""
|
||||
end,
|
||||
})
|
||||
@ -246,13 +250,14 @@ minetest.register_on_newplayer(function(player)
|
||||
--tutorial
|
||||
local name = player:get_player_name()
|
||||
local quest = quests.new(name, "Tutorial", "Hey you!\nI didnt see you before. Are you new here?\nOh, Ok.\nI will help you to find the city \"NAME HERE\".\nYou will be save there.\n But first you need some basic equipment!")
|
||||
local q1 = quests.add_dig_goal(quest, "Harvest dirt", {"default:dirt"}, 10, "You need to harvest some Dirt to get stones!")
|
||||
local q1 = quests.add_dig_goal(quest, "Harvest dirt", {"default:dirt", "default:grass"}, 10, "You need to harvest some Dirt to get stones!")
|
||||
local q2 = quests.add_dig_goal(quest, "Harvest Grass", {"default:plant_grass", "default:plant_grass_2", "default:plant_grass_3", "default:plant_grass_4", "default:plant_grass_5"}, 12, "Now you need to get some Grass to craft strings.")
|
||||
local q3 = quests.add_dig_goal(quest, "Harvest Leaves", {"default:leaves_1", "default:leaves_2", "default:leaves_3" ,"default:leaves_4"}, 6, "Harvest some leaves to craft twigs.")
|
||||
|
||||
local q4 = quests.add_place_goal(quest, "Place Workbench", {"default:workbench"}, 1, "You should craft a workbench and place it in front of you!", "Great! The tutorial ends here. If you want to know how to craft things just goto the RPGtest wiki.\nBut I think cdqwertz will add a crafting guide soon.")
|
||||
local q4 = quests.add_place_goal(quest, "Place Workbench", {"default:workbench"}, 1, "You should craft a workbench and place it in front of you!", "Great! The tutorial ends here. If you want to know how to craft things,\n just open the crafting guide I gave you.\nYou can find all craftable items there!")
|
||||
|
||||
q3.reward = "default:wood 3"
|
||||
q4.reward = "crafting_guide:book"
|
||||
|
||||
q2.requires = q1
|
||||
q3.requires = q2
|
||||
|
@ -9,6 +9,7 @@ minetest.register_on_newplayer(function(player)
|
||||
for s,a in pairs(skills.all_skills) do
|
||||
skills.lvls[player:get_player_name()][s] = 1
|
||||
end
|
||||
skills.save_skills()
|
||||
end)
|
||||
|
||||
function skills.get_dmg(lvl)
|
||||
@ -301,7 +302,7 @@ minetest.override_item("default:stone_with_diamond", {
|
||||
|
||||
minetest.override_item("default:stone", {
|
||||
on_dig = function(pos, node, player)
|
||||
if skills.lvls[player:get_player_name()]["miner"] then
|
||||
if skills.lvls[player:get_player_name()] and skills.lvls[player:get_player_name()]["miner"] then
|
||||
if skills.lvls[player:get_player_name()]["miner"] > 1 then
|
||||
if math.random(0, 20) == 1 then
|
||||
xp.add_xp(player,10)
|
||||
|
Loading…
x
Reference in New Issue
Block a user