MightyScript: Pick From List
testing_20180508190032.meta
testing_20180508190032
I have been trying to get the action "Pick From List" to work, and after multiple tests with different types of lists, I can't figure it out. When looking at the debug vars, the output lists are either filled with negative numbers or never populated with the input data.
For example, 3 world object lists: List1 has 3 tiles preselected ("tile1","tile2","tile3"), List2 has 3 different tiles preselected ("tile4","tile5","tile6"), List3 has nothing in it. Run a looping script that increases the index and "picks" from List1 (input list) and "adds" to List2 (output list). Also another pick action that uses List1 (input list) and "adds" to List3 (output list). Neither List2 or List3 will change.
However, if you use a string list as the output, then it sort've works... the string list gets values added to it, but the values don't seem to represent anything. ie. Same List data as above, but now you also have List4 which is a string list with values ("String1","String2"). When you run the script picking from List1 and add/output to List4, you get something like this (in the debug var console): (String1,String2,-2147481376,-2147481434,-2147481539).
See attached test map / log. Click the door next to the dungeon heart (with brimstone blocks near it; "door5" in the scripts). Look at the vars for string 36 (string list with -numbers) or test string (string list with -numbers) and compare to pick test (world object list which didn't get "added" too like the string list).
Also, what started this entire thing was my interest with string lists (since each string within a stringlist is labeled as "List 1", "List 2", etc) as I wanted to see if I could create a multidimensional list/array by putting the list IDs in a string list and using pick from list to select the world object lists by their list id and adding them into a temp array/list.
ie. String List = "10, 11, 12"; World Object Lists have the IDs 10, 11, 12 and each list contains some tiles in them. Thus I could 'pick from list' on the string list with index=0 which returns "10" and gets "list where id=10", store/set that in a temp (empty) list and loop through the temp list and perform actions on each cell.
The numbers are object IDs, I think all that you're missing here is that Pick From List takes a number as it's parameter and that number relates to where in the list it is. So using #1 would pick the object that was first in the list, #2 would be the second object in the list, etc.
I'll save you some more time by saying that Multi-Dimensonal lists won't work here (I already tried that kind of stuff). I'd be interested to know what your use case for it was though?