Exemple #1
0
        public static string Req_Create_Login(BaofengUser user)
        {
            string url = user.ServerName + "/login";

            Dictionary <string, string> data = new Dictionary <string, string>();

            data["user_token"]       = "";
            data["login_time_stamp"] = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString();
            data["login_token"]      = user.logintoken;
            data["user_id"]          = user.userid;
            data["account_platform"] = user.account_platform;
            string errMsg  = "";
            string repdata = PostData(url, data, out errMsg);

            if (!string.IsNullOrEmpty(repdata))
            {
                string player_id = repdata.GetQueryStringValue("player_id");
                int    int_id;
                if (int.TryParse(player_id, out int_id))
                {
                    user.player_id = int_id;
                    user.is_cheat  = repdata.GetQueryStringValue("is_cheat").Asbool();
                    user.userName  = repdata.GetQueryStringValue("user_name");
                    DbContext.Get().Db.Updateable(user).ExecuteCommand();
                }
            }
            return(errMsg);
        }
Exemple #2
0
        public static void ResaveUserData(string dataStr, BaofengUser user, out BaofengUserdata bfd)
        {
            bfd = null;

            byte[] bytes = Convert.FromBase64String(dataStr);
            var    dicts = Util__UnzipFile(bytes);

            var dbc = DbContext.Get();

            bfd = dbc.GetEntityDB <BaofengUserdata>().GetSingle(i => i.userId == user.id);
            if (bfd == null)
            {
                bfd        = new BaofengUserdata();
                bfd.userId = user.id;
            }
            else
            {
                BaofengUserdata_bak bfk = new BaofengUserdata_bak();
                bfk.userId   = bfd.userId;
                bfk.actor    = bfd.actor;
                bfk.amulet   = bfd.amulet;
                bfk.bag      = bfd.bag;
                bfk.level    = bfd.level;
                bfk.mission  = bfd.mission;
                bfk.other    = bfd.other;
                bfk.player   = bfd.player;
                bfk.practice = bfd.practice;
                bfk.setting  = bfd.setting;
                bfk.store    = bfd.store;
                bfk.uid      = bfd.uid;
                bfk.cdate    = bfd.updateDate;
                dbc.Db.Insertable(bfk).ExecuteCommand();
            }
            bfd.actor      = dicts["actor"];
            bfd.amulet     = dicts["amulet"];
            bfd.bag        = dicts["bag"];
            bfd.level      = dicts["level"];
            bfd.mission    = dicts["mission"];
            bfd.other      = dicts["other"];
            bfd.player     = dicts["player"];
            bfd.practice   = dicts["practice"];
            bfd.setting    = dicts["setting"];
            bfd.store      = dicts["store"];
            bfd.uid        = dicts["uid"];
            bfd.updateDate = DateTime.Now;
            if (bfd.id > 0)
            {
                dbc.Db.Updateable(bfd).ExecuteCommand();
            }
            else
            {
                dbc.Db.Insertable(bfd).ExecuteCommand();
            }
        }
        private void gameAction_download_save(string urlHost, JObject ReqJo, JObject Rep)
        {
            string      bodyData = ReqJo["data"].ToString();
            string      user_id  = bodyData.GetQueryStringValue("user_id");
            var         dbc      = DbContext.Get();
            BaofengUser user     = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == user_id && i.ServerName == urlHost);

            if (user == null)
            {
                Rep["skip"] = "1";
                return;
            }

            StringBuilder localSaveData = new StringBuilder();

            localSaveData.Append("is_cheat=0&result=1&server_time_stamp=");
            localSaveData.Append(((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString());
            bool force_download = bodyData.GetQueryStringValue("force_download").Asbool();

            if (user.isHold || force_download)
            {
                user.isHold = false;
                dbc.Db.Updateable(user).ExecuteCommand();
                //打包本地存档
                localSaveData.Append("&savefile_data=");
                BaofengUserdata userdata = dbc.GetEntityDB <BaofengUserdata>().GetSingle(i => i.userId == user.id);
                if (userdata == null)
                {
                    Rep["skip"] = "1";
                    return;
                }
                Dictionary <string, string> fileDict = new Dictionary <string, string>();
                fileDict.Add("actor", userdata.actor);
                fileDict.Add("amulet", userdata.amulet);
                fileDict.Add("bag", userdata.bag);
                fileDict.Add("level", userdata.level);
                fileDict.Add("mission", userdata.mission);
                fileDict.Add("other", userdata.other);
                fileDict.Add("player", userdata.player);
                fileDict.Add("practice", userdata.practice);
                fileDict.Add("setting", userdata.setting);
                fileDict.Add("store", userdata.store);
                fileDict.Add("uid", userdata.uid);
                var zipbytes = comFunc.Util__ZipFile(fileDict);
                localSaveData.Append(Convert.ToBase64String(zipbytes));
            }
            Rep["ok"]   = true;
            Rep["data"] = localSaveData.ToString();
        }
        private void gameAction_player_update_info(string urlHost, JObject ReqJo, JObject Rep)
        {
            string      bodyData = ReqJo["data"].ToString();
            string      user_id  = bodyData.GetQueryStringValue("user_id");
            var         dbc      = DbContext.Get();
            BaofengUser user     = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == user_id && i.ServerName == urlHost);

            if (user == null || !user.isHold)
            {
                Rep["skip"] = "1";
                return;
            }

            Rep["ok"]   = true;
            Rep["data"] = "data=/QgpzIVkygFBgBDv6ajAgiLHw==";
        }
        private void gameAction_player_check_use_item(string urlHost, JObject ReqJo, JObject Rep)
        {
            string      bodyData = ReqJo["data"].ToString();
            string      data     = HttpUtility.UrlDecode(bodyData.GetQueryStringValue("data"));
            JObject     obj      = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(comFunc.DecodeParams(data));
            int         playerId = obj["pid"].ToString().AsInt();
            var         dbc      = DbContext.Get();
            BaofengUser user     = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.player_id == playerId && i.ServerName == urlHost);

            if (user == null)
            {
                Rep["skip"] = "1";
                return;
            }

            Rep["ok"]   = true;
            Rep["data"] = "data=/QgpzIVkyhB5b4tG5hkBwYAqTgeywkIix8=";
        }
