コード例 #1
0
        public override object DecodePage(HttpResponseMessage responce, string htmlPage, object mydata)
        {
            try
            {
                DbAction dbRequest = (DbAction)mydata;

                switch (dbRequest)
                {
                case DbAction.CreateUser:
                    string id = htmlPage.Substring(0, htmlPage.Length - 1);
                    return(id);

                case DbAction.DownloadBasicData:
                    Dictionary <string, List <string> > database = MySqlWebServer.DecodeMySqlDatabase(htmlPage);  //convert to readable data
                    Medals     = Convert.ToInt32(database["Medals"][0]);
                    Credits    = Convert.ToInt32(database["Credits"][0]);
                    Losses     = Convert.ToInt32(database["Losses"][0]);
                    Draws      = Convert.ToInt32(database["Draws"][0]);
                    Wins       = Convert.ToInt32(database["Wins"][0]);
                    SpairParts = Convert.ToInt32(database["SpairParts"][0]);
                    Rank       = Convert.ToInt32(database["Rank"][0]);
                    Level      = Convert.ToInt32(database["Level"][0]);
                    Protection = Convert.ToInt32(database["Protection"][0]);
                    return(database);

                case DbAction.SendAction:
                    return(htmlPage);
                }
            }
            catch
            { }

            return(true);
        }
