Inheritance: MonoBehaviour
コード例 #1
0
ファイル: TeamSelectUI.cs プロジェクト: Burzok/GodlyCubes
 void Start()
 {
     networking = GetComponent<Networking>();
     skillSelectUI = GetComponent<SkillSelectUI>();
     menuUI = GetComponent<MenuUI>();
     clientGameUI = GetComponent<ClientGameUI>();
 }
コード例 #2
0
        /// <summary>
        /// New Player - Create Player.
        /// </summary>
        /// <param name="ID">ID of the player.</param>
        /// <param name="Network">Network for the player.</param>
        /// <param name="Package">Package.</param>
        public Player(int ID, Networking Network, Package Package)
        {
            this.ID = ID;
            this.Network = Network;

            Thread.Add(new ThreadStart(ThreadStartPinging));

            Update(Package, false);

            Core.PlayerCollection.Add(this);
            Core.PlayerCollection.SentToPlayer(new Package(Package.PackageTypes.ID, ID.ToString(), Package.TcpClient));

            Core.PlayerCollection.SendToAllPlayer(new Package(Package.PackageTypes.CreatePlayer, ID.ToString(), null));
            Core.PlayerCollection.SendToAllPlayer(new Package(Package.PackageTypes.GameData, ID, GenerateGameData(true), null));

            Thread.Add(new ThreadStart(ThreadUpdateWorld));

            for (int i = 0; i < Core.PlayerCollection.Count; i++)
            {
                if (Core.PlayerCollection[i].ID != ID)
                {
                    Core.PlayerCollection.SentToPlayer(new Package(Package.PackageTypes.CreatePlayer, Core.PlayerCollection[i].ID.ToString(), Package.TcpClient));
                    Core.PlayerCollection.SentToPlayer(new Package(Package.PackageTypes.GameData, Core.PlayerCollection[i].ID, Core.PlayerCollection[i].GenerateGameData(true), Package.TcpClient));
                }
            }

            if (Core.Setting.Server.WelcomeMessage != null)
                Core.PlayerCollection.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Core.Setting.Server.WelcomeMessage, Package.TcpClient));
        }
コード例 #3
0
ファイル: IXPRequest.cs プロジェクト: Silveryard/SmartHome
 public IXPRequest(Networking.Client client, IXPFile request, Action<string> responseDelegate)
 {
     _request = request;
     _responseDelegate = responseDelegate;
     _client = client;
     Thread thread = new Thread(new ThreadStart(Work));
     thread.Start();
 }
コード例 #4
0
ファイル: CommandsTests.cs プロジェクト: royhu/CheatConsole
        protected override string ExecuteNetworking(string[] InArguments, Networking.IMessage InMessage)
        {
            var Message = (SetPlayerAttrMessage)InMessage;
            Message.AttrType = (int)(PlayerAttrType)StringToEnum(InArguments[0], typeof(PlayerAttrType));
            Message.Value = SmartConvert<int>(InArguments[1]);

            return Done;
        }
コード例 #5
0
ファイル: Form3.cs プロジェクト: RubisetCie/box2c
 void client_ConnectionStateChanged(Networking.ConnectionState state)
 {
     if (state == Networking.ConnectionState.Timeout)
     {
         MessageBox.Show("Couldn't connect to server");
         timer.Stop();
     }
 }
コード例 #6
0
        public override void ReceiveCommand(Networking.Commands.GameObjectCommand command)
        {
            PlayerBrain.PlayerBrainUpdateParams parms = (PlayerBrain.PlayerBrainUpdateParams)command.Parameters;

            Owner.InputMovementVector = parms.InputMovementVector;
            Owner.Position = parms.Position;
            Owner.RotationTowardFacingDirectionRadians = parms.RotationTowardFacingDirectionRadians;
            Owner.CurrentState = parms.CurrentState;
        }
コード例 #7
0
ファイル: PunchingBag.cs プロジェクト: Nidre/MogaMecha
    //public void OnCollisionEnter(Collision collision)
    //{
    //    isDouble = (Time.realtimeSinceStartup - lastShot < doubleInterval);
    //    if (!isDouble && Time.realtimeSinceStartup - lastShot < interval) return;
    //    LeapBoxingObject leapObj = collision.gameObject.GetComponent<LeapBoxingObject>();

    //    if (leapObj)
    //    {
    //        //Debug.Log("mang : " + leapObj.maxVelocity.magnitude);
    //        //Debug.Log("velo : " + leapObj.maxVelocity);
    //        //Debug.Log("norm : " + leapObj.maxVelocity.normalized);
    //        //Debug.Log("dir : " + (collision.transform.position - transform.position));
    //        //if (leapObj.maxVelocity.z > 0) return;
    //        //Debug.Log(leapObj.maxVelocity.magnitude);
    //        Vector3 initPos = (Vector3.up * 2) +  (Camera.main.transform.forward * 5);
    //        mentosCopy = Instantiate(mentos, collision.gameObject.transform.position, Quaternion.identity) as GameObject;
    //        mentosCopy.transform.position += initPos;
    //        mentosCopy.rigidbody.AddForce(Camera.main.transform.forward * force);
    //        if (isDouble)
    //        {
    //            mentosCopy = Instantiate(mentos, collision.gameObject.transform.position, Quaternion.identity) as GameObject;
    //            mentosCopy.transform.position += (Camera.main.transform.right * 3) + initPos;
    //            mentosCopy.rigidbody.AddForce(Camera.main.transform.forward * force);
    //            mentosCopy = Instantiate(mentos, collision.gameObject.transform.position, Quaternion.identity) as GameObject;
    //            mentosCopy.transform.position += -(Camera.main.transform.right * 3) + initPos;
    //            mentosCopy.rigidbody.AddForce(Camera.main.transform.forward * force);
    //        }
    //        lastShot = Time.realtimeSinceStartup;
    //    }
    //}

    void Start()
    {
        LeapHandController hc = GameObject.Find("Leap Controller Multiple/_leapController").GetComponent<LeapHandController>();
        ind1 = GameObject.Find("OVRCameraController/CameraLeft/h1Ind").renderer;
        ind2 = GameObject.Find("OVRCameraController/CameraRight/h2Ind").renderer;
        nt = GameObject.Find("Networking").GetComponent<Networking>();
        h1 = hc.unityHands[0];
        h2 = hc.unityHands[1];
        _mechaController = GameObject.Find("Mecha").GetComponent<UpdateMechaRotation>();

        interval = _mechaController.animation.GetClip("Left Shot").length;
    }
コード例 #8
0
ファイル: Main.cs プロジェクト: doubleyou/u3d-experiments
    // Use this for initialization
    void Start()
    {
        net = new Networking();

        int loading = 1;
        while (loading == 1) {
            net.Receive();
            loading = Serializer.Unserialize(net.recbuf);
        //			loading = UpdateWorldFromServer(net.recbuf);
        }

        net.EnterReceiveLoop();
    }
