//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); }
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); } }
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); } }
/// <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; } } }
//npc位移消息 public void NPCMove(IpcNpcMoveMsg msg) { publisher.send(msg); }