if ( P.bIsMultiSkinned )
NewPlayer.ClientReplicateSkins(P.MultiSkins[0], P.MultiSkins[1], P.MultiSkins[2], P.MultiSkins[3]);
else
NewPlayer.ClientReplicateSkins(P.Skin);
Field Pawn.bIsMultiSkinned is not an object of replication. So if it is not set explicit client use default value.
Now look at TCow:
defaultproperties
{
bIsMultiSkinned=false
and
simulated function SetMyMesh()
{
Super.SetMyMesh();
bIsMultiSkinned = true;
}
but in parent class CustomPlayer on GetMultiSkin checked explicit default value:
static function GetMultiSkin( Actor SkinActor, out string SkinName, out string FaceName )
{
local string FullSkinName, ShortSkinName;
if ( default.bisMultiSkinned
|| (SkinActor.Mesh == Default.FallBackMesh) )
{
Super.GetMultiSkin(SkinActor,SkinName,FaceName);
return;
}
// only one skin
FaceName = "";
FullSkinName = String(SkinActor.Skin);
ShortSkinName = SkinActor.GetItemName(FullSkinName);
SkinName = Left(FullSkinName, Len(FullSkinName) - Len(ShortSkinName)) $ Left(ShortSkinName, 4);
}
if ( default.bisMultiSkinned, not if ( bisMultiSkinned.
So if used GetMultiSkin/SetMultiSkin NaliCow switch to Skin whic is Yellow cow and Atomic cow (or anything else) will not work.
IDK why used such weird way for cow: default.bisMultiSkinned = False, but bisMultiSkinned = true.
Skin can be two types:
Field Pawn.bIsMultiSkinned is not an object of replication. So if it is not set explicit client use default value.
Now look at TCow:
and
but in parent class CustomPlayer on GetMultiSkin checked explicit default value:
if ( default.bisMultiSkinned
, notif ( bisMultiSkinned
. So if used GetMultiSkin/SetMultiSkin NaliCow switch to Skin whic is Yellow cow and Atomic cow (or anything else) will not work.IDK why used such weird way for cow: default.bisMultiSkinned = False, but bisMultiSkinned = true.