variables can now have a default value other than nil

This commit is contained in:
Sokomine 2025-02-09 00:26:24 +01:00
parent 9077feb1a9
commit 67fe90c984

View File

@ -198,9 +198,12 @@ yl_speak_up.get_quest_variable_value = function(player_name, variable_name)
-- the owner name is alrady encoded in the variable name
local k = tostring(variable_name)
if(not(variable_name) or not(player_name) or not(yl_speak_up.player_vars[ k ])) then
yl_speak_up.get_variable_metadata(k_long, "default_value", true)
return nil
end
-- return stored value OR the default value
return yl_speak_up.player_vars[ k ][ player_name ]
or yl_speak_up.player_vars[ k ][ "$META$"][ "default_value" ]
end
@ -368,6 +371,12 @@ yl_speak_up.set_variable_metadata = function(k, pname, meta_name, entry_name, ne
-- var_type (the type of the variable) is a single string
if(meta_name == "var_type") then
yl_speak_up.player_vars[ k ][ "$META$"][ meta_name ] = new_value
elseif(meta_name == "default_value") then
-- reset default value to nil with empty string:
if(new_value == "") then
new_value = nil
end
yl_speak_up.player_vars[ k ][ "$META$"][ meta_name ] = new_value
else
if( not(yl_speak_up.player_vars[ k ][ "$META$" ][ meta_name ])
or type(yl_speak_up.player_vars[ k ][ "$META$" ][ meta_name ]) ~= "table") then
@ -524,7 +533,7 @@ end
-- which NPC do use this variable?
yl_speak_up.get_variable_metadata = function(var_name, meta_name, get_as_is)
-- var_type (the type of the variable) is a single string
if(meta_name and var_name and meta_name == "var_type") then
if(meta_name and var_name and (meta_name == "var_type" or meta_name == "default_value")) then
if( not(yl_speak_up.player_vars[ var_name ])
or not(yl_speak_up.player_vars[ var_name ][ "$META$"])) then
return nil