Esempio n. 1
0
        public void ApplyLevelBuff_AuthorityHandler(ConfigAbilityAction actionConfig, ActorAbility instancedAbility, ActorModifier instancedModifier, BaseAbilityActor target, BaseEvent evt, ref RecordInvokeEntryContext context)
        {
            LevelBuffSide  overrideCurSide;
            ApplyLevelBuff config    = (ApplyLevelBuff)actionConfig;
            float          duration  = base._Internal_CalculateApplyLevelBuffDuration(config, instancedAbility, evt);
            uint           runtimeID = instancedAbility.caster.runtimeID;

            if (config.UseOverrideCurSide)
            {
                overrideCurSide = config.OverrideCurSide;
            }
            else
            {
                overrideCurSide = base.CalculateLevelBuffSide(instancedAbility.caster.runtimeID);
            }
            MPSendPacketContainer pc = Singleton <MPManager> .Instance.CreateSendPacket <Packet_Level_RequestLevelBuff>();

            Packet_Level_RequestLevelBuff.StartPacket_Level_RequestLevelBuff(pc.builder);
            Packet_Level_RequestLevelBuff.AddLevelBuffType(pc.builder, (byte)config.LevelBuff);
            Packet_Level_RequestLevelBuff.AddEnteringSlow(pc.builder, config.EnteringTimeSlow);
            Packet_Level_RequestLevelBuff.AddAllowRefresh(pc.builder, config.LevelBuffAllowRefresh);
            Packet_Level_RequestLevelBuff.AddSide(pc.builder, (byte)overrideCurSide);
            Packet_Level_RequestLevelBuff.AddOwnerRuntimeID(pc.builder, runtimeID);
            Packet_Level_RequestLevelBuff.AddNotStartEffect(pc.builder, config.NotStartEffect);
            Packet_Level_RequestLevelBuff.AddDuration(pc.builder, duration);
            Packet_Level_RequestLevelBuff.AddInstancedAbilityID(pc.builder, (byte)instancedAbility.instancedAbilityID);
            Packet_Level_RequestLevelBuff.AddActionLocalID(pc.builder, (byte)config.localID);
            pc.Finish <Packet_Level_RequestLevelBuff>(Packet_Level_RequestLevelBuff.EndPacket_Level_RequestLevelBuff(pc.builder));
            Singleton <MPManager> .Instance.SendReliableToPeer(0x21800001, 1, pc);

            Singleton <MPLevelManager> .Instance.levelActor.GetPlugin <MPLevelAbilityHelperPlugin>().AttachPendingModifiersToNextLevelBuff(config, base._owner.runtimeID, instancedAbility.instancedAbilityID, (target != null) ? target.runtimeID : 0);
        }
Esempio n. 2
0
        private void OnAuthorityLevelBuff_Request(MPRecvPacketContainer pc)
        {
            Packet_Level_RequestLevelBuff buff = pc.As <Packet_Level_RequestLevelBuff>();

            this._mpLevelActor.MPRequestStartLevelBuff((LevelBuffType)buff.LevelBuffType, (LevelBuffSide)buff.Side, buff.OwnerRuntimeID, buff.AllowRefresh, buff.EnteringSlow, buff.NotStartEffect, buff.Duration, buff.InstancedAbilityID, buff.ActionLocalID);
        }