Difference between revisions of "Sims 2 Variables"
MogHughson (Talk | contribs) |
MogHughson (Talk | contribs) (→General Variable Reference) |
||
Line 9: | Line 9: | ||
==General Variable Reference== | ==General Variable Reference== | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !colspan="2" | Variables | ||
+ | |- | ||
+ | | | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |0x00||[[My attribute]] | ||
+ | |- | ||
+ | |0x01||[[My attribute|Stack Object's attribute]] | ||
+ | |- | ||
+ | |0x02||[[My (semi) attribute]] | ||
+ | |- | ||
+ | |0x03||[[My]] | ||
+ | |- | ||
+ | |0x04||[[My|Stack Object's]] | ||
+ | |- | ||
+ | |0x05||[[My (semi) attribute|Stack Object's (semi) attribute]] | ||
+ | |- | ||
+ | |0x06||[[Global]] | ||
+ | |- | ||
+ | |0x07||[[Literal]] | ||
+ | |- | ||
+ | |0x08||[[Temp]] | ||
+ | |- | ||
+ | |0x09||[[Param]] | ||
+ | |- | ||
+ | |0x0A||[[Stack Object ID]] | ||
+ | |- | ||
+ | |0x0B||[[Temp (temp)]] | ||
+ | |- | ||
+ | |0x0C||[[Check tree advert: Range]] | ||
+ | |- | ||
+ | |0x0D||[[Stack Object's Temp]] | ||
+ | |} | ||
+ | | | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |0x0E||[[My motive]] | ||
+ | |- | ||
+ | |0x0F||[[My motive|Stack Object's motive]] | ||
+ | |- | ||
+ | |0x10||[[My slot|Stack Object's slot]] | ||
+ | |- | ||
+ | |0x11||[[Stack Object’s motive (temp)]] | ||
+ | |- | ||
+ | |0x12||[[My person data]] | ||
+ | |- | ||
+ | |0x13||[[My person data|Stack Object's person data]] | ||
+ | |- | ||
+ | |0x14||[[My slot]] | ||
+ | |- | ||
+ | |0x15||[[Stack Object's definition]] | ||
+ | |- | ||
+ | |0x16||[[Stack Obj attribute (param)]] | ||
+ | |- | ||
+ | |0x17||[[room (Temp 0)]] | ||
+ | |- | ||
+ | |0x18||[[Neighbor in stack object]] | ||
+ | |- | ||
+ | |0x19||[[Local]] | ||
+ | |- | ||
+ | |...|| | ||
+ | |- | ||
+ | |...|| | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | <br clear="all"/> | ||
+ | |||
+ | |||
===0x00: My attribute=== | ===0x00: My attribute=== | ||
This variable is very dependant on the current object. Some objects have attributes. The names of these attributes are taken from Text List (STR#) resource 0x00000100 (see [[STR#STR.23|String Resources]] for all the different Text List usages). In the example below, the coffee maker has only one attribute. | This variable is very dependant on the current object. Some objects have attributes. The names of these attributes are taken from Text List (STR#) resource 0x00000100 (see [[STR#STR.23|String Resources]] for all the different Text List usages). In the example below, the coffee maker has only one attribute. |
Revision as of 16:52, 30 December 2009
This section will record all the different variables and attributes you will likely come across. You will most often be using these through the Expression primitive [prim 0x0002]. These tables are your reference to go with that wizard. However you will also find these in various other OpCodes, some without wizards. In those cases, the numeric value before the title name is the number which represents that type of variable to be placed in an appropriate Operand.
Special Variables
There are two special variables which many instructions can only operate on. You will will especially get very used to saving the previous value of the Stack Object in order to put something else in there, then putting back the original value afterwards.
My
Stack Object
General Variable Reference
Variables | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
0x00: My attribute
This variable is very dependant on the current object. Some objects have attributes. The names of these attributes are taken from Text List (STR#) resource 0x00000100 (see String Resources for all the different Text List usages). In the example below, the coffee maker has only one attribute.
0x01: Stack Object’s attribute
See 0x00: My attribute.
0x02: My [semi] attribute
This is just as the attributes above, but this time the Text List (STR#) resource defining the attributes is a semi-global instead of a private string resource.
0x03: My
There are lots of fields here that can be used.
Name | Description |
---|---|
graphic | This is a number which represents the model or mesh that the object is currently using / made of. For example, love letters are cards when set upon a table, but envelopes when on the floor – two different meshes. The names of these meshes are taken from Text List (STR#) resource 0x00000085 (see String Resources for all the different Text List usages) and this attribute contains the number which points at the correct string.
Of course, in general you don't see graphic being set-up unless an object has multiple meshes to choose between. This is because the default graphic is used. This is set in the OBJD Resource, RAW Data section, Resource cross-refs |
... | |
direction | |
container id | Some objects must be on or in something, for example, the coffee maker must be on a counter. The counter would be represented by the container id. |
0x04: Stack Object's
See variables#0x03: My.
0x05: Stack Object’s [semi] attribute
See 0x02: My [semi] attribute
0x06: Global
There are lots of fields here that can be used.
Global Attribute Name | Details |
---|---|
Hour | This is as you would expect. If it is 16:30, Hour has value 16. |
Day of Month | |
... | |
Game Edition | This allows you to tell what version of the game you are running. It’s a bit field, but also has the value 2000 (0x07D0) to show it is the Base Game Only. The flags are:- 01: Not Base only 02: University EP (Flag 01 is also set in this case of course) 03: Night Life EP 04: Open For Business EP 05: Family Fun SP 06: Glamour Life SP 07: Pets EP 08: Seasons EP 09: Celebration! SP 0A: H&M SP 0B: Bon Voyage EP 0C: TSS (SP?) 0D: Store ? 0E: Free Time EP 0F: Kitchen and Bathroom SP 10: IKEA SP |
Day of Week | Monday = 0 ... Sunday = 6 |
0x07: Literal
This is how you represent a number.
0x08: Temp
You can use temporary variables. These are commonly used to return values from other BHAVs since Local variable only live within a BHAV.
0x09: Param
Your Behaviour Function (BHAV) may have arguments / parameters passed into it. If you use parameters in a BHAV you must remember to set how many. See BHAV#Declaring your stack variables for details on how to do this.
0x0A: Stack Object ID
This is a short-hand for Stack Object's (0x04) -> object id.
0x0B: Temp [temp]
0x0C: Check tree advert: Range
0x0D: Stack Object’s Temp
0x0E: My motive
This gives you access to all the various motive values.
Motive | Details |
---|---|
shopping | |
Scratch/Chew | |
Mood | |
Mood+Mem | |
Energy | |
Comfort | |
Hunger | |
Water/Hygiene | |
Bladder | |
Environment | |
Social | |
Fun | |
Sleep State |
0x0F: Stack Object’s motive
See 0x0E: My motive for more details.
0x10: Stack Object’s slot
0x11: Stack Object’s motive [temp]
0x12: My person data
This gives you access to various attributes of a Sim.
hex | dec | Person Data attribute | Details |
---|---|---|---|
0x0000 | 0 | Sitting? | |
0x0001 | 1 | Money Amount over Head | |
... | |||
0x0008 | 8 | Current Outfit | This is the current outfit type, e.g. 0 = Casual. This is not which outfit of that type they are wearing. It does not change if you change outfit within the type. |
0x001B | 27 | tick counter | |
0x0028 | 40 | route goal | |
0x0050 | 80 | ci: Current Interaction Object ID | |
0x0052 | 82 | Fatness [0-1000] | Three ranges, 0 being fat, 1000 being fit. Can be seen as part of your Sims "Personality" page in the game. |
0x0067 | 103 | ci: Current Running Object ID | |
0x006B | 107 | School Object GUID 1 | These two form the upper and lower portions of the GUID for the object that is the School attended by the Sim. Setting these to Temp[0] and Temp[1] and then using the Set to Next [prim 0x001F] with Object of type GUID in temp 0/1 will give you a Stack Object that you can then run call trees against and so on. |
0x006C | 108 | School Object GUID 2 |
0x13: Stack Object’s person data
See 0x12: My person data above for more details.
0x14: My slot
0x15: Stack Object’s definition
This gives you access to the various attributes of an object that you have defined in Object Data (OBJD). If you look at the RAW Data tab in 'Alphabetical' order rather than 'Categorized' order you will see the names in exactly the same order as shown in any instruction wizard.
0x16: Stack Obj attribute [param]
0x17: room [Temp 0]
0x18: Neighbor in stack object
0x19: Local
You can use local variables. If you use local variables in a BHAV you must remember to set how many. See BHAV#Declaring your stack variables for details on how to do this.
and plenty more to come