Ejemplo n.º 1
0
 public double CompensateRate(string winNum, string info, out string winType)
 {
     winType = "";
     try
     {
         lock (this.mutex)
         {
             int Value = BoCaiHelper.String2Int(winNum);
             if (Value < 0)
             {
                 return(0.0);
             }
             DiceValueEnum EnumValue;
             if (Value > 3 && Value < 11)
             {
                 EnumValue = DiceValueEnum.DiceMin;
             }
             else if (Value >= 11 && Value < 18)
             {
                 EnumValue = DiceValueEnum.DiceMax;
             }
             else
             {
                 EnumValue = DiceValueEnum.DiceLeopard;
             }
             int num = (int)EnumValue;
             winType = num.ToString();
             string[] files = info.Split(new char[]
             {
                 ','
             });
             long buyNum     = Convert.ToInt64(files[EnumValue - DiceValueEnum.DiceMin]);
             long AllBalance = Convert.ToInt64(files[0]) + Convert.ToInt64(files[1]) + Convert.ToInt64(files[2]);
             if (AllBalance > 0L && buyNum > 0L)
             {
                 return(Math.Truncate(100.0 * (double)AllBalance / (double)buyNum) / 100.0);
             }
             return(1.0);
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteLog(LogTypes.Exception, string.Format("[ljl_caidaxiao_猜大小]{0}", ex.ToString()), null, true);
     }
     return(0.0);
 }
Ejemplo n.º 2
0
 public void OpenGetBoCai(int roleid, ref GetBoCaiResult mgsData)
 {
     try
     {
         lock (this.mutex)
         {
             if (null == this.OpenHistory.Find((OpenLottery x) => x.DataPeriods == this.ServerOpenData.DataPeriods))
             {
                 this.CopyBuyList(out mgsData.ItemList, roleid);
             }
             this.CopyBuyHistoryList(ref mgsData.ItemList, roleid);
             mgsData.NowPeriods  = this.ServerOpenData.DataPeriods;
             mgsData.IsOpen      = (this.StageData.Stage > 1);
             mgsData.Value1      = this.ServerOpenData.AllBalance.ToString();
             mgsData.Stage       = this.StageData.Stage;
             mgsData.OpenHistory = new List <BoCaiOpenHistory>();
             if (this.StageData.isOpenDay)
             {
                 mgsData.OpenTime = TimeUtil.GetDiffTimeSeconds(this.ServerData.GetStageDataTime.AddMilliseconds((double)this.StageData.OpenTime), TimeUtil.NowDateTime(), true);
             }
             else
             {
                 mgsData.OpenTime = TimeUtil.GetDiffTimeSeconds(this.ServerData.GetStageDataTime.AddSeconds((double)this.StageData.OpenTime), TimeUtil.NowDateTime(), true);
             }
             BoCaiHelper.CopyHistoryData(this.WinHistory, out mgsData.WinLotteryRoleList);
             if (null != this.OpenHistory)
             {
                 foreach (OpenLottery item in this.OpenHistory)
                 {
                     BoCaiOpenHistory data = new BoCaiOpenHistory();
                     data.DataPeriods = item.DataPeriods;
                     data.OpenValue   = item.strWinNum;
                     mgsData.OpenHistory.Add(data);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteLog(LogTypes.Exception, string.Format("[ljl_caidaxiao_猜数字]{0}", ex.ToString()), null, true);
     }
 }
Ejemplo n.º 3
0
 public bool SendWinItem(OpenLottery data, BuyBoCai2SDB buyItem)
 {
     try
     {
         buyItem.IsSend = true;
         string[] files = data.WinInfo.Split(new char[]
         {
             ','
         });
         List <int> winList;
         BoCaiHelper.String2ListInt(data.strWinNum, out winList);
         int        No1Win = Convert.ToInt32(files[0]);
         int        No2Win = Convert.ToInt32(files[1]);
         int        No3Win = Convert.ToInt32(files[2]);
         List <int> selfBuy;
         BoCaiHelper.String2ListInt(buyItem.strBuyValue, out selfBuy);
         if (selfBuy.Count != winList.Count)
         {
             LogManager.WriteLog(LogTypes.Error, string.Format("[ljl_博彩]selfBuy.Count != winList.Count DataPeriods={0}, type={1}, roleid={2}", data.DataPeriods, data.BocaiType, buyItem.m_RoleID), null, true);
             return(false);
         }
         int sameNum = 0;
         for (int i = 0; i < selfBuy.Count; i++)
         {
             if (selfBuy[i] == winList[i])
             {
                 sameNum++;
             }
         }
         int No     = 0;
         int WinNum = 0;
         if (sameNum == 5)
         {
             No     = 1;
             WinNum = No1Win * buyItem.BuyNum;
         }
         else if (sameNum == 4)
         {
             No     = 2;
             WinNum = No2Win * buyItem.BuyNum;
         }
         else if (sameNum == 3)
         {
             No     = 3;
             WinNum = No3Win * buyItem.BuyNum;
         }
         string strLog = string.Format("猜数字id={6},name={7}, {0}期开奖{1}赢得{2},自己购买{3},{4}注,info={5}", new object[]
         {
             data.DataPeriods,
             data.strWinNum,
             WinNum,
             buyItem.strBuyValue,
             buyItem.BuyNum,
             data.WinInfo,
             buyItem.m_RoleID,
             buyItem.m_RoleName
         });
         if (WinNum < 1)
         {
             buyItem.IsWin = false;
             BoCaiBuy2DBList.getInstance().AddData(buyItem, -1, true);
             return(true);
         }
         buyItem.IsWin = true;
         BoCaiBuy2DBList.getInstance().AddData(buyItem, -1, false);
         if (!"True".Equals(Global.Send2DB <BuyBoCai2SDB>(2082, buyItem, 0)))
         {
             LogManager.WriteLog(LogTypes.Warning, string.Format("[ljl_博彩]更新数据库标志失败,不发奖励,没关系 会自动处理旧数据{0}", strLog), null, true);
             return(false);
         }
         string           strTitle  = "猜数字";
         string           strIntro  = string.Format("恭喜您在{0}期猜数字玩法中,中{2}等奖,获得欢乐代币{1},系统将邮件的形式将您获取的欢乐代币返还与你。", buyItem.DataPeriods, WinNum, No);
         List <GoodsData> goodsData = new List <GoodsData>
         {
             HuanLeDaiBiManager.GetInstance().GetHuanLeDaiBi(WinNum)
         };
         return(this.SendMail(buyItem, goodsData, strTitle, strIntro, WinNum, true));
     }
     catch (Exception ex)
     {
         LogManager.WriteLog(LogTypes.Exception, string.Format("[ljl_博彩]{0}", ex.ToString()), null, true);
     }
     return(false);
 }
Ejemplo n.º 4
0
 private void BuyCaiShuzi(GameClient client, int BuyNum, string strBuyVal, ref BuyBoCaiResult mgsData)
 {
     try
     {
         List <int> buyList;
         BoCaiHelper.String2ListInt(strBuyVal, out buyList);
         if (buyList.Count != 5 || BuyNum < 1)
         {
             mgsData.Info = 2;
             LogManager.WriteLog(LogTypes.Warning, string.Format("[ljl_博彩] BuyCaiShuzi 购买内容 {0}, BuyNum={1} ", strBuyVal, BuyNum), null, true);
         }
         else
         {
             for (int i = 0; i < buyList.Count; i++)
             {
                 if (buyList[i] > 9 || buyList[i] < 0)
                 {
                     mgsData.Info = 2;
                     return;
                 }
             }
             if (!BoCaiCaiShuZi.GetInstance().IsCanBuy())
             {
                 mgsData.Info = 7;
             }
             else
             {
                 ReturnValue <bool> msgData = TcpCall.KFBoCaiManager.IsCanBuy(2, strBuyVal, BuyNum, BoCaiCaiShuZi.GetInstance().GetDataPeriods());
                 if (!msgData.IsReturn)
                 {
                     mgsData.Info = 8;
                 }
                 else if (!msgData.Value)
                 {
                     mgsData.Info = 5;
                 }
                 else
                 {
                     int XiaoHaoDaiBi = BoCaiCaiShuZi.GetInstance().GetXiaoHaoDaiBi();
                     if (XiaoHaoDaiBi < 1)
                     {
                         mgsData.Info = 3;
                         LogManager.WriteLog(LogTypes.Error, "[ljl_博彩]XiaoHaoDaiBi /GuDingLeiXing<1", null, true);
                     }
                     else
                     {
                         int useItemNum = BuyNum * XiaoHaoDaiBi;
                         if (!HuanLeDaiBiManager.GetInstance().HuanledaibiEnough(client, useItemNum))
                         {
                             mgsData.Info = 4;
                         }
                         else
                         {
                             int          allNum = BuyNum;
                             BuyBoCai2SDB DbData = BoCaiCaiShuZi.GetInstance().BuyBocai(client, BuyNum, strBuyVal, ref allNum);
                             if (null == DbData)
                             {
                                 mgsData.Info = 8;
                                 BoCaiCaiShuZi.GetInstance().BuyBocai(client, -BuyNum, strBuyVal, ref allNum);
                                 LogManager.WriteLog(LogTypes.Error, "[ljl_博彩]BoCaiCaiShuZi.GetInstance().BuyBocai err", null, true);
                             }
                             else if (!HuanLeDaiBiManager.GetInstance().UseHuanledaibi(client, useItemNum))
                             {
                                 mgsData.Info = 4;
                             }
                             else
                             {
                                 ReturnValue <bool> msgData2 = TcpCall.KFBoCaiManager.BuyBoCai(new KFBuyBocaiData
                                 {
                                     BocaiType = 2,
                                     RoleID    = DbData.m_RoleID,
                                     RoleName  = DbData.m_RoleName,
                                     ZoneID    = DbData.ZoneID,
                                     ServerID  = DbData.ServerId,
                                     BuyNum    = DbData.BuyNum,
                                     BuyValue  = DbData.strBuyValue
                                 });
                                 if (!msgData2.IsReturn)
                                 {
                                     mgsData.Info = 8;
                                 }
                                 else if (!msgData2.Value)
                                 {
                                     GameManager.logDBCmdMgr.AddMessageLog(-1, "欢乐代币", "购买失败扣物品成功中心2次通信", client.ClientData.RoleName, client.ClientData.RoleName, "减少", useItemNum, client.ClientData.ZoneID, client.strUserID, -1, client.ServerId, "");
                                     mgsData.Info = 5;
                                 }
                                 else
                                 {
                                     DbData.BuyNum = allNum;
                                     BoCaiBuy2DBList.getInstance().AddData(DbData, useItemNum, true);
                                     BoCaiCaiShuZi.GetInstance().CopyBuyList(out mgsData.ItemList, DbData.m_RoleID);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         mgsData.Info = 100;
         LogManager.WriteLog(LogTypes.Exception, string.Format("[ljl_博彩]{0}", ex.ToString()), null, true);
     }
 }