ATTR

ATTR is a CAOS command and function used to change or output the attributes (characteristics) of an agent. Each attribute is set by a particular number - the final ATTR number is the sum of those attributes. Whenever ATTR changes, the engine checks that the agent is in a valid position in the world.

Command
Syntax: ATTR binary_flags(int)

Sets the attributes of the current TARG to those specified by the bitmap binary_flags. This should be the sum of all the relevant attribute flags from the list below.

The attributes in Creatures 1 are:

1 - Can be picked up by creatures.

2 - Can be picked up by the hand.

4 - Can be activated using the hand.

8 - Carries other objects or creatures (only for use in vehicles).

16 - Creatures can't see it.

32 - Floating on screen

64 - Limits movement to current room (wallbound)

128 - Movement limited by ground surface (groundbound)

NOTE: 128 and 64 cannot be combined.

The attributes in Creatures 3 are:

1 - Can be picked up by other agents.

2 - Can be picked up by the hand.

4 - Can be activated using the hand.

8 - Vehicle only: Will automatically hold agents dropped into its cabin.

16 - Creatures can't see it. (From the CAOS docs:  '...applies to ESEE and STAR on creatures, as well as internal creature code.' )

32 - Stays in one position relative to the screen, position is set with FLTO. FREL can be used to make it stay in one position relative to another agent.

64 - Collides with the walls between rooms depending on its PERM.

128 - The agent is affected by gravity, air resistance and friction, these are set by ACCG, AERO and FRIC. Agents without this flag only move when thrown.

256 - The agent, and its contents if it's a vehicle, cannot be seen on cameras or on images created with SNAP.

512 - Vehicle only: Creatures can only see and interact with agents in the cabin if this flag is used.

Function
Syntax: ATTR

Returns the ATTR bitmap of TARG, as detailed above.

Examples
Make HOTS mouse-carryable, and make it suffer collisions and physics: TARG HOTS ATTR 194

Send the attribute bitmap of HOTS to the output stream: TARG HOTS OUTV ATTR

Prevent any agents from suffering physics: ENUM 0 0 0 SETV va00 ATTR ANDV va00 128 DOIF va00 eq 128 SETV va00 ATTR SUBV va00 128 ATTR va00 ENDI NEXT