Forum rules - please read before posting.

Parameter values in the "ActionList: Run" Action becoming mismatched

Fixed: Parameter values in the "ActionList: Run" Action becoming mismatched if the referenced ActionList's parameters are modified

maybe i don't understand the bug but it doesn't sound good.

I have 1900 speech actions alone
and  tons of actionlists/cutscenes with parameters that call each other.
game was finished and last tester here last week. so I thought it was over.

I got this Warning while playing ...

Parameter mismatch detected - please check the 'ActionList: Run' Action for its parameter values.

 -> AC debug logger
UnityEngine.Debug:LogWarning(Object, Object)
AC.ACDebug:LogWarning(Object, Object) (at Assets/AdventureCreator/Scripts/Static/ACDebug.cs:29)

This error message isn't helpful. We would need ActionlistName and Action-id.
Could you provide a helper script to list all affected actionlists/cutscenes? "scene:actionlistname:action_id

or am I nervous for no reason?

Comments

  • in general

    while testing we look at the game 
    and see the error logs later when the actionlist isn't running anymore 
    especially when actionlists call other actionlists a lot, it's hard to know what caused the error
    when a warning/error occurs it should also dump the currently running cutscene/actionlist-name.

    I always get warnings and errors from time to time because of lost references or no constant ids set in action (sample I had 5 minutes ago: trigger deactivate through "object -  send message - turned off," created new action - linked object again - done)

    but it was hard to find (i went through 4 actionlists in this case)
    It would be great if I could look at the logs after 4,5 hour game testing and fix the bugs afterwards
    knowing where they occured



  • Auto-Save is one of my classics which happens all the time ...

    Cannot save at this time - either blocking ActionLists, a Conversation is active, or saving has been manually locked.
  • edited November 2017
    if anybody is working on this in his/her game ...

    this is how I do it:

    edit ActionRunActionList.cs: 
    replace 
    ACDebug.LogWarning (wo + "Parameter mismatch detected - please
    with               
    string wo = "";

    #if  UNITY_EDITOR

    if (Application.isPlaying == false && Selection.activeGameObject!=null) {
    wo = EditorSceneManager.GetActiveScene().name + ": "+ Selection.activeGameObject.name+ ": ";
    }

    string prms = "\nexternal -----\n";
    foreach (ActionParameter ap in externalParameters) {
    prms = prms + ap.label;
    }
    prms = prms + "\nold here -----\n";
    foreach (ActionParameter ap in oldLocalParameters) {
    prms = prms + ap.label;
    }
    ACDebug.LogWarning (wo + "Parameter mismatch detected - please check the 'ActionList: Run' Action for its parameter values." + prms);

    then open every scene
    ALT/Option-Click on Scene in Hierarchy so everything is expanded
    start at top, hit down arrow key until the end and get a log of all objects that cause this error

    the param logs give a hint which action is affected
    then sometimes the params have to be re-entered so the warning doesn't occur again
    after re-opening the scene.
  • edited November 2017
    I went through every gameobject in every scene to trigger all Parameter mismatch messages.
    I did this 3 times but still missed one.

    That one just broke the game on iOS.
    So AC-Users be aware that these warnings might brake your game on iOS if you don't fix them.
    In my case I had to reset the parameters manually.
    Then I checked again by closing the scene and reopen it.

    my code will help you spot the affected action in the actionlist

    Example this one broke the game:
    Parameter mismatch detected - please check the 'ActionList: Run' Action for its parameter values.
    external -----
    Hide, Animate, 
    old here -----
    Parameter 1, 

    It is also useful for dialogue options
    they also threw warnings when opened and i found a bug
  • edited December 2017
    I apologise for the trouble so close to your game's release.  It was a necessary fix, and I agree that the warning should be more specific.

    However, it should be that the warning can be ignored if you aren't changing the parameters of the ActionList the ActionList: Run Action references after upgrading.  This is noted at the top of the upgrade notes:

    -Before deleting an ActionList parameter, any "ActionList: Run" Action needs to have its UI viewed to upgrade it so that data is not lost

    Having it run beforehand shouldn't cause a crash - it's behaviour should remain unchenced.   I can't reproduce any such problem on iOS - what is the exact behaviour on iOS, and does it occur in other builds?  Any detail you can share will help to address this.


  • Well, all I can tell ist that the game hang at Cutscene XY on iOS (I don't make an android version).
    Opening the Cutscene XY in Unity logged the parameter warning.
    Although I thought I got all of them.
    I set the params again manually in the actionlisteditorwindow. 
    compiled and the problem was gone on the phone.

    I just found 2  ActionListAssets that got broken 
    keep in mind of all my actionlistassets only 2 are broken 
    so it's an easy fix for me. It was an actionlistasset which called another actionlist asset with two params: FromLeft, tweet.

    Here are some details:

    NullReferenceException: Object reference not set to an instance of an object
    AC.ACDebug.RunningACL () (at Assets/AdventureCreator/Scripts/Static/ACDebug.cs:43)
    AC.ACDebug.LogWarning (System.Object message, UnityEngine.Object context) (at Assets/AdventureCreator/Scripts/Static/ACDebug.cs:79)
    AC.ActionRunActionList.SyncLists (System.Collections.Generic.List`1 externalParameters, System.Collections.Generic.List`1 oldLocalParameters) (at Assets/AdventureCreator/Scripts/Actions/ActionRunActionList.cs:793)
    AC.ActionRunActionList.SetParametersGUI (System.Collections.Generic.List`1 externalParameters, System.Collections.Generic.List`1 ownParameters) (at Assets/AdventureCreator/Scripts/Actions/ActionRunActionList.cs:579)
    AC.ActionRunActionList.ShowGUI (System.Collections.Generic.List`1 parameters) (at Assets/AdventureCreator/Scripts/Actions/ActionRunActionList.cs:429)
    AC.ActionListEditorWindow.NodeWindow (Int32 i) (at Assets/AdventureCreator/Scripts/ActionList/Editor/ActionListEditorWindow.cs:727)
    UnityEngine.GUIL


  • Thanks, PM with a package to test sent.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.