Пример #1
0
        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;
                    }
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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);
                }
            }
        }
Пример #4
0
        //发送给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);
            }
        }