コード例 #9
0
ファイル: Nicovideo.cs プロジェクト: kakkou/OpenTween
        public override Task <ThumbnailInfo> GetThumbnailInfoAsync(string url, PostClass post, CancellationToken token)
        {
            return(Task.Run(() =>
            {
                var match = Nicovideo.UrlPatternRegex.Match(url);
                if (!match.Success)
                {
                    return null;
                }

                var apiUrl = "http://www.nicovideo.jp/api/getthumbinfo/" + match.Groups["id"].Value;

                var http = new HttpVarious();
                var src = "";
                var imgurl = "";
                string errmsg;
                if (http.GetData(apiUrl, null, out src, 0, out errmsg, Networking.GetUserAgentString()))
                {
                    var sb = new StringBuilder();
                    var xdoc = new XmlDocument();
                    try
                    {
                        xdoc.LoadXml(src);
                        var status = xdoc.SelectSingleNode("/nicovideo_thumb_response").Attributes["status"].Value;
                        if (status == "ok")
                        {
                            imgurl = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/thumbnail_url").InnerText;

                            //ツールチップに動画情報をセットする
                            string tmp;

                            try
                            {
                                tmp = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/title").InnerText;
                                if (!string.IsNullOrEmpty(tmp))
                                {
                                    sb.Append(Properties.Resources.NiconicoInfoText1);
                                    sb.Append(tmp);
                                    sb.AppendLine();
                                }
                            }
                            catch (Exception)
                            {
                            }

                            try
                            {
                                tmp = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/length").InnerText;
                                if (!string.IsNullOrEmpty(tmp))
                                {
                                    sb.Append(Properties.Resources.NiconicoInfoText2);
                                    sb.Append(tmp);
                                    sb.AppendLine();
                                }
                            }
                            catch (Exception)
                            {
                            }

                            try
                            {
                                var tm = new DateTime();
                                tmp = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/first_retrieve").InnerText;
                                if (DateTime.TryParse(tmp, out tm))
                                {
                                    sb.Append(Properties.Resources.NiconicoInfoText3);
                                    sb.Append(tm.ToString());
                                    sb.AppendLine();
                                }
                            }
                            catch (Exception)
                            {
                            }

                            try
                            {
                                tmp = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/view_counter").InnerText;
                                if (!string.IsNullOrEmpty(tmp))
                                {
                                    sb.Append(Properties.Resources.NiconicoInfoText4);
                                    sb.Append(tmp);
                                    sb.AppendLine();
                                }
                            }
                            catch (Exception)
                            {
                            }

                            try
                            {
                                tmp = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/comment_num").InnerText;
                                if (!string.IsNullOrEmpty(tmp))
                                {
                                    sb.Append(Properties.Resources.NiconicoInfoText5);
                                    sb.Append(tmp);
                                    sb.AppendLine();
                                }
                            }
                            catch (Exception)
                            {
                            }
                            try
                            {
                                tmp = xdoc.SelectSingleNode("/nicovideo_thumb_response/thumb/mylist_counter").InnerText;
                                if (!string.IsNullOrEmpty(tmp))
                                {
                                    sb.Append(Properties.Resources.NiconicoInfoText6);
                                    sb.Append(tmp);
                                    sb.AppendLine();
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        else if (status == "fail")
                        {
                            var errcode = xdoc.SelectSingleNode("/nicovideo_thumb_response/error/code").InnerText;
                            errmsg = errcode;
                            imgurl = "";
                        }
                        else
                        {
                            errmsg = "UnknownResponse";
                            imgurl = "";
                        }
                    }
                    catch (Exception)
                    {
                        imgurl = "";
                        errmsg = "Invalid XML";
                    }

                    if (!string.IsNullOrEmpty(imgurl))
                    {
                        return new ThumbnailInfo
                        {
                            ImageUrl = url,
                            ThumbnailUrl = imgurl,
                            TooltipText = sb.ToString().Trim()
                        };
                    }
                }

                return null;
            }, token));
        }
コード例 #10
0
ファイル: ServerItem.cs プロジェクト: Scarso327/ProjectTTT
        public void RefreshData(RoomInfo roomInfo)
        {
            this.gameObject.SetActive(true);
            PlayerNameText.text = roomInfo.Name;

            string passworded = roomInfo.CustomProperties["P"].ToString();

            if (passworded == "1")
            {
                Locked.SetActive(true);
                Unlocked.SetActive(false);
            }
            else
            {
                Locked.SetActive(false);
                Unlocked.SetActive(true);
            }

            SlotText.text = roomInfo.PlayerCount + "/" + roomInfo.MaxPlayers;

            string currentMap = roomInfo.CustomProperties["M"].ToString();

            MapText.text = currentMap;

            string currentStatus = roomInfo.CustomProperties["S"].ToString();

            switch (currentStatus)
            {
            case "0":
                StatusText.text = "Creating";
                break;

            case "1":
                StatusText.text = "Prepearing";
                break;

            case "2":
                StatusText.text = "Playing";
                break;

            case "3":
                StatusText.text = "Ending";
                break;

            default:
                StatusText.enabled = false;
                break;
            }

            Button b = this.gameObject.GetComponent <Button>();

            if (b == null)
            {
                Debug.LogError(b + " does not have a button script!");
            }
            else
            {
                b.onClick.AddListener(
                    delegate {
                    string password = roomInfo.CustomProperties["PW"].ToString();

                    if (passworded == "1")
                    {
                        // Setup the ask password stuff.
                        GameObject networkObject = GameObject.FindGameObjectWithTag("NetworkObject");

                        if (networkObject != null)
                        {
                            // Tell our networking script to remember these as we need them later.
                            Networking networkScript = networkObject.GetComponent <Networking>();
                            networkScript.password   = password;
                            networkScript.roomName   = roomInfo.Name;

                            // Enable the input for the password.
                            GameObject scriptObject = GameObject.FindGameObjectWithTag("ScriptObject");
                            MenuSetup createUI      = (MenuSetup)scriptObject.GetComponent(typeof(MenuSetup));

                            createUI.PasswordMaster.SetActive(true);
                        }
                        else
                        {
                            Debug.LogError("Network Object is missing. (Called by ServerItem: " + b + ")");
                        }
                    }
                    else
                    {
                        PhotonNetwork.JoinRoom(roomInfo.Name);
                    }
                }
                    );
            }
        }
コード例 #11
0
        /// <summary>
        ///     Receives messages from server and handles them
        /// </summary>
        /// <param name="state"></param>
        private void ReceiveUpdatesLoop(SocketState state)
        {
            if (state.ErrorOccured)
            {
                // inform the view
                Error?.Invoke(state.ErrorMessage, "Error In Event Loop");
                Disconnect();
                return;
            }

            string incomingMessages = state.GetData();

            string[] data = Regex.Split(incomingMessages, @"(?<=[\n])");

            foreach (string message in data.Where(message => message.Length != 0))
            {
                //Last Step of handshake if message is the id
                if (int.TryParse(message, out int i))
                {
                    IDReceive?.Invoke(i);
                    continue;
                }

                // The regex splitter will include the last string even if it doesn't end with a '\n',
                // So we need to ignore it if this happens.
                if (message.Last() != '\n' || message[0] != '{')
                {
                    continue;
                }

                Console.WriteLine("Received:" + message);

                //Parse message as json object
                var x = JObject.Parse(message);
                switch (x["messageType"]?.ToString())
                {
                case "cellUpdated":
                {
                    if (EditCell is null)
                    {
                        continue;
                    }
                    var updated = JsonConvert.DeserializeObject <CellUpdated>(message);
                    EditCell.Invoke(updated);
                    break;
                }

                case "cellSelected":
                {
                    if (SelectCell is null)
                    {
                        continue;
                    }
                    var selected = JsonConvert.DeserializeObject <CellSelected>(message);
                    SelectCell.Invoke(selected);
                    break;
                }

                case "serverError":
                {
                    if (ServerShutdown is null)
                    {
                        continue;
                    }
                    var error = JsonConvert.DeserializeObject <ServerShutdownError>(message);
                    ServerShutdown.Invoke(error);
                    break;
                }

                case "requestError":
                {
                    if (RequestError is null)
                    {
                        continue;
                    }
                    var error = JsonConvert.DeserializeObject <RequestError>(message);
                    RequestError.Invoke(error);
                    break;
                }

                case "disconnected":
                {
                    var d = JsonConvert.DeserializeObject <Disconnected>(message);
                    ClientDisconnected?.Invoke(d);
                    break;
                }
                }

                state.RemoveData(0, message.Length);
            }

            Networking.GetData(state);
        }
コード例 #12
0
ファイル: RenderBase.cs プロジェクト: rickbatka/co-op-engine
 internal void ReceiveCommand(Networking.Commands.GameObjectCommand command)
 {
     throw new NotImplementedException("THIS DOES NOTHING YET");
 }
コード例 #13
0
 public override void OnPlayerLeft(VRCPlayerApi player)
 {
     isOwner = Networking.IsOwner(gameObject);
 }
コード例 #14
0
ファイル: OnlineGame.cs プロジェクト: Kerzak1408/Hungry-Birds
 // Use this for initialization
 void Start()
 {
     networking = Networking.Instance;
     networking.SetupClient();
 }
コード例 #15
0
        /// <summary>
        /// A helper to decide which action to take, based on the message contents.
        /// </summary>
        /// <param name="message">example: focus A9:unique_1\3</param>
        private void ProcessNext(string message)
        {
            // Parse command/contents and switch on the command found
            string[] parse   = message.Split(' ');
            string   command = parse[0];

            string contents = "";

            if (parse.Length > 1)
            {
                contents = message.Substring(command.Length + 1);
            }

            switch (command)
            {
            // Error loading the file, prompt user to select a file again
            case "file_load_error":
                // Show an error dialog
                window.ShowErrorMessageBox("File Load Error, please try again.");

                // in combo box dialog, choose another spreadsheet
                string spreadsheet = ChooseSpreadsheetBox(sheetChoicesForUser);
                window.WindowText = spreadsheet;
                Networking.Send(theServer, "load " + spreadsheet + THREE);
                break;

            // Disconnect, ending the session
            case "disconnect":
                EndSession("SERVER_ERROR");
                break;

            case "ping":
                Networking.Send(theServer, "ping_response " + THREE);
                break;

            // A ping response arrived, so reset our ping timer
            case "ping_response":
                window.ResetTimeout();
                Debug.WriteLine("ping_response received");
                break;

            case "full_state":
                LoadSheet(contents);
                fullStateReceived = true;

                // do some startup
                Networking.Send(theServer, "focus " + window.CurrentCellText + THREE);
                Networking.Send(theServer, "ping " + THREE);
                Debug.WriteLine("first ping sent");
                window.StartPinging();
                break;

            case "change":
                ApplyChange(contents);
                break;

            case "focus":

                // contents example: A9:unique_1d
                string[] parsed = contents.Split(':');
                if (parsed.Length != 2)
                {
                    return;                         // discard
                }
                // keep track of other client's selected cell
                if (!clientCells.ContainsKey(parsed[1]))
                {
                    clientCells.Add(parsed[1], parsed[0]);
                }
                else
                {
                    clientCells[parsed[1]] = parsed[0];
                }

                FocusCell(parsed[0]);
                break;

            case "unfocus":

                string clientID = contents;
                if (clientCells.ContainsKey(clientID))
                {
                    UnfocusCell(clientCells[clientID]);
                }
                break;
            }
        }
コード例 #16
0
 //public string PacketType;
 //PacketType = Enum.GetName(typeof(LibClassicBot.Networking.ServerPackets), opcode);
 /// <summary>
 /// PacketEventArg containg the opcode / PacketID of a packet. To get the actual byte, use (byte)e.OpCode.
 /// </summary>
 /// <param name="opcode">The ServerPackets representation of the packet ID.</param>
 internal PacketEventArgs(Networking.ServerPackets opcode)
 {
     OpCode = opcode;
 }
コード例 #17
0
 private void Connection_Received(object sender, Networking.ConnectionEventArgs e)
 {
     var player = new Player(e.Connection.RemoteUniqueIdentifier);
     player.Connection = e.Connection;
     this.AddPlayer(player, e.Connection.RemoteUniqueIdentifier);
 }
コード例 #18
0
ファイル: Lobby.xaml.cs プロジェクト: kellyelton/octgnwlobby
        void LClient_eUserEvent(Networking.LobbyClient.User user, bool Connected)
        {
            System.Threading.Thread thread = new System.Threading.Thread
            (
                new System.Threading.ThreadStart
                (
                    delegate()
                    {
                        rtbChat.Dispatcher.Invoke
                        (
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action
                            (
                                delegate()
                                {
                                    if (rtbChat == null)
                                        return;
                                    if (Connected)
                                    {
                                        if (!user.Username.Equals(""))
                                            rtbChat.AppendText("[" + user.Username + "]: Joined the lobby.\n");
                                    }
                                    else
                                    {
                                        if (!user.Username.Equals(""))
                                            rtbChat.AppendText("[" + user.Username + "]: Left the lobby.\n");
                                    }
                                    UpdateColors();
                                    Update_Online_Users();
                                }
                            )
                        );
                    }
                )
            );

            thread.Start();
        }
コード例 #19
0
 void Start()
 {
     anim = animation;
     nt = GameObject.Find("Networking").GetComponent<Networking>();
     ao = transform.FindChild("ShotSound").audio;
     startupSound = transform.FindChild("StartupSound").audio;
     _spawner = GameObject.Find("Spawner").GetComponent<Spawner>();
     _score = transform.FindChild("Score").GetComponent<TextMesh>();
 }
コード例 #20
0
ファイル: Form3.cs プロジェクト: RubisetCie/box2c
        void server_ReceiveTCPData(byte packetType, Networking.BinaryWrapper reader, Networking.Player player)
        {
            if (packetType == Networking.ServerPacketTypeBase.ConnectionAck)
            {
                server.AcceptPlayer(player);
            }
            else if (packetType == MyClientPackets.ServerChat)
            {
                var chat = Networking.StringWriter.Read(reader);
                foreach (var p in server.Players)
                {
                    // if p == player continue?
                    p.Tcp.BatchStream.Write(MyClientPackets.ClientChat);
                    p.Tcp.BatchStream.Write(player.Index);
                    Networking.StringWriter.Write(chat, p.Tcp.BatchStream);
                    p.Tcp.BatchStream.Write(Networking.PacketTypeBase.EndOfMessage);
                }
            }

            textBox2.Text += "(DEBUG: Server: Received TCP "+packetType.ToString()+")"+Environment.NewLine;
        }
コード例 #21
0
ファイル: Form3.cs プロジェクト: RubisetCie/box2c
 void Udp_PacketReceived(byte packetType, Networking.BinaryWrapper reader, System.Net.IPEndPoint endPoint)
 {
     textBox2.Text += "(DEBUG: Client: Received UDP "+packetType.ToString()+")"+Environment.NewLine;
 }
コード例 #22
0
 public override void OnOwnershipTransferred()
 {
     behaviour.SetProgramVariable(playerObjectName, Networking.GetOwner(gameObject));
     behaviour.SendCustomEvent(eventName);
 }
コード例 #23
0
        /// <summary>
        /// Send an unfocus and focus message to the server.
        /// </summary>
        /// <param name="sender"></param>
        private void SendFocusToServer()
        {
            Networking.Send(theServer, "unfocus " + THREE);

            Networking.Send(theServer, "focus " + window.CurrentCellText + THREE);
        }
コード例 #24
0
ファイル: PAlarm.cs プロジェクト: Silveryard/SmartHome
 public void NetworkRegisterToAlarmService(Networking.ServerInstance instance, string function)
 {
     AlarmService.RegisterClient(instance, function);
 }
コード例 #25
0
 /// <summary>
 /// This method is called when the host server button is clicked
 /// </summary>
 public void StartServer()
 {
     // Create a host connection
     socket = Networking.Host((ushort)port, protocolType, playerCount, IsWinRT);
     Go();
 }
コード例 #26
0
ファイル: PAlarm.cs プロジェクト: Silveryard/SmartHome
 public void NetworkUnregisterFromAlarmService(Networking.ServerInstance instance)
 {
     AlarmService.UnregisterClient(instance);
 }
コード例 #27
0
    void Update()
    {
        if (CrossPlatformInputManager.GetButtonDown("FreeGame"))
        {
            Main.mode = Mode.FreeGame;
            Main.bot  = false;

            Application.LoadLevel(1);
        }

        if (CrossPlatformInputManager.GetButtonDown("Bot"))
        {
            Main.mode = Mode.FreeGame;
            Main.bot  = true;

            Application.LoadLevel(1);
        }

        if (CrossPlatformInputManager.GetButtonDown("Casual"))
        {
            Main.mode = Mode.Casual;

            Application.LoadLevel(1);
        }

        if (CrossPlatformInputManager.GetButtonDown("Host"))
        {
            ResetAll();

            hostPanel.SetActive(true);

            hostPort.text = "27015";
            hostIp.text   = Networking.GetLocalIPAddress();
        }

        if (CrossPlatformInputManager.GetButtonDown("Join"))
        {
            ResetAll();

            joinPanel.SetActive(true);

            joinPort.text = "27015";
            joinIp.text   = "127.0.0.1";
        }

        if (CrossPlatformInputManager.GetButtonDown("Host-Host"))
        {
            Main.mode = Mode.Host;

            Main.port = int.Parse(hostPort.text);
            Main.ip   = hostIp.text;

            Application.LoadLevel(1);
        }

        if (CrossPlatformInputManager.GetButtonDown("Join-Join"))
        {
            Main.mode = Mode.Join;

            Main.port = int.Parse(joinPort.text);
            Main.ip   = joinIp.text;

            Application.LoadLevel(1);
        }
    }
コード例 #28
0
 void Awake()
 {
     instance = this;
 }
コード例 #29
0
        public static void ProduceFactories()
        {
            foreach (var data in Core.GlobalData.Buildings)
            {
                if (data.UpgStart == 0 && data.ProdStart == 0)
                {
                    var def = Definitions.BuildingDef.Items.Item.First(n => n.DefId == data.DefId);
                    if (def.Type != "factory")
                    {
                        continue;
                    }

                    var needed = def.Levels.Level.FirstOrDefault(n => n.Id == data.Level);
                    if (needed == null)
                    {
                        continue;
                    }

                    if (data.DefId == 11)
                    {
                        // This is a machinery
                        if (Core.Config.autothresholdworkshop)
                        {
                            // Mechanical part
                            if (Core.GlobalData.GetAmountItem(33) < Core.Config.thresholdmechanical)
                            {
                                var prodid = 1;
                                var enough = true;
                                var mat    = needed.ProdOutputs.ProdOutput.Where(n => n.Id == 1).FirstOrDefault();
                                if (mat == null)
                                {
                                    continue;
                                }

                                foreach (var prod in mat.Inputs.Input)
                                {
                                    if (Core.GlobalData.GetAmountItem(prod.Id) < prod.Amount)
                                    {
                                        enough = false;
                                    }
                                }

                                if (enough)
                                {
                                    foreach (var inp in mat.Inputs.Input)
                                    {
                                        Core.GlobalData.Inventory.First(n => n.Id == inp.Id).Amount -= inp.Amount;
                                    }

                                    Logger.Info(
                                        string.Format(
                                            Localization.FACTORIES_STARTED_PROD,
                                            MaterialDB.GetLocalizedName(mat.MaterialId)));
                                    Networking.AddTask(new Task.StartBuildingProducingTask(data.InstId, prodid));
                                    data.ProdStart = TimeUtils.GetEpochTime();

                                    continue;
                                }

                                // This will work
                            }

                            // Fuel
                            if (Core.GlobalData.GetAmountItem(180) < Core.Config.thresholdfuel)
                            {
                                var prodid = 2;
                                var enough = true;
                                var mat    = needed.ProdOutputs.ProdOutput.Where(n => n.Id == prodid).FirstOrDefault();
                                if (mat == null)
                                {
                                    continue;
                                }

                                foreach (var prod in mat.Inputs.Input)
                                {
                                    if (Core.GlobalData.GetAmountItem(prod.Id) < prod.Amount)
                                    {
                                        enough = false;
                                    }
                                }

                                if (enough)
                                {
                                    foreach (var inp in mat.Inputs.Input)
                                    {
                                        Core.GlobalData.Inventory.First(n => n.Id == inp.Id).Amount -= inp.Amount;
                                    }

                                    Logger.Info(
                                        string.Format(
                                            Localization.FACTORIES_STARTED_PROD,
                                            MaterialDB.GetLocalizedName(mat.MaterialId)));
                                    Networking.AddTask(new Task.StartBuildingProducingTask(data.InstId, prodid));
                                    data.ProdStart = TimeUtils.GetEpochTime();
                                    continue;
                                }
                            }

                            // todo CHECK FOR LEVEL!!!
                            // Concrete
                            if (data.Level >= 5)
                            {
                                if (Core.GlobalData.GetAmountItem(182) < Core.Config.thresholdconcrete)
                                {
                                    var prodid = 3;

                                    var enough = true;
                                    var mat    = needed.ProdOutputs.ProdOutput.Where(n => n.Id == prodid).FirstOrDefault();
                                    if (mat == null)
                                    {
                                        continue;
                                    }

                                    foreach (var prod in mat.Inputs.Input)
                                    {
                                        if (Core.GlobalData.GetAmountItem(prod.Id) < prod.Amount)
                                        {
                                            enough = false;
                                        }
                                    }

                                    if (enough)
                                    {
                                        foreach (var inp in mat.Inputs.Input)
                                        {
                                            Core.GlobalData.Inventory.First(n => n.Id == inp.Id).Amount -= inp.Amount;
                                        }

                                        Logger.Info(
                                            string.Format(
                                                Localization.FACTORIES_STARTED_PROD,
                                                MaterialDB.GetLocalizedName(mat.MaterialId)));
                                        Networking.AddTask(new Task.StartBuildingProducingTask(data.InstId, prodid));
                                        data.ProdStart = TimeUtils.GetEpochTime();
                                    }
                                }
                            }
                        }
                        else
                        {
                            var prodid        = 0;
                            var matid         = 0;
                            var thresholdconc = 0;
                            switch (Core.Config.workshoptype)
                            {
                            case WorkshopType.Concrete:
                            {
                                matid         = 182;
                                prodid        = 3;
                                thresholdconc = Core.Config.thresholdconcrete;
                            }

                            break;

                            case WorkshopType.Fuel:
                            {
                                matid         = 180;
                                prodid        = 2;
                                thresholdconc = Core.Config.thresholdfuel;
                            }

                            break;

                            case WorkshopType.MechanicalPart:
                            {
                                matid         = 33;
                                prodid        = 1;
                                thresholdconc = Core.Config.thresholdmechanical;
                                break;
                            }
                            }

                            if (prodid == 3 && data.Level < 5)
                            {
                                continue;
                            }

                            if (Core.GlobalData.GetAmountItem(matid) < thresholdconc || thresholdconc == 0)
                            {
                                var enough = true;
                                var mat    = needed.ProdOutputs.ProdOutput.Where(n => n.Id == prodid).FirstOrDefault();
                                if (mat == null)
                                {
                                    continue;
                                }

                                foreach (var prod in mat.Inputs.Input)
                                {
                                    if (Core.GlobalData.GetAmountItem(prod.Id) < prod.Amount)
                                    {
                                        enough = false;
                                    }
                                }

                                if (enough)
                                {
                                    foreach (var inp in mat.Inputs.Input)
                                    {
                                        Core.GlobalData.Inventory.First(n => n.Id == inp.Id).Amount -= inp.Amount;
                                    }

                                    Logger.Info(
                                        string.Format(
                                            Localization.FACTORIES_STARTED_PROD,
                                            MaterialDB.GetLocalizedName(mat.MaterialId)));
                                    Networking.AddTask(new Task.StartBuildingProducingTask(data.InstId, prodid));
                                    data.ProdStart = TimeUtils.GetEpochTime();
                                }
                            }
                        }

                        // Don't need another shit
                        continue;
                    }

                    // lets start?
                    // DO WE HAVE ENOUGH RESOURCES
                    var ok     = true;
                    var inputs = needed.ProdOutputs.ProdOutput;
                    var Dict   = new Dictionary <long, long>();
                    foreach (var input in inputs)
                    {
                        foreach (var inp in input.Inputs.Input)
                        {
                            var ourmat = Core.GlobalData.Inventory.FirstOrDefault(n => n.Id == inp.Id);
                            if (ourmat == null)
                            {
                                ok = false;
                            }
                            else
                            {
                                if (ourmat.Amount >= inp.Amount)
                                {
                                    if (Dict.ContainsKey(inp.Id))
                                    {
                                        Dict[inp.Id] += inp.Amount;
                                    }
                                    else
                                    {
                                        Dict.Add(inp.Id, inp.Amount);
                                    }
                                }
                                else
                                {
                                    ok = false;
                                }
                            }
                        }

                        if (MaterialDB.GetItem(input.MaterialId).Name == "wood")
                        {
                            var amount = Core.GlobalData.Inventory.FirstOrDefault(n => n.Id == input.MaterialId);
                            if (amount != null && Core.Config.woodlimit != 0)
                            {
                                if (amount.Amount > Core.Config.woodlimit)
                                {
                                    ok = false;
                                }
                            }
                        }

                        if (MaterialDB.GetItem(input.MaterialId).Name == "iron")
                        {
                            var amount = Core.GlobalData.Inventory.FirstOrDefault(n => n.Id == input.MaterialId);
                            if (amount != null && Core.Config.ironlimit != 0)
                            {
                                if (amount.Amount > Core.Config.ironlimit)
                                {
                                    ok = false;
                                }
                            }
                        }

                        if (MaterialDB.GetItem(input.MaterialId).Name == "stone")
                        {
                            var amount = Core.GlobalData.Inventory.FirstOrDefault(n => n.Id == input.MaterialId);
                            if (amount != null && Core.Config.stonelimit != 0)
                            {
                                if (amount.Amount > Core.Config.stonelimit)
                                {
                                    ok = false;
                                }
                            }
                        }
                    }

                    if (ok)
                    {
                        foreach (var inp in Dict)
                        {
                            Core.GlobalData.Inventory.First(n => n.Id == inp.Key).Amount -= (int)inp.Value;
                        }

                        Logger.Info(
                            string.Format(
                                Localization.FACTORIES_STARTED_PROD,
                                MaterialDB.GetLocalizedName(needed.ProdOutputs.ProdOutput[0].MaterialId)));
                        Networking.AddTask(new Task.StartBuildingProducingTask(data.InstId, data.ProdId));
                        data.ProdStart = TimeUtils.GetEpochTime();
                    }
                }
            }
        }
コード例 #30
0
 void Start()
 {
     instance = this;
 }
コード例 #31
0
ファイル: Form3.cs プロジェクト: RubisetCie/box2c
        void Tcp_PacketReceived(byte packetType, Networking.BinaryWrapper reader, System.Net.IPEndPoint endPoint)
        {
            textBox2.Text += "(DEBUG: Client: Received TCP "+packetType.ToString()+")"+Environment.NewLine;

            if (packetType == Networking.ClientPacketTypeBase.ConnectionAck)
            {
                client.Tcp.NetStreamBinary.Write(Networking.PacketTypeBase.EndOfMessage);
            }
            else if (packetType == MyClientPackets.ClientChat)
            {
                var player = client.Players[reader.ReadInt()];
                textBox2.Text += player.Name+": " + Networking.StringWriter.Read(reader)+Environment.NewLine;
            }
            else if (packetType == Networking.ClientPacketTypeBase.PlayerData)
            {
                foreach (var p in client.Players)
                {
                    if (listBox1.Items.Count <= p.Index)
                        listBox1.Items.Add("");

                    if (!p.Active)
                        listBox1.Items[p.Index] = "(Disconnected)";
                    else
                        listBox1.Items[p.Index] = p.Name;
                }
            }
        }
コード例 #32
0
ファイル: GCMUnity.cs プロジェクト: Ozelotl/Portfolio
 void Start()
 {
     networking = GetComponent<Networking>();
 }
コード例 #33
0
 /// <summary>
 ///     Connects client to server with username and begins Handshake with the server
 /// </summary>
 /// <param name="name">Username</param>
 /// <param name="serverIP">Ip to connect to</param>
 public void Connect(string name, string serverIP)
 {
     _username = name;
     Networking.ConnectToServer(OnConnect, serverIP, Port);
 }
コード例 #34
0
ファイル: Networking.cs プロジェクト: karlnp/picoBattle
 void Awake()
 {
     Instance = this;
 }
コード例 #35
0
 public void JoinRoom(string addr)
 {
     Networking.Connect(addr);
 }
コード例 #36
0
ファイル: ClientHandler.cs プロジェクト: santatamas/Steal-ME
 public void onMessage(Networking.Protocol.Message status, object o)
 {
     switch (status)
     {
         case Networking.Protocol.Message.IMEI:
             this.Tracker = TrackerLogic.GetTracker((string)o);
             if (this.IsAuthenticated())
             {
                 this.OnAuthenticated(new EventArgs());
                 SMLogger.LogThis("Client Authenticated.");
                 TrackerLogic.SetTrackerOnLine(this.Tracker);
                 this.StartMessagePolling();
             }
             break;
         case Networking.Protocol.Message.TcpLoc:
             this.InsertPosition((TcpLoc)o);
             break;
     }
 }
コード例 #37
0
 public void RetrievedAfterOwnerLeftWhileUsing()
 {
     EXUR_LastUsedTime = Networking.GetServerTimeInMilliseconds();
 }
コード例 #38
0
 public static void SendCustomNetworkEventHook(UdonBehaviour behaviour, NetworkEventTarget target, string eventName)
 {
     if (target == NetworkEventTarget.All || (target == NetworkEventTarget.Owner && Networking.IsOwner(behaviour.gameObject)))
     {
         Debug.Log("Sending Network Event! eventName:" + eventName + ", obj:" + VRC.Tools.GetGameObjectPath(behaviour.gameObject));
         behaviour.SendCustomEvent(eventName);
     }
     else
     {
         Debug.Log("Did not send custom network event " + eventName + " for object at " + VRC.Tools.GetGameObjectPath(behaviour.gameObject));
     }
 }
コード例 #39
0
ファイル: Autostart.cs プロジェクト: Morgasm/ironarmada
 private void LoadScene()
 {
     Networking.SetPrimarySocket(socket);
     Application.LoadLevel(sceneName);
 }
コード例 #40
0
ファイル: Spawner.cs プロジェクト: Nidre/MogaMecha
 void Start()
 {
     nt = GameObject.Find("Networking").GetComponent<Networking>();
     if (autoSpawn)
         InvokeRepeating("Spawn", 1, 7);
 }
コード例 #41
0
        private void Ping()
        {
            Networking.Send(theServer, "ping " + THREE);

            Debug.WriteLine("ping sent");
        }
コード例 #42
0
        /// <summary>
        /// This is the method recieve the world, serialize it and split it by next line, Deserializes the totalDat
        /// and sets projectiles,ships and stars.
        /// </summary>
        /// <param name="ss"></param>
        public void ReceiveWorld(SocketState ss)
        {
            string totalData = ss.sb.ToString();

            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.MissingMemberHandling = MissingMemberHandling.Error;
            //this method splits totalData by nextline.
            String[] parts = Regex.Split(totalData, @"(?<=[\n])");
            //looping through parts.
            foreach (string p in parts)
            {
                if (p.Length == 0)
                {
                    continue;
                }
                if (p[p.Length - 1] != '\n')
                {
                    break;
                }
                if (p[0] == '{' || p[p.Length - 2] == '}')
                {
                    //parsing the jason object and setting it to obj.
                    JObject obj = JObject.Parse(p);

                    //different tokens in Jason object.
                    JToken shipToken       = obj["ship"];
                    JToken projectileToken = obj["proj"];
                    JToken starToken       = obj["star"];

                    Ship       theship       = null;
                    Projectile theProjectile = null;
                    Star       thestar       = null;

                    if (shipToken != null)
                    {
                        //Deserialiing the ship object.
                        theship = JsonConvert.DeserializeObject <Ship>(p);
                    }
                    if (projectileToken != null)
                    {
                        //Deserializing the Projectile object.
                        theProjectile = JsonConvert.DeserializeObject <Projectile>(p);
                    }
                    if (starToken != null)
                    {
                        //Deserializing the star object.
                        thestar = JsonConvert.DeserializeObject <Star>(p);
                    }

                    lock (world)
                    {
                        if (theship != null)
                        {
                            //storing all ships in ship collecting in world class.
                            world.shipCollection[theship.getShipId()] = theship;
                        }
                        if (thestar != null)
                        {
                            //storing all star in star collecting in world class.
                            world.starCollection[thestar.getStarId()] = thestar;
                        }

                        if (theProjectile != null)
                        {
                            //removing only if the projectile is alive.
                            if (theProjectile.getProjectileAlive() == false)
                            {
                                //removing all projectiles in projectile collection from world class.
                                world.projectileCollection.Remove(theProjectile.getProjectileId());
                            }
                            else
                            { //storing all projectile in  projectilecollecting in world class.
                                world.projectileCollection[theProjectile.getProjectileId()] = theProjectile;
                            }
                        }
                    }
                }
                //Removing the socketstate.
                ss.sb.Remove(0, p.Length);
                Frametick();
            }
            keyevent();
            //calling the delegate call me to recieveworld.
            ss.callMe = ReceiveWorld;
            Networking.GetData(ss);
        }
コード例 #43
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Networking.Disconnect();
        }

        if (Shooting)         //Local bullet shooting!
        {
            _timespan -= Time.deltaTime;
            if (_timespan <= 0)
            {
                _timespan = RapidFire ? _firingRate * 0.5f : _firingRate;

                float lifespan = 5;
                Ray   gunRay   = new Ray(transform.position, transform.forward);
#if !BARE_METAL
                ForgeZombie hitZombie = null;
#endif
                RaycastHit[] gunHit;
#if UNITY_EDITOR
                Debug.DrawRay(transform.position, transform.forward * 100, Color.green);
#endif

                gunHit = Physics.RaycastAll(gunRay, 100);
                if (gunHit != null && gunHit.Length > 0)
                {
                    foreach (RaycastHit hit in gunHit)
                    {
                        if (hit.collider != null)
                        {
                            if (hit.collider.name.Contains("Zombie"))
                            {
#if !BARE_METAL
                                hitZombie = hit.collider.GetComponent <ForgeZombie>();
#endif
                                //We hit a zombie! woot!
                                float distance = Vector3.Distance(transform.position, hit.collider.transform.position);
                                lifespan = distance * 0.02f;
                                break;
                            }
                        }
                    }
                }

#if !BARE_METAL
                //Shoot the bullet!
                Transform bullet = Instantiate(Bullet, transform.position + (transform.forward * 1.2f), transform.rotation) as Transform;

                if (hitZombie != null)
                {
                    bullet.GetComponent <ForgeZombieBullet>().Setup(hitZombie, lifespan);
                }
#endif
            }
        }

        if (RapidFire)
        {
            RapidFireTimespan -= Time.deltaTime;
            if (RapidFireTimespan <= 0)
            {
                RapidFireTimespan = 3;
                RapidFire         = false;
            }
        }
    }
コード例 #44
0
 public GameController()
 {
     this.world = new World();
     Networking.registerNetwork(handleNetworkException);
 }
コード例 #45
0
 public void StartClient()
 {
     socket = Networking.Connect(host, (ushort)port, protocolType, IsWinRT);
     Go();
 }
        async void OnDoneClick(object sender, EventArgs e)
        {
            if (ContentView.IsAnyRequiredFieldEmpty)
            {
                ContentView.Banner.SetInformationText("Please fill our all required fields", true);
                return;
            }

            ContentView.CancelCrosshairMode();

            PointClient.MarkerSource.Clear();
            ContentView.Popup.Hide();
            ContentView.Banner.SetInformationText("Compressing image...", false);

            using (var stream = new MemoryStream())
            {
                Bitmap bitmap = ContentView.Content.CameraField.Photo;

                BucketResponse response1;
                string         filename;

                if (bitmap == null)
                {
                    // Photo is an optional field.
                    // Create a mock successful response,
                    // if the user hasn't taken a photo
                    response1      = new BucketResponse();
                    response1.Path = "";
                    filename       = "";
                }
                else
                {
                    bitmap.Compress(Bitmap.CompressFormat.Png, Quality, stream);

                    filename = ContentView.Content.CameraField.ImageName;

                    ContentView.Banner.ShowUploadingImage();

                    response1 = await BucketClient.Upload(filename, stream);
                }

                if (response1.IsOk)
                {
                    ContentView.Banner.ShowUploadingData();

                    Data          item      = GetData(response1.Path);
                    CartoResponse response2 = await Networking.Post(item);

                    if (response2.IsOk)
                    {
                        ContentView.Banner.Complete();
                    }
                    else
                    {
                        ContentView.Banner.ShowFailedCartoUpload();
                        SQLClient.Instance.Insert(item);
                    }
                }
                else
                {
                    ContentView.Banner.ShowFailedAmazonUpload();
                    Data item = GetData(filename);
                    SQLClient.Instance.Insert(item);
                }

                ContentView.Content.Clear();
                PointClient.QueryPoints(delegate { });
            }
        }
コード例 #47
0
ファイル: AdminAPI.cs プロジェクト: phatpenguin/YAMS
        public ProcessingResult Process(RequestContext context)
        {
            int      intServerID = 0;
            MCServer s;
            string   json;
            JObject  jProps;

            if (context.Request.Uri.AbsoluteUri.Contains(@"/api/"))
            {
                //must be authenticated

                //what is the action?
                if (context.Request.Method == Method.Post && WebSession.Current.UserName == "admin")
                {
                    String strResponse         = "";
                    IParameterCollection param = context.Request.Parameters;
                    switch (context.Request.Parameters["action"])
                    {
                    case "log":
                        //grabs lines from the log.
                        int    intStartID = Convert.ToInt32(context.Request.Parameters["start"]);
                        int    intNumRows = Convert.ToInt32(context.Request.Parameters["rows"]);
                        int    intServer  = Convert.ToInt32(context.Request.Parameters["serverid"]);
                        string strLevel   = context.Request.Parameters["level"];

                        DataSet ds = Database.ReturnLogRows(intStartID, intNumRows, strLevel, intServer);

                        strResponse = JsonConvert.SerializeObject(ds, Formatting.Indented);
                        break;

                    case "list":
                        //List available servers
                        strResponse = "{ \"servers\" : [";
                        foreach (KeyValuePair <int, MCServer> kvp in Core.Servers)
                        {
                            strResponse += "{ \"id\" : " + kvp.Value.ServerID + ", " +
                                           "\"title\" : \"" + kvp.Value.ServerTitle + "\", " +
                                           "\"ver\" : \"" + kvp.Value.ServerVersion + "\" } ,";
                        }
                        ;
                        strResponse  = strResponse.Remove(strResponse.Length - 1);
                        strResponse += "]}";
                        break;

                    case "status":
                        //Get status of a server
                        s           = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])];
                        strResponse = "{ \"serverid\" : " + s.ServerID + "," +
                                      "\"status\" : \"" + s.Running + "\"," +
                                      "\"ram\" : " + s.GetMemory() + "," +
                                      "\"vm\" : " + s.GetVMemory() + "," +
                                      "\"restartneeded\" : \"" + s.RestartNeeded + "\"," +
                                      "\"restartwhenfree\" : \"" + s.RestartWhenFree + "\"," +
                                      "\"gamemode\" : \"" + s.GameMode + "\"," +
                                      "\"players\" : [";
                        if (s.Players.Count > 0)
                        {
                            foreach (KeyValuePair <string, Objects.Player> kvp in s.Players)
                            {
                                Vector playerPos = kvp.Value.Position;
                                strResponse += " { \"name\": \"" + kvp.Value.Username + "\", " +
                                               "\"level\": \"" + kvp.Value.Level + "\", " +
                                               "\"x\": \"" + playerPos.x.ToString("0.##") + "\", " +
                                               "\"y\": \"" + playerPos.y.ToString("0.##") + "\", " +
                                               "\"z\": \"" + playerPos.z.ToString("0.##") + "\" },";
                            }
                            ;
                            strResponse = strResponse.Remove(strResponse.Length - 1);
                        }
                        strResponse += "]}";
                        break;

                    case "get-players":
                        DataSet dsPlayers = Database.GetPlayers(Convert.ToInt32(context.Request.Parameters["serverid"]));
                        JsonConvert.SerializeObject(dsPlayers, Formatting.Indented);
                        break;

                    case "overviewer":
                        //Maps a server
                        s = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])];
                        string strRenderModes = "";
                        if (param["normal"] == "true")
                        {
                            strRenderModes += "normal";
                        }
                        if (param["lighting"] == "true")
                        {
                            if (strRenderModes != "")
                            {
                                strRenderModes += ",";
                            }
                            strRenderModes += "lighting";
                        }
                        if (param["night"] == "true")
                        {
                            if (strRenderModes != "")
                            {
                                strRenderModes += ",";
                            }
                            strRenderModes += "night";
                        }
                        if (param["spawn"] == "true")
                        {
                            if (strRenderModes != "")
                            {
                                strRenderModes += ",";
                            }
                            strRenderModes += "spawn";
                        }
                        if (param["cave"] == "true")
                        {
                            if (strRenderModes != "")
                            {
                                strRenderModes += ",";
                            }
                            strRenderModes += "cave";
                        }
                        AddOns.Overviewer over = new AddOns.Overviewer(s, "rendermodes=" + strRenderModes);
                        over.Start();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "c10t":
                        //Images a server
                        s = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])];
                        AddOns.c10t c10t = new AddOns.c10t(s, "night=" + param["night"] + "&mode=" + param["mode"]);
                        c10t.Start();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "tectonicus":
                        //Maps a server
                        s = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])];
                        AddOns.Tectonicus tecton = new AddOns.Tectonicus(s, "lighting=" + param["lighting"] + "&night=" + param["night"] + "&delete=" + param["delete"]);
                        tecton.Start();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "start":
                        //Starts a server
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].Start();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "stop":
                        //Stops a server
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].Stop();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "restart":
                        //Restarts a server
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].Restart();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "delayed-restart":
                        //Restarts a server after a specified time and warns players
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].DelayedRestart(Convert.ToInt32(param["delay"]));
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "restart-when-free":
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].RestartIfEmpty();
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "command":
                        //Sends literal command to a server
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].Send(context.Request.Parameters["message"]);
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "get-yams-settings":
                        DataSet dsSettings = Database.ReturnSettings();
                        JsonConvert.SerializeObject(dsSettings, Formatting.Indented);
                        break;

                    case "save-yams-settings":
                        //Settings update
                        foreach (Parameter p in param)
                        {
                            if (p.Name != "action")
                            {
                                Database.SaveSetting(p.Name, p.Value);
                            }
                        }
                        break;

                    case "get-server-settings":
                        //retrieve all server settings as JSON
                        List <string> listIPsMC  = new List <string>();
                        IPHostEntry   ipListenMC = Dns.GetHostEntry("");
                        foreach (IPAddress ipaddress in ipListenMC.AddressList)
                        {
                            if (ipaddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                            {
                                listIPsMC.Add(ipaddress.ToString());
                            }
                        }

                        intServerID = Convert.ToInt32(param["serverid"]);
                        strResponse = "{ \"serverid\" : " + intServerID + "," +
                                      "\"title\" : \"" + Database.GetSetting(intServerID, "ServerTitle") + "\"," +
                                      "\"optimisations\" : \"" + Database.GetSetting(intServerID, "ServerEnableOptimisations") + "\"," +
                                      "\"memory\" : \"" + Database.GetSetting(intServerID, "ServerAssignedMemory") + "\"," +
                                      "\"autostart\" : \"" + Database.GetSetting(intServerID, "ServerAutoStart") + "\"," +
                                      "\"type\" : \"" + Database.GetSetting(intServerID, "ServerType") + "\"," +
                                      "\"motd\" : \"" + Database.GetSetting("motd", "MC", intServerID) + "\"," +
                                      "\"listen\" : \"" + Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].GetProperty("server-ip") + "\"," +
                                      "\"port\" : \"" + Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].GetProperty("server-port") + "\"," +
                                      "\"IPs\": " + JsonConvert.SerializeObject(listIPsMC, Formatting.None);
                        strResponse += "}";
                        break;

                    case "get-server-connections":
                        intServerID = Convert.ToInt32(param["serverid"]);
                        strResponse = "{ \"dnsname\" : \"" + Database.GetSetting("DNSName", "YAMS") + "\", " +
                                      "\"externalip\" : \"" + Networking.GetExternalIP().ToString() + "\", " +
                                      "\"mcport\" : " + Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].GetProperty("server-port") + ", " +
                                      "\"publicport\" : " + Database.GetSetting("PublicListenPort", "YAMS") + " }";
                        break;

                    case "get-mc-settings":
                        //retrieve all server settings as JSON
                        intServerID = Convert.ToInt32(param["serverid"]);

                        json   = File.ReadAllText(YAMS.Core.RootFolder + @"\lib\properties.json");
                        jProps = JObject.Parse(json);

                        strResponse = "";

                        foreach (JObject option in jProps["options"])
                        {
                            strResponse += "<p><label for=\"" + (string)option["key"] + "\" title=\"" + (string)option["description"] + "\">" + (string)option["name"] + "</label>";

                            string strValue = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].GetProperty((string)option["key"]);

                            switch ((string)option["type"])
                            {
                            case "string":
                                strResponse += "<input type=\"text\" name=\"" + (string)option["key"] + "\" value=\"" + strValue + "\" />";
                                break;

                            case "boolean":
                                strResponse += "<select name=\"" + (string)option["key"] + "\">";
                                strResponse += "<option value=\"true\"";
                                if (strValue == "true")
                                {
                                    strResponse += " selected";
                                }
                                strResponse += ">True</option>";
                                strResponse += "<option value=\"false\"";
                                if (strValue == "false")
                                {
                                    strResponse += " selected";
                                }
                                strResponse += ">False</option>";
                                strResponse += "</select>";
                                break;

                            case "integer":
                                strResponse += "<select name=\"" + (string)option["key"] + "\">";
                                int intValue = Convert.ToInt32(strValue);
                                for (var i = Convert.ToInt32((string)option["min"]); i <= Convert.ToInt32((string)option["max"]); i++)
                                {
                                    strResponse += "<option value=\"" + i.ToString() + "\"";
                                    if (intValue == i)
                                    {
                                        strResponse += " selected";
                                    }
                                    strResponse += ">" + i.ToString() + "</option>";
                                }
                                strResponse += "</select>";
                                break;

                            case "array":
                                strResponse += "<select name=\"" + (string)option["key"] + "\">";
                                string   strValues = (string)option["values"];
                                string[] elements  = strValues.Split(',');
                                foreach (string values in elements)
                                {
                                    string[] options = values.Split('|');
                                    strResponse += "<option value=\"" + options[0] + "\"";
                                    if (strValue == options[0])
                                    {
                                        strResponse += " selected";
                                    }
                                    strResponse += ">" + options[1] + "</option>";
                                }
                                strResponse += "</select>";
                                break;
                            }

                            strResponse += "</p>";
                        }

                        break;

                    case "save-server-settings":
                        intServerID = Convert.ToInt32(param["serverid"]);
                        Database.UpdateServer(intServerID, "ServerTitle", param["title"]);
                        Database.UpdateServer(intServerID, "ServerType", param["type"]);
                        Database.UpdateServer(intServerID, "ServerAssignedMemory", Convert.ToInt32(param["memory"]));
                        if (param["optimisations"] == "true")
                        {
                            Database.UpdateServer(intServerID, "ServerEnableOptimisations", true);
                        }
                        else
                        {
                            Database.UpdateServer(intServerID, "ServerEnableOptimisations", false);
                        }
                        if (param["autostart"] == "true")
                        {
                            Database.UpdateServer(intServerID, "ServerAutoStart", true);
                        }
                        else
                        {
                            Database.UpdateServer(intServerID, "ServerAutoStart", false);
                        }
                        Database.SaveSetting(intServerID, "motd", param["message"]);

                        //Save the server's MC settings
                        MCServer thisServer = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])];
                        thisServer.SaveProperty("server-ip", param["cfg_listen-ip"]);
                        thisServer.SaveProperty("server-port", param["cfg_port"]);

                        json   = File.ReadAllText(YAMS.Core.RootFolder + @"\lib\properties.json");
                        jProps = JObject.Parse(json);

                        strResponse = "";

                        foreach (JObject option in jProps["options"])
                        {
                            thisServer.SaveProperty((string)option["key"], param[(string)option["key"]]);
                        }

                        if (thisServer.Running)
                        {
                            thisServer.RestartIfEmpty();
                        }

                        break;

                    case "get-config-file":
                        List <string> listConfig = Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].ReadConfig(param["file"]);
                        strResponse = JsonConvert.SerializeObject(listConfig, Formatting.Indented);
                        break;

                    case "get-server-whitelist":
                        strResponse = "{ \"enabled\" : " + Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].GetProperty("white-list") + " }";
                        break;

                    case "upload-world":
                        var test = context.Request.Files["new-world"];
                        break;

                    case "delete-world":
                        bool bolRandomSeed = false;
                        if (param["randomseed"] == "true")
                        {
                            bolRandomSeed = true;
                        }
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].ClearWorld(bolRandomSeed);
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    case "remove-server":
                        Core.Servers[Convert.ToInt32(context.Request.Parameters["serverid"])].Stop();
                        Core.Servers.Remove(Convert.ToInt32(context.Request.Parameters["serverid"]));
                        Database.DeleteServer(Convert.ToInt32(context.Request.Parameters["serverid"]));
                        strResponse = "{ \"result\" : \"removed\" }";
                        break;

                    case "about":
                        Dictionary <string, string> dicAbout = new Dictionary <string, string> {
                            { "dll", FileVersionInfo.GetVersionInfo(Path.Combine(Core.RootFolder, "YAMS-Library.dll")).FileVersion },
                            { "svc", FileVersionInfo.GetVersionInfo(Path.Combine(Core.RootFolder, "YAMS-Service.exe")).FileVersion },
                            { "gui", FileVersionInfo.GetVersionInfo(Path.Combine(Core.RootFolder, "YAMS-Updater.exe")).FileVersion },
                            { "db", Database.GetSetting("DBSchema", "YAMS") }
                        };
                        strResponse = JsonConvert.SerializeObject(dicAbout, Formatting.Indented);
                        break;

                    case "installed-apps":
                        Dictionary <string, string> dicApps = new Dictionary <string, string> {
                            { "bukkit", Database.GetSetting("BukkitInstalled", "YAMS") },
                            { "overviewer", Database.GetSetting("OverviewerInstalled", "YAMS") },
                            { "c10t", Database.GetSetting("C10tInstalled", "YAMS") },
                            { "biomeextractor", Database.GetSetting("BiomeExtractorInstalled", "YAMS") },
                            { "tectonicus", Database.GetSetting("TectonicusInstalled", "YAMS") },
                            { "nbtoolkit", Database.GetSetting("NBToolkitInstalled", "YAMS") }
                        };
                        strResponse = JsonConvert.SerializeObject(dicApps, Formatting.Indented);
                        break;

                    case "update-apps":
                        Database.SaveSetting("OverviewerInstalled", param["overviewer"]);
                        Database.SaveSetting("C10tInstalled", param["c10t"]);
                        Database.SaveSetting("BiomeExtractorInstalled", param["biomeextractor"]);
                        Database.SaveSetting("BukkitInstalled", param["bukkit"]);
                        strResponse = "done";
                        break;

                    case "force-autoupdate":
                        AutoUpdate.CheckUpdates(false, true);
                        break;

                    case "network-settings":
                        List <string> listIPs  = new List <string>();
                        IPHostEntry   ipListen = Dns.GetHostEntry("");
                        foreach (IPAddress ipaddress in ipListen.AddressList)
                        {
                            if (ipaddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                            {
                                listIPs.Add(ipaddress.ToString());
                            }
                        }

                        Dictionary <string, string> dicNetwork = new Dictionary <string, string> {
                            { "portForwarding", Database.GetSetting("EnablePortForwarding", "YAMS") },
                            { "openFirewall", Database.GetSetting("EnableOpenFirewall", "YAMS") },
                            { "publicEnable", Database.GetSetting("EnablePublicSite", "YAMS") },
                            { "adminPort", Database.GetSetting("AdminListenPort", "YAMS") },
                            { "publicPort", Database.GetSetting("PublicListenPort", "YAMS") },
                            { "currentIP", Database.GetSetting("YAMSListenIP", "YAMS") },
                            { "telnetEnable", Database.GetSetting("EnableTelnet", "YAMS") },
                            { "telnetPort", Database.GetSetting("TelnetPort", "YAMS") },
                            { "IPs", JsonConvert.SerializeObject(listIPs, Formatting.None) }
                        };
                        strResponse = JsonConvert.SerializeObject(dicNetwork, Formatting.Indented).Replace(@"\", "").Replace("\"[", "[").Replace("]\"", "]");
                        break;

                    case "save-network-settings":
                        int intTester = 0;
                        try
                        {
                            //Try to convert to integers to make sure something silly isn't put in. TODO: Javascript validation
                            intTester = Convert.ToInt32(param["adminPort"]);
                            intTester = Convert.ToInt32(param["publicPort"]);
                            IPAddress ipTest = IPAddress.Parse(param["listenIp"]);
                        }
                        catch (Exception e)
                        {
                            YAMS.Database.AddLog("Invalid input on network settings", "web", "warn");
                            return(ProcessingResult.Abort);
                        }

                        Database.SaveSetting("EnablePortForwarding", param["portForwarding"]);
                        Database.SaveSetting("EnableOpenFirewall", param["openFirewall"]);
                        Database.SaveSetting("EnablePublicSite", param["publicEnable"]);
                        Database.SaveSetting("AdminListenPort", param["adminPort"]);
                        Database.SaveSetting("PublicListenPort", param["publicPort"]);
                        Database.SaveSetting("YAMSListenIP", param["listenIp"]);
                        Database.SaveSetting("EnableTelnet", param["telnetEnable"]);
                        Database.SaveSetting("TelnetPort", param["telnetPort"]);

                        Database.AddLog("Network settings have been saved, to apply changes a service restart is required. Please check they are correct before restarting", "web", "warn");
                        break;

                    case "job-list":
                        DataSet rdJobs = Database.ListJobs();
                        strResponse = JsonConvert.SerializeObject(rdJobs, Formatting.Indented);
                        break;

                    case "delete-job":
                        string strJobID = param["jobid"];
                        Database.DeleteJob(strJobID);
                        strResponse = "done";
                        break;

                    case "add-job":
                        intServerID = Convert.ToInt32(param["job-server"]);
                        int intHour   = Convert.ToInt32(param["job-hour"]);
                        int intMinute = Convert.ToInt32(param["job-minute"]);
                        Database.AddJob(param["job-type"], intHour, intMinute, param["job-params"], intServerID);
                        break;

                    case "logout":
                        WebSession.Current.UserName = "";
                        break;

                    case "newserver":
                        var NewServer = new List <KeyValuePair <string, string> >();
                        NewServer.Add(new KeyValuePair <string, string>("motd", "Welcome to a YAMS server!"));
                        NewServer.Add(new KeyValuePair <string, string>("server-ip", Networking.GetListenIP().ToString()));
                        NewServer.Add(new KeyValuePair <string, string>("server-name", param["name"]));
                        NewServer.Add(new KeyValuePair <string, string>("server-port", Networking.TcpPort.FindNextAvailablePort(25565).ToString()));
                        Database.NewServerWeb(NewServer, param["name"], 1024);
                        strResponse = "done";
                        break;

                    case "updateDNS":
                        Database.SaveSetting("DNSName", param["dns-name"]);
                        Database.SaveSetting("DNSSecret", param["dns-secret"]);
                        Database.SaveSetting("LastExternalIP", param["dns-external"]);
                        strResponse = "done";
                        break;

                    case "getDNS":
                        strResponse = "{ \"name\":\"" + Database.GetSetting("DNSName", "YAMS") + "\", \"secret\": \"" + Database.GetSetting("DNSSecret", "YAMS") + "\", \"external\" : \"" + Networking.GetExternalIP().ToString() + "\" }";
                        break;

                    case "backup-now":
                        Backup.BackupNow(Core.Servers[Convert.ToInt32(param["serverid"])], param["title"]);
                        strResponse = "{ \"result\" : \"sent\" }";
                        break;

                    default:
                        return(ProcessingResult.Abort);
                    }

                    context.Response.Reason          = "Completed - YAMS";
                    context.Response.Connection.Type = ConnectionType.Close;
                    byte[] buffer = Encoding.UTF8.GetBytes(strResponse);
                    context.Response.Body.Write(buffer, 0, buffer.Length);
                }
                else
                {
                    // not a post, so say bye bye!
                    return(ProcessingResult.Abort);
                }

                return(ProcessingResult.SendResponse);
            }
            else if (context.Request.Uri.AbsoluteUri.Contains(@"/admin"))
            {
                if (WebSession.Current.UserName != "admin")
                {
                    context.Response.Reason          = "Completed - YAMS";
                    context.Response.Connection.Type = ConnectionType.Close;
                    byte[] buffer = Encoding.UTF8.GetBytes(File.ReadAllText(YAMS.Core.RootFolder + @"\web\admin\login.html"));
                    context.Response.Body.Write(buffer, 0, buffer.Length);
                    return(ProcessingResult.SendResponse);
                }
                else
                {
                    context.Response.Reason          = "Completed - YAMS";
                    context.Response.Connection.Type = ConnectionType.Close;
                    byte[] buffer = Encoding.UTF8.GetBytes(File.ReadAllText(YAMS.Core.RootFolder + @"\web\admin\index.html"));
                    context.Response.Body.Write(buffer, 0, buffer.Length);
                    return(ProcessingResult.SendResponse);
                }
            }
            else if (context.Request.Uri.AbsoluteUri.Contains(@"/login"))
            {
                //This is a login request, check it's legit
                string userName = context.Request.Form["strUsername"];
                string password = context.Request.Form["strPassword"];

                if (userName == "admin" && password == Database.GetSetting("AdminPassword", "YAMS"))
                {
                    WebSession.Create();
                    WebSession.Current.UserName = "******";
                    context.Response.Redirect(@"/admin");
                    return(ProcessingResult.SendResponse);
                }
                else
                {
                    context.Response.Reason          = "Completed - YAMS";
                    context.Response.Connection.Type = ConnectionType.Close;
                    byte[] buffer = Encoding.UTF8.GetBytes(File.ReadAllText(YAMS.Core.RootFolder + @"\web\admin\login.html"));
                    context.Response.Body.Write(buffer, 0, buffer.Length);
                    return(ProcessingResult.SendResponse);
                }
            }
            else if (context.Request.Uri.AbsoluteUri.Equals(@"/"))
            {
                context.Response.Redirect(@"/admin");
                return(ProcessingResult.SendResponse);
            }
            else
            {
                return(ProcessingResult.Abort);
            }
        }
