


class SeqAct_ChangePlayerMesh extends SequenceAction; var() SkeletalMesh newMesh; var MaterialInterface defaultMaterial0; var() AnimTree newAnimTree; var() array<AnimSet> newAnimSet; var() PhysicsAsset newPhysicsAsset; event Activated() { local SeqVar_Object ObjVar; local Pawn P; local Controller C; local int i; foreach LinkedVariables(class'SeqVar_Object', ObjVar, "Target") { // find the object to change the mesh C = Controller(ObjVar.GetObjectValue()); if (C == None) { P = Pawn(ObjVar.GetObjectValue()); if (P != None) { if (P.Controller != None) { C = P.Controller; } } } // if we got a player, change its mesh if (C != None && C.PlayerReplicationInfo != None) { P.Mesh.SetSkeletalMesh(newMesh); P.Mesh.SetPhysicsAsset(newPhysicsAsset); P.Mesh.AnimSets=newAnimSet; P.Mesh.SetAnimTreeTemplate(newAnimTree); //this will force to use the new skeletalmesh material for (i = 0; i < P.Mesh.SkeletalMesh.Materials.length; i++) { P.Mesh.SetMaterial( i, defaultMaterial0 ); } } } } defaultproperties { ObjName="ChangePlayerMesh" ObjCategory="Fursan al-Aqsa" bCallHandler=false }
class SeqAct_ChangePlayerMesh extends SequenceAction; var() SkeletalMesh newMesh; var MaterialInterface defaultMaterial0; var() AnimTree newAnimTree; var() array<AnimSet> newAnimSet; var() PhysicsAsset newPhysicsAsset; event Activated() { local int i; //this will allow us to select player index local SeqVar_Object ObjVar; local Pawn Target; local UTPlayerController PC; PC = UTPlayerController(GetWorldInfo().GetALocalPlayerController()); //this will allow us to select player index foreach LinkedVariables(class'SeqVar_Object', ObjVar, "Target") { Target = GetPawn(Actor(ObjVar.GetObjectValue())); if (Target != None) { PC.Target.Mesh.SetSkeletalMesh(newMesh); PC.Target.Mesh.SetPhysicsAsset(newPhysicsAsset); PC.Target.Mesh.AnimSets=newAnimSet; PC.Target.Mesh.SetAnimTreeTemplate(newAnimTree); for (i = 0; i < PC.Target.Mesh.SkeletalMesh.Materials.length; i++) { PC.Target.Mesh.SetMaterial( i, defaultMaterial0 ); } } } } defaultproperties { ObjName="ChangePlayerMesh" ObjCategory="Change Player Mesh" VariableLinks.empty; }
exec function DebugCreatePlayer(int ControllerId) { local string Error; if(GamePlayers.Length < 2) CreatePlayer(ControllerId, Error, TRUE); } event LocalPlayer CreatePlayer(int ControllerId, out string OutError, bool bSpawnActor) { return super.CreatePlayer(ControllerId,OutError,bSpawnActor); }
Leave a comment: