Beispiel #1
0
 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);
 }