When invoking triggers, you can specify to either invoke one or multiple triggers in the function.
// If you want to check and notify the player of what they received, save the keys of the successfully invoked triggersList<string> successfulKeys =newList<string>();LootLockerSDKManager.InvokeTriggersByKey(newstring[] { "key_one","key_two" }, (response) =>{if (response.success) { // Even if keys fails, the call is successful, so you need to check which triggers were successful and which ones failed
foreach (var item inresponse.Successful_keys) {Debug.Log("Key "+item.Key+" was successfully invoked."); // Save this key if you want the check what the player gotsuccessfulKeys.Add(item.Key); // Add your own code here to handle successful keys }foreach (var item inresponse.Failed_keys) {Debug.LogWarning("Key "+item.Key+" failed with reason:"+item.reason); // Add your own code here to handle the error } // Here you would put code to check notifications for what the player received. }else {Debug.Log(response.errorData.message); // Add your own code here to handle the error }});
Above is an example of how to invoke triggers using blueprints in Unreal Engine. For an example you can copy and paste into your editor, look here.
There are a few things to note from this example.
Firstly, even if the request succeeds there may be triggers that failed invocation. Because of this, you should always check the Failed_keys list from the response.
And secondly, the returned information does not tell you what has been rewarded to the player. For that you will want to check the player's notifications. If you want to do this, then you will want to store the keys of the sucessfully invoked triggers to identify which notifications correspond to which trigger.
When sending the same trigger multiple times in the same request, it will only invoke once. To invoke the same trigger multiple times, it needs to be invoked in multiple functions.