KF2-Server-Extension/ServerExt/Classes/ExtSM_Player_Emote.uc
2020-11-28 23:12:58 +03:00

50 lines
1.3 KiB
Ucode

class ExtSM_Player_Emote extends KFSM_Player_Emote;
static function byte PackFlagsBase(KFPawn P)
{
return class'ExtEmoteList'.static.GetEmoteIndex(class'ExtEmoteList'.static.GetEquippedEmoteId(ExtPlayerController(P.Controller)));
}
function PlayAnimation()
{
AnimName = class'ExtEmoteList'.static.GetEmoteFromIndex(KFPOwner.SpecialMoveFlags);
PlaySpecialMoveAnim(AnimName, AnimStance, BlendInTime, BlendOutTime, 1.f);
if (KFPOwner.Role == ROLE_Authority)
{
KFGameInfo(KFPOwner.WorldInfo.Game).DialogManager.PlayDialogEvent(KFPOwner, 31);
}
// Store camera mode for restoration after move ends
LastCameraMode = 'FirstPerson';
if (PCOwner != none && PCOwner.PlayerCamera != none)
{
LastCameraMode = PCOwner.PlayerCamera.CameraStyle;
}
// Set camera to emote third person camera
if (PCOwner == none || !PawnOwner.IsLocallyControlled())
{
KFPOwner.SetWeaponAttachmentVisibility(false);
return;
}
if (PCOwner.CanViewCinematics())
{
PCOwner.ClientSetCameraFade(true, FadeInColor, vect2d(1.f, 0.f), FadeInTime, true);
PCOwner.PlayerCamera.CameraStyle = 'Emote';
// Switch camera modes immediately in single player or on client
if (PCOwner.WorldInfo.NetMode != NM_DedicatedServer)
{
PCOwner.ClientSetCameraMode('Emote');
}
KFPOwner.SetWeaponAttachmentVisibility(false);
}
}
DefaultProperties
{
}