ApplyLaserState Instigator accessed none fix

This commit is contained in:
Shtoyan 2022-01-21 17:52:41 +04:00
parent f93d1d4761
commit 8609b8fef8

View File

@ -1331,45 +1331,61 @@ function SetNiceData(NicePlainData.Data transferData, optional NiceHumanPawn new
secondaryCharge = class'NicePlainData'.static.GetInt(transferData, "ChargeAmount", 1); secondaryCharge = class'NicePlainData'.static.GetInt(transferData, "ChargeAmount", 1);
ClientSetSndCharge(secondaryCharge); ClientSetSndCharge(secondaryCharge);
} }
simulated function ApplyLaserState(){
simulated function ApplyLaserState()
{
bLaserActive = LaserType > 0; bLaserActive = LaserType > 0;
if (Role < ROLE_Authority) if (Role < ROLE_Authority)
ServerSetLaserType(LaserType); ServerSetLaserType(LaserType);
if (NiceAttachment(ThirdPersonActor) != none) if (NiceAttachment(ThirdPersonActor) != none)
NiceAttachment(ThirdPersonActor).SetLaserType(LaserType); NiceAttachment(ThirdPersonActor).SetLaserType(LaserType);
if(!Instigator.IsLocallyControlled()) // Instigator accessed none fix
if (Instigator == none || !Instigator.IsLocallyControlled())
return; return;
if(bLaserActive){ if (bLaserActive)
{
if (LaserDot == none) if (LaserDot == none)
LaserDot = Spawn(LaserDotClass, self); LaserDot = Spawn(LaserDotClass, self);
LaserDot.SetLaserType(LaserType); LaserDot.SetLaserType(LaserType);
if(altLaserAttachmentBone != ''){ if (altLaserAttachmentBone != '')
{
if (altLaserDot == none) if (altLaserDot == none)
altLaserDot = Spawn(LaserDotClass, self); altLaserDot = Spawn(LaserDotClass, self);
altLaserDot.SetLaserType(LaserType); altLaserDot.SetLaserType(LaserType);
} }
// spawn 1-st person laser attachment for weapon owner // spawn 1-st person laser attachment for weapon owner
if(LaserAttachment == none){ if (LaserAttachment == none)
{
SetBoneRotation(LaserAttachmentBone, LaserAttachmentRotation); SetBoneRotation(LaserAttachmentBone, LaserAttachmentRotation);
LaserAttachment = Spawn(LaserAttachmentClass,,,,); LaserAttachment = Spawn(LaserAttachmentClass,,,,);
AttachToBone(LaserAttachment, LaserAttachmentBone);
if (LaserAttachment != none) if (LaserAttachment != none)
{
AttachToBone(LaserAttachment, LaserAttachmentBone);
LaserAttachment.SetRelativeLocation(LaserAttachmentOffset); LaserAttachment.SetRelativeLocation(LaserAttachmentOffset);
} }
if(altLaserAttachment == none && altLaserAttachmentBone != ''){ }
else
LaserAttachment.bHidden = false;
if (altLaserAttachment == none && altLaserAttachmentBone != '')
{
SetBoneRotation(altLaserAttachmentBone, altLaserAttachmentRotation); SetBoneRotation(altLaserAttachmentBone, altLaserAttachmentRotation);
altLaserAttachment = Spawn(LaserAttachmentClass,,,,); altLaserAttachment = Spawn(LaserAttachmentClass,,,,);
AttachToBone(altLaserAttachment, altLaserAttachmentBone);
if (altLaserAttachment != none) if (altLaserAttachment != none)
{
AttachToBone(altLaserAttachment, altLaserAttachmentBone);
altLaserAttachment.SetRelativeLocation(altLaserAttachmentOffset); altLaserAttachment.SetRelativeLocation(altLaserAttachmentOffset);
} }
ConstantColor'ScrnTex.Laser.LaserColor'.Color = LaserDot.GetLaserColor();
LaserAttachment.bHidden = false;
altLaserAttachment.bHidden = false;
} }
else{ else
altLaserAttachment.bHidden = false;
ConstantColor'ScrnTex.Laser.LaserColor'.Color = LaserDot.GetLaserColor();
}
else
{
if (LaserAttachment != none) if (LaserAttachment != none)
LaserAttachment.bHidden = true; LaserAttachment.bHidden = true;
if (altLaserAttachment != none) if (altLaserAttachment != none)
@ -1380,6 +1396,7 @@ simulated function ApplyLaserState(){
altLaserDot.Destroy(); altLaserDot.Destroy();
} }
} }
simulated function ToggleLaser(){ simulated function ToggleLaser(){
if(!Instigator.IsLocallyControlled()) if(!Instigator.IsLocallyControlled())
return; return;