コード例 #48
0
 public override void ReadPacket(Networking.PacketData data) {
     throw new NotImplementedException();
 }
コード例 #49
0
 public override void OnOwnershipTransferred(VRCPlayerApi player)
 {
     isOwner = Networking.IsOwner(gameObject);
 }
コード例 #50
0
ファイル: Configuration.cs プロジェクト: dianatle/XTMF
 public bool StartupNetworkingClient(out Networking.IClient networkingClient, ref string error)
 {
     networkingClient = null;
     lock (this)
     {
         Thread.MemoryBarrier();
         if (this.CurrentClient != null)
         {
             networkingClient = this.CurrentClient;
             return true;
         }
         else
         {
             try
             {
                 this.CurrentClient = new Client(this.RemoteServerAddress, this.RemoteServerPort, this);
             }
             catch
             {
                 return false;
             }
             Thread.MemoryBarrier();
             networkingClient = this.CurrentClient;
             return true;
         }
     }
 }
コード例 #51
0
 void Start()
 {
     _networking = GameObject.Find("NetworkManager").GetComponent <Networking>();
 }
コード例 #52
0
ファイル: PTimer.cs プロジェクト: Silveryard/SmartHome
        public void NetworkRegisterToTimerService(Networking.ServerInstance instance,
			string startedFunction, string stoppedFunction, string updatedFunction, string calledFunction)
        {
            TimerService.RegisterClient (instance, startedFunction, stoppedFunction, updatedFunction, calledFunction);
        }
