From 2494fee14a4cadb85ef89e3d4a48ddbe77cb4fea Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 19 十一月 2019 14:03:33 +0800
Subject: [PATCH] 1111 货币获得、消费流向命名(升星、boss首杀)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py |   44 ++++++++++++++++++++++++--------------------
 1 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
index fbdfd98..22e481e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -28,6 +28,7 @@
 import NetPackCommon
 import PlayerBossReborn
 import PlayerFairyCeremony
+import PlayerNewFairyCeremony
 import ItemCommon
 import ChConfig
 
@@ -70,10 +71,12 @@
     treasureType = clientData.TreasureType
     treasureIndex = clientData.TreasureIndex
     costType = clientData.CostType
-    
+    isFreeType = 1 if costType == 1 else 0
     GameWorld.DebugLog("玩家寻宝: treasureType=%s,treasureIndex=%s,costType=%s,playerLV=%s" 
                        % (treasureType, treasureIndex, costType, playerLV), playerID)
     
+    if treasureType == 1:
+        return
     TreasureSet1 = "TreasureSet1%s" % treasureType
     TreasureSet2 = "TreasureSet2%s" % treasureType
     treasureCountList = IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 1) # 寻宝获得个数列表
@@ -89,8 +92,8 @@
         return
     
     packType = ShareDefine.rptTreasure
-    if treasureType == 2:
-        packType = ShareDefine.rptRune
+    #if treasureType == 2:
+    #    packType = ShareDefine.rptRune
         
     if not ItemCommon.CheckPackHasSpace(curPlayer, packType, True):
         GameWorld.DebugLog("对应寻宝背包没有空格子!packType=%s" % packType, playerID)
@@ -126,7 +129,7 @@
         if lackCount > 0:
             lackCountCostMoney = ItemCommon.GetAutoBuyItemNeedGold({costItemID:lackCount})
             if lackCountCostMoney:
-                moneyType = IPY_GameWorld.TYPE_Price_Gold_Money
+                moneyType = IPY_GameWorld.TYPE_Price_Gold_Paper
                 infoDict = {ChConfig.Def_Cost_Reason_SonKey:costItemID}
                 if not PlayerControl.HaveMoney(curPlayer, moneyType, lackCountCostMoney):
                     return
@@ -143,7 +146,7 @@
             GameWorld.ErrLog("该寻宝类型索引不支持消耗仙玉寻宝!treasureType=%s,treasureIndex=%s" % (treasureType, treasureIndex), playerID)
             return
         
-        if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGold):
+        if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, costGold):
             return
         
     ipyData = IpyGameDataPY.InterpolationSearch("TreasureHouse", "MinLV", playerLV, {"TreasureType":treasureType})
@@ -159,19 +162,18 @@
     
     commItemRateList = GetUpdLuckyItemRateList(ipyData, curLuck, luckFormula, costType) # 常规产出物品格子饼图,幸运物品概率已变更
     
-    curTreasureCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCount % (treasureType)) # 当前已寻宝次数
+    curTreasureCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCount % (treasureType, isFreeType)) # 当前已寻宝次数
     updTreasureCount = curTreasureCount + treasureCount
-    beSureCountDict = ipyData.GetGridItemRateList3() # 第x次必出产出格子编号饼图
+    beSureCountDict = ipyData.GetFreeGridItemRateList3() if isFreeType else ipyData.GetGridItemRateList3() # 第x次必出产出格子编号饼图
     GameWorld.DebugLog("已经寻宝次数=%s,当前幸运=%s,commItemRateList=%s" % (curTreasureCount, curLuck, commItemRateList), playerID)
-    
-    addScore = IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 5)[treasureIndex] # 增加积分
-    ensureCount = IpyGameDataPY.GetFuncCfg("TreasureSet", 1) # 每多少次触发保底产出库
-    
+    addScore = 0 if isFreeType else IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 5)[treasureIndex] # 增加积分
+    ensureCount = IpyGameDataPY.GetFuncEvalCfg("TreasureSet", 1, {})[isFreeType] # 每多少次触发保底产出库
+    ensureRateList = ipyData.GetFreeGridItemRateList2() if isFreeType else ipyData.GetGridItemRateList2()
     goodGridNumList = [ipyData.GetLuckyGridNum()] # 好物品格子编号 (幸运物品 + 必出 + 保底)
-    for gridRateList in ipyData.GetGridItemRateList3().values():
+    for gridRateList in beSureCountDict.values():
         for gridRateInfo in gridRateList:
             goodGridNumList.append(gridRateInfo[1])
-    for gridRateInfo in ipyData.GetGridItemRateList2():
+    for gridRateInfo in ensureRateList:
         goodGridNumList.append(gridRateInfo[1])
     GameWorld.DebugLog("goodGridNumList=%s" % goodGridNumList, playerID)
         
@@ -192,7 +194,7 @@
                 gridNum = GameWorld.GetResultByRandomList(gridNumRateList)
                 GameWorld.DebugLog("到达次数必出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, gridNumRateList, gridNum), playerID)
             elif updTreasureCount % ensureCount == 0:
-                gridNumRateList = ipyData.GetGridItemRateList2()
+                gridNumRateList = ensureRateList
                 gridNum = GameWorld.GetResultByRandomList(gridNumRateList)
                 GameWorld.DebugLog("满次数保底出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, gridNumRateList, gridNum), playerID)
             else:
@@ -216,11 +218,11 @@
         # 3. 次数保底
         ensureGridNumList = []
         if updTreasureCount / ensureCount > curTreasureCount / ensureCount:
-            for gridInfo in ipyData.GetGridItemRateList2():
+            for gridInfo in ensureRateList:
                 ensureGridNumList.append(gridInfo[1])
-            gridNum = GameWorld.GetResultByRandomList(ipyData.GetGridItemRateList2())
+            gridNum = GameWorld.GetResultByRandomList(ensureRateList)
             getGridResult.append(gridNum)
-            GameWorld.DebugLog("满次数保底出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, ipyData.GetGridItemRateList2(), gridNum), playerID)
+            GameWorld.DebugLog("满次数保底出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, ensureRateList, gridNum), playerID)
             
         # 4. 常规产出
         doCount = 200
@@ -315,11 +317,11 @@
             PlayerControl.PayMoney(curPlayer, moneyType, lackCountCostMoney, ChConfig.Def_Cost_Treasure, infoDict, lackCount)
     else:
         infoDict = {"TreasureType":treasureType, "TreasureIndex":treasureIndex}
-        PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGold, ChConfig.Def_Cost_Treasure, infoDict)
+        PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, costGold, ChConfig.Def_Cost_Treasure, infoDict)
         GameWorld.DebugLog("扣除仙玉,costGold=%s" % costGold, playerID)
         
     # 加数据
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType), updTreasureCount)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType, isFreeType), updTreasureCount)
     if ipyData.GetLuckyGridNum() in getGridResult:
         updLuck = 0
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureLuck % (treasureType), updLuck)
@@ -327,15 +329,17 @@
     
     if treasureType == 2:
         PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
+        PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
         PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RuneTreasure, treasureCount)
     else:
         PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
+        PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
         PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_Treasure, treasureCount)
     # 给物品
     mailItemList = []
     itemControl = ItemControler.PlayerItemControler(curPlayer)
     for gridNum, itemID, itemCount, isBind in treasureResult:
-        itemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, isBind)
+        itemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, False, curPlayer=curPlayer)
         mailItemDict = ItemCommon.GetMailItemDict(itemObj)
         
         if int(gridNum) in goodGridNumList:

--
Gitblit v1.8.0