GameObj

From Legends of Aria Admin and Modding Wiki
Revision as of 12:56, 1 November 2016 by Yorlik (talk | contribs) (Game Object Properties)
Jump to: navigation, search

Game Object (GameObj) is a Dynamic object within the game that can occupy a position of the world, including a Container. Game Objects are the most common of all Objects and can have Variables and/or Modules attached to them.

A potion, a monster, a door, and a sword are all examples of GameObjs.

Game Object Properties

  • Id:The unique Id of a GameObject, Ids are unique on a per cluster basis.
    • Getting the Id of a gameObject: mId = mObj.Id
    • Setter: Gameobject Ids cannot be set. They are created and assigned by the engine on object creation.
    • Referencing a gameobject from a known Id(=number): mGameObj = GameObj(mId)
  • Name: The name of a gameobject, visible in game.
    • Getter: mName = mObj:GetName()
    • Setter: mObj:SetName("Samogh the Blacksmith")
  • Hue: The hue of an object which mixes with the texture colors. You cannot force an object to be magenta, when its texture color is green.
    • Getter: mHue = mObj:GetHue()
    • Setter: mObj:SetHue("FF0000")
  • Location: Location of the object in the world
    • Getter: mLoc = mObj:GetLoc()
    • Setter: mObj:SetWorldPosition(Loc(0,0,0)) The example positions the object at the world origin.
    • Setter2: mObj:MoveToContainer(mBag, Loc(0,0,0)) Object gets put into container mBag at relative coordinates 0,0,0 inside the container.
    • You can use SetWorldPosition() to move an object out of a container into the world.
  • Rotation: Rotation of the object in its own local coordinate system
    • Getter: mRot = mObj:GetRotation() Returns a Loc object whith three angles in degrees which describe the object rotation around the axis x,y and z. The order of rotation is: z, y, x (The Unity standard of rotation)
    • Setter: mObj:SetRotation(Loc(45,30,60)) The example sets the rotation of the object to 60° around its Z axis, 45° around its X axis and 30° around its Y axis.
  • Scale: Scaling of the object in its own local coordinate system
    • Getter: mRot = mObj:GetScale() Returns a Loc object whith three scale factors which describe the object scaling in each axis x,y and z.
    • Setter: mObj:SetScal(Loc(2,4,2)) The example sets the scale of the object to 2x at its x and Z axis, and 4x at its X axis. So it is 2 times taller than wide and stretched up high (y-axis).

Tips

  • Obj variables should only contain data you are intending to persist to disk, especially since reading from an ObjVar immediately after setting it will not always return the new value.
  • GameObj can communicate between each other using SendMessage just like Modules.