Not tested, but should work...
Code:
// Global...
var array<SkeletalMesh> MeshList[7];
var array<MaterialInterface> MaterialList[7];
simulated function AttachWeaponTo(SkeletalMeshComponent MeshCpnt, optional Name SocketName)
{
Super.AttachWeaponTo(MeshCpnt, SocketName);
if (Instigator != None)
{
Switch( Instigator.Class )
{
case class'MyPawnClass0': ChangeWeaponDef(MeshList[0], MaterialList[0]); break;
case class'MyPawnClass1': ChangeWeaponDef(MeshList[1], MaterialList[1]); break;
case class'MyPawnClass2': ChangeWeaponDef(MeshList[2], MaterialList[2]); break;
case class'MyPawnClass3': ChangeWeaponDef(MeshList[3], MaterialList[3]); break;
case class'MyPawnClass4': ChangeWeaponDef(MeshList[4], MaterialList[4]); break;
case class'MyPawnClass5': ChangeWeaponDef(MeshList[5], MaterialList[5]); break;
case class'MyPawnClass6': ChangeWeaponDef(MeshList[6], MaterialList[6]); break;
default:
`warn("Invalid Pawn class");
}
}
}
simulated function ChangeWeaponDef(SkeletalMesh NewMesh, optional MaterialInterface NewMaterial, optional int ElementIndex)
{
if( Mesh != None )
{
if( NewMesh != None )
Mesh.SetSkeletalMesh( NewMesh );
if( NewMaterial != None )
Mesh.SetMaterial( ElementIndex, NewMaterial );
}
}
BTW. Don't forget about UTWeaponAttachment...
Bookmarks