Example #1
0
        private void OnRecvUpdateAura(MessageReceivedEvent e)
        {
            S2C_UpdateAura ret  = MarshalConversion.PtrToStruct <S2C_UpdateAura>(e.MessagePtr);
            AuraInstance   aura = null;

            if (ret.UnitId == GameEngine.EngineInstance.LocalPlayer.CharacterID)
            {
                if (GameEngine.EngineInstance.LocalPlayer.Auras.TryGetValue(ret.Slot, out aura))
                {
                    aura.UpdateData(ret.StackCount, ret.RemainTime, ret.MaxDuration);
                    GameEngine.EngineInstance.LocalPlayer.OnAuraDataChanged(new AuraChangeEventArgs(aura));
                }
            }
            else
            {
                RemoteCharacterController rcc = GameEngine.EngineInstance.FindCharacterController(ret.UnitId);
                if (rcc != null)
                {
                    if (rcc.Auras.TryGetValue(ret.Slot, out aura))
                    {
                        aura.UpdateData(ret.StackCount, ret.RemainTime, ret.MaxDuration);
                        rcc.OnAuraDataChanged(new AuraChangeEventArgs(aura));
                    }
                }
                else
                {
                    NLogger.Instance.WriteString(LogType.Warning, string.Format("S2C_UpdateAura can not find controller UintID=[{0}]", ret.UnitId));
                }
            }
        }
Example #2
0
 public AuraChangeEventArgs(AuraInstance aura)
 {
     this.Aura = aura;
 }