예제 #1
0
 public static void initFacebook(string[] fields)
 {
     FacebookManager._FacebookAwards = new Dictionary <int, FacebookAwardData>();
     if (fields != null && fields.Length > 0)
     {
         foreach (string item in fields)
         {
             if (item != null)
             {
                 string[] arr = item.Split(new char[]
                 {
                     ':'
                 });
                 FacebookAwardData config = new FacebookAwardData();
                 config.AwardID     = Convert.ToInt32(arr[0]);
                 config.DbKey       = arr[1];
                 config.OnlyNum     = Convert.ToInt32(arr[2]);
                 config.DayMaxNum   = Convert.ToInt32(arr[3]);
                 config.MailTitle   = arr[5];
                 config.MailContent = arr[6];
                 config.MailUser    = arr[7];
                 string awards = arr[4];
                 if (awards.Length > 0)
                 {
                     config.AwardGoods = new List <GoodsData>();
                     string[] awardsArr = awards.Split(new char[]
                     {
                         '|'
                     });
                     foreach (string award in awardsArr)
                     {
                         string[] oneArr = award.Split(new char[]
                         {
                             ','
                         });
                         GoodsData d = new GoodsData();
                         d.GoodsID = Convert.ToInt32(oneArr[0]);
                         d.GCount  = Convert.ToInt32(oneArr[1]);
                         d.Binding = Convert.ToInt32(oneArr[2]);
                         config.AwardGoods.Add(d);
                     }
                 }
                 FacebookManager._FacebookAwards.Add(config.AwardID, config);
             }
         }
         FacebookManager._isInitFacebook = true;
     }
 }
예제 #2
0
        public static int SendAward(DBManager dbMgr, int roleID, int awardID)
        {
            FacebookAwardData awardData = FacebookManager.getFacebookAward(awardID);
            int result;

            if (awardData == null)
            {
                result = -6;
            }
            else
            {
                if (awardData.OnlyNum > 0)
                {
                    int totalNum = DBQuery.FacebookOnlyNum(dbMgr, roleID, awardID);
                    if (totalNum > 0)
                    {
                        return(-5);
                    }
                }
                if (awardData.DayMaxNum > 0)
                {
                    int totalNum = DBQuery.FacebookDayNum(dbMgr, roleID, awardID);
                    if (totalNum >= awardData.DayMaxNum)
                    {
                        return(-5);
                    }
                }
                string mailGoodsString = "";
                if (null != awardData.AwardGoods)
                {
                    foreach (GoodsData goods in awardData.AwardGoods)
                    {
                        int useCount = goods.GCount;
                        mailGoodsString += string.Format("{0}_{1}_{2}_{3}_{4}_{5}_{6}_{7}_{8}_{9}_{10}_{11}_{12}_{13}_{14}_{15}", new object[]
                        {
                            goods.GoodsID,
                            goods.Forge_level,
                            goods.Quality,
                            goods.Props,
                            useCount,
                            0,
                            0,
                            goods.Jewellist,
                            goods.AddPropIndex,
                            goods.Binding,
                            goods.BornIndex,
                            goods.Lucky,
                            goods.Strong,
                            goods.ExcellenceInfo,
                            goods.AppendPropLev,
                            goods.ChangeLifeLevForEquip
                        });
                        if (mailGoodsString.Length > 0)
                        {
                            mailGoodsString += "|";
                        }
                    }
                }
                string[] fields = new string[]
                {
                    "-1",
                    awardData.MailUser,
                    roleID.ToString(),
                    "",
                    awardData.MailTitle.ToString(),
                    awardData.MailContent.ToString(),
                    "0",
                    "0",
                    "0",
                    mailGoodsString
                };
                int addGoodsCount = 0;
                int mailID        = Global.AddMail(dbMgr, fields, out addGoodsCount);
                if (mailID > 0)
                {
                    string gmCmd     = string.Format("{0}|{1}", roleID.ToString(), mailID);
                    string gmCmdData = string.Format("-notifymail {0}", gmCmd);
                    ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData);
                    result = mailID;
                }
                else
                {
                    result = -8;
                }
            }
            return(result);
        }
예제 #3
0
        public static bool initFacebook()
        {
            string   fileName = "Config/FacebookAward.xml";
            XElement xml      = ConfigHelper.Load(Global.GameResPath(fileName));
            bool     result;

            if (null == xml)
            {
                LogManager.WriteLog(LogTypes.Error, "加载Config/FacebookAward.xml时出错!!!文件不存在", null, true);
                result = false;
            }
            else
            {
                try
                {
                    FaceBookManager._FacebookAwards.Clear();
                    IEnumerable <XElement> xmlItems = xml.Elements();
                    foreach (XElement xmlItem in xmlItems)
                    {
                        if (xmlItem != null)
                        {
                            FacebookAwardData config = new FacebookAwardData();
                            config.AwardID     = Convert.ToInt32(Global.GetSafeAttributeLong(xmlItem, "ID"));
                            config.AwardName   = Global.GetSafeAttributeStr(xmlItem, "Name");
                            config.DbKey       = Global.GetSafeAttributeStr(xmlItem, "DbKey");
                            config.DayMaxNum   = Convert.ToInt32(Global.GetSafeAttributeLong(xmlItem, "DayMaxNum"));
                            config.OnlyNum     = Convert.ToInt32(Global.GetSafeAttributeLong(xmlItem, "OnlyNum"));
                            config.MailUser    = GLang.GetLang(112, new object[0]);
                            config.MailTitle   = Global.GetSafeAttributeStr(xmlItem, "MailTitle");
                            config.MailContent = Global.GetSafeAttributeStr(xmlItem, "MailContent");
                            string awards = Global.GetSafeAttributeStr(xmlItem, "AwardGoods");
                            if (awards.Length > 0)
                            {
                                config.AwardGoods = new List <GoodsData>();
                                string[] awardsArr = awards.Split(new char[]
                                {
                                    '|'
                                });
                                foreach (string award in awardsArr)
                                {
                                    string[] oneArr = award.Split(new char[]
                                    {
                                        ','
                                    });
                                    GoodsData d = new GoodsData();
                                    d.Id      = Convert.ToInt32(oneArr[0]);
                                    d.GCount  = Convert.ToInt32(oneArr[1]);
                                    d.Binding = Convert.ToInt32(oneArr[2]);
                                    config.AwardGoods.Add(d);
                                }
                            }
                            FaceBookManager._FacebookAwards.Add(config.AwardID, config);
                        }
                    }
                    FaceBookManager.initFacebookDb();
                }
                catch (Exception)
                {
                    LogManager.WriteLog(LogTypes.Error, "加载Config/FacebookAward.xml时文件出现异常!!!", null, true);
                    Process.GetCurrentProcess().Kill();
                    return(false);
                }
                result = true;
            }
            return(result);
        }