So in UT3, the weapons and arms are both separate meshes and I can't find way to merge them in any model editors.
Hence, I had to add them seperately (coding way). So my question is how to add the "Arms" in RenderOverlays() function properly??
Here is code:
Code: Select all
var(RenderOverlays) WP_SniperRifleArms Arms;
var mesh ArmsMesh;
var int NumFire;
replication
{
reliable if(Role == ROLE_Authority)
Arms;
}
simulated function PostBeginPlay()
{
PrepareArms();
Super.PostBeginPlay();
}
simulated event RenderOverlays(Canvas Canvas)
{
Super.RenderOverlays(Canvas);
//PrepareArms();
if(Arms != None)
{
Arms.Style = STY_Normal;
Arms.bUnlit = false;
Arms.bMeshEnviroMap = False;
Arms.Texture = None;
Arms.Mesh = ArmsMesh;
Arms.SetLocation(Location);
Arms.SetRotation(Pawn(Owner).ViewRotation);
Canvas.DrawActor(Arms, False, False);
}
else if(ArmsMesh != None)
{
Arms = Spawn(Class'WP_SniperRifleArms', Self);
Arms.Mesh = ArmsMesh;
Arms.DrawScale = PlayerViewScale;
Arms.bHidden = true;
}
}
simulated function PrepareArms()
{
if(Pawn(Owner) == None)
return;
if(Arms == None)
{
Arms = Spawn(Class'WP_SniperRifleArms', Self);
Arms.DrawScale = PlayerViewScale;
Arms.bHidden = true;
}
else
return;
}Here is WP_SniperRifle.UC:
Code: Select all
class WP_SniperRifleArms extends Effects;
simulated function Tick(float Delta)
{
/*if (Owner != None && bHidden != Owner.bHidden)
{
bHidden = Owner.bHidden;
bOldHidden = bHidden;
}
else*/
if (Owner == None)
Destroy();
}
defaultproperties
{
bHidden=True
bAnimByOwner=True
bNetTemporary=False
DrawType=DT_Mesh
Mesh=LodMesh'UnrealShare.WoodenBoxM'
Mass=0.000000
}To animate I have to seperately write like this:
Code: Select all
Arms.PlayAnim('Select', 1.0, 0.04); //Same for fire, idle and down animationsThanks.
