Beispiel #1
0
        private static bool SendMail(IDictionary <string, string> Form)
        {
            bool result    = false;
            var  Title     = System.Web.HttpUtility.UrlDecode(Form["txt_Title"].ToSafeString());
            var  Gold      = Form["txt_gold"].ConvertToInt();
            var  Money     = Form["txt_money"].ConvertToInt();
            var  GiftToken = Form["txt_liJuan"].ConvertToInt();
            var  Content   = System.Web.HttpUtility.UrlDecode(Form["txt_Content"].ToSafeString());
            var  str       = "";

            if (tabGoods != null)
            {
                foreach (DataRow x in tabGoods.Rows)
                {
                    str += string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}|", new object[]
                    {
                        x["TemplateId"],
                        x["GoodNumber"],
                        x["ValidDate"],
                        x["StrengthenLevel"],
                        x["AttackCompose"],
                        x["DefendCompose"],
                        x["AgilityCompose"],
                        x["LuckCompose"],
                        (x["IsBind"].ToString() == "True") ? 1 : 0
                    });
                }
                str.RemoveLastOne();
            }
            int[] IDs = Form["txt_userID"].Split(',').ConvertToIntArray();
            using (var a = new PlayerBussiness())
            {
                foreach (var id in IDs)
                {
                    a.SendMailAndItem(Title, Content, id, Gold, Money, GiftToken, str);
                    OpenAPIs.MailNotice(id);
                }
            }
            result   = true;
            tabGoods = null;
            return(result);
        }
