RCON For Plus r2

Results 1 to 15 of 15
  1. #1
    git bisect -m ovflowd is offline
    MemberRank
    Sep 2011 Join Date
    2,191Posts

    config RCON For Plus r2

    This project it's to control remotely and safely the Plus Emulator.

    Fix:
    Put that on Environment:
    PHP Code:
    internal static ControleCenter foos = new sul0wn.Core.ControleCenter();
    internal static int FoosOK 0
    After
    PHP Code:
    MusSystem = new MusSocket(SilverwaveEnvironment.GetConfig().data["mus.tcp.bindip"
    Put that:
    PHP Code:
    foos.Server_Load(); 
    Put that two .cs on your solution:
    ControleCenter.cs
    PHP Code:
    using System;
    using sul0wn.HabboHotel;
    using System.Collections.Generic;
    using sul0wn.Messages;
    using Database_Manager.Database.Session_Details.Interfaces;
    using System.Linq;
    using sul0wn.Messages.Headers;
    using System.Net.Sockets;
    using System.Net;
    using System.Collections;
    using ChatApplication;
    using System.Text;




    namespace 
    sul0wn.Core
    {
        
    /// <summary>
        /// Description of ControleCenter.
        /// </summary>
        
    public class ControleCenter
        
    {
            
    // Structure to store the client information
            
    private struct Client
            
    {
                public 
    EndPoint endPoint;
                public 
    string name;
            }
            
            
    // Listing of clients
            
    private ArrayList clientList;
            
            
    // Server socket
            
    private Socket serverSocket;
            
            
    // Data stream
            
    private byte[] dataStream = new byte[1024];
            
            
            
    // Status delegate
            
    private delegate void UpdateStatusDelegate(string status);
            private 
    UpdateStatusDelegate updateStatusDelegate null;
            
    internal HashSet<StringallowedIps;
            
            
    internal static Game getGame()
            {
                return 
    sul0wnEnvironment.GetGame();
            }
            
            
    internal void Server_Load()
            {
                try
                {
                    
    // Initialise the ArrayList of connected clients
                    
    this.clientList = new ArrayList();
                    
    String[] _allowedIps sul0wnEnvironment.GetConfig().data["rcon.allowip"].Split(Convert.ToChar(";"));
                    
                    
    // Initialise the delegate which updates the status
                    
    this.updateStatusDelegate = new UpdateStatusDelegate(this.UpdateStatus);
                    
                    
    // Initialise the socket
                    
    serverSocket = new Socket(AddressFamily.InterNetworkSocketType.DgramProtocolType.Udp);
                    
                    
                    
    int port int.Parse(sul0wnEnvironment.GetConfig().data["rcon.port"]);
                    
    // Initialise the IPEndPoint for the server and listen on port 30000
                    
    IPEndPoint server = new IPEndPoint(IPAddress.Anyport);
                    
                    
    // Associate the socket with this IP address and port
                    
    serverSocket.Bind(server);
                    
                    
    // Initialise the IPEndPoint for the clients
                    
    IPEndPoint clients = new IPEndPoint(IPAddress.Any0);
                    
                    
    // Initialise the EndPoint for the clients
                    
    EndPoint epSender = (EndPoint)clients;
                    
                    
    // Start listening for incoming data
                    
    serverSocket.BeginReceiveFrom(this.dataStream0this.dataStream.LengthSocketFlags.Noneref epSender, new AsyncCallback(ReceiveData), epSender);
                    
    Console.ForegroundColor ConsoleColor.Blue;
                    
    Logging.WriteLine("[RCON] Listening....");
                    
    Console.ForegroundColor ConsoleColor.Green;
                }
                catch (
    Exception ex)
                {
                    
                }
            }
            
            public 
    void SendData(IAsyncResult asyncResult)
            {
                try
                {
                    
    serverSocket.EndSend(asyncResult);
                    return;
                }
                catch (
    Exception ex)
                {
                    
                }
            }
            
            
    internal void sendLOL(string message)
            {
                
    byte[] data;
                
    Packet sendData = new Packet();
                
    IPEndPoint clients = new IPEndPoint(IPAddress.Any0);
                    
                
    // Initialise the EndPoint for the clients
                
    EndPoint epSender = (EndPoint)clients;
                    
                
    // Receive all data
                
                    
                // Start populating the packet to be sent
                
    sendData.ChatDataIdentifier DataIdentifier.Message;
                
    sendData.ChatName "Emulator";
                
    sendData.ChatMessage string.Format(message);
                
    // Get packet as byte array
                
    data sendData.GetDataStream();
                    
                foreach (
    Client client in this.clientList)
                {
                    if (
    client.endPoint != epSender || sendData.ChatDataIdentifier != DataIdentifier.LogIn)
                    {
                        
    // Broadcast to all logged on users
                        
    serverSocket.BeginSendTo(data0data.LengthSocketFlags.Noneclient.endPoint, new AsyncCallback(this.SendData), client.endPoint);
                    }
                }
                
    Logging.WriteLine("[RCON] Send Data to RCON.");
                return;
            }
            
            private 
    void ReceiveData(IAsyncResult asyncResult)
            {
                try
                {
                    
    byte[] data;
                    
                    
    // Initialise a packet object to store the received data
                    
    Packet receivedData = new Packet(this.dataStream);
                    
                    
    // Initialise a packet object to store the data to be sent
                    
    Packet sendData = new Packet();
                    
                    
    // Initialise the IPEndPoint for the clients
                    
    IPEndPoint clients = new IPEndPoint(IPAddress.Any0);
                    
                    
    // Initialise the EndPoint for the clients
                    
    EndPoint epSender = (EndPoint)clients;
                    
                    
    // Receive all data
                    
    serverSocket.EndReceiveFrom(asyncResultref epSender);
                    
                    
    // Start populating the packet to be sent
                    
    sendData.ChatDataIdentifier receivedData.ChatDataIdentifier;
                    
    sendData.ChatName receivedData.ChatName;
                    
                    switch (
    receivedData.ChatDataIdentifier)
                    {
                        case 
    DataIdentifier.Message:
                            
    string[] parameters receivedData.ChatMessage.Split(' ');
                            
    #region Command parsing
                            
                            
    switch (parameters[0])
                            {
                                case 
    "command":
                                    switch(
    parameters[1])
                                    {
                                        case 
    "shutdown":
                                            {
                                        
                                                
    Logging.LogMessage("Server exiting at " DateTime.Now);
                                                
    Logging.DisablePrimaryWriting(true);
                                                
    Logging.WriteLine("The server is saving users furniture, rooms, etc. WAIT FOR THE SERVER TO CLOSE, DO NOT EXIT THE PROCESS IN TASK MANAGER!!"ConsoleColor.Yellow);
                                        
                                                
    sul0wnEnvironment.PerformShutDown(false);
                                                break;
                                            }
                                    
                                        case 
    "flush":
                                            {
                                                if (
    parameters.Length 2)
                                                    
    sendData.ChatMessage string.Format("[Message] You need to specify a parameter within your command. Type help for more information");
                                                else
                                                {
                                                    switch (
    parameters[2])
                                                    {
                                                        case 
    "database":
                                                            {
                                                                
    sul0wnEnvironment.GetDatabaseManager().Destroy();
                                                                
    sendData.ChatMessage string.Format("[Message] Closed old connections");
                                                                break;
                                                            }
                                                    
                                                        case 
    "settings":
                                                            {
                                                                if (
    parameters.Length 3)
                                                                    
    sendData.ChatMessage string.Format("[Message] You need to specify a parameter within your command. Type help for more information");
                                                                else
                                                                {
                                                                    switch (
    parameters[3])
                                                                    {
                                                                        case 
    "catalog":
                                                                            {
                                                                                
    sendData.ChatMessage string.Format("[Message] Flushing catalog settings");
                                                                        
                                                                                
    using (IQueryAdapter dbClient sul0wnEnvironment.GetDatabaseManager().getQueryreactor())
                                                                                {
                                                                                    
    getGame().GetCatalog().Initialize(dbClient);
                                                                                }
                                                                        
                                                                                
    getGame().GetClientManager().QueueBroadcaseMessage(new ServerMessage(441));
                                                                        
                                                                                
    sendData.ChatMessage string.Format("[Message] Catalog flushed");
                                                                        
                                                                                break;
                                                                            }
                                                                    
                                                                        case 
    "modeldata":
                                                                            {
                                                                                
    sendData.ChatMessage string.Format("[Message] Flushing modeldata");
                                                                                
    using (IQueryAdapter dbClient sul0wnEnvironment.GetDatabaseManager().getQueryreactor())
                                                                                {
                                                                                    
    getGame().GetRoomManager().LoadModels(dbClient);
                                                                                }
                                                                                
    sendData.ChatMessage string.Format("[Message] Models flushed");
                                                                        
                                                                                break;
                                                                            }
                                                                    
                                                                        case 
    "bans":
                                                                            {
                                                                                
    sendData.ChatMessage string.Format("[Message] Flushing bans");
                                                                                
    using (IQueryAdapter dbClient sul0wnEnvironment.GetDatabaseManager().getQueryreactor())
                                                                                {
                                                                                    
    getGame().GetBanManager().LoadBans(dbClient);
                                                                                }
                                                                                
    sendData.ChatMessage string.Format("[Message] Bans flushed");
                                                                        
                                                                                break;
                                                                            }
                                                                    
                                                        
                                                                    
                                                                        case 
    "language":
                                                                            {
                                                                                
    sendData.ChatMessage string.Format("[Message] Flushing language files");
                                                                                
    using (IQueryAdapter dbClient sul0wnEnvironment.GetDatabaseManager().getQueryreactor())
                                                                                    
    LanguageLocale.Init(dbClient);
                                                                                
    sendData.ChatMessage string.Format("[Message] Language files flushed");
                                                                        
                                                                                break;
                                                                            }
                                                                    }
                                                                }
                                                                break;
                                                            }
                                                    
                                                        case 
    "console":
                                                            {
                                                                
    Console.Clear();
                                                                break;
                                                            }
                                                    
                                                        case 
    "memory":
                                                            {
                                                        
                                                                
    GC.Collect();
                                                                
    sendData.ChatMessage string.Format("[Message] Memory flushed");
                                                        
                                                                break;
                                                            }
                                                    
                                                        default:
                                                            {
      
                                                                break;
                                                            }
                                                    }
                                                }
                                        
                                                break;
                                            }
                                    
                                        case 
    "view":
                                            {
                                                switch (
    parameters[2])
                                                {
      
                                                    case 
    "console":
                                                        {
                                                            
    sendData.ChatMessage string.Format("[Message] Press ENTER for disabling console writing");
                                                            
    Logging.DisabledState false;
                                                            break;
                                                        }
                                                }
                                                break;
                                            }
                                    
                                        case 
    "alert":
                                            {
                                                
    string Notice receivedData.ChatMessage.Substring(6);
                                        
                                                
    ServerMessage HotelAlert = new ServerMessage(Outgoing.BroadcastMessage);
                                                
    HotelAlert.AppendString(LanguageLocale.GetValue("console.noticefromadmin") + "\n\n" +
                                                    
    Notice);
                                                
    HotelAlert.AppendString("");
                                                
    getGame().GetClientManager().QueueBroadcaseMessage(HotelAlert);
                                                
    sendData.ChatMessage string.Format("[Message] [" Notice "] sent");
                                        
                                                break;
                                            }
                                    
                                        case 
    "help":
                                            {
                                                
    sendData.ChatMessage string.Format("[Message] shutdown - shuts down the server");
                                                
    sendData.ChatMessage string.Format("[Message] view");
                                                
    sendData.ChatMessage string.Format("[Message]      console - views server output (Press enter to disable)");
                                                
    sendData.ChatMessage string.Format("[Message] alert (message) - sends alert to everyone online");
                                                break;
                                            }
                                    
                                        default:
                                            {
               
                                                break;
                                            }
                                    
                                    }
                                    break;
                                default:
                                    
    sendData.ChatMessage string.Format("{0}: {1}"receivedData.ChatNamereceivedData.ChatMessage);
                                    break;
                            }
                            
    #endregion
                            
                            
    break;
                            
                        case 
    DataIdentifier.LogIn:
                            
    // Populate client object
                            
    Client client = new Client();
                            
    client.endPoint epSender;
                            
    client.name receivedData.ChatName;
                            
    string password sul0wnEnvironment.GetConfig().data["rcon.pass"];
                            if(
    receivedData.ChatMessage == password)
                            {
                                
    // Add client to list
                                
    this.clientList.Add(client);
                                
    sendData.ChatMessage string.Format(" {0} Entered on RCON"receivedData.ChatName);    
                                
    sul0wnEnvironment.FoosOK 1;
                            }
                            
                            
                            break;
                            
                        case 
    DataIdentifier.LogOut:
                            
    // Remove current client from list
                            
    foreach (Client c in this.clientList)
                            {
                                if (
    c.endPoint.Equals(epSender))
                                {
                                    
    this.clientList.Remove(c);
                                    break;
                                }
                            }
                            
                            
    sendData.ChatMessage string.Format("-- {0} has gone offline --"receivedData.ChatName);
                            
    sul0wnEnvironment.FoosOK 0;
                            break;
                            
                            
                            
                    }
                    
                    
    // Get packet as byte array
                    
    data sendData.GetDataStream();
                    
                    foreach (
    Client client in this.clientList)
                    {
                        if (
    client.endPoint != epSender || sendData.ChatDataIdentifier != DataIdentifier.LogIn)
                        {
                            
    // Broadcast to all logged on users
                            
    serverSocket.BeginSendTo(data0data.LengthSocketFlags.Noneclient.endPoint, new AsyncCallback(this.SendData), client.endPoint);
                        }
                    }
                    
                    
    // Listen for more connections again...
                    
    serverSocket.BeginReceiveFrom(this.dataStream0this.dataStream.LengthSocketFlags.Noneref epSender, new AsyncCallback(this.ReceiveData), epSender);
                    
                    
    // Update status through a delegate
                    
    Logging.WriteLine("[RCON] " sendData.ChatMessage);
                    
                    
                }
                catch (
    Exception ex)
                {
     
                }
            }
            
            public static 
    string MergeParams(string[] Paramsint Start)
            {
                
    StringBuilder MergedParams = new StringBuilder();
                
                for (
    int i 0Params.Lengthi++)
                {
                    if (
    Start)
                    {
                        continue;
                    }
                    
                    if (
    Start)
                    {
                        
    MergedParams.Append(" ");
                    }
                    
                    
    MergedParams.Append(Params[i]);
                }
                
                return 
    MergedParams.ToString();
            }
            
        
            private 
    void UpdateStatus(string status)
            {
                
    Console.ForegroundColor ConsoleColor.Blue;
                
    Logging.WriteLine("[RCON]: " status);
                
    Console.ForegroundColor ConsoleColor.Green;
            }
            
        }

    Packet.cs
    PHP Code:
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace 
    ChatApplication
    {
        
    // ----------------
        // Packet Structure
        // ----------------

        // Description   -> |dataIdentifier|name length|message length|    name   |    message   |
        // Size in bytes -> |       4      |     4     |       4      |name length|message length|

        
    public enum DataIdentifier
        
    {
            
    Message,
            
    LogIn,
            
    LogOut,
            
    Null    
        
    }

        public class 
    Packet
        
    {
            
    #region Private Members
            
    private DataIdentifier dataIdentifier
            private 
    string name
            private 
    string message;
            
    #endregion

            #region Public Properties
            
    public DataIdentifier ChatDataIdentifier
            
    {
                
    get { return dataIdentifier; }
                
    set dataIdentifier value; }
            }

            public 
    string ChatName
            
    {
                
    get { return name; }
                
    set name value; }
            }
            
        
            public 
    string ChatMessage
            
    {
                
    get { return message; }
                
    set message value; }
            }
            
    #endregion

            #region Methods

            // Default Constructor
            
    public Packet()
            {
                
    this.dataIdentifier DataIdentifier.Null;
                
    this.message null;
                
    this.name null;

            }

            public 
    Packet(byte[] dataStream)
            {
                
    // Read the data identifier from the beginning of the stream (4 bytes)
                
    this.dataIdentifier = (DataIdentifier)BitConverter.ToInt32(dataStream0);

                
    // Read the length of the name (4 bytes)
                
    int nameLength BitConverter.ToInt32(dataStream4);

                
    // Read the length of the message (4 bytes)
                
    int msgLength BitConverter.ToInt32(dataStream8);

                
    // Read the name field
                
    if (nameLength 0)
                    
    this.name Encoding.UTF8.GetString(dataStream12nameLength);
                else
                    
    this.name null;

                
    // Read the message field
                
    if (msgLength 0)
                    
    this.message Encoding.UTF8.GetString(dataStream12 nameLengthmsgLength);
                else
                    
    this.message null;
            }

            
    // Converts the packet into a byte array for sending/receiving 
            
    public byte[] GetDataStream()
            {
                List<
    bytedataStream = new List<byte>();

                
    // Add the dataIdentifier
                
    dataStream.AddRange(BitConverter.GetBytes((int)this.dataIdentifier));

                
    // Add the name length
                
    if (this.name != null)
                    
    dataStream.AddRange(BitConverter.GetBytes(this.name.Length));
                else
                    
    dataStream.AddRange(BitConverter.GetBytes(0));

                
    // Add the message length
                
    if (this.message != null)
                    
    dataStream.AddRange(BitConverter.GetBytes(this.message.Length));
                else
                    
    dataStream.AddRange(BitConverter.GetBytes(0));
                


                
    // Add the name
                
    if (this.name != null)
                    
    dataStream.AddRange(Encoding.UTF8.GetBytes(this.name));

                
    // Add the message
                
    if (this.message != null)
                    
    dataStream.AddRange(Encoding.UTF8.GetBytes(this.message));

                return 
    dataStream.ToArray();
            }

            
    #endregion
        
    }

    Add that on settings.ini
    Code:
    rcon.allowip=127.0.0.1
    rcon.pass=aaff102030
    rcon.port=3909
    Now Debug. , To Create the Remote Control (The Client Side)
    Download this Project: https://mega.co.nz/#!XYdWkAaR!HSk1_b...s1vyS6J12jC1j8

    Debug, and update the .ini

    Now Open your emulator, Wait and Open the client.

    To send a message only say Anything, to send a command say "command COMMANDNAME"
    You can send The outgoing and header and incoming packets to the client side, and the users Entering.

    Roommgr.cs
    PHP Code:
                if(sul0wnEnvironment.FoosOK == 1)
                
    sul0wnEnvironment.foos.sendLOL("[RoomMgr] Loaded room: \"" Room.Name "\" (ID: " Id ")");
        

    And:

                if(
    sul0wnEnvironment.FoosOK == 1)
                
    sul0wnEnvironment.foos.sendLOL("[RoomMgr] Unloaded room: \"" Room.Name "\" (ID: " Room.RoomId ")"); 

    Navigator.cs
    PHP Code:
                if(sul0wnEnvironment.FoosOK == 1)
                
    sul0wnEnvironment.foos.sendLOL("[ " this.Request.PopFixedString() + " ] is online"); 
    ServerMessage.cs
    PHP Code:
                    if(sul0wnEnvironment.FoosOK == 1)
                    
    sul0wnEnvironment.foos.sendLOL("[Outgoing] Handled Packet: " Header.ToString()); 
    PS: change SUL0WN to SILVERWAVE
    Credits to Me.
    Enjoy.


  2. #2
    Account Upgraded | Title Enabled! Fishing Rod is offline
    MemberRank
    Dec 2013 Join Date
    214Posts

    Re: RCON For Plus r2

    Whats this for? :S

  3. #3
    git bisect -m ovflowd is offline
    MemberRank
    Sep 2011 Join Date
    2,191Posts

    Re: RCON For Plus r2

    Remotely control of you emulator that it's what rcon says: rcon = remote control
    With that you can send commands, alerts, see the logs of the emulator, restart, shutdown, repair, see the packets and when a user log in
    This is good when you have a vps and can't access than or don't want to access, and only put the ip and the password of the rcon and can control remotely.

  4. #4
    ส็็็็็็็ Bloodraven is offline
    MemberRank
    Sep 2009 Join Date
    AntarcticaLocation
    2,414Posts

    Re: RCON For Plus r2

    Isn't this just like how MUS works???

  5. #5
    Enthusiast GalaxyCMS2 is offline
    MemberRank
    Jun 2013 Join Date
    42Posts

    Re: RCON For Plus r2

    Nice release very useful :D

  6. #6
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: RCON For Plus r2

    Yeah credits to you ofcourse: http://www.daveoncsharp.com/2009/08/...ockets-part-1/

    You cannot even fix a nullpointer exception but you can program OO. Seems legit.

    This is useless. There is already MUS you can do great things with.

    Quote Originally Posted by Bloodraven View Post
    Isn't this just like how MUS works???
    Its a renamed (like anything nowadays) version of it yes.

  7. #7
    git bisect -m ovflowd is offline
    MemberRank
    Sep 2011 Join Date
    2,191Posts

    Re: RCON For Plus r2

    The mus system of Plus its obsolete and makes impossible to enter on hotel when connected.

  8. #8
    ส็็็็็็็ Bloodraven is offline
    MemberRank
    Sep 2009 Join Date
    AntarcticaLocation
    2,414Posts

    Re: RCON For Plus r2

    Quote Originally Posted by Claudi0 View Post
    The mus system of Plus its obsolete and makes impossible to enter on hotel when connected.
    RCON and MUS, there the same thing.

  9. #9
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: RCON For Plus r2

    Quote Originally Posted by Claudi0 View Post
    The mus system of Plus its obsolete and makes impossible to enter on hotel when connected.
    Your statement is false.

    MUS runs on another port than the gameport and you can connect through it with PHP or any other language that supports sockets.

    Also you don't even know how 'your' code works as you got everything from the internet.

    Do you even have proof that it works...?

  10. #10
    Live Ocottish Sverlord Joopie is offline
    LegendRank
    Jun 2010 Join Date
    The NetherlandsLocation
    2,773Posts

    Re: RCON For Plus r2

    Quote Originally Posted by Bloodraven View Post
    RCON and MUS, there the same thing.
    If I remember it correctly and I beleave I do, MUS was designed for the Camera feature back in the oldskool versions. MUS has actually nothing to do with RCON. The creator of Holograph made the mistake to call RCON, MUS and so on it's called MUS nowadays.

    Ever MUS socket we have in emulators are actually RCON sockets and not MUS.

    As quoted below, they talk about MUS for camera's like I stated above. I'm sure somebody remembers the thread where people where discussing about this.

    Quote Originally Posted by Near View Post
    I'm working on the camera and I've got the MUS server working, ......
    RCon: Remote Control
    Mus: MultiUser Server

    http://opensmus.sourceforge.net/features.html
    Native Shockwave Multiuser Server Protocol Support
    The server understands the native Shockwave MultiUser 3 binary protocol as published by Macromedia. Messages can contain any supported Lingo datatype including media, point, rect, symbol, string, integer, float, vectors and transforms. Full Shockwave encryption is supported and communication is established using the standard MultiUserXtra included with Director and Shockwave.
    Last edited by Joopie; 25-04-14 at 11:16 AM.

  11. #11
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: RCON For Plus r2

    This release is still for the same thing. So, basically useless release...
    Last edited by The General; 25-04-14 at 11:12 AM.

  12. #12
    j’aime ma famille dominic is offline
    MemberRank
    Aug 2012 Join Date
    ~/Location
    611Posts

    Re: RCON For Plus r2

    Quote Originally Posted by Joopie View Post
    If I remember it correctly and I beleave I do, MUS was designed for the Camera feature back in the oldskool versions. MUS has actually nothing to do with RCON. The creator of Holograph made the mistake to call RCON, MUS and so on it's called MUS nowadays.

    Ever MUS socket we have in emulators are actually RCON sockets and not MUS.

    As quoted below, they talk about MUS for camera's like I stated above. I'm sure somebody remembers the thread where people where discussing about this.



    RCon: Remote Control
    Mus: MultiUser Server

    http://opensmus.sourceforge.net/features.html
    [/FONT][/COLOR]
    As far as I remember, Dom (or whoever) stated that Mus was just something they just named it... And it kinda hang on, and still is here. It's supposed to be RCON.

  13. #13
    Apprentice laionppf is offline
    MemberRank
    Jan 2014 Join Date
    Lagarto, BrazilLocation
    10Posts

    Re: RCON For Plus r2

    I like sul0wn project :P, RCON and MUS there the same thing.

  14. #14
    git bisect -m ovflowd is offline
    MemberRank
    Sep 2011 Join Date
    2,191Posts

    Re: RCON For Plus r2

    MUS and RCON isnt same thing, do you have read what joopie say?
    The structure of MUS created by meth0d its for the camera usage.
    And the RCON its a remote control center, if you open the mus in the Plus R2, the incoming packets shows errors.
    The RCON structure its not based on the MUS of meth0d, i have used the "ChatApplication" of codeproject, and modfied to be a better control system.

  15. #15
    Apprentice laionppf is offline
    MemberRank
    Jan 2014 Join Date
    Lagarto, BrazilLocation
    10Posts

    Re: RCON For Plus r2

    Yes, understand .



Advertisement