APP魔法顺序笔记
以冰咆哮为例:
首先是客户端:
1、TfrmMain.ProcessKeyMessages 里面
1.1、nMagID := GetMagIDByKey(nKey); 根据按键取得魔法ID
1.2、调用UseMagic()函数来制造这个魔法
2、在UseMagic() 函数里面
2.1、判断MP是否足够
2.2、判断要生成魔法的坐标位置等信息
2.3、g_MySelf.SendMsg()发送CM_SPELL信息
3、在TActor.ReadyAction里面拦截到CM_SPELL信息
3.1、将信息的索引 msg.Ident改为 SM_SPELL 注意这里收到这个信息包后并没有删除UseMagic!就在同一个函数中 执行到下面的 SM_SPELL 会继续处理这个信息包
3.3、 运行到 SM_SPELL段 取得UseMagic里面的内容 将它放入 m_CurMagic 然后删除掉这个UseMagic
4、在THumActor.CalcActorFrame
此刻才到引擎:
1、再然后引擎搜索周围的玩家 除了自己外 都发送 SM_SPELL给对方 因为自己已经执行过动画