implemented saving password input action
This commit is contained in:
parent
dc69b71a33
commit
51e8e197b4
@ -105,7 +105,7 @@ yl_speak_up.show_action = function(a)
|
|||||||
"\" (\""..tostring(a.a_value or "- ? -").."\") "..
|
"\" (\""..tostring(a.a_value or "- ? -").."\") "..
|
||||||
"with ID \""..tostring(a.a_item_quest_id or "- no special ID -").."\"."
|
"with ID \""..tostring(a.a_item_quest_id or "- no special ID -").."\"."
|
||||||
elseif(a.a_type == "text_input") then
|
elseif(a.a_type == "text_input") then
|
||||||
return "text_input:" -- TODO show ation text
|
return "Q: \""..tostring(a.a_question).."\" A:\""..tostring(a.a_value).."\"."
|
||||||
elseif(a.a_type == "puzzle") then
|
elseif(a.a_type == "puzzle") then
|
||||||
return "puzzle:" -- TODO show ation text
|
return "puzzle:" -- TODO show ation text
|
||||||
elseif(a.a_type == "custom") then
|
elseif(a.a_type == "custom") then
|
||||||
|
@ -265,6 +265,16 @@ yl_speak_up.input_fs_edit_option_related = function(player, formname, fields,
|
|||||||
-- TODO: check if it diffrent from the default one of the stack
|
-- TODO: check if it diffrent from the default one of the stack
|
||||||
data.item_desc = fields.action_item_desc
|
data.item_desc = fields.action_item_desc
|
||||||
end
|
end
|
||||||
|
if(fields.quest_question
|
||||||
|
and fields.quest_question ~= "") then
|
||||||
|
data.quest_question = fields.quest_question
|
||||||
|
end
|
||||||
|
-- quest question and answer can be given with the same press of the save button
|
||||||
|
if(fields.quest_answer
|
||||||
|
and fields.quest_answer ~= "- Insert the correct answer here -"
|
||||||
|
and fields.quest_answer ~= "") then
|
||||||
|
data.quest_answer = fields.quest_answer
|
||||||
|
end
|
||||||
|
|
||||||
-- the save button was pressed
|
-- the save button was pressed
|
||||||
if(fields.save_element and data and data.what and values_what[ data.what ]) then
|
if(fields.save_element and data and data.what and values_what[ data.what ]) then
|
||||||
@ -442,7 +452,12 @@ yl_speak_up.input_fs_edit_option_related = function(player, formname, fields,
|
|||||||
"button[1.5,2.0;2,0.9;back_from_error_msg;Back]"})
|
"button[1.5,2.0;2,0.9;back_from_error_msg;Back]"})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
v[ "a_on_failure" ] = data.action_failure_dialog
|
v[ "a_on_failure" ] = ""
|
||||||
|
if(data.action_failure_dialog) then
|
||||||
|
local dialog = yl_speak_up.speak_to[pname].dialog
|
||||||
|
local sorted_dialog_list = yl_speak_up.sort_keys(dialog.n_dialogs)
|
||||||
|
v[ "a_on_failure" ] = sorted_dialog_list[ data.action_failure_dialog ]
|
||||||
|
end
|
||||||
-- change the node in the slot
|
-- change the node in the slot
|
||||||
local stack = trade_inv:get_stack( trade_inv_list, 1)
|
local stack = trade_inv:get_stack( trade_inv_list, 1)
|
||||||
if(not(stack) or not(minetest.registered_items[ stack:get_name() ])) then
|
if(not(stack) or not(minetest.registered_items[ stack:get_name() ])) then
|
||||||
@ -527,6 +542,36 @@ yl_speak_up.input_fs_edit_option_related = function(player, formname, fields,
|
|||||||
"label[0.2,0.5;The information was saved successfully.\n"..
|
"label[0.2,0.5;The information was saved successfully.\n"..
|
||||||
"The item has been returned to your inventory.]"..
|
"The item has been returned to your inventory.]"..
|
||||||
"button[1.5,2.0;2,0.9;back_from_error_msg;Back]"
|
"button[1.5,2.0;2,0.9;back_from_error_msg;Back]"
|
||||||
|
|
||||||
|
-- "The player has to manually enter a password or passphrase or some other text.", -- 6
|
||||||
|
elseif(data.what and id_prefix == "a_" and data.what == 6) then
|
||||||
|
if(not(data.quest_question)) then
|
||||||
|
data.quest_question = "Your answer:"
|
||||||
|
end
|
||||||
|
v[ "a_question" ] = data.quest_question
|
||||||
|
-- the player setting this up needs to provide the correct answer
|
||||||
|
if(not(data.quest_answer)) then
|
||||||
|
yl_speak_up.show_fs(player, "msg", {
|
||||||
|
input_to = "yl_speak_up:"..formspec_input_to,
|
||||||
|
formspec = "size[9,2.5]"..
|
||||||
|
"label[0.2,0.5;Error: Please provide the correct answer!\n"..
|
||||||
|
"The answer the player gives is checked against this.]"..
|
||||||
|
"button[1.5,2.0;2,0.9;back_from_error_msg;Back]"})
|
||||||
|
return
|
||||||
|
end
|
||||||
|
v[ "a_value" ] = data.quest_answer
|
||||||
|
if(not(data.action_failure_dialog)) then
|
||||||
|
yl_speak_up.show_fs(player, "msg", {
|
||||||
|
input_to = "yl_speak_up:"..formspec_input_to,
|
||||||
|
formspec = "size[9,2.5]"..
|
||||||
|
"label[0.2,0.5;Error: Please provide a target dialog if "..
|
||||||
|
"the player gives the wrong answer.]"..
|
||||||
|
"button[1.5,2.0;2,0.9;back_from_error_msg;Back]"})
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local dialog = yl_speak_up.speak_to[pname].dialog
|
||||||
|
local sorted_dialog_list = yl_speak_up.sort_keys(dialog.n_dialogs)
|
||||||
|
v[ "a_on_failure" ] = sorted_dialog_list[ data.action_failure_dialog ]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- only save if something was actually selected
|
-- only save if something was actually selected
|
||||||
@ -600,7 +645,7 @@ yl_speak_up.input_fs_edit_option_related = function(player, formname, fields,
|
|||||||
yl_speak_up.speak_to[pname][ tmp_data_cache ].on_failure = fields.select_on_failure
|
yl_speak_up.speak_to[pname][ tmp_data_cache ].on_failure = fields.select_on_failure
|
||||||
|
|
||||||
elseif(fields.select_on_action_failure
|
elseif(fields.select_on_action_failure
|
||||||
and data and data.what and (data.what == 4 or data.what == 5) and id_prefix == "a_") then
|
and data and data.what and id_prefix == "a_") then
|
||||||
local dialog = yl_speak_up.speak_to[pname].dialog
|
local dialog = yl_speak_up.speak_to[pname].dialog
|
||||||
local sorted_dialog_list = yl_speak_up.sort_keys(dialog.n_dialogs)
|
local sorted_dialog_list = yl_speak_up.sort_keys(dialog.n_dialogs)
|
||||||
local nr = table.indexof(sorted_dialog_list, fields.select_on_action_failure)
|
local nr = table.indexof(sorted_dialog_list, fields.select_on_action_failure)
|
||||||
@ -1039,6 +1084,48 @@ yl_speak_up.get_fs_edit_option_related = function(player, table_click_result,
|
|||||||
"label[0.2,9.0;Expected description:]"..
|
"label[0.2,9.0;Expected description:]"..
|
||||||
"label[4.0,9.0;"..
|
"label[4.0,9.0;"..
|
||||||
minetest.formspec_escape(tostring(item_desc)).."]"
|
minetest.formspec_escape(tostring(item_desc)).."]"
|
||||||
|
|
||||||
|
-- "The player has to manually enter a password or passphrase or some other text.", -- 6
|
||||||
|
-- (only for actions)
|
||||||
|
elseif(data.what and id_prefix == "a_" and data.what == 6) then
|
||||||
|
local question = "Your answer:"
|
||||||
|
if(data and data.quest_question) then
|
||||||
|
question = data.quest_question
|
||||||
|
end
|
||||||
|
local answer = "- Insert the correct answer here -"
|
||||||
|
if(data and data.quest_answer) then
|
||||||
|
answer = data.quest_answer
|
||||||
|
end
|
||||||
|
local nr = 1
|
||||||
|
if(data and data.action_failure_dialog) then
|
||||||
|
nr = data.action_failure_dialog + 1
|
||||||
|
end
|
||||||
|
local sorted_dialog_list = yl_speak_up.sort_keys(dialog.n_dialogs)
|
||||||
|
formspec = formspec..
|
||||||
|
"label[0.2,3.3;What to ask the player and which answer to expect:]"..
|
||||||
|
"label[0.2,4.0;Question to show:]"..
|
||||||
|
"field[4.0,3.8;10.0,0.6;quest_question;;"..tostring(question).."]"..
|
||||||
|
"label[0.2,5.0;Expected answer:]"..
|
||||||
|
"field[4.0,4.8;10.0,0.6;quest_answer;;"..tostring(answer).."]"..
|
||||||
|
"label[0.2,6.0;If the player gives the wrong answer, go to dialog:]"..
|
||||||
|
"dropdown[8.0,5.7;2.8,0.6;select_on_action_failure;"..
|
||||||
|
"- current one -,"..
|
||||||
|
table.concat(sorted_dialog_list, ",")..";"..tostring(nr)..";]"..
|
||||||
|
"tooltip[quest_question;"..
|
||||||
|
"This is just a short text that will be shown to remind\n"..
|
||||||
|
"the player what he is asked for. Most of the question\n"..
|
||||||
|
"ought to be part of the normal dialog of the NPC.]"..
|
||||||
|
"tooltip[quest_answer;"..
|
||||||
|
"The correct answer will not be shown to the player.\n"..
|
||||||
|
"What the player enters will be compared to this\n"..
|
||||||
|
"correct value.]"..
|
||||||
|
"tooltip[select_on_action_failure;"..
|
||||||
|
"If the player gives the wrong answer, you can show him\n"..
|
||||||
|
"a diffrent target dialog (i.e. with text \"No, that answer\n"..
|
||||||
|
"was wrong, but please try again!\"). In such a case the\n"..
|
||||||
|
"effects/results of the current dialog option are *not*\n"..
|
||||||
|
"executed.]"
|
||||||
|
|
||||||
end
|
end
|
||||||
return formspec..save_button
|
return formspec..save_button
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user