コード例 #53
0
ファイル: CombatBase.cs プロジェクト: rickbatka/co-op-engine
 internal void ReceiveCommand(Networking.Commands.GameObjectCommand command)
 {
     throw new NotImplementedException();
 }
コード例 #54
0
 public void Connect(string ipAddr)
 {
     theServer = Networking.ConnectToServer(StartUp, ipAddr);
 }
コード例 #55
0
        public void NetworkInstantiate(ulong ownerId, ulong startNetworkId, string name, Vector3 position, Quaternion rotation, int callbackId = 0)
        {
            lock (NetworkedBehaviorsMutex)
            {
                if (NetworkedBehaviors.ContainsKey(startNetworkId))
                {
                    return;
                }

                SimpleNetworkedMonoBehavior[] NetBehaviors = null;

#if BARE_METAL
                NetBehaviors = new SimpleNetworkedMonoBehavior[behaviorsAndRefCount[name].Length];

                for (int i = 0; i < NetBehaviors.Length; i++)
                {
                    //if (CreateObject != null)
                    //	NetBehaviors[i] = CreateObject(name + "(Clone)(Child)" + i, behaviorsAndRefCount[name][i]);

                    if (behaviorsAndRefCount[name][i] == typeof(SimpleNetworkedMonoBehavior).ToString() || behaviorsAndRefCount[name][i] == typeof(NetworkedMonoBehavior).ToString())
                    {
                        NetBehaviors[i] = (SimpleNetworkedMonoBehavior)Activator.CreateInstance(typeof(SimpleNetworkedMonoBehavior).Assembly.GetType(behaviorsAndRefCount[name][i]), name, behaviorsAndRefCount[name][i]);
                    }
                    else
                    {
                        foreach (System.Reflection.Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
                        {
                            if (assembly.FullName.Contains("ForgeBareMetalGame"))
                            {
                                NetBehaviors[i] = (SimpleNetworkedMonoBehavior)Activator.CreateInstance(assembly.GetType(behaviorsAndRefCount[name][i]), name, behaviorsAndRefCount[name][i]);
                                break;
                            }
                        }
                    }
                }
#else
                GameObject o = Instance.PullObject((ownerId != OwningNetWorker.Me.NetworkId ? name + "(Remote)" : name), name);
                NetBehaviors = GetAllSimpleMonoBehaviors(o);

                if (NetBehaviors.Length == 0)
                {
                    Debug.LogError("Instantiating on the Network is only for objects that derive from BaseNetworkedMonoBehavior, " +
                                   "if object does not need to be serialized consider using a RPC with GameObject.Instantiate");

                    return;
                }

                GameObject tmp = (Instantiate(o, position, rotation) as GameObject);
                NetBehaviors = GetAllSimpleMonoBehaviors(tmp);
#endif

                while (ObjectCounter < startNetworkId + (ulong)NetBehaviors.Length - 1)
                {
                    GenerateUniqueId();
                }

                for (int i = 0; i < NetBehaviors.Length; i++)
                {
                    NetBehaviors[i].Setup(OwningNetWorker, OwningNetWorker.Uniqueidentifier == ownerId, startNetworkId + (ulong)i, ownerId);
                }

#if !BARE_METAL
                if (ownerId == OwningNetWorker.Me.NetworkId)
                {
                    Networking.RunInstantiateCallback(callbackId, NetBehaviors[0].GetComponent <SimpleNetworkedMonoBehavior>());
                }
#else
                if (ownerId == OwningNetWorker.Me.NetworkId)
                {
                    Networking.RunInstantiateCallback(callbackId, NetBehaviors[0]);
                }
#endif
            }
        }
コード例 #56
0
ファイル: Form3.cs プロジェクト: RubisetCie/box2c
 void server_ReceiveUDPData(byte packetType, Networking.BinaryWrapper reader, System.Net.IPEndPoint endPoint)
 {
     textBox2.Text += "(DEBUG: Server: Received UDP "+packetType.ToString()+")"+Environment.NewLine;
 }
コード例 #57
0
ファイル: MainWindow.xaml.cs プロジェクト: CloseUpDK/iRTVO
        void iRTVOConnection_ProcessMessage(Networking.iRTVORemoteEvent e)
        {
            if (e.Handled)
                return;
            try
            {
                e.Handled = true;
                e.Forward = true; // by default Forward all events
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        switch (e.Message.Command.ToUpperInvariant())
                        {
                            case "CHGSESSION":
                                SharedData.OverlaySession = Int32.Parse(e.Message.Arguments[0]);

                                foreach (var item in comboBoxSession.Items)
                                {
                                    ComboBoxItem cbItem = item as ComboBoxItem;
                                    if (SharedData.OverlaySession == SharedData.Sessions.CurrentSession.Id)
                                    {
                                        if (cbItem.Content.ToString() == "current")
                                        {
                                            cbItem.IsSelected = true;
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        if (cbItem.Content.ToString().StartsWith(e.Message.Arguments[0] + ":"))
                                        {
                                            cbItem.IsSelected = true;
                                            break;
                                        }
                                    }
                                }

                                break;
                            case "BUTTON":
                                RaiseThemeButtonEvent(e.Message.Arguments[0], e.Message.Source);
                                break;
                            case "RESET":
                                this.bReset.RaiseEvent(new RoutedEventArgs(Button.ClickEvent, e.Message.Source));
                                break;
                            case "HIDE":
                                this.hideButton.RaiseEvent(new RoutedEventArgs(Button.ClickEvent, e.Message.Source));
                                break;
                            case "CAMERA":
                                e.Forward = false; // done by api code
                                RemoteCamNum = Int32.Parse(e.Message.Arguments[0]);
                                if (SharedData.remoteClientFollow || iRTVOConnection.isServer)
                                {
                                    simulationAPI.SwitchCamera(0, RemoteCamNum);
                                }

                                break;
                            case "DRIVER":
                                e.Forward = false; // done by api code
                                RemoteDriverNum = Int32.Parse(e.Message.Arguments[0]);
                                if (SharedData.remoteClientFollow || iRTVOConnection.isServer)
                                {
                                    simulationAPI.SwitchCamera(RemoteDriverNum, 0);
                                }
                                break;
                            case "SWITCH":
                                e.Forward = false; // done by api code
                                RemoteDriverNum = Int32.Parse(e.Message.Arguments[0]);
                                RemoteCamNum = Int32.Parse(e.Message.Arguments[1]);
                                if (SharedData.remoteClientFollow || iRTVOConnection.isServer)
                                {
                                    simulationAPI.SwitchCamera(RemoteDriverNum, RemoteCamNum);
                                    SharedData.updateControls = true;
                                }
                                break;
                            case "REWIND":
                                if (!SharedData.remoteClientSkipRewind)
                                {
                                    simulationAPI.ReplaySetPlayPosition(ReplayPositionModeTypes.Begin, ((Int32)simulationAPI.GetData("ReplayFrameNum") - Int32.Parse(e.Message.Arguments[0])));
                                    SetPlaySpeed(Int32.Parse(e.Message.Arguments[1]));
                                    SharedData.updateControls = true;
                                    SharedData.triggers.Push(TriggerTypes.replay);
                                }
                                break;
                            case "LIVE":
                                if (!SharedData.remoteClientSkipRewind)
                                {
                                    simulationAPI.ReplaySearch(ReplaySearchModeTypes.ToEnd, 0);
                                    simulationAPI.Play();
                                    SharedData.updateControls = true;
                                    SharedData.triggers.Push(TriggerTypes.live);
                                }
                                break;
                            case "PLAY":
                                if (!SharedData.remoteClientSkipRewind)
                                {
                                    simulationAPI.Play();
                                    SharedData.updateControls = true;
                                }
                                break;
                            case "PAUSE":
                                if (!SharedData.remoteClientSkipRewind)
                                {
                                    simulationAPI.Pause();
                                    SharedData.updateControls = true;
                                }
                                break;
                            case "PLAYSPEED":
                                if (!SharedData.remoteClientSkipRewind)
                                {
                                    simulationAPI.ReplaySetPlaySpeed(Int32.Parse(e.Message.Arguments[0]), Int32.Parse(e.Message.Arguments[1]));
                                    SharedData.updateControls = true;
                                }
                                break;
                            case "SENDCAMS":
                                e.Forward = false; // not needed by others
                                if (SharedData.Camera.Groups.Count > 0)
                                {
                                    foreach (CameraGroup cam in SharedData.Camera.Groups)
                                    {
                                        iRTVOConnection.SendMessage(e.Message.Source, "ADDCAM", cam.Id, cam.Name);
                                    }
                                }
                                break;
                            case "SENDDRIVERS":
                                e.Forward = false; // not needed by others
                                if (SharedData.Drivers.Count > 0)
                                {
                                    foreach (DriverInfo driver in SharedData.Drivers)
                                    {
                                        iRTVOConnection.SendMessage(e.Message.Source, "ADDDRIVER", driver.CarIdx, driver.Name);
                                    }
                                }
                                break;
                            case "SENDBUTTONS":
                                e.Forward = false; // not needed by others
                                foreach (var button in buttons)
                                {
                                    if (!String.IsNullOrEmpty(Convert.ToString(button.Content)))
                                        iRTVOConnection.SendMessage(e.Message.Source, "ADDBUTTON", button.Name, button.Content);
                                }
                                break;
                            default:
                                logger.Warn("Caught odd command: {0}", e.Message);
                                break;
                        }
                        SharedData.remoteClientSkipRewind = false;


                    }));
            }
            catch (Exception ex)
            {
                logger.Error("Problem executing command '{0}' : {1}", e.Message, ex.ToString());
                e.Cancel = true; // Disconnect offending Client/Server
            }
        }
コード例 #58
0
 void Start()
 {
     _timeSinceLastSpawn = 0f;
     _networking         = GameObject.Find("NetworkManager").GetComponent <Networking>();
     _spawners           = GameObject.FindGameObjectsWithTag("PowerupSpawner");
 }
コード例 #59
0
ファイル: Configuration.cs プロジェクト: dianatle/XTMF
 public bool StartupNetworkingHost(out Networking.IHost networkingHost, ref string error)
 {
     networkingHost = null;
     lock (this)
     {
         Thread.MemoryBarrier();
         if (this.CurrentHost == null || this.CurrentHost.IsShutdown)
         {
             try
             {
                 this.CurrentHost = new Host(this);
             }
             catch
             {
                 return false;
             }
         }
         else
         {
             ((Host)this.CurrentHost).ReleaseRegisteredHandlers();
         }
         Thread.MemoryBarrier();
         networkingHost = this.CurrentHost;
     }
     return true;
 }
コード例 #60
0
 public void player_name(string name)
 {
     Networking.Send(theServer, name);
 }