protected void AddEffectWarningMessage(EffectWarningMessage message) { if (message.caster == null) { return; } this.ClearWarningMessage(); this.MarkWarningMessageByEffect(message.caster, message.effectID, message.basePoint); }
protected void ServerTriggerEffect(int effectID, int skillID) { Effect effect = DataReader <Effect> .Get(effectID); if (effect == null) { return; } SkillManager.effectPoolID++; EffectMaterial effectMaterial = (!this.effectMessageCache.ContainsKey(effectID)) ? null : this.effectMessageCache.get_Item(effectID); EffectMessage effectMessage = new EffectMessage(); effectMessage.caster = this.owner; effectMessage.casterActor = this.ownerActor; effectMessage.skillData = DataReader <Skill> .Get(skillID); effectMessage.effectData = effect; if (effect.type2 == 4 || effect.type2 == 3) { effectMessage.basePoint = this.GetEffectBasePoint((EffectBasePointType)effect.@base, (float)effect.tremble, (effectMaterial != null) ? effectMaterial.skillTargetID : 0L, effect.summonId, effect.coord, effect.orientation); } else { effectMessage.basePoint = ((effectMaterial != null) ? effectMaterial.basePoint : null); } effectMessage.UID = SkillManager.effectPoolID; effectMessage.isClientHandle = (effectMaterial == null || effectMaterial.isClientHandle); if (effect.aiEffectMove == 1 && effectMessage.basePoint != null) { EffectWarningMessage effectWarningMessage = new EffectWarningMessage(); effectWarningMessage.caster = this.owner; effectWarningMessage.effectID = effectID; effectWarningMessage.basePoint = effectMessage.basePoint.ApplyOffset(effect.offset); EventDispatcher.Broadcast <EffectWarningMessage>(WarningManagerEvent.AddEffectWarningMessage, effectWarningMessage); } ClientEffectHandler.Instance.TriggerEffect(effect.delay, effectMessage); if (effectMessage.basePoint != null && effect.fx != 0) { CommandCenter.ExecuteCommand(this.ownerActor.FixTransform, new BulletFXCmd { fxID = effect.fx, point = effectMessage.basePoint, scale = DataReader <AvatarModel> .Get(this.ownerActor.GetEntity().FixModelID).scale }); } }