Beispiel #2
0
        public static void Process(IHttpRequest Request, IHttpResponse Response)
        {
            string   p       = Request.Uri.QueryString["p"];
            string   site    = (Request.Uri.QueryString["site"] == null) ? "" : Request.Uri.QueryString["site"];
            string   IP      = Request.UserHostAddress;
            bool     value   = false;
            string   message = LanguageMgr.GetTranslation("Tank.Request.Login.Fail1", new object[0]);
            bool     isError = false;
            XElement result  = new XElement("Result");
            string   rsa     = "<RSAKeyValue><Modulus>zRSdzFcnZjOCxDMkWUbuRgiOZIQlk7frZMhElQ0a7VqZI9VgU3+lwo0ghZLU3Gg63kOY2UyJ5vFpQdwJUQydsF337ZAUJz4rwGRt/MNL70wm71nGfmdPv4ING+DyJ3ZxFawwE1zSMjMOqQtY4IV8his/HlgXuUfIHVDK87nMNLc=</Modulus><Exponent>AQAB</Exponent><P>7lzjJCmL0/unituEcjoJsZhUDYajgiiIwWwuh0NlCZElmfa5M6l8H+Ahd9yo7ruT6Hrwr4DAdrIKP6LDmFhBdw==</P><Q>3EFKHt4FcDiZXRBLqYZaNSmM1KDrrU97N3CtEDCYS4GimmFOGJhmuK3yGfp/nYLcL2BTKyOZLSQO+/nAjRp2wQ==</Q><DP>SFdkkGsThuiPdrMcxVYb7wxeJiTApxYKOznL/T1VAsxMbyfUGXvMshfh0HDlzF6diycUuQ8IWn26YonRdwECDQ==</DP><DQ>xR9x1NpkB6HAMHhLHzftODMtpYc4Jm5CGsYvPZQgWUN2YbDAkmajWJnlWbbFzBS4N3aAONWtW6cv+ff2itKqgQ==</DQ><InverseQ>oyJzP0Sn+NgdNRRc7/cUKkbbbYaNxkDLDvKLDYMKV6+gcDce85t/FGfaTwkuYQNFqkrRBtDYjtfGsPRTGS6Mow==</InverseQ><D>wM33JNtzUSRwdmDWdZC4BuOYa2vJoD0zc0bNI4x0ml2oyAWdUCMcBfKEds/6i1T6s2e91d2dcJ/aI27o22gO/sfNg3tsr7uYMiUuhSjniqBDB/zyUVig29E4qdfuY1GHxTE8zurroY8mgGEB0aLj+gE0yX9T7sDFkY0QYRqJnwE=</D></RSAKeyValue>";
            //try
            //{
            LSJInterface inter = LSJInterface.CreateInterface();

            if (!string.IsNullOrEmpty(p))
            {
                byte[]   src     = RsaDecryt2(GetRSACrypto(rsa), p);
                string[] strList = Encoding.UTF8.GetString(src, 7, src.Length - 7).Split(new char[]
                {
                    ','
                });
                if (strList.Length == 4)
                {
                    message = LanguageMgr.GetTranslation("Tank.Request.Login.Fail100", new object[0]);
                    string name     = strList[0];
                    string pwd      = strList[1];
                    string newPwd   = strList[2];
                    string nickname = strList[3];
                    if (PlayerManager.Login(name, pwd))
                    {
                        message = LanguageMgr.GetTranslation("Tank.Request.Login.Fail1000", new object[0]);
                        int        isFirst       = 0;
                        bool       isActive      = false;
                        bool       firstValidate = PlayerManager.GetByUserIsFirst(name);
                        bool       needcreate    = false;
                        PlayerInfo player        = inter.CreateLogin(name, newPwd, ref message, ref isFirst, IP, ref isError, firstValidate, ref isActive, site, nickname, out needcreate);
                        if (needcreate)
                        {
                            OpenAPIs.CreatePlayer(player.ID, name, newPwd, isFirst == 0);
                        }
                        //message = LanguageMgr.GetTranslation("Tank.Request.Login.Fail10", new object[0]);
                        if (player != null && !isError)
                        {
                            message = LanguageMgr.GetTranslation("Tank.Request.Login.Fail10000", new object[0]);
                            if (isFirst == 0)
                            {
                                PlayerManager.Update(name, newPwd);
                            }
                            else
                            {
                                PlayerManager.Remove(name);
                            }
                            string style = string.IsNullOrEmpty(player.Style) ? ",,,,,,,," : player.Style;
                            player.Colors = (string.IsNullOrEmpty(player.Colors) ? ",,,,,,,," : player.Colors);
                            XElement node = new XElement("Item", new object[]
                            {
                                new XAttribute("ID", player.ID),
                                new XAttribute("IsFirst", isFirst),
                                new XAttribute("NickName", player.NickName),
                                new XAttribute("Date", ""),
                                new XAttribute("IsConsortia", 0),
                                new XAttribute("ConsortiaID", player.ConsortiaID),
                                new XAttribute("Sex", player.Sex),
                                new XAttribute("WinCount", player.Win),
                                new XAttribute("TotalCount", player.Total),
                                new XAttribute("EscapeCount", player.Escape),
                                new XAttribute("DutyName", (player.DutyName == null) ? "" : player.DutyName),
                                new XAttribute("GP", player.GP),
                                new XAttribute("Honor", ""),
                                new XAttribute("Style", style),
                                new XAttribute("Gold", player.Gold),
                                new XAttribute("Colors", (player.Colors == null) ? "" : player.Colors),
                                new XAttribute("Attack", player.Attack),
                                new XAttribute("Defence", player.Defence),
                                new XAttribute("Agility", player.Agility),
                                new XAttribute("Luck", player.Luck),
                                new XAttribute("Grade", player.Grade),
                                new XAttribute("Hide", player.Hide),
                                new XAttribute("Repute", player.Repute),
                                new XAttribute("ConsortiaName", (player.ConsortiaName == null) ? "" : player.ConsortiaName),
                                new XAttribute("Offer", player.Offer),
                                new XAttribute("Skin", (player.Skin == null) ? "" : player.Skin),
                                new XAttribute("ReputeOffer", player.ReputeOffer),
                                new XAttribute("ConsortiaHonor", player.ConsortiaHonor),
                                new XAttribute("ConsortiaLevel", player.ConsortiaLevel),
                                new XAttribute("ConsortiaRepute", player.ConsortiaRepute),
                                new XAttribute("Money", player.Money),
                                new XAttribute("AntiAddiction", player.AntiAddiction),
                                new XAttribute("IsMarried", player.IsMarried),
                                new XAttribute("SpouseID", player.SpouseID),
                                new XAttribute("SpouseName", (player.SpouseName == null) ? "" : player.SpouseName),
                                new XAttribute("MarryInfoID", player.MarryInfoID),
                                new XAttribute("IsCreatedMarryRoom", player.IsCreatedMarryRoom),
                                new XAttribute("IsGotRing", player.IsGotRing),
                                new XAttribute("LoginName", (player.UserName == null) ? "" : player.UserName),
                                new XAttribute("Nimbus", player.Nimbus),
                                new XAttribute("FightPower", player.FightPower),
                                new XAttribute("AnswerSite", player.AnswerSite),
                                new XAttribute("VIPLevel", player.VipLevel),
                                new XAttribute("ChargedMoney", player.ChargedMoney)
                            });
                            result.Add(node);
                            value   = true;
                            message = LanguageMgr.GetTranslation("Tank.Request.Login.Success", new object[0]);
                        }
                        else
                        {
                            PlayerManager.Remove(name);
                        }
                    }
                    else
                    {
                        message = LanguageMgr.GetTranslation("登录已失效,请重新登录", new object[0]);
                    }
                }
            }
            // }
            //catch
            //{

            //   value = false;
            //   message = LanguageMgr.GetTranslation("Tank.Request.Login.Fail", new object[0]);
            //}
            result.Add(new XAttribute("value", value));
            result.Add(new XAttribute("message", message));
            Response.Write(result.ToString(false));
        }