コード例 #2
0
ファイル: Kernal.cs プロジェクト: Mattlekim/RiddlersoftLib
        /// <summary>
        /// creates all the server request that we call call
        /// </summary>
        private static void BuildSererRequest()
        {
            WriteLine("Building Server Request Actions...");
            _dbRequest.Add("dlbd", new DatabaseRequest(DbAction.DownloadBasicData, "http://riddlersoftgames.co.uk/database/osrh2h/getuserinfo.php", HttpEncoders.None,
                                                       (object o) =>
            {
                Dictionary <string, List <string> > db = o as Dictionary <string, List <string> >; //convert to correct type
                WriteLine("Data Recived:");
                foreach (KeyValuePair <string, List <String> > data in db)
                {
                    Write($"{data.Key}: {data.Value[0]}, ");
                }
                _status = ServerStatus.Ready;
                if (_callBack != null)
                {
                    _callBack(db);
                }
                WriteLine("");
            }));

            _dbRequest.Add("findmatch", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/findMatch.php", CustomHttpEncoders.FindMatch,
                                                            (object o) =>
            {
                if (_status != ServerStatus.Ready)
                {
                    WriteLine("You need to download user data first!");

                    return;
                }

                Dictionary <string, List <string> > db = MySqlWebServer.DecodeMySqlDatabase(o as string); //convert to readable data

                if (db != null && db.Count > 0)
                {
                    CustomHttpEncoders.OpponateId                  = Convert.ToInt32(db["Id"][0]);
                    CustomHttpEncoders.OpponatesLevel              = Convert.ToInt32(db["Level"][0]);
                    CustomHttpEncoders.OpponatesRank               = Convert.ToInt32(db["Rank"][0]);
                    CustomHttpEncoders.OpponatesAvalibleCredits    = (int)Convert.ToDouble(db["ACredits"][0]);
                    CustomHttpEncoders.OpponatesAvalibleSpairParts = (int)Convert.ToDouble(db["AParts"][0]);
                    CustomHttpEncoders.OpponatesTimeToBeat         = (float)Convert.ToDouble(db["Time"][0]);
                    WriteLine($"Opponate Found. Id: {CustomHttpEncoders.OpponateId}, " +
                              $"Credits: { CustomHttpEncoders.OpponatesAvalibleCredits}, Spair Parts: {CustomHttpEncoders.OpponatesAvalibleSpairParts}" +
                              $"Rank: {CustomHttpEncoders.OpponatesRank}");
                    if (_callBack != null)
                    {
                        _callBack(db);
                    }
                }
                else
                {
                    CustomHttpEncoders.OpponateId = -1;

                    string output = o as string;
                    if (output.Contains("#nm"))
                    {
                        CreateError(o, "No Match Found");
                    }
                    else
                    {
                        CreateError(o, "Connection Error");
                    }

                    if (DebugMode)
                    {
                        WriteLine("===Debug Trace===");
                        WriteLine(o as string);
                        WriteLine("===End Debug===");
                    }
                    if (_callBack != null)
                    {
                        _callBack(null);
                    }
                    return;
                }
            }));

            _dbRequest.Add("nextmatch", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/findMatch.php", CustomHttpEncoders.NextMatch,
                                                            (object o) =>
            {
                if (_status != ServerStatus.Ready)
                {
                    WriteLine("You need to download user data first!");
                    return;
                }

                Dictionary <string, List <string> > db = MySqlWebServer.DecodeMySqlDatabase(o as string); //convert to readable data

                if (db != null)
                {
                    CustomHttpEncoders.OpponateId = Convert.ToInt32(db["Id"][0]);
                    WriteLine($"Opponate Found. Id: {CustomHttpEncoders.OpponateId}");
                    if (_callBack != null)
                    {
                        _callBack(db);
                    }
                }
                else
                {
                    CustomHttpEncoders.OpponateId = -1;
                    string output = o as string;
                    if (output.Contains("#nm"))
                    {
                        CreateError(o, "No Match Found");
                    }
                    else
                    {
                        CreateError(o, "Connection Error");
                    }
                    if (_callBack != null)
                    {
                        _callBack(null);
                    }
                    return;
                }

                if (DebugMode)
                {
                    WriteLine("===Debug Trace===");
                    WriteLine(o as string);
                    WriteLine("===End Debug===");
                }
            }));

            _dbRequest.Add("attack", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/attack.php", CustomHttpEncoders.Attack,
                                                         (object o) =>
            {
                if (_status != ServerStatus.Ready)
                {
                    WriteLine("You need to download user data first!");
                    return;
                }

                string output = o as string;
                if (output.Contains("#nm"))
                {
                    CreateError(o, "No Match Found");
                }
                else
                {
                    WriteLine("Attack Started");
                }

                if (DebugMode)
                {
                    WriteLine("===Debug Trace===");
                    WriteLine(o as string);
                    WriteLine("===End Debug===");
                }
            }));

            _dbRequest.Add("aresults", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/results.php", CustomHttpEncoders.AResult,
                                                           (object o) =>
            {
                if (_status != ServerStatus.Ready)
                {
                    WriteLine("You need to download user data first!");
                    return;
                }

                string output = o as string;
                if (output.Contains("#nm"))
                {
                    CreateError(o, "Database Error");
                }
                else
                {
                    WriteLine("Complete");
                }

                if (DebugMode)
                {
                    WriteLine("===Debug Trace===");
                    WriteLine(o as string);
                    WriteLine("===End Debug===");
                }
            }));

            ///this will make the server run its scedualed function
            _dbRequest.Add("forceserverupdate", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/sced5723.php", CustomHttpEncoders.ForceServerUpdate,
                                                                    (object o) =>
            {
                if (_status == ServerStatus.RequireInitalization)
                {
                    WriteLine("You need initalize server first!");
                    return;
                }

                string output = o as string;
                if (output.Contains("#nm"))
                {
                    CreateError(o, "Database Error");
                }
                else
                {
                    WriteLine("Complete");
                }

                if (DebugMode)
                {
                    WriteLine("===Debug Trace===");
                    WriteLine(o as string);
                    WriteLine("===End Debug===");
                }
            }));

            _dbRequest.Add("res", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/base/change.php", CustomHttpEncoders.Resources,
                                                      (object o) =>
            {
                if (_status == ServerStatus.RequireInitalization)
                {
                    WriteLine("You need initalize server first!");

                    if (_callBack != null)
                    {
                        _callBack("e0");
                    }
                    return;
                }

                string output = o as string;
                if (output.Contains("#nm"))
                {
                    CreateError(o, "Database Error");
                }
                else
                {
                    WriteLine("Complete");
                }

                if (DebugMode)
                {
                    WriteLine("===Debug Trace===");
                    WriteLine(o as string);
                    WriteLine("===End Debug===");
                }

                _status = ServerStatus.Ready;
                if (_callBack != null)
                {
                    _callBack(output);
                }
            }));

            WriteLine("Done.");
        }