Esempio n. 1
0
        public static GoodsData GiveOneMeditateGood(GameClient client)
        {
            int       packageID = Global.GetMingXiangPackageID(client);
            GoodsData result;

            if (0 == packageID)
            {
                result = null;
            }
            else
            {
                List <GoodsData> AwardGoodsList = GoodsBaoXiang.FetchGoodListBaseFallPacketID(client, packageID, 1, FallAlgorithm.BaoXiang);
                if (AwardGoodsList == null || AwardGoodsList.Count == 0)
                {
                    result = null;
                }
                else
                {
                    GoodsData tmpGoodsData = AwardGoodsList[0];
                    tmpGoodsData.Site = 1;
                    int dbRet = GoodsUtil.AddGoodsDBCommand(client, tmpGoodsData, false, 0, "冥想", true);
                    tmpGoodsData.Id = dbRet;
                    int totalTime = Global.GetRoleParamsInt32FromDB(client, "MeditateTime");
                    EventLogManager.AddRoleMeditateEvent(client, (long)(totalTime / 1000), GoodsUtil.GetMeditateBagGoodsCnt(client), Global.NewGoodsDataPropString(tmpGoodsData));
                    result = tmpGoodsData;
                }
            }
            return(result);
        }
Esempio n. 2
0
 public void GiveAwards(WanMoXiaGuScene scene)
 {
     try
     {
         FuBenMapItem fuBenMapItem = FuBenManager.FindMapCodeByFuBenID(scene.CopyMapInfo.FubenMapID, scene.MapID);
         if (fuBenMapItem != null)
         {
             int usedSecs = (int)(scene.EndTime - scene.BeginTime);
             int zhanLi   = 0;
             List <GameClient> objsList = scene.CopyMapInfo.GetClientsList().Distinct <GameClient>().ToList <GameClient>();
             if (objsList != null && objsList.Count > 0)
             {
                 for (int i = 0; i < objsList.Count; i++)
                 {
                     GameClient client = objsList[i];
                     if (client != null && client == GameManager.ClientMgr.FindClient(client.ClientData.RoleID))
                     {
                         zhanLi += client.ClientData.CombatForce;
                         long nExp  = (long)fuBenMapItem.Experience;
                         int  money = fuBenMapItem.Money1;
                         int  idx   = this.RuntimeData.AwardList.Count - 1;
                         int  mul   = this.RuntimeData.AwardList[idx][1];
                         for (int j = 0; j <= idx; j++)
                         {
                             if (usedSecs <= this.RuntimeData.AwardList[j][0])
                             {
                                 mul = this.RuntimeData.AwardList[j][1];
                                 break;
                             }
                         }
                         if (nExp > 0L)
                         {
                             GameManager.ClientMgr.ProcessRoleExperience(client, nExp, false, true, false, "万魔峡谷通关奖励");
                         }
                         if (money > 0)
                         {
                             GameManager.ClientMgr.AddMoney1(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, money, "万魔峡谷通关奖励", true);
                         }
                         List <GoodsData> goodsList = new List <GoodsData>();
                         if (null != fuBenMapItem.GoodsDataList)
                         {
                             for (int k = 0; k < fuBenMapItem.GoodsDataList.Count; k++)
                             {
                                 GoodsData goodsData = new GoodsData(fuBenMapItem.GoodsDataList[k]);
                                 goodsData.GCount *= mul;
                                 goodsList.Add(goodsData);
                             }
                         }
                         if (goodsList.Count > 0)
                         {
                             if (Global.CanAddGoodsDataList(client, goodsList))
                             {
                                 foreach (GoodsData goodsData in goodsList)
                                 {
                                     GoodsUtil.AddGoodsDBCommand(client, goodsData, true, 1, "万魔峡谷通关奖励", true);
                                 }
                             }
                             else
                             {
                                 Global.UseMailGivePlayerAward2(client, goodsList, GLang.GetLang(4000, new object[0]), GLang.GetLang(4001, new object[0]), 0, 0, 0);
                             }
                         }
                         WanMoXiaGuAwardsData awardsData = new WanMoXiaGuAwardsData
                         {
                             Success     = scene.Success,
                             UsedSecs    = usedSecs,
                             Exp         = nExp,
                             Money       = money,
                             AwardsGoods = goodsList
                         };
                         client.sendCmd <WanMoXiaGuAwardsData>(1267, awardsData, false);
                         Global.UpdateFuBenDataForQuickPassTimer(client, scene.CopyMapInfo.FubenMapID, 0, 1);
                     }
                 }
             }
             if (objsList != null && objsList.Count > 0)
             {
                 int roleCount = objsList.Count;
                 zhanLi /= roleCount;
             }
         }
     }
     catch (Exception ex)
     {
         DataHelper.WriteExceptionLogEx(ex, "【万魔峡谷】清场调度异常");
     }
 }