fixed bug in storing new variable values; also checking success of variable changes now

This commit is contained in:
Sokomine 2022-11-06 12:20:55 +01:00
parent 4df6a56bf8
commit c9cc112169

View File

@ -100,6 +100,7 @@ yl_speak_up.input_fs_manage_variables = function(player, formname, fields)
if(not(var_name)) then
var_name = ""
end
local var_name_with_prefix = yl_speak_up.restore_complete_var_name(var_name, pname)
-- show all stored values for a variable in a table
@ -155,33 +156,53 @@ yl_speak_up.input_fs_manage_variables = function(player, formname, fields)
-- change the value for a player (possibly to nil)
elseif(fields and fields.store_new_value_for_player and var_name
and fields.stored_value_for_player and fields.stored_value_for_player ~= "") then
yl_speak_up.set_quest_variable_value(fields.stored_value_for_player, var_name,
local old_value = yl_speak_up.get_quest_variable_value(
fields.stored_value_for_player, var_name_with_prefix)
yl_speak_up.set_quest_variable_value(fields.stored_value_for_player, var_name_with_prefix,
fields.current_value_for_player)
local new_value = yl_speak_up.get_quest_variable_value(
fields.stored_value_for_player, var_name_with_prefix)
local success_msg = minetest.colorize("#00FF00", "Successfully set variable")
if(new_value ~= fields.current_value_for_player) then
success_msg = minetest.colorize("#FF0000", "FAILED TO set variable")
end
yl_speak_up.show_fs(player, "msg", {
input_to = "yl_speak_up:manage_variables",
formspec = "size[10,2]"..
"label[0.2,0.0;Set variable \""..
formspec = "size[10,2.5]"..
"label[0.2,0.0;"..success_msg.." \""..
minetest.colorize("#FFFF00",
minetest.formspec_escape(tostring(var_name)))..
"\"\nfor player "..
minetest.formspec_escape(fields.stored_value_for_player)..
"\nto new value "..
"\n(old value: "..
minetest.colorize("#AAAAAA", old_value)..
")\nto new value "..
minetest.colorize("#FFFF00", fields.current_value_for_player)..".]"..
"button[1.5,1.5;2,0.9;back_from_msg;Back]"})
"button[1.5,2.0;2,0.9;back_from_msg;Back]"})
return
-- remove the value for a player (set to nil)
elseif(fields and fields.unset_value_for_player and var_name
and fields.stored_value_for_player and fields.stored_value_for_player ~= "") then
yl_speak_up.set_quest_variable_value(fields.stored_value_for_player, var_name, nil)
local old_value = yl_speak_up.get_quest_variable_value(
fields.stored_value_for_player, var_name_with_prefix)
yl_speak_up.set_quest_variable_value(fields.stored_value_for_player, var_name_with_prefix, nil)
local new_value = yl_speak_up.get_quest_variable_value(
fields.stored_value_for_player, var_name_with_prefix)
local success_msg = minetest.colorize("#00FF00", "Unset variable")
if(new_value) then
success_msg = minetest.colorize("#FF0000", "FAILED TO unset variable")
end
yl_speak_up.show_fs(player, "msg", {
input_to = "yl_speak_up:manage_variables",
formspec = "size[10,2]"..
"label[0.2,0.0;Unset variable \""..
"label[0.2,0.0;"..success_msg.." \""..
minetest.colorize("#FFFF00",
minetest.formspec_escape(tostring(var_name)))..
"\"\nfor player "..
minetest.formspec_escape(fields.stored_value_for_player)..
".]"..
"\n(old value: "..
minetest.colorize("#AAAAAA", old_value)..
").]"..
"button[1.5,1.5;2,0.9;back_from_msg;Back]"})
return