Difference between revisions of "GetM2DARowIdFromRowIndex"
From Dragon Age Toolset Wiki
(Generated by Sunjammer's Dragon Age Script Paser) |
m (Fixing error in example) |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | |||
{{dafunction | {{dafunction | ||
|name=GetM2DARowIdFromRowIndex | |name=GetM2DARowIdFromRowIndex | ||
| − | |brief=Returns | + | |brief=Returns ID for the given 2DA table and row index. |
|param1type=int | |param1type=int | ||
|param1name=n2DA | |param1name=n2DA | ||
|param1desc=The 2DA to access | |param1desc=The 2DA to access | ||
| + | |param1default= | ||
|param2type=int | |param2type=int | ||
|param2name=nRowIndex | |param2name=nRowIndex | ||
|param2desc=Index in the 2DA for which we want to know the ID | |param2desc=Index in the 2DA for which we want to know the ID | ||
| + | |param2default= | ||
|param3type=string | |param3type=string | ||
|param3name=s2DA | |param3name=s2DA | ||
| − | |param3desc= | + | |param3desc=(optional) if n2da is -1 and this is a valid resource, it will retrieve the 2da based on the name instead of the index. Note that this should be avoided when possible. |
| + | |param3default="" | ||
|returntype=int | |returntype=int | ||
| − | |returndesc= | + | |returndesc=The ID for the row specified by the parameters. |
|sourcefile=script.ldf | |sourcefile=script.ldf | ||
|sourcemodule= | |sourcemodule= | ||
| Line 20: | Line 22: | ||
== Description == | == Description == | ||
<!-- This section contains the full description from the functions comments. Do not change unless you are confident these are incomplete or incorrect. --> | <!-- This section contains the full description from the functions comments. Do not change unless you are confident these are incomplete or incorrect. --> | ||
| − | Returns the value of the ID column for the given 2DA row index | + | Returns the value of the ID column for the given 2DA table and row index. |
| − | + | <!-- | |
| − | <!-- == Remarks == --> | + | == Remarks == --> |
<!-- This section contains additional comments, observations and known issues. --> | <!-- This section contains additional comments, observations and known issues. --> | ||
| − | + | == Examples == | |
<!-- This section contains examples transcluded from the snippet library. --> | <!-- This section contains examples transcluded from the snippet library. --> | ||
| + | <dascript> | ||
| + | // The crafting recipes M2DA contains 78 rows with ID from 0 to 91. There are gaps in the sequence | ||
| + | // and we cannot predict where they appear. Looping over every row to find out would be inefficient, | ||
| + | // however we can use the GetM2DARows function to tell us how many actual rows there are and then | ||
| + | // use GetM2DARowIdFromRowIndex to convert the row number into the entry's ID number. | ||
| + | |||
| + | const int TABLE_CRAFTING_RECIPES = 144; | ||
| − | <!-- == See also == --> | + | object CreateRandomCraftedItemOnObject(object oTarget) |
| + | { | ||
| + | // get the total number of rows in the crafting recipes M2DA (this works across all fragments) | ||
| + | int nRows = GetM2DARows(TABLE_CRAFTING_RECIPES); | ||
| + | |||
| + | // the Random function gives a number between 0 and nRows - 1 however as the first row is | ||
| + | // invalid and the last row is a lyrium potion we actually want a number between 1 and nRows - 1 | ||
| + | int nRandomRow = Random(nRows - 1) + 1; | ||
| + | |||
| + | // in order to use GetM2DAResource we need the entry's ID number | ||
| + | int nId = GetM2DARowIdFromRowIndex(TABLE_CRAFTING_RECIPES, nRandomRow); | ||
| + | |||
| + | // read the crafted item's resource from the ItemCreated colum using entry's ID number | ||
| + | resource rItem = GetM2DAResource(TABLE_CRAFTING_RECIPES, "ItemCreated", nId); | ||
| + | |||
| + | // create the crafted item on the target object | ||
| + | return CreateItemOnObject(rItem, oTarget); | ||
| + | } | ||
| + | </dascript> | ||
| + | <!-- | ||
| + | == See also == --> | ||
<!-- This section contains links to articles, functions or constant groups. --> | <!-- This section contains links to articles, functions or constant groups. --> | ||
| − | [[Category: | + | [[Category:Data functions]] |
Latest revision as of 12:55, 12 March 2014
Returns ID for the given 2DA table and row index.
- Parameters:
- n2DA
- The 2DA to access
- nRowIndex
- Index in the 2DA for which we want to know the ID
- s2DA
- (optional) if n2da is -1 and this is a valid resource, it will retrieve the 2da based on the name instead of the index. Note that this should be avoided when possible.
- Returns:
- The ID for the row specified by the parameters.
- Source:
- script.ldf
Description
Returns the value of the ID column for the given 2DA table and row index.
Examples
// The crafting recipes M2DA contains 78 rows with ID from 0 to 91. There are gaps in the sequence // and we cannot predict where they appear. Looping over every row to find out would be inefficient, // however we can use the GetM2DARows function to tell us how many actual rows there are and then // use GetM2DARowIdFromRowIndex to convert the row number into the entry's ID number. const int TABLE_CRAFTING_RECIPES = 144; object CreateRandomCraftedItemOnObject(object oTarget) { // get the total number of rows in the crafting recipes M2DA (this works across all fragments) int nRows = GetM2DARows(TABLE_CRAFTING_RECIPES); // the Random function gives a number between 0 and nRows - 1 however as the first row is // invalid and the last row is a lyrium potion we actually want a number between 1 and nRows - 1 int nRandomRow = Random(nRows - 1) + 1; // in order to use GetM2DAResource we need the entry's ID number int nId = GetM2DARowIdFromRowIndex(TABLE_CRAFTING_RECIPES, nRandomRow); // read the crafted item's resource from the ItemCreated colum using entry's ID number resource rItem = GetM2DAResource(TABLE_CRAFTING_RECIPES, "ItemCreated", nId); // create the crafted item on the target object return CreateItemOnObject(rItem, oTarget); }