mirror of
https://github.com/Ragora/T2-BoL.git
synced 2026-01-20 03:24:47 +00:00
107 lines
3 KiB
C#
107 lines
3 KiB
C#
//Component: Lootage
|
|
//Description: You can loot corpses. (w00t)
|
|
|
|
//----------------------------------------------------------------------------
|
|
// DATABLOCKS
|
|
//----------------------------------------------------------------------------
|
|
datablock ItemData(Lootbag)
|
|
{
|
|
className = Weapon;
|
|
catagory = "Misc";
|
|
shapeFile = "moneybag.dts";
|
|
mass = 1;
|
|
elasticity = 0.2;
|
|
friction = 50;
|
|
pickupRadius = 2;
|
|
pickUpPrefix = "a bag of items";
|
|
alwaysAmbient = true;
|
|
description = "lootbag_model";
|
|
|
|
computeCRC = false;
|
|
emap = true;
|
|
};
|
|
|
|
//----------------------------------------------------------------------------
|
|
// BOUND FUNCTIONS
|
|
//----------------------------------------------------------------------------
|
|
|
|
//Realized this isn't required..
|
|
//function LootBag::onAdd(%this,%obj) //Force a loot check on creation.
|
|
//{
|
|
//LootBagCheckForPickUp(%obj);
|
|
//parent::onAdd(%this,%obj);
|
|
//}
|
|
|
|
//----------------------------------------------------------------------------
|
|
// FUNCTIONS
|
|
//----------------------------------------------------------------------------
|
|
|
|
function LootBagCheckForPickUp(%this) //Not sure why, loot bags won't do a T2 system pickup..
|
|
{
|
|
cancel(%this.loop);
|
|
|
|
if (!IsObject(%this))
|
|
return;
|
|
|
|
%count = MissionCleanUp.getCount();
|
|
|
|
for(%i = 0; %i < %count; %i++)
|
|
{
|
|
%test = MissionCleanUp.getObject(%i);
|
|
|
|
if (%test.getClassName() $= "Player" && %test.getState() !$= "dead" && !%test.client.isAIControlled())
|
|
{
|
|
%dist = vectorDist(%this.getPosition(),%test.getPosition());
|
|
|
|
if (%dist < %this.getDatablock().pickUpRadius)
|
|
{
|
|
LootBagPickedUp(%this,%test.client);
|
|
return;
|
|
}
|
|
|
|
%this.loop = schedule(100,0,"LootBagCheckForPickup",%this);
|
|
}
|
|
}
|
|
}
|
|
|
|
function LootBagPickedUp(%this,%client)
|
|
{
|
|
%db = %client.player.getDatablock(); //The player's datablock
|
|
%money = %this.money; //Monies?
|
|
%numItems = %this.numItems; //Giving out items.
|
|
%numAmmo = %this.numAmmo; //..Ammo too!
|
|
//Does the bag have money?
|
|
if (%money $= "")
|
|
%hasMoney = false;
|
|
else
|
|
%hasMoney = true;
|
|
|
|
if (%money !$= "")
|
|
%client.money = %client.money + %money; //Give some monies.
|
|
|
|
for (%i = 0; %i < %numItems; %i++)
|
|
{
|
|
if (%db.max[%this.item[%i]] != 0) //Don't want people in light armor running around with mortars, do we?
|
|
{
|
|
%client.player.setInventory(%this.item[%i],1);
|
|
%client.player.setInventory(%this.ammo[%i],%this.ammoNum[%i]);
|
|
}
|
|
}
|
|
%this.delete(); //Delete the bag.
|
|
|
|
//Let the player know.
|
|
switch (%hasMoney)
|
|
{
|
|
case 0:
|
|
if (%numItems > 1)
|
|
messageClient(%client,'MsgClient','You picked up a bag of items that contained %1 items.',%numitems);
|
|
else
|
|
messageClient(%client,'MsgClient','You picked up a bag of items that contained 1 item.');
|
|
case 1:
|
|
if (%numItems > 1)
|
|
messageClient(%client,'MsgClient','You picked up a bag of items that contained $%1 and %2 items.',%money,%numitems);
|
|
else
|
|
messageClient(%client,'MsgClient','You picked up a bag of items that contained $%1 and 1 item.',%money);
|
|
}
|
|
}
|