Editing Scripting Tutorial: Working with FormLists
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
{{Incomplete}} | |||
This article is a WIP. I'll try to finish it in the next few days.--[[User:Omzy|Omzy]] 00:50, 1 August 2009 (UTC) | |||
==IMPORTANT== | ==IMPORTANT== | ||
'''You will need [[Fallout Script Extender|Fallout Script Extender (FOSE)]] for this tutorial.''' | '''You will need [[Fallout Script Extender|Fallout Script Extender (FOSE)]] for this tutorial.''' | ||
Line 78: | Line 81: | ||
*You can use the [[ListGetCount]] function. | *You can use the [[ListGetCount]] function. | ||
=Using Lists to Create Floating Text= | ==Using Lists to Create Floating Text== | ||
This example goes beyond what a casual modder might attempt to accomplish, but it displays the abilities of lists quite well. | This example goes beyond what a casual modder might attempt to accomplish, but it displays the abilities of lists quite well. | ||
Line 98: | Line 101: | ||
#Cid | #Cid | ||
Let us create a [[FormList]] for each name that contains the letters of that name. The name of each list will be ''nameX'' where ''X'' is the name (e.g. ''nameCloud''). If we try dragging and dropping ''B, a, r, r, e, t'' into a FormList for the name Barret, we will not be able to add the second '' | Let us create a [[FormList]] for each name that contains the letters of that name. The name of each list will be ''nameX'' where ''X'' is the name (e.g. ''nameCloud''). If we try dragging and dropping ''B, a, r, r, e, t'' into a FormList for the name Barret, we will not be able to add the second ''t'' because dragging and dropping allows us only to add base forms to a FormList once, since they have the same FormID. So, we must add the letters as references via a script using [[ListAddReference]] OR by placing the letters into the world in a cell somewhere and dragging their references from the Cell View window. For this example, lets assume we've added them to a test cell somewhere so we can use [[MoveTo]] to relocate them to their destinations. We will add the letters so that the first letter of each name is at index 0. | ||
If we wish to print these names into the world somewhere, we can use the [[Label]]/[[GoTo]] loop, one loop for each FormList of letters: | If we wish to print these names into the world somewhere, we can use the [[Label]]/[[GoTo]] loop, one loop for each FormList of letters: | ||
scn floatingNamesScript | scn floatingNamesScript | ||
Line 163: | Line 165: | ||
End | End | ||
This seems a bit tedious, since we have 9 names to print. The script could quickly get long if we put more instructions into each loop. | |||
As it would seem, a FormList is also an object in the editor, which has its own FormID. That makes a FormList a Form. What this means is that FormLists can contain other FormLists. Lets use this to our advantage by making another FormList named ''namesList''. Now we will drag and drop all 9 of our name FormLists into this new FormList. Our script just got a whole lot shorter: | |||