예제 #1
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            GameObject player = HasActionObjectManager.Instance.playerManager.getObjById(aoId);

            //做动作的时候,可能还没有真正实例化出来
            if (player == null)
            {
                return;
            }

            GameObjectController controller = player.GetComponent <GameObjectController>();

//			if(!controller.IsRead)return;
            player.transform.localRotation = Quaternion.AngleAxis(yRotate, Vector3.up);
            controller.Move(direction);
            if (isJump)
            {
                controller.Jump();
            }
            else
            {
                controller.StopJump();
            }
            controller.DoAction(actionId);
        }
예제 #2
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     if (needRefresh)
     {
         if (info.type == EntityType.MONSTER)
         {
             MonsterInfo monsterInfo = new MonsterInfo();
             monsterInfo.aoId      = info.aoId;
             monsterInfo.monsterId = info.entityId;
             monsterInfo.position  = info.position;
             monsterInfo.isNetObj  = true;
             HasActionObjectManager.Instance.monsterManager.InitMonster(monsterInfo);
         }
         else if (info.type == EntityType.NPC)
         {
             NPCInfo npcInfo = new NPCInfo();
             npcInfo.aoId     = info.aoId;
             npcInfo.NPCId    = info.entityId;
             npcInfo.position = info.position;
             npcInfo.isNetObj = true;
             HasActionObjectManager.Instance.npcManager.InitNPC(npcInfo);
         }
         else if (info.type == EntityType.PLANT)
         {
             HasActionObjectManager.Instance.plantManager.buildPlant(info.position, (DecorationType)info.entityId, info.aoId);
         }
     }
 }
예제 #3
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            GameObject monster = HasActionObjectManager.Instance.monsterManager.getObjById(aoId);

            //做动作的时候,可能还没有真正实例化出来
            if (monster == null)
            {
                return;
            }
            monster.transform.localRotation = Quaternion.AngleAxis(yRotate, Vector3.up);
            GameObjectController controller = monster.GetComponent <GameObjectController>();

            if (controller.baseAttribute.isNetObj)
            {
                controller.Move(direction);
                if (isJump)
                {
                    controller.Jump();
                }
                else
                {
                    controller.StopJump();
                }
                controller.DoAction(actionId);
            }
        }
예제 #4
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            NetChunkData netChunkData = new NetChunkData(roleId, pos);

            netChunkData.data.data         = chunkByteData;
            netChunkData.data.compressType = (MTBCompressType)compressType;
            EventManager.SendEvent(NetEventMacro.ON_NET_SAVE_CHUNK, netChunkData);
        }
예제 #5
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            Chunk chunk = World.world.GetChunk(pos.x, pos.y, pos.z);

            if (chunk != null)
            {
                chunk.UpdateSign(sign);
            }
        }
예제 #6
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            NetChunkData data = new NetChunkData(NetManager.Instance.client.roleId, pos);

            data.isExist       = false;
            data.hasChangeData = true;
            data.changedData   = new ClientChangedChunkData(sign, changedBlocks);
            EventManager.SendEvent(NetEventMacro.ON_NET_POPULATION_GENERATE, data);
        }
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            NetChunkData data = new NetChunkData(roleId, pos);

            data.isExist           = isExit;
            data.data.compressType = (MTBCompressType)compressType;
            data.data.data         = chunkByteData;
            data.hasChangeData     = hasChangedData;
            data.changedData       = changedData;
            EventManager.SendEvent(NetEventMacro.ON_NET_CHUNK_GENERATOR_RETURN, data);
        }
예제 #8
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            PlayerInfo info = new PlayerInfo();

            info.playerId = playerId;
            info.aoId     = aoId;
            info.position = birthPlace;
            info.isMe     = true;
            Debug.Log("收到世界配置为:" + worldConfigName);
            EventManager.SendEvent(NetEventMacro.ON_JION_GAME, info, worldConfigName, seed, time);
        }
예제 #9
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     if (list == null)
     {
         return;
     }
     for (int i = 0; i < list.Count; i++)
     {
         list[i].isNetObj = true;
         HasActionObjectManager.Instance.playerManager.InitPlayer(list[i]);
     }
 }
