public void SpawnMobs() { Log.Debug("Star spawning mobs"); Random rand = new Random(); for (int i = 0; i < 10; i++) { Vector3Net position = new Vector3Net(rand.Next(SpawnOnMapX_Min, SpawnOnMapX_Max), SpawnOnMapY, rand.Next(SpawnOnMapZ_Min, SpawnOnMapZ_Max), Vector3Net.RotationNet.Zero); // Vector3Net position = new Vector3Net(20, MapY, 20, Vector3Net.RotationNet.Zero); foreach (OccupiedTerritory territory in OccupiedTerritory.OccupiedTerrotpryes) { if (!territory.IsContain(position)) { Mob.Mob mob = new Mob.Mob(position, rand.Next(1, 4), Mobs.Count + 1); Mobs.Add(Mobs.Count + 1, mob); Log.Debug("Mob: " + Mobs.Count + " | created on | " + mob.Position.X + " : " + mob.Position.Z); } else { position = new Vector3Net(rand.Next(SpawnOnMapX_Min, SpawnOnMapX_Max), SpawnOnMapY, rand.Next(SpawnOnMapZ_Min, SpawnOnMapZ_Max), Vector3Net.RotationNet.Zero); //position = new Vector3Net(20, MapY, 20, Vector3Net.RotationNet.Zero); } } } }
private void PlayerMoveHandler(OperationRequest operationRequest, SendParameters sendParameters) { Operations.PlayerMove playerMoveRequest = new Operations.PlayerMove(Protocol, operationRequest); if (!playerMoveRequest.IsValid) { SendOperationResponse(playerMoveRequest.GetResponse(ErrorCode.InvaildParameters), sendParameters); return; } Position = new Vector3Net(playerMoveRequest.X, playerMoveRequest.Y, playerMoveRequest.Z, new Vector3Net.RotationNet(playerMoveRequest.RotX, playerMoveRequest.RotY, playerMoveRequest.RotZ, playerMoveRequest.RotW)); EventData eventData = new EventData((byte)EventCode.PlayerMove); eventData.Parameters = new Dictionary <byte, object> { { (byte)ParameterCode.PlayerPosX, Position.X }, { (byte)ParameterCode.PlayerPosY, Position.Y }, { (byte)ParameterCode.PlayerPosZ, Position.Z }, { (byte)ParameterCode.PlayerRotX, Position.Rotation.X }, { (byte)ParameterCode.PlayerRotY, Position.Rotation.Y }, { (byte)ParameterCode.PlayerRotZ, Position.Rotation.Z }, { (byte)ParameterCode.PlayerRotW, Position.Rotation.W }, { (byte)ParameterCode.PlayerID, PlayerID } }; eventData.SendTo(World.Instance.GetClientsList(PlayerID), sendParameters); //Log.Info("Player " + PlayerName + " move | x:" + Position.X + " y:" + Position.Y + " z:" + Position.Z); }
public Mob(Vector3Net position, int type, int mobID) { Position = position; Type = type; MobID = mobID; StartCoins = 0; Coins = 100; Dead = false; }
public override bool IsContain(Vector3Net position) { if ((position.X > Point1.X && position.X < Point2.X) && (position.Z > Point1.Z && position.Z < Point3.Z)) { return(true); } else { return(false); } }
public UnityClient(InitRequest initRequest) : base(initRequest) { Position = new Vector3Net(22, 1, 22, new Vector3Net.RotationNet(0, 0, 0, 0)); PlayerName = ""; PlayerID = 0; }
protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters) { switch (operationRequest.OperationCode) { case (byte)OperationCode.Login: var loginRequest = new Login(Protocol, operationRequest); if (!loginRequest.IsValid) { SendOperationResponse(loginRequest.GetResponse(ErrorCode.InvalidParameters), sendParameters); return; } CharacterName = loginRequest.CharacterName; if (World.Instance.IsContain(CharacterName)) { SendOperationResponse(loginRequest.GetResponse(ErrorCode.NameIsExist), sendParameters); return; } World.Instance.AddClient(this); var response = new OperationResponse(operationRequest.OperationCode); SendOperationResponse(response, sendParameters); Log.Info("user with name:" + CharacterName); Log.Info("user id:" + ConnectionId); break; case (byte)OperationCode.SendChatMessage: { var chatRequest = new ChatMessage(Protocol, operationRequest); if (!chatRequest.IsValid) { SendOperationResponse(chatRequest.GetResponse(ErrorCode.InvalidParameters), sendParameters); return; } string message = chatRequest.Message; string[] param = message.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (param.Length == 2) { string targetName = param[0]; message = param[1]; if (World.Instance.IsContain(targetName)) { var targetClient = World.Instance.TryGetByName(targetName); if (targetClient == null) { return; } message = CharacterName + "[PM]:" + message; var personalEventData = new EventData((byte)EventCode.ChatMessage); personalEventData.Parameters = new Dictionary <byte, object> { { (byte)ParameterCode.ChatMessage, message } }; personalEventData.SendTo(new UnityClient[] { this, targetClient }, sendParameters); } return; } message = CharacterName + ": " + message; Chat.Instance.AddMessage(message); var eventData = new EventData((byte)EventCode.ChatMessage); eventData.Parameters = new Dictionary <byte, object> { { (byte)ParameterCode.ChatMessage, message } }; eventData.SendTo(World.Instance.Clients, sendParameters); } break; case (byte)OperationCode.GetRecentChatMessages: { var messages = Chat.Instance.GetRecentMessages(); messages.Reverse(); if (messages.Count == 0) { break; } var message = messages.Aggregate((i, j) => i + "\r\n" + j); var eventData = new EventData((byte)EventCode.ChatMessage); eventData.Parameters = new Dictionary <byte, object> { { (byte)ParameterCode.ChatMessage, message } }; eventData.SendTo(new UnityClient[] { this }, sendParameters); } break; case (byte)OperationCode.Move: { var moveRequest = new Move(Protocol, operationRequest); if (!moveRequest.IsValid) { SendOperationResponse(moveRequest.GetResponse(ErrorCode.InvalidParameters), sendParameters); return; } Position = new Vector3Net(moveRequest.X, moveRequest.Y, moveRequest.Z); var eventData = new EventData((byte)EventCode.Move); eventData.Parameters = new Dictionary <byte, object> { { (byte)ParameterCode.PosX, Position.X }, { (byte)ParameterCode.PosY, Position.Y }, { (byte)ParameterCode.PosZ, Position.Z }, { (byte)ParameterCode.CharacterName, CharacterName } }; eventData.SendTo(World.Instance.Clients, sendParameters); } break; case (byte)OperationCode.WorldEnter: { var eventData = new EventData((byte)EventCode.WorldEnter); eventData.Parameters = new Dictionary <byte, object> { { (byte)ParameterCode.PosX, Position.X }, { (byte)ParameterCode.PosY, Position.Y }, { (byte)ParameterCode.PosZ, Position.Z }, { (byte)ParameterCode.CharacterName, CharacterName } }; eventData.SendTo(World.Instance.Clients, sendParameters); Log.Info("Operation WorldEnter:" + CharacterName); } break; case (byte)OperationCode.WorldExit: WorldExitHandler(sendParameters); Log.Info("Operation WorldExit:" + CharacterName); break; case (byte)OperationCode.ListPlayers: { ListPlayersHandler(sendParameters); } break; default: Log.Debug("Unknown OperationRequest received!:" + operationRequest.OperationCode); break; } }
public UnityClient(IRpcProtocol protocol, IPhotonPeer unmanagedPeer) : base(protocol, unmanagedPeer) { Log.Debug("Client ip:" + unmanagedPeer.GetRemoteIP()); Position = new Vector3Net(0, 0, 0); }
public OccuipedShape(Vector3Net point1, Vector3Net point2, Vector3Net point3) { Point1 = point1; Point2 = point2; Point3 = point3; }
public abstract bool IsContain(Vector3Net position);