Beispiel #3
0
        public static string Action(string action, Dictionary <string, string> param)
        {
            string msg    = "错误";
            var    dic    = new SafeStringToStringDirectionary(param);
            var    runmgr = WebServer.Runmgr;

            switch (action)
            {
            case "start":
                #region start
                if (dic["type"] == "center")
                {
                    if (!runmgr.CenterStatus)
                    {
                        if (runmgr.StartCenter())
                        {
                            WebServer.Instance.Reconnect();
                            msg = "成功";
                        }
                    }
                }
                else if (dic["type"] == "fight")
                {
                    if (!runmgr.FightStatus)
                    {
                        if (runmgr.StartFight())
                        {
                            msg = "成功";
                        }
                    }
                }
                else if (dic["type"] == "game")
                {
                    if (!runmgr.GameStatus)
                    {
                        if (runmgr.StartGame())
                        {
                            msg = "成功";
                        }
                    }
                }
                #endregion
                break;

            case "stop":
                #region stop
                if (dic["type"] == "center")
                {
                    if (runmgr.CenterStatus)
                    {
                        if (runmgr.StopCenter())
                        {
                            msg = "成功";
                        }
                    }
                }
                else if (dic["type"] == "fight")
                {
                    if (runmgr.FightStatus)
                    {
                        if (runmgr.StopFight())
                        {
                            msg = "成功";
                        }
                    }
                }
                else if (dic["type"] == "game")
                {
                    if (runmgr.GameStatus)
                    {
                        if (runmgr.StopGame())
                        {
                            msg = "成功";
                        }
                    }
                }
                #endregion
                break;

            case "notice":
                #region notice
                var str = dic["str"];
                if (str != "")
                {
                    if (OpenAPIs.SendNotice(str))
                    {
                        msg = "发送成功";
                    }
                }
                #endregion
                break;

            case "kitoff":
                #region kitoff
                var UserID = dic["UserID"].ConvertToInt(0);
                if (UserID == 0)
                {
                    msg = "用户ID错误!";
                }
                else
                {
                    if (OpenAPIs.KitoffUser(UserID, "你被管理员踢出游戏"))
                    {
                        msg = "成功!";
                    }
                    else
                    {
                        msg = "失败!";
                    }
                }
                #endregion
                break;

            case "forbid":
                #region forbid
                var UserID2 = dic["UserID"].ConvertToInt(0);
                if (UserID2 == 0)
                {
                    msg = "用户ID错误!";
                }
                else
                {
                    var reason = dic["reason"];
                    var day    = dic["day"].ConvertToInt(1);
                    if (day > 0)
                    {
                        if (new ManageBussiness().ForbidPlayerByUserID(UserID2, DateTime.Now.AddDays(day), false, reason))
                        {
                            msg = "成功!";
                        }
                        else
                        {
                            msg = "失败!";
                        }
                    }
                    else
                    {
                        if (new ManageBussiness().ForbidPlayerByUserID(UserID2, DateTime.Now, true, ""))
                        {
                            msg = "成功!";
                        }
                        else
                        {
                            msg = "失败!";
                        }
                    }
                }
                #endregion
                break;

            case "charge":
                #region charge
                var UserID3 = dic["UserID"].ConvertToInt(0);
                if (UserID3 == 0)
                {
                    msg = "用户ID错误!";
                }
                else
                {
                    int      money     = dic["money"].ConvertToInt(0);
                    DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                    int      ID        = (int)(DateTime.Now - startTime).TotalSeconds;
                    if (new ManageBussiness().AddCharge(ID, UserID3, money))
                    {
                        msg = "成功!";
                    }
                    else
                    {
                        msg = "失败!";
                    }
                }
                #endregion
                break;

            default:
                break;
            }

            return(msg);
        }