Exemple #6
0
        public JObject save([FromBody] JObject data, string userid, string servername)
        {
            JObject resObj = new JObject();

            resObj["ok"]  = false;
            resObj["msg"] = "";
            string svrHost = GlobalSettings.getServerHost(servername);

            var         dbc  = DbContext.Get();
            BaofengUser user = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == userid && i.ServerName == svrHost);

            if (user == null)
            {
                resObj["msg"] = "未找到用户";
                return(resObj);
            }
            BaofengUserdata bfd = dbc.GetEntityDB <BaofengUserdata>().GetSingle(i => i.userId == user.id);

            if (bfd == null)
            {
                string errmsg = comFunc.Req_Create_download_save(user, out bfd);
                if (!string.IsNullOrEmpty(errmsg))
                {
                    resObj["msg"] = errmsg;
                    return(resObj);
                }
            }
            JObject bagContext = comFunc.BagLua2Json(bfd.bag);

            foreach (var item in data)
            {
                bagContext["ret"]["itemDatas"][item.Key] = item.Value;
            }
            bfd.bag = comFunc.Json2BagLua(bagContext);

            user.isHold = true;
            dbc.Db.Updateable(user).ExecuteCommand();
            dbc.Db.Updateable(bfd).ExecuteCommand();
            resObj["ok"] = true;
            return(resObj);
        }
Exemple #7
0
        public JObject checklogin([FromBody] JObject data, string userid, string servername)
        {
            JObject resObj = new JObject();

            resObj["ok"]  = false;
            resObj["msg"] = "";
            string svrHost = GlobalSettings.getServerHost(servername);

            var         dbc  = DbContext.Get();
            BaofengUser user = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == userid && i.ServerName == svrHost);

            if (user == null)
            {
                resObj["msg"] = "未找到用户";
                return(resObj);
            }
            comFunc.Req_Create_Login(user);

            resObj["ok"] = true;
            return(resObj);
        }
Exemple #8
0
        public static string Req_Create_download_save(BaofengUser user, out BaofengUserdata bfd)
        {
            bfd = null;
            string errMsg = "";

            errMsg = Req_Create_Login(user);
            if (!string.IsNullOrEmpty(errMsg))
            {
                return(errMsg);
            }

            string url = user.ServerName + "/download_save";

            Dictionary <string, string> data = new Dictionary <string, string>();

            data["login_time_stamp"] = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString();
            data["login_token"]      = user.logintoken;
            data["user_id"]          = user.userid;
            data["force_download"]   = "1";
            string repdata = PostData(url, data, out errMsg);

            if (!string.IsNullOrEmpty(repdata))
            {
                string savefile_data = repdata.GetQueryStringValue("savefile_data");
                if (!string.IsNullOrEmpty(savefile_data))
                {
                    user.is_cheat = repdata.GetQueryStringValue("is_cheat").Asbool();
                    DbContext.Get().Db.Updateable(user).ExecuteCommand();

                    ResaveUserData(savefile_data, user, out bfd);
                    return("");
                }
                else
                {
                    return(repdata);
                }
            }
            return(errMsg);
        }
