76
Modification Help / getItem from WeaponImage?
« on: June 03, 2013, 01:14:59 AM »
I want to find the item image from a weapon image.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
//Edge Detection and Rotation
function Player::BoundaryCheck(%obj)
{
if(%obj.isHanging || %obj.isClimbing)
{
// talk("Boundary Check loop");
// centerPrint(%obj.client,"<font:impact:24><br><br><br><br><color:FFF200><just:right>Boundary Check Loop ",0.1);
if(!%obj.isLeaping)
{
%obj.grabchk2 = %obj.schedule(5,GrabCheck);
// talk("Secondary Grab Check");
// bottomPrint(%obj.client,"<font:impact:24><br><br><br><br><color:FFF200><just:right>Secondary Grab Check scheduled ",0.1);
}
cancel(%obj.bcheck);
%obj.bcheck = %obj.schedule(10,BoundaryCheck);
if(%obj.isHanging)
{
cancel(%obj.dirfix);
%obj.dirfix = %obj.schedule(5,DirectionalFix);
}
%vec = %obj.getForwardVector();
%vel = %obj.getVelocity();
%pos = %obj.getPosition();
%rv = relativevelocity(%vec,%vel);
%lvec = %obj.getLeftVector();
%rvec = %obj.getRightVector();
%x = getWord(%rv,0);
%y = getWord(%rv,1);
%z = getWord(%vel,2);
%up = getWord(%pos,2);
%fwdX = getWord(%vec,0);
%fwdY = getWord(%vec,1);
if(%x > 5)
{
%obj.setVelocity(vectorScale(%dv,0.25) SPC %upv);
}
if(%x < -5)
{
%obj.setVelocity(vectorScale(%dv,0.25) SPC %upv);
}
if(%x > 0.1)
{
%xAdd = 0.2;
%xAdd2 = 1;
%xSub = -0.1;
%sv = %lvec;
}
else if(%x < -0.1)
{
%xAdd = -0.2;
%xAdd2 = -1;
%xSub = 0.1;
%sv = %rvec;
}
%ap = (%xAdd * %fwdY + %yAdd * %fwdX) SPC (%yAdd * %fwdY + %xAdd * -%fwdX) SPC %zAdd;
%ap2 = (%xAdd2 * %fwdY + %yAdd2 * %fwdX) SPC (%yAdd2 * %fwdY + %xAdd2 * -%fwdX) SPC %zAdd2;
%sp = (%xSub * %fwdY + %ySub * %fwdX) SPC (%ySub * %fwdY + %xSub * -%fwdX) SPC %zSub;
%ledgePos = vectorAdd(%obj.getHackPosition(),"0 0 0.15");
%startA = vectorAdd(%ledgePos,%ap);
%beam = vectorScale(%vec,1);
%endA = vectorAdd(%startA, %beam);
%rayA = containerRayCast(%startA, %endA, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
%spacePos = vectorAdd(%obj.getEyePoint(),"0 0 -0.55");
%startB = vectorAdd(%spacePos,%ap);
%endB = vectorAdd(%startB, %beam);
%rayB = containerRayCast(%startB, %endB, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
%ledgePos = vectorAdd(%obj.getHackPosition(),"0 0 0.15");
%endC = vectorAdd(%ledgePos, %beam);
%rayC = containerRayCast(%ledgePos, %endC, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
%endD = vectorAdd(%spacePos, %beam);
%rayD = containerRayCast(%spacePos, %endD, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
if(!%obj.isClimbing && %obj.isHanging)
{
%startA2 = %ledgePos;
%beam2 = vectorScale(%sv,1);
%endA2 = vectorAdd(%startA2, %beam2);
%rayA2 = containerRayCast(%startA2, %endA2, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
%startB2 = %spacePos;
%endB2 = vectorAdd(%startB2, %beam2);
%rayB2 = containerRayCast(%startB2, %endB2, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
if(isObject(%colA2 = firstWord(%rayA2)) && !isObject(%colB2 = firstWord(%rayB2)) && !%obj.isRotated)
{
if(%x < 5 && %x > 0)
{
%sideRotation = "0 0 -90";
}
if(%x > -5 && %x < 0)
{
%sideRotation = "0 0 90";
}
%obj.sideRotation = %sideRotation;
%obj.Rotate90();
return;
}
%new3 = vectorAdd(VectorScale(%ap,1),vectorScale(%vec,1));
%startA3 = vectorAdd(%ledgePos,%new3);
%beam3 = vectorScale(%sv,-0.5);
%endA3 = vectorAdd(%startA3, %beam3);
%rayA3 = containerRayCast(%startA3, %endA3, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
%startB3 = vectorAdd(%spacePos,%new3);
%endB3 = vectorAdd(%startB3, %beam3);
%rayB3 = containerRayCast(%startB3, %endB3, $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType, %obj);
if(isObject(%colA3 = firstWord(%rayA3)) && !isObject(%colB3 = firstWord(%rayB3)))
{
if(!isObject(%colA = firstWord(%rayA)) || isObject(%colB = firstWord(%rayB)))
{
%newVector = vectorAdd(vectorScale(%ap2,0.8),vectorScale(%vec,1));
%start = vectorAdd(%obj.getHackPosition(),%newVector);
initContainerBoxSearch(%start, "1.3 1.3 1.6", $TypeMasks::fxBrickObjectType | $TypeMasks::TerrainObjectType | $Typemasks::VehicleObjectType);
%colD = containerSearchNext();
if(!isObject(%colD) && !%obj.isRotated)
{
if(%x < 5 && %x > 0)
{
%sideRotation = "0 0 90";
}
if(%x > -5 && %x < 0)
{
%sideRotation = "0 0 -90";
}
%add = vectorAdd(%pos,"0 0 0.0");
%obj.setVelocity("0 0 0");
%obj.setTransform(vectorAdd(%add,%newVector));
%obj.sideRotation = %sideRotation;
%obj.Rotate90();
return;
}
}
}
}
if(!isObject(%colA = firstWord(%rayA)) || isObject(%colB = firstWord(%rayB)))
{
if(isObject(%colC = firstWord(%rayC)) && !isObject(%colC = firstWord(%rayD)))
{
if(!%obj.isRotated)
{
%obj.setTransform(vectorAdd(%pos,%sp));
}
}
}
}
}
datablock PlayerData(PlayerUnchartedAim : PlayerUnchartedHip)
{
minLookAngle = -1;
cameraMaxDist = 2;
maxForwardSpeed = 4;
maxBackwardSpeed = 4;
maxSideSpeed = 4;
uiName = "";
};
datablock PlayerData(PlayerUnchartedAimLeft : PlayerUnchartedAim)
{
cameraHorizontalOffset = -0.526; //0.8; //0.5245;
uiName = "";
};
Should work, logically. But... %damage = %this.directDamage * 0.5 - %this.directDamage;
%damageType = $DamageType::Direct;
if(%this.directDamageType)
{
%damageType = %this.directDamageType;
}
%col.damage(%obj,%pos,%damage,%damageType);
package PhysicsJump
{
function Armor::onTrigger(%data,%obj,%slot,%val)
{
Parent::onTrigger(%data,%obj,%slot,%val);
if(%slot == 2)
{
talk("onJump called");
%obj.isSpacing = %val;
if(%obj.isSpacing && %data.canPhysicsJump)
{
%obj.schedule(100,startPhysicsJumping);
}
}
}
};activatePackage(PhysicsJump);
The talk(); isn't even called. I have no clue what's going on.
%pos = %obj.getEyeTransform();
%camera = %obj.client.camera;
%camera.setOrbitMode(%obj, %pos, 0.5, 8, 2, 1);
%camera.mode = "Orbit";
%obj.client.setControlObject(%camera);