Beispiel #4
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int result;

            try
            {
                GSPacketIn pkg = packet.Clone();
                pkg.ClearContext();
                if (client.Player == null)
                {
                    int    version    = packet.ReadInt();
                    int    clientType = packet.ReadInt();
                    byte[] src        = packet.ReadBytes();
                    try
                    {
                        src = WorldMgr.RsaCryptor.Decrypt(src, false);
                    }
                    //catch (ExecutionEngineException e)
                    //{
                    //	client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.RsaCryptorError", new object[0]));
                    ///	client.Disconnect();
                    //	GameServer.log.Error("ExecutionEngineException", e);
                    //	result = 0;
                    //	return result;
                    //}
                    catch (Exception ex)
                    {
                        client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.RsaCryptorError", new object[0]));
                        client.Disconnect();
                        GameServer.log.Error("RsaCryptor", ex);
                        result = 0;
                        return(result);
                    }
                    int fms_key = ((int)src[7] << 8) + (int)src[8];
                    client.SetFsm(fms_key, version);
                    string edition = GameServer.Edition;
                    if (version < int.Parse(GameServer.Edition) || version >= int.Parse(GameServer.Edition) + 1000)
                    {
                        client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.EditionError", new object[0]));
                        GameServer.log.Error("Edition Error");
                        client.Disconnect();
                        result = 0;
                        return(result);
                    }
                    string[] temp = Encoding.UTF8.GetString(src, 9, src.Length - 9).Split(new char[]
                    {
                        ','
                    });

                    if (temp.Length == 2)
                    {
                        string user = temp[0];
                        string pass = temp[1];

                        if (!LoginMgr.ContainsUser(user))
                        {
                            bool         isFirst = false;
                            LSJInterface inter   = LSJInterface.CreateInterface();
                            PlayerInfo   cha     = null;

                            int userID = 0;
                            if (OpenAPIs.ValidateLoginAndGetID(user, pass, ref userID, ref isFirst))
                            {
                                cha = new PlayerInfo
                                {
                                    ID       = userID,
                                    UserName = user
                                };
                            }



                            if (cha != null && cha.ID != 0)
                            {
                                if (cha.ID == -2)
                                {
                                    client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.Forbid", new object[0]));
                                    client.Disconnect();
                                    result = 0;
                                    return(result);
                                }
                                if (!isFirst)
                                {
                                    client.Player = new GamePlayer(cha.ID, user, client, cha, this.GetClientType(clientType));
                                    LoginMgr.Add(cha.ID, client);
                                    client.Server.LoginServer.SendAllowUserLogin(cha.ID);
                                    client.Version = version;
                                }
                                else
                                {
                                    client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.Register", new object[0]));
                                    client.Disconnect();
                                }
                            }
                            else
                            {
                                client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.OverTime", new object[0]));
                                client.Disconnect();
                            }
                        }
                        else
                        {
                            client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.LoginError", new object[0]));
                            client.Disconnect();
                        }
                    }
                    else
                    {
                        client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.LengthError", new object[0]));
                        client.Disconnect();
                    }
                }
            }
            catch (Exception ex)
            {
                client.Out.SendKitoff(LanguageMgr.GetTranslation("UserLoginHandler.ServerError", new object[0]));
                client.Disconnect();
                GameServer.log.Error(LanguageMgr.GetTranslation("UserLoginHandler.ServerError", new object[0]), ex);
            }
            result = 1;
            return(result);
        }