Exemple #9
0
        public IActionResult Accinfo(string userid, string servername, string refresh = "")
        {
            string svrHost = GlobalSettings.getServerHost(servername);

            var         dbc  = DbContext.Get();
            BaofengUser user = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == userid && i.ServerName == svrHost);

            if (user == null)
            {
                return(NotFound());
            }
            BaofengUserdata bfd = null;

            if (!"refresh".Equals(refresh) || user.is_cheat)  //如果账号已被ban,服务器没有最新存档
            {
                bfd = dbc.GetEntityDB <BaofengUserdata>().GetSingle(i => i.userId == user.id);
            }
            if (bfd == null)
            {
                string errmsg = comFunc.Req_Create_download_save(user, out bfd);
                if (!string.IsNullOrEmpty(errmsg))
                {
                    return(View(new AccInfoModel()
                    {
                        ErrMsg = errmsg,
                        user = user
                    }));
                }
            }
            var Bag = comFunc.BagLua2Json(bfd.bag);

            return(View(new AccInfoModel()
            {
                Bag = (JObject)Bag["ret"]["itemDatas"],
                user = user
            }));
        }
        private void gameAction_upload_save(string urlHost, JObject ReqJo, JObject Rep)
        {
            string      bodyData = ReqJo["data"].ToString();
            string      user_id  = bodyData.GetQueryStringValue("user_id");
            var         dbc      = DbContext.Get();
            BaofengUser user     = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == user_id && i.ServerName == urlHost);

            if (user == null)
            {
                Rep["skip"] = "1";
                return;
            }
            string datazipStr = bodyData.GetQueryStringValue("file");

            BaofengUserdata bfd;

            comFunc.ResaveUserData(HttpUtility.UrlDecode(datazipStr), user, out bfd);

            //StringBuilder sbreoStr = new StringBuilder();
            //sbreoStr.Append("is_cheat=&result=1&server_time_stamp=");
            //sbreoStr.Append(((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString());
            //Rep["ok"] = true;
            //Rep["data"] = sbreoStr.ToString();
        }
        private void gameAction_login(string urlHost, JObject ReqJo, JObject Rep)
        {
            string      bodyData = ReqJo["data"].ToString();
            string      user_id  = bodyData.GetQueryStringValue("user_id");
            var         dbc      = DbContext.Get();
            BaofengUser user     = dbc.GetEntityDB <BaofengUser>().GetSingle(i => i.userid == user_id && i.ServerName == urlHost);

            if (user == null)
            {
                user = new BaofengUser();
            }
            //提交真实请求
            string errMsg  = "";
            string repdata = comFunc.PostData(ReqJo["url"].ToString(), bodyData, out errMsg);

            if (!string.IsNullOrEmpty(errMsg))
            {
                Rep["skip"] = "1";
                return;
            }
            if (repdata.IndexOf("in_ip_blacklist=1") > 0)
            {
                //ipBan.
                StringBuilder localSaveData = new StringBuilder();
                localSaveData.Append("server_time_stamp=");
                localSaveData.Append(((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString());
                localSaveData.Append("&player_id=");
                localSaveData.Append(user.player_id);
                localSaveData.Append("&is_cheat=0&in_ip_blacklist=0&result=1&user_name=");
                localSaveData.Append(user.userName);
                repdata = localSaveData.ToString();
            }

            string player_id = repdata.GetQueryStringValue("player_id");
            int    int_id;

            if (!int.TryParse(player_id, out int_id))
            {
                Rep["skip"] = "1";
                return;
            }
            user.player_id = int_id;
            user.is_cheat  = repdata.GetQueryStringValue("is_cheat").Asbool();
            user.userName  = repdata.GetQueryStringValue("user_name");

            user.logintoken = bodyData.GetQueryStringValue("login_token");
            if (user.id == 0)
            {
                user.userid           = user_id;
                user.ServerName       = urlHost;
                user.usertoken        = bodyData.GetQueryStringValue("user_token");
                user.account_platform = bodyData.GetQueryStringValue("account_platform");
                dbc.Db.Insertable(user).ExecuteCommand();
            }
            else
            {
                dbc.Db.Updateable(user).ExecuteCommand();
            }
            //被ban的账号,删除ban标志
            if (user.is_cheat)
            {
                repdata = repdata.Replace("is_cheat=1", "is_cheat=0");
            }
            Rep["ok"]   = true;
            Rep["data"] = repdata;
        }