Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Scripting Help

Page: 1 of 1
 HouseOfAmon
08-18-2006, 1:28 AM
#1
Edit...
I figured out a way to fix part of my problem..

I still need a way to set variables..

Example..

}
if ( uUnknown == vVar)
Set xVar (vVar + sVar); <-- How do I do this..
}
 stoffe
08-18-2006, 6:21 AM
#2
I still need a way to set variables..
Example..
}
if ( uUnknown == vVar)
Set xVar (vVar + sVar); <-- How do I do this..
}

xVar = vVar + sVar;
...as long as xVar, vVar and sVar are of the same type, otherwise you'll need to convert the values to the same type first.

Here is a complete nonsense script as an example demonstrating a few things you can do with different types of variables:



// Declare global script variable. This can be accessed from all functions within this script,
// but will only exist for the duration of the script execution (a few milliseconds usually).
int MyGlobal;

void main() {
// Declare local script variables. These only exist within this block of code, i.e. while
// inside the { } pair of block delimiters it's defined between. In this case the main() function.
float fMyX, fMyY; // Declare floating point script variables...
float fSomeValue;
int iNum1; // Declare integer script variables
int iNum2;
int iSum;
vector vPos; // Declare vector (x,y,z) script variable
string sResult = "The result is "; // Declare string script var and assign constant value to it.
object oMyself = OBJECT_SELF; // Declare object reference script var and assign it the object running this script.

// Note: Other valid script variable types are: location, talent, event, effect

vPos = GetPosition(oMyself); // Assign function value to variable.

fMyX = vPos.x; // Assign variable value to another variable.
fMyY = vPos.y;

iNum1 = 1; // Assign constant value to variable.
iNum2 = 2;
fSomeValue = 2.5;

if (fMyX == fMyY) { // If X and Y are identical...
iSum = iNum1 + iNum2; // Add value of two vars and store in another.
iSum++; // Increment value of iSum by 1.
iSum--; // Subtract value of iSum by 1.
iSum /= 2; // Divide value of iSum by 2.
iSum *= 4; // Multiply value of iSum by 4;
iSum += 10; // Add 10 to the value of iSum;
iSum -= 4; // Subtract 4 from the value of iSum.
iSum += iNum1 * iNum2; // Multiply iNum1 by iNum2 and add the result to iSum.
iSum += FloatToInt(fSomeValue); // Add the non-fractional value of fSomeValue to iSum;

// Set the global script variable to the value.
MyGlobal = iSum;

// Store the value in the global game variable (declared in globalcat.2da) named MyNonsenseSum.
// These can be accessed from anywhere in the game.
SetGlobalNumber("MyNonsenseSum", iSum);

// Store the value in local object numeric variable slot 12 of the object running the script.
// Note that the valid range of LocalNums is -127 to 128 only, higher/lower values will overflow.
// These can be accessed while in the module where their parent object exists.
SetLocalNumber(OBJECT_SELF, 12, iSum);

// Post the resulting value to the Feedback log in-game.
SendMessageToPC(GetPartyLeader(), sResult + IntToString(iSum));
}
}
 HouseOfAmon
08-18-2006, 8:04 AM
#3
Thanks Stoffe..

iSum=iSum+vVal; <--- This is exactly what I needed, the SetLocalNumber will be very usefull as well, I got some idea's for setglobal too..

Edit..
====
Removed Code.. ;)
Page: 1 of 1