public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed described = warParam.described; if (described.srcEnd != null && described.srcEnd.param1 > 0) { //转发消息 ServerNPC tag = npcMgr.TagNpc("Trigger"); switch (described.act) { case Verb.LineEnemy: warParam.cmdType = WarMsg_Type.LineEnemy; //创建一个触发器 warMgr.triMgr.CreateTrigger(described.src, described.srcEnd.param1, null); npcMgr.SendMessageAsync(tag.UniqueID, tag.UniqueID, msg); break; } } } }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { //转发消息 ServerNPC tag = npcMgr.TagNpc("Trigger"); SelfDescribed described = warParam.described; if (described.srcEnd != null) { warParam.cmdType = WarMsg_Type.CounterAttack; npcMgr.SendMessageAsync(tag.UniqueID, tag.UniqueID, warParam); } } }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { //TODO : do something WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed described = warParam.described; if (described.srcEnd != null) { //转发消息 ServerNPC tag = npcMgr.TagNpc("Trigger"); warParam.cmdType = WarMsg_Type.RmBufIfKilling; npcMgr.SendMessageAsync(tag.UniqueID, tag.UniqueID, warParam); } } }
//发送给Trigger的数据 void toTriggerMsg(ServerNPC caster, ServerNPC sufferer, WarServerNpcMgr npcMgr) { ServerNPC tri = npcMgr.TagNpc("Trigger"); NPCData sfData = sufferer.data; NPCRuntimeData sfRt = sfData.rtData; if (sfRt.curHp > 0) { /// TODO: add OnAttack,在释放出添加, 不在这里 /// TODO: add BeAttack SelfDescribed des = new SelfDescribed() { srcEnd = new EndResult() { param1 = caster.UniqueID, param2 = sufferer.UniqueID, }, targetEnd = null, }; WarAnimParam param = new WarAnimParam() { cmdType = WarMsg_Type.BeAttacked, described = des, }; npcMgr.SendMessageAsync(sufferer.UniqueID, tri.UniqueID, param); } if (sfRt.curHp <= 0) { /// TODO: add OnKilled SelfDescribed des = new SelfDescribed() { srcEnd = new EndResult() { param1 = caster.UniqueID, param2 = sufferer.UniqueID, }, targetEnd = null, }; WarAnimParam param = new WarAnimParam() { cmdType = WarMsg_Type.OnKilled, described = des, }; npcMgr.SendMessageAsync(sufferer.UniqueID, tri.UniqueID, param); /// TODO: add BeKilled SelfDescribed des2 = new SelfDescribed() { srcEnd = new EndResult() { param1 = caster.UniqueID, param2 = sufferer.UniqueID, }, targetEnd = null, }; WarAnimParam param2 = new WarAnimParam() { cmdType = WarMsg_Type.BeKilled, described = des2, }; npcMgr.SendMessageAsync(sufferer.UniqueID, tri.UniqueID, param2); } }