Meteor 2 Scripting Functions
Weapon
int getPlayerWeapon(int playerID)
Get the specified player's current weapon slot index.

Example
// show local player current weapon slot index
print(getPlayerWeapon(getLocalPlayer()));

Comments
If the player was not found -1 is returned.

See also
setPlayerWeapon clampPlayerWeapon hasWeapon getWeaponSlotItemNumber getWeaponSlotItemName getWeaponSlotsCount

void setPlayerWeapon(int playerID, int slotIndex)
Set the specified player's current weapon slot index (local player or server only).

Example
// select weapon slot 2 (PDW)
setPlayerWeapon(getLocalPlayer(), 2);

See also
getPlayerWeapon clampPlayerWeapon hasWeapon getWeaponSlotItemNumber getWeaponSlotItemName getWeaponSlotsCount

void clampPlayerWeapon(int playerID)
Clamp a player's current weapon index to a valid (and owned) weapon slot (local player or server only).

Example
// take away player PDW
giveItem(getLocalPlayer(), "PDW", -1);

// ensure player's current weapon is valid
clampPlayerWeapon(getLocalPlayer());

Comments
Use this function to ensure a player's current weapon is valid, especially after removing weapons.

See also
getPlayerWeapon setPlayerWeapon hasWeapon getWeaponSlotItemNumber getWeaponSlotItemName getWeaponSlotsCount

bool hasWeapon(int objectID, string weaponItemName)
Determine if an object has a specific weapon.

Example
// does player have a PDW?
print("Player has PDW: " + hasWeapon(PLAYER_OBJECT, "PDW"));

Comments
This function is normally used for player objects.

See also
getPlayerWeapon setPlayerWeapon clampPlayerWeapon getWeaponSlotItemNumber getWeaponSlotItemName getWeaponSlotsCount

int getWeaponSlotItemNumber(int objectID, int slotIndex)
Get the item type index for an object weapon slot.

Example
// print player slot 0 item number
print(getWeaponSlotItemNumber(PLAYER_OBJECT, 0));

Comments
Returns -1 if the object or slot is invalid.

See also
getPlayerWeapon setPlayerWeapon clampPlayerWeapon hasWeapon getWeaponSlotItemName getWeaponSlotsCount

string getWeaponSlotItemName(int objectID, int slotIndex)
Get the item type name for a player weapon slot.

Example
// print weapon item name for slot 0
print(getWeaponSlotItemName(PLAYER_OBJECT, 0));

Comments
Returns empty string if the object or slot is invalid.

See also
getPlayerWeapon setPlayerWeapon clampPlayerWeapon hasWeapon getWeaponSlotItemNumber getWeaponSlotsCount

int getWeaponSlotsCount(int objectID)
Get the number of weapon slots an object has.

Example 1
// show number of player weapon slots
print("Player has " + getWeaponSlotsCount(PLAYER_OBJECT) + " weapon slots");

Example 2
// loop through weapon slots and display information
for(int i=0; i<getWeaponSlotsCount(PLAYER_OBJECT); i++)
{
    print(i + ": " + getWeaponSlotItemName(PLAYER_OBJECT, i));
}

See also
getPlayerWeapon setPlayerWeapon clampPlayerWeapon hasWeapon getWeaponSlotItemNumber getWeaponSlotItemName hasLinkedWeapons

bool hasLinkedWeapons(int objectID)
Determine if an object has linked weapons (all turrets fire at the same time).

Example
// show player linked weapon mounts status
if(hasLinkedWeapons(PLAYER_VEHICLE))
    print("Linked weapon mounts");
else
    print("Selectable weapon mounts");

See also
getWeaponSlotsCount

bool isUsingMissileWeapon(int objectID)
Determine if an object is currently using a missile weapon.

Comments
A missile weapon is defined as a weapon with "Trigger missile alarm" set to true in the Weapon Editor.

See also

float getWeaponAimingAngle(int objectID, int slotIndex=-1)
Get the aiming angle of a specified turret.

Example
// show aiming angle of player or player vehicle current weapon
print("Current slot angle: " + getWeaponAimingAngle(PLAYER_VEHICLE, getPlayerWeapon(getLocalPlayer())));

// show aiming angles of player vehicle first and second turrets
print("Slot 0: " + getWeaponAimingAngle(PLAYER_VEHICLE, 0));
print("Slot 1: " + getWeaponAimingAngle(PLAYER_VEHICLE, 1));

Comments
slotIndex is 0 based. If slotIndex is invalid the object angle is returned.
Result is in degrees (e.g. north = 0, east = 90, south = 180, west = 270).

See also
getWeaponWorldPos getPlayerWeapon

vector2 getWeaponMountWorldPos(int objectID, int slotIndex=-1)
Get the world position of a specified turret mounting point.

Example
// show world pos of player or player vehicle current weapon
print("Current slot pos: " + getWeaponMountWorldPos(PLAYER_VEHICLE, getPlayerWeapon(getLocalPlayer())));

// show world mounting positions of player vehicle first and second turrets
print("Slot 0: " + getWeaponMountWorldPos(PLAYER_VEHICLE, 0));
print("Slot 1: " + getWeaponMountWorldPos(PLAYER_VEHICLE, 1));

Comments
slotIndex is 0 based. If slotIndex is invalid the object position is returned.

See also
getWeaponFireWorldPos getWeaponAimingAngle getPlayerWeapon

vector2 getWeaponFireWorldPos(int objectID, int slotIndex)
Get the world position of a specified turret firing point (end of barrel).

Example
// show world pos of player or player vehicle current weapon
print("Current slot pos: " + getWeaponFireWorldPos(PLAYER_VEHICLE, getPlayerWeapon(getLocalPlayer())));

// show world firing positions of player vehicle first and second turrets
print("Slot 0: " + getWeaponFireWorldPos(PLAYER_VEHICLE, 0));
print("Slot 1: " + getWeaponFireWorldPos(PLAYER_VEHICLE, 1));

Comments
slotIndex is 0 based. If slotIndex is invalid the object position is returned.

See also
getWeaponMountWorldPos getWeaponAimingAngle getPlayerWeapon

void throwGrenade(int objectID, string slotName, float strength)
Make an object throw a grenade.

Example
// make object 1 drop a frag grenade at its feet
throwGrenade(1, "Frag Grenade", 0);

// make object 1 throw a blue smoke as far as possible
throwGrenade(1, "Blue Smoke", 1);

Comments
slotName corresponds to the name of a grenade slot in game.ini.
strength is a normalised value from 0 to 1.


Index