class MyGamePlayerController extends UTPlayerController
dependson(MyGamePlayerReplicationInfo);
function Rotator GetAdjustedAimFor( Weapon W, vector StartFireLoc )
{
local vector FireDir, HitLocation, HitNormal;
local actor BestTarget, HitActor;
local float bestAim, bestDist, MaxRange;
local rotator BaseAimRot;
BaseAimRot = (Pawn != None) ? Pawn.GetBaseAimRotation() : Rotation;
//(Added below)ここから追加:照準誤差
if (MyGameWeapon_ClassName(W) != None && MyGameWeap_AK47(W).bSpreadError)
{
BaseAimRot.Pitch += MyGameWeapon_ClassName(W).SpreadErrorMaxRange.Pitc h * (FRand()-0.5)*2;
BaseAimRot.Yaw += MyGameWeapon_ClassName(W).SpreadErrorMaxRange.Yaw * (FRand()-0.5)*2;
}
FireDir = vector(BaseAimRot);
MaxRange = W.MaxRange();
HitActor = Trace(HitLocation, HitNormal, StartFireLoc + MaxRange * FireDir, StartFireLoc, true);
if ( (HitActor != None) && HitActor.bProjTarget )
{
BestTarget = HitActor;
}
else if ( ((WorldInfo.Game != None) &&(WorldInfo.Game.Numbots > 0)) || AimingHelp(true) )
{
// guess who target is
// @todo FIXMESTEVE
bestAim = 0.95;
BestTarget = PickTarget(class'Pawn', bestAim, bestDist, FireDir, StartFireLoc, MaxRange);
if (W != None && W.GetProjectileClass() == None)
{
InstantWarnTarget(BestTarget, W, vector(BaseAimRot));
}
}
ShotTarget = Pawn(BestTarget);
return BaseAimRot;
}
defaultproperties
{
}
Bookmarks