if an action fails: switch to the first dialog if no other on_failure dialog is defined
This commit is contained in:
parent
45336ed4d4
commit
ef66268424
@ -179,31 +179,22 @@ yl_speak_up.execute_next_action = function(player, a_id, result_of_a_id)
|
||||
|
||||
local this_action = actions[ sorted_key_list[ nr ]]
|
||||
-- if there is an on_failure target dialog: go there
|
||||
if(this_action.a_on_failure) then
|
||||
-- go back to the same dialog
|
||||
if(not(dialog.n_dialogs[this_action.a_on_failure])) then
|
||||
this_action.a_on_failure = d_id
|
||||
end
|
||||
-- set the current action to nil
|
||||
yl_speak_up.speak_to[pname].a_id = nil
|
||||
-- no option of the new dialog has been selected yet
|
||||
yl_speak_up.speak_to[pname].o_id = nil
|
||||
-- show the new dialog
|
||||
yl_speak_up.debug_msg(player, n_id, o_id, "Action "..
|
||||
tostring(a_id).." failed. Switching to dialog "..
|
||||
tostring(this_action.a_on_failure)..".")
|
||||
yl_speak_up.speak_to[pname].d_id = this_action.a_on_failure
|
||||
yl_speak_up.speak_to[pname].o_id = nil
|
||||
yl_speak_up.speak_to[pname].a_id = nil
|
||||
yl_speak_up.show_fs(player, "talk", {n_id = n_id,
|
||||
d_id = this_action.a_on_failure,
|
||||
alternate_text = this_action.alternate_text})
|
||||
return
|
||||
else
|
||||
yl_speak_up.debug_msg(player, n_id, o_id, "Action "..
|
||||
tostring(a_id).." failed, but no a_on_failure target "..
|
||||
"dialog defined. Continuing execution.")
|
||||
end
|
||||
|
||||
-- set the current action to nil
|
||||
yl_speak_up.speak_to[pname].a_id = nil
|
||||
-- no option of the new dialog has been selected yet
|
||||
yl_speak_up.speak_to[pname].o_id = nil
|
||||
-- show the new dialog
|
||||
yl_speak_up.debug_msg(player, n_id, o_id, "Action "..
|
||||
tostring(a_id).." failed. Switching to dialog "..
|
||||
tostring(this_action.a_on_failure)..".")
|
||||
yl_speak_up.speak_to[pname].d_id = this_action.a_on_failure
|
||||
yl_speak_up.speak_to[pname].o_id = nil
|
||||
yl_speak_up.speak_to[pname].a_id = nil
|
||||
yl_speak_up.show_fs(player, "talk", {n_id = n_id,
|
||||
d_id = this_action.a_on_failure,
|
||||
alternate_text = this_action.alternate_text})
|
||||
return
|
||||
end
|
||||
end
|
||||
-- get the next entry
|
||||
|
Loading…
Reference in New Issue
Block a user