Lists like this are problematic, since you can work around most things to the point that the limit is irrelevant. The remaining hard limits tend to be widely dispersed, unrelated, and often unconsequential.
For example, since I don't see this mentioned below, you CAN store location as a local - you just have to reformat it first, as a location string and a location area object. We have functions for this in our master include:
string GetPositionStringFromVector (vector vPos) {
return FloatToString(vPos.x, 1, 2) + ", " +
FloatToString(vPos.y, 1, 2) + ", " +
FloatToString(vPos.z, 1, 2);
}
string GetPositionStringFromLocation (location lLoc) {
vector vPos = GetPositionFromLocation(lLoc);
return "[" + GetPositionStringFromVector(GetPositionFromLocation(lLoc)) +
" | " + FloatToString(GetFacingFromLocation(lLoc), 1, 0) + "]";
}
string GetPositionString (object oObject) {
return GetPositionStringFromLocation(GetLocation(oObject));
}
location GetLocationFromString (object oArea, string sLoc) {
float fFacing;
vector vVec;
vVec = Vector(StringToFloat(GetStringSubString(sLoc, 0, ",")),
StringToFloat(GetStringSubString(sLoc, 1, ",")),
StringToFloat(GetStringSubString(sLoc, 2, ",")));
fFacing = StringToFloat(GetStringSubString(sLoc, 3, ","));
return Location(oArea, vVec, fFacing);
}
Area can be stored directly as a local object, obviously. Of course, you're storing this on an item, which might mean you want it to persist across resets. In that case, you'd have to find another way to store the area - like tag, looping through areas to find the object.
Funky
Modifié par FunkySwerve, 10 janvier 2011 - 11:17 .