rendered paste bodyclass Operative99_Bot extends UTPawn
placeable;
// members for the custom mesh
var SkeletalMesh defaultMesh;
//var MaterialInterface defaultMaterial0;
var AnimTree defaultAnimTree;
var array<AnimSet> defaultAnimSet;
var AnimNodeSequence defaultAnimSeq;
var PhysicsAsset defaultPhysicsAsset;
var Operative99_BotController MyController;
var float Speed;
var SkeletalMeshComponent MyMesh;
var bool bplayed;
var Name AnimSetName;
var AnimNodeSequence MyAnimPlayControl;
var bool AttAcking;
var () array<NavigationPoint> MyNavigationPoints;
defaultproperties
{
Speed=80
AnimSetName="ATTACK"
AttAcking=false
defaultMesh=SkeletalMesh'CH_LIAM_Cathode.Mesh.SK_CH_LIAM_Cathode'
defaultAnimTree=AnimTree'CH_AnimCorrupt.Mesh.SK_CH_Corrupt_Male_Physics'
defaultAnimSet(0)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_BaseMale'
//defaultPhysicsAsset=PhysicsAsset'CH_AnimHuman_Tree.AT_CH_Human'
Begin Object Name=WPawnSkeletalMeshComponent
bOwnerNoSee=false
CastShadow=true
//CollideActors=TRUE
BlockRigidBody=true
BlockActors=true
BlockZeroExtent=true
//BlockNonZeroExtent=true
bAllowApproximateOcclusion=true
bForceDirectLightMap=true
bUsePrecomputedShadows=false
LightEnvironment=MyLightEnvironment
//Scale=0.5
SkeletalMesh=SkeletalMesh'CH_LIAM_Cathode.Mesh.SK_CH_LIAM_Cathode'
//PhysicsAsset=PhysicsAsset'CH_AnimCorrupt.Mesh.SK_CH_Corrupt_Male_Physics'
AnimSets(0)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_BaseMale'
AnimtreeTemplate=AnimTree'CH_AnimHuman_Tree.AT_CH_Human'
End Object
mesh = WPawnSkeletalMeshComponent
Components.Add(WPawnSkeletalMeshComponent)
/*Begin Object Name=CollisionCylinder
CollisionRadius=+0041.000000
CollisionHeight=+0044.000000
BlockZeroExtent=false
End Object
CylinderComponent=CollisionCylinder
CollisionComponent=CollisionCylinder*/
bCollideActors=true
bPushesRigidBodies=true
bStatic=False
bMovable=True
bAvoidLedges=true
bStopAtLedges=true
LedgeCheckThreshold=0.5f
}
simulated function PostBeginPlay()
{
super.PostBeginPlay();
//if (Controller == none)
// SpawnDefaultController();
SetPhysics(PHYS_Walking);
if (MyController == none)
{
MyController = Spawn(class'Operative99_BotController', self);
MyController.SetPawn(self);
}
//I am not using this
//MyAnimPlayControl = AnimNodeSequence(MyMesh.Animations.FindAnimNode('AnimAttack'));
}
function SetAttacking(bool atacar)
{
AttAcking = atacar;
}
simulated event Tick(float DeltaTime)
{
local UTPawn gv;
local vector endPoint;
endPoint = location;
endPoint.z += 100;
super.Tick(DeltaTime);
//MyController.Tick(DeltaTime);
DrawDebugLine(Location, endPoint, 1, 0, 0 );
//foreach CollidingActors(class'UTPawn', gv, 200)
foreach VisibleCollidingActors(class'UTPawn', gv, 100)
{
if(AttAcking && gv != none)
{
if(gv.Name == 'MyPawn_0' && gv.Health > 0)
{
//Worldinfo.Game.Broadcast(self, "Colliding with player : " @ gv.Name);
gv.Health -= 1;
gv.IsInPain();
}
}
}
}
simulated function SetCharacterClassFromInfo(class<UTFamilyInfo> Info)
{
Mesh.SetSkeletalMesh(defaultMesh);
//Mesh.SetMaterial(0,defaultMaterial0);
Mesh.SetPhysicsAsset(defaultPhysicsAsset);
Mesh.AnimSets=defaultAnimSet;
Mesh.SetAnimTreeTemplate(defaultAnimTree);
}