public void NotifyNetMessageReceived(MessageReceivedEvent e) { if (e.messageId == (UInt16)NetSpell.SC_AddAura) { OnRecvAddAura(e); } else if (e.messageId == (UInt16)NetSpell.SC_RemoveAura) { OnRecvRemoveAura(e); } else if (e.messageId == (UInt16)NetSpell.SC_UpdateAura) { OnRecvUpdateAura(e); } else if (e.messageId == (UInt16)NetSpell.SC_CastSpellResult) { S2C_CastSpellResult ret = MarshalConversion.PtrToStruct <S2C_CastSpellResult>(e.MessagePtr); GameEngine.EngineInstance.LocalPlayer.OnCastSpellResult(ret); } else if (e.messageId == (UInt16)NetSpell.SC_SpellPrepare) { // 技能准备(吟唱, 无吟唱不会受到该消息)开始或更新 OnRecvSpellPrepare(e); } else if (e.messageId == (UInt16)NetSpell.SC_SpellCasting) { // 技能释放(瞬发, 引导或引导更新) OnRecvSpellCasting(e); } else if (e.messageId == (UInt16)NetSpell.SC_SpellFailed) { // 技能准备或释放过程中打断等 OnRecvSpellFailed(e); } else if (e.messageId == (UInt16)NetSpell.SC_SpellHit) { // 技能命中信息(需要广播) OnRecvSpellHit(e); } }
/// <summary> /// 释放技能结果 /// </summary> internal void OnCastSpellResult(S2C_CastSpellResult ret) { BuildSpellErrorCode(ret.SpellId, (SpellCastResult)ret.Result); }