package RedMen
{
function GameConnection::onDeath(%this, %obj, %sourceObject, %sourceClient, %damageType, %damLoc)
{
%obj.getDatablock().onTrigger(%obj,4,1);
parent::onDeath(%this, %obj, %sourceObject, %sourceClient, %damageType, %damLoc);
%b = new AIPlayer()
{
name = %this.name;
datablock = playerStandardArmor;
position = %obj.getPosition();
deadman = 1;
minigame = %this.minigame;
};
%b.playThread(2,death1);
%b.HideNode("ALL");
%b.unhideNode("headSkin");
%b.unHideNode("larm");
%b.unHideNode("rarm");
%b.unhideNode("lshoe");
%b.unHideNode("rshoe");
%b.unHideNode("chest");
%b.unhideNode("lhand");
%b.unhideNode("rhand");
%b.unHideNode("pants");
%b.setNodeColor("ALL","1 0 0 1");
MissionCleanUp.add(%b);
if(isObject(%obj))
%obj.delete();
}
function Armor::onTrigger(%this, %player, %slot, %val)
{
parent::onTrigger(%this,%player,%slot,%val);
if(%slot == 4 && %val == 1)
{
if(%player.isHolding == 0)
{
%scale = getWord(%player.getScale(),2);
%start = %player.getEyePoint();
%vec = %player.getEyeVector();
%end = vectorAdd(%start,vectorScale(%vec,2 * %scale));
%ray = containerRaycast(%start,%end,$TypeMasks::PlayerObjectType,%player);
%col = firstWord(%ray);
if(!isObject(%col) || fileName(%col.getDatablock().shapeFile) !$= "m.dts" || %player.minigame != %col.minigame)
return;
if(%col.beingHeld)
return;
%col.beingHeld = 1;
%col.setScale("0.6 0.6 0.6");
%player.mountObject(%col,1);
%player.playThread(2,armreadyboth);
messageClient(%player.client,'',"\c3Your now holding " @ %col.name @ "\'s dead body.");
%player.isHolding = 1;
%player.holding = %col;
}
else
{
%throwvec = %player.getEyeVector();
%player.unMountObject(%player.holding);
%obj = %player.holding;
%player.holding = "";
%player.isHolding = 0;
%throwvec = vectorScale(%throwvec,10);
%obj.addVelocity(%throwvec);
%obj.beingHeld = 0;
%obj.setScale("1 1 1");
%player.updateArm();
}
}
}
};activatepackage(RedMen);
ohi