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