예제 #10
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            PlayerInfo info = new PlayerInfo();

            info.playerId = playerId;
            info.aoId     = aoId;
            info.position = birthPlace;
            info.isMe     = false;
            info.isNetObj = true;
            UnityEngine.Debug.Log("玩家roleId:" + aoId + "进入视野!");
            HasActionObjectManager.Instance.playerManager.InitPlayer(info);
        }
예제 #11
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            PlayerManager manager = HasActionObjectManager.Instance.playerManager;
            GameObject    player  = manager.getObjById(aoId);

            if (player == null)
            {
                return;
            }
            if (Vector3.Distance(player.transform.position, position) > 2)
            {
//				Debug.Log("位置出现误差!修正中..." + player.transform.position.ToString() + "->" + position.ToString());
                player.transform.position = position;
            }
        }
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     if (type == EntityType.MONSTER)
     {
         HasActionObjectManager.Instance.monsterManager.removeObj(aoId);
     }
     else if (type == EntityType.NPC)
     {
         HasActionObjectManager.Instance.npcManager.removeObj(aoId);
     }
     else if (type == EntityType.PLANT)
     {
         HasActionObjectManager.Instance.plantManager.removePlant(aoId);
     }
     UnityEngine.Debug.Log("实体aoId:" + aoId + "离开视野!");
 }
예제 #13
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            MonsterManager manager = HasActionObjectManager.Instance.monsterManager;
            GameObject     monster = manager.getObjById(aoId);

            if (monster == null)
            {
                return;
            }
            if (monster.GetComponent <GameObjectController>().baseAttribute.isNetObj)
            {
                if (Vector3.Distance(monster.transform.position, position) > 2)
                {
                    monster.transform.position = position;
                }
            }
        }
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            if (type == EntityType.MONSTER)
            {
                HasActionObjectManager.Instance.monsterManager.ChangeObjNet(aoId, false);
//				GameObject obj = HasActionObjectManager.Instance.monsterManager.getObjById(aoId);
//				GOMonsterController controller = obj.GetComponent<GOMonsterController>();
//				controller.ChangeNetObj(false);
            }
            else if (type == EntityType.NPC)
            {
//				HasActionObjectManager.Instance.npcManager.getObjById(aoId);
            }
            else if (type == EntityType.PLANT)
            {
//				HasActionObjectManager.Instance.plantManager.removePlant(aoId);
            }
            UnityEngine.Debug.Log("实体aoId:" + aoId + "的所属改变!");
        }
예제 #15
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     UnityEngine.Debug.Log("玩家roleId:" + aoId + "离开视野!");
     HasActionObjectManager.Instance.playerManager.removeObj(aoId);
 }
예제 #16
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     //World.world.WorldGenerator.RefreshChunk(area);
     EventManager.SendEvent(NetEventMacro.ON_NET_AREA_UPDATE, area);
     UnityEngine.Debug.Log("收到更改Area" + area.chunkList.Count + " pos:" + area.chunkList[0].chunk.worldPos.x + "," + area.chunkList[0].chunk.worldPos.y + "," + area.chunkList[0].chunk.worldPos.z);
 }
예제 #17
0
 public virtual void ClientDo(ServerConnectionWorker connectionWork)
 {
 }
예제 #18
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     EventManager.SendEvent(NetEventMacro.ON_LINK_SERVER);
     UnityEngine.Debug.Log("收到服务器:" + this.ip + ":" + this.port + "的信息,连接请求成功!");
 }
예제 #19
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     EventManager.SendEvent(NetEventMacro.ON_RESPONSE_REMOVE_CHUNK_EXT_DATA, pos, needSave, entities);
 }
예제 #20
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            NetChunkData data = new NetChunkData(roleId, pos);

            EventManager.SendEvent(NetEventMacro.ON_NET_CHUNK_GENERATOR, data);
        }
예제 #21
0
 public override void ClientDo(ServerConnectionWorker connectionWork)
 {
     DayNightTime.Instance.UpdateTime(time);
 }
예제 #22
0
        public override void ClientDo(ServerConnectionWorker connectionWork)
        {
            Chunk chunk = World.world.GetChunk(pos.x, pos.y, pos.z);

            chunk.UpdateClientChangedBlock(changedBlock, true);
        }