Exemplo n.º 1
0
        //npc位移消息
        public void NPCMove(IpcNpcMoveMsg msg)
        {
            //ConsoleEx.DebugLog(war.Side.ToString() + " Sub Received : NPCMove.", ConsoleEx.YELLOW);
            WarMsgParam param = new WarMsgParam();

            param.Sender   = msg.uniqueId;
            param.Receiver = msg.uniqueId;
            param.cmdType  = WarMsg_Type.Move;
            param.param    = msg;
            WarClientManager.Instance.npcMgr.SendMessageAsync(msg.uniqueId, msg.uniqueId, param);
        }
Exemplo n.º 2
0
        public void SendNpcMoveMsg(bool forceMove = false)
        {
            if (data != null && data.configData.moveable == Moveable.Movable)
            {
                if (moveMsg == null)
                {
                    moveMsg = new IpcNpcMoveMsg();
                }

                moveMsg.uniqueId  = UniqueID;
                moveMsg.pos       = VectorWrap.ToVector(mTrans.position);
                moveMsg.rotation  = QuaternionWrap.ToLpcQuaternion(mTrans.rotation);
                moveMsg.forceMove = forceMove;
                WarServerManager.Instance.realServer.proxyCli.NPCMove(moveMsg);
            }
        }
Exemplo n.º 3
0
        private void NpcMove(WarMsgParam param)
        {
            IpcNpcMoveMsg msg = param.param as IpcNpcMoveMsg;

            if (msg.forceMove)
            {
                tran.position = VectorWrap.ToVector3(msg.pos);
                tran.rotation = QuaternionWrap.ToQuaternion(msg.rotation);
                nextPos       = tran.position;
                nextRotate    = tran.rotation;
            }
            else
            {
                IsStartMove = true;
                movable     = true;
                nextPos     = VectorWrap.ToVector3(msg.pos);
                nextRotate  = QuaternionWrap.ToQuaternion(msg.rotation);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 所有消息的处理地方
        /// </summary>
        /// <param name="msg">Message.</param>
        void HandleIpcMsg(IpcMsg msg)
        {
            if (msg != null)
            {
                switch (msg.op)
                {
                case OP.CtorMap:
                    IpcCreateMapMsg ctor = msg as IpcCreateMapMsg;
                    MapInfo         amap = new MapInfo()
                    {
                        ID   = ctor.MapId,
                        type = (ConfigType)Enum.ToObject(typeof(ConfigType), ctor.MapType),
                    };
                    CtorEnv(amap);
                    break;

                case OP.CtorNpc:
                    IpcCreateNpcMsg ctorNpc = msg as IpcCreateNpcMsg;
                    CtorNpc(ctorNpc);
                    break;

                case OP.CtorHero:
                    IpcCreateHeroMsg crtHero = msg as IpcCreateHeroMsg;
                    CtorHero(crtHero);
                    break;

                case OP.NpcMove:
                    IpcNpcMoveMsg moveMsg = msg as IpcNpcMoveMsg;
                    NPCMove(moveMsg);
                    break;

                case OP.NpcHp:
                    IpcNpcHpMsg hpMsg = msg as IpcNpcHpMsg;
                    NPChp(hpMsg);
                    break;

                case OP.NpcAnim:
                    IpcNpcAnimMsg animMsg = msg as IpcNpcAnimMsg;
                    NPCAnim(animMsg);
                    break;

                case OP.NpcStatus:
                    IpcNpcStatusMsg statusMsg = msg as IpcNpcStatusMsg;
                    NPCStatus(statusMsg);
                    break;

                case OP.ServerReady:
                    IpcServerReadyMsg SerInfo = msg as IpcServerReadyMsg;
                    ServerInfo        server  = new ServerInfo(SerInfo);
                    ServerReady(server);
                    break;

                case OP.AsyncClient:
                    IpcSyncClientMsg Sync = msg as IpcSyncClientMsg;
                    SyncClient(Sync);
                    break;

                case OP.EnterWar:
                    IpcEnterWar enter   = msg as IpcEnterWar;
                    ServerInfo  aserver = new ServerInfo()
                    {
                        ServerName = enter.ServerName,
                        ServerID   = enter.ServerID,
                    };
                    MapInfo map = new MapInfo()
                    {
                        ID   = enter.MapId,
                        type = (ConfigType)Enum.ToObject(typeof(ConfigType), enter.MapType),
                    };
                    EnterWar(aserver, map);
                    break;

                case OP.ServerQuit:
                    IpcServerQuitMsg quit = msg as IpcServerQuitMsg;
                    ServerQuit(quit.ServerID);
                    break;

                case OP.DestroyNpc:
                    IpcDestroyNpcMsg des = msg as IpcDestroyNpcMsg;
                    NpcDestroy(des);
                    break;

                case OP.SkillCD:
                    IpcSkillMsg skMsg = msg as IpcSkillMsg;
                    NpcSkillCD(skMsg);
                    break;
                }
            }
        }
Exemplo n.º 5
0
 //npc位移消息
 public void NPCMove(IpcNpcMoveMsg msg)
 {
     publisher.send(msg);
 }