public void tempQueueMove() { var moveMessage = new MoveRequestMessage(); // moveMessage.movement = new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3); client.Send(CustomNetMsg.MoveRequest, moveMessage); }
public void QueueMove(int direction) { BasePlayer player = GamePlayManagerAR.instance.localPlayer; VRAR_Tile tile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.GetCurrentVec().x, player.GetCurrentVec().y, VRAR_Level.getCounterTile(direction)); if (tile == null || !tile.walkable) { return; } var moveMessage = new MoveRequestMessage(); moveMessage.direction = direction; client.Send(CustomNetMsg.MoveRequest, moveMessage); }
public void Update() { networkJobHandle.Complete(); for (int i = 0; i < connections.Length; ++i) { if (!connections[i].IsCreated) { connections.RemoveAtSwapBack(i); --i; } } NetworkConnection c; while (!serverManager.game.started && serverManager.lobby.players.Count < ServerManager.maxPlayers && (c = networkDriver.Accept()) != default) { connections.Add(c); Debug.Log("Accepted connection"); serverManager.HandleNewConnection(c.InternalId); } DataStreamReader reader; for (int i = 0; i < connections.Length; ++i) { if (!connections[i].IsCreated) { continue; } NetworkEvent.Type cmd; while ((cmd = networkDriver.PopEventForConnection(connections[i], out reader)) != NetworkEvent.Type.Empty) { if (cmd == NetworkEvent.Type.Data) { var messageType = (Message.MessageType)reader.ReadUShort(); Debug.Log("Host Received: " + messageType + " from " + connections[i].InternalId); Message message = null; switch (messageType) { case Message.MessageType.None: break; //stay alive case Message.MessageType.SetName: message = new SetNameMessage(); break; case Message.MessageType.MoveRequest: message = new MoveRequestMessage(); break; case Message.MessageType.AttackRequest: message = new AttackRequestMessage(); break; case Message.MessageType.DefendRequest: message = new DefendRequestMessage(); break; case Message.MessageType.ClaimTreasureRequest: message = new ClaimTreasureRequestMessage(); break; case Message.MessageType.LeaveDungeonRequest: message = new LeaveDungeonRequestMessage(); break; default: break; } if (message != null) { message.DeserializeObject(ref reader); receivedMessagesQueue.Enqueue(new AdressedMessage(message, connections[i].InternalId)); } } else if (cmd == NetworkEvent.Type.Disconnect) { Debug.Log("Client disconnected"); serverManager.HandleDisconnect(connections[i].InternalId); connections[i] = default; } } } ProcessMessagesQueue(); //order slightly wrong but will be sent next cycle foreach (KeyValuePair <int, float> lastSendTime in lastSendTimes) { if (Time.time - lastSendTime.Value > STAY_ALIVE_AFTER_SECONDS) { QeueMessage(new AdressedMessage(new NoneMessage(), lastSendTime.Key)); } } networkJobHandle = networkDriver.ScheduleUpdate(); }