From 90ddd0d1e43a80160893fe735e79b5877efbfb7f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 一月 2025 15:20:14 +0800
Subject: [PATCH] 10371 【越南】【英文】【BT】【砍树】所有寻宝类型都加上每日寻宝次数上限

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py       |    7 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py         |   36 +++++++++--------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py |   18 +++++++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetXunbao.py |   42 +++++++++++++++------
 PySysDB/PySysDBPY.h                                                                          |    1 
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                            |    7 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py              |    1 
 7 files changed, 80 insertions(+), 32 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index e06b416..5bac5bd 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -1753,6 +1753,7 @@
 	BYTE		PackType;	//放入背包
 	BYTE		CheckPack;	//是否检查背包
 	BYTE		IsActType;	//是否活动寻宝
+	DWORD		DailyMaxCount;	//每日最大次数
 	BYTE		DailyFreeCount;	//每日免费次数
 	list		TreasureCountList;	//抽奖次数列表
 	char		RecycleItemMail;	//重置回收道具邮件,如果有配置回收邮件key,则重置时会回收多余的寻宝道具
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index c011fe6..cb45453 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -28945,6 +28945,7 @@
     TreasureType = 0    #(BYTE TreasureType)//寻宝类型
     LuckValue = 0    #(WORD LuckValue)//当前幸运值
     TreasureCount = 0    #(DWORD TreasureCount)//已寻宝总次数
+    TreasureCountToday = 0    #(DWORD TreasureCountToday)//今日已寻宝总次数
     FreeCountToday = 0    #(WORD FreeCountToday)//今日已免费寻宝次数
     TreasureCntAward = 0    #(DWORD TreasureCntAward)//累计寻宝次数对应奖励领奖状态,按奖励记录索引二进制记录是否已领取
     GridLimitCnt = 0    #(BYTE GridLimitCnt)
@@ -28960,6 +28961,7 @@
         self.TreasureType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LuckValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TreasureCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TreasureCountToday,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FreeCountToday,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TreasureCntAward,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.GridLimitCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -28973,6 +28975,7 @@
         self.TreasureType = 0
         self.LuckValue = 0
         self.TreasureCount = 0
+        self.TreasureCountToday = 0
         self.FreeCountToday = 0
         self.TreasureCntAward = 0
         self.GridLimitCnt = 0
@@ -28983,6 +28986,7 @@
         length = 0
         length += 1
         length += 2
+        length += 4
         length += 4
         length += 2
         length += 4
@@ -28997,6 +29001,7 @@
         data = CommFunc.WriteBYTE(data, self.TreasureType)
         data = CommFunc.WriteWORD(data, self.LuckValue)
         data = CommFunc.WriteDWORD(data, self.TreasureCount)
+        data = CommFunc.WriteDWORD(data, self.TreasureCountToday)
         data = CommFunc.WriteWORD(data, self.FreeCountToday)
         data = CommFunc.WriteDWORD(data, self.TreasureCntAward)
         data = CommFunc.WriteBYTE(data, self.GridLimitCnt)
@@ -29009,6 +29014,7 @@
                                 TreasureType:%d,
                                 LuckValue:%d,
                                 TreasureCount:%d,
+                                TreasureCountToday:%d,
                                 FreeCountToday:%d,
                                 TreasureCntAward:%d,
                                 GridLimitCnt:%d,
@@ -29018,6 +29024,7 @@
                                 self.TreasureType,
                                 self.LuckValue,
                                 self.TreasureCount,
+                                self.TreasureCountToday,
                                 self.FreeCountToday,
                                 self.TreasureCntAward,
                                 self.GridLimitCnt,
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 7f6d361..17fd5c7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3690,6 +3690,7 @@
 
 Def_PDict_TreasureFreeCount = "TreasureFreeCount_%s"  # 寻宝今日已使用免费次数, 参数(寻宝类型)
 Def_PDict_TreasureCount = "TreasureCount_%s"  # 寻宝次数, 参数(寻宝类型)
+Def_PDict_TreasureCountToday = "TreasureCountToday_%s"  # 今日寻宝次数, 参数(寻宝类型)
 Def_PDict_TreasureLuck = "TreasureLuck_%s"  # 寻宝当前幸运值, 参数(寻宝类型)
 Def_PDict_TreasureCntAward = "TreasureCntAward_%s"  # 累计寻宝次数对应物品奖励领奖状态, 参数(寻宝类型)
 Def_PDict_TreasureGridCnt = "TreasureGridCnt_%s_%s"  # 格子对应累计产出次数, 参数(寻宝类型, 格子编号)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index c011fe6..cb45453 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -28945,6 +28945,7 @@
     TreasureType = 0    #(BYTE TreasureType)//寻宝类型
     LuckValue = 0    #(WORD LuckValue)//当前幸运值
     TreasureCount = 0    #(DWORD TreasureCount)//已寻宝总次数
+    TreasureCountToday = 0    #(DWORD TreasureCountToday)//今日已寻宝总次数
     FreeCountToday = 0    #(WORD FreeCountToday)//今日已免费寻宝次数
     TreasureCntAward = 0    #(DWORD TreasureCntAward)//累计寻宝次数对应奖励领奖状态,按奖励记录索引二进制记录是否已领取
     GridLimitCnt = 0    #(BYTE GridLimitCnt)
@@ -28960,6 +28961,7 @@
         self.TreasureType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LuckValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TreasureCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TreasureCountToday,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FreeCountToday,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TreasureCntAward,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.GridLimitCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -28973,6 +28975,7 @@
         self.TreasureType = 0
         self.LuckValue = 0
         self.TreasureCount = 0
+        self.TreasureCountToday = 0
         self.FreeCountToday = 0
         self.TreasureCntAward = 0
         self.GridLimitCnt = 0
@@ -28983,6 +28986,7 @@
         length = 0
         length += 1
         length += 2
+        length += 4
         length += 4
         length += 2
         length += 4
@@ -28997,6 +29001,7 @@
         data = CommFunc.WriteBYTE(data, self.TreasureType)
         data = CommFunc.WriteWORD(data, self.LuckValue)
         data = CommFunc.WriteDWORD(data, self.TreasureCount)
+        data = CommFunc.WriteDWORD(data, self.TreasureCountToday)
         data = CommFunc.WriteWORD(data, self.FreeCountToday)
         data = CommFunc.WriteDWORD(data, self.TreasureCntAward)
         data = CommFunc.WriteBYTE(data, self.GridLimitCnt)
@@ -29009,6 +29014,7 @@
                                 TreasureType:%d,
                                 LuckValue:%d,
                                 TreasureCount:%d,
+                                TreasureCountToday:%d,
                                 FreeCountToday:%d,
                                 TreasureCntAward:%d,
                                 GridLimitCnt:%d,
@@ -29018,6 +29024,7 @@
                                 self.TreasureType,
                                 self.LuckValue,
                                 self.TreasureCount,
+                                self.TreasureCountToday,
                                 self.FreeCountToday,
                                 self.TreasureCntAward,
                                 self.GridLimitCnt,
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetXunbao.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetXunbao.py
index fdb59c6..558a5b2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetXunbao.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetXunbao.py
@@ -31,10 +31,13 @@
 def OnExec(curPlayer, paramList):
     if not paramList:
         GameWorld.DebugAnswer(curPlayer, "重置寻宝:SetXunbao 0 [指定类型]")
-        GameWorld.DebugAnswer(curPlayer, "设置幸运:SetXunbao 寻宝类型 幸运值 已寻宝次数")
+        GameWorld.DebugAnswer(curPlayer, "设置幸运:SetXunbao l 类型 幸运")
+        GameWorld.DebugAnswer(curPlayer, "设置次数:SetXunbao c 类型 今日次数 [累计次数]")
         return
     
-    if not paramList[0]:
+    value = paramList[0]
+    syncTypeList = []
+    if not value:
         ClearPack.OnExec(curPlayer, [ShareDefine.rptTreasure])
         ClearPack.OnExec(curPlayer, [ShareDefine.rptRune])
         
@@ -48,16 +51,31 @@
         GameWorld.DebugAnswer(curPlayer, "重置寻宝OK!%s" % treasureTypeList)
         return
     
-    else:
-        treasureType = paramList[0]
-        luck = paramList[1] if len(paramList) > 1 else None
-        treasureCount = paramList[2] if len(paramList) > 2 else None
-        if luck != None:
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureLuck % (treasureType), luck)
-            GameWorld.DebugAnswer(curPlayer, "设置寻宝类型=%s,幸运=%s" % (treasureType, luck))
+    elif value == "l":
+        treasureType = paramList[1] if len(paramList) > 1 else None
+        luck = paramList[2] if len(paramList) > 2 else 0
+        if not IpyGameDataPY.GetIpyGameData("TreasureSet", treasureType):
+            GameWorld.DebugAnswer(curPlayer, "寻宝类型不存在!%s" % treasureType)
+            return
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureLuck % (treasureType), luck)
+        GameWorld.DebugAnswer(curPlayer, "设置寻宝类型=%s,幸运=%s" % (treasureType, luck))
+        syncTypeList = [treasureType]
+        
+    elif value == "c":
+        treasureType = paramList[1] if len(paramList) > 1 else None
+        treasureCountToday = paramList[2] if len(paramList) > 2 else None
+        treasureCount = paramList[3] if len(paramList) > 3 else None
+        if not IpyGameDataPY.GetIpyGameData("TreasureSet", treasureType):
+            GameWorld.DebugAnswer(curPlayer, "寻宝类型不存在!%s" % treasureType)
+            return
+        if treasureCountToday != None:
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCountToday % (treasureType), treasureCountToday)
+            GameWorld.DebugAnswer(curPlayer, "设置寻宝类型=%s,今日次数=%s" % (treasureType, treasureCountToday))
         if treasureCount != None:
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType), treasureCount)
-            GameWorld.DebugAnswer(curPlayer, "设置寻宝类型=%s,次数=%s" % (treasureType, treasureCount))
-    PlayerTreasure.Sync_TreasureInfo(curPlayer)
-    return True
+            GameWorld.DebugAnswer(curPlayer, "设置寻宝类型=%s,累计次数=%s" % (treasureType, treasureCount))
+        syncTypeList = [treasureType]
+        
+    PlayerTreasure.Sync_TreasureInfo(curPlayer, syncTypeList)
+    return
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index f9fe6f4..c8b77a9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1403,6 +1403,7 @@
                         ("BYTE", "PackType", 0),
                         ("BYTE", "CheckPack", 0),
                         ("BYTE", "IsActType", 0),
+                        ("DWORD", "DailyMaxCount", 0),
                         ("BYTE", "DailyFreeCount", 0),
                         ("list", "TreasureCountList", 0),
                         ("char", "RecycleItemMail", 0),
@@ -4619,23 +4620,24 @@
     def GetPackType(self): return self.attrTuple[1] # 放入背包 BYTE
     def GetCheckPack(self): return self.attrTuple[2] # 是否检查背包 BYTE
     def GetIsActType(self): return self.attrTuple[3] # 是否活动寻宝 BYTE
-    def GetDailyFreeCount(self): return self.attrTuple[4] # 每日免费次数 BYTE
-    def GetTreasureCountList(self): return self.attrTuple[5] # 抽奖次数列表 list
-    def GetRecycleItemMail(self): return self.attrTuple[6] # 重置回收道具邮件,如果有配置回收邮件key,则重置时会回收多余的寻宝道具 char
-    def GetCostItemID(self): return self.attrTuple[7] # 消耗道具ID DWORD
-    def GetCostItemCountList(self): return self.attrTuple[8] # 消耗个数列表 list
-    def GetCostMoneyType(self): return self.attrTuple[9] # 消耗货币类型 BYTE
-    def GetCostMoneyList(self): return self.attrTuple[10] # 消耗货币列表 list
-    def GetEnsureCount(self): return self.attrTuple[11] # 每x次必出 WORD
-    def GetOnceLucky(self): return self.attrTuple[12] # 单次幸运值 BYTE
-    def GetFullLucky(self): return self.attrTuple[13] # 满幸运值 WORD
-    def GetLuckyRateFormat(self): return self.attrTuple[14] # 幸运格子概率公式 char
-    def GetLuckyGridNum(self): return self.attrTuple[15] # 幸运格子编号 BYTE
-    def GetGridNumMaxLimitInfo(self): return self.attrTuple[16] # 格子最大产出次数限制,{"格子":最大可产出次数, ...} dict
-    def GetNotifyGridNumList(self): return self.attrTuple[17] # 需要额外广播的格子 list
-    def GetNotifyKey(self): return self.attrTuple[18] # 广播key char
-    def GetAwardMoneyType(self): return self.attrTuple[19] # 额外奖励货币类型 BYTE
-    def GetAwardMoneyValue(self): return self.attrTuple[20] # 单次奖励货币数 WORD
+    def GetDailyMaxCount(self): return self.attrTuple[4] # 每日最大次数 DWORD
+    def GetDailyFreeCount(self): return self.attrTuple[5] # 每日免费次数 BYTE
+    def GetTreasureCountList(self): return self.attrTuple[6] # 抽奖次数列表 list
+    def GetRecycleItemMail(self): return self.attrTuple[7] # 重置回收道具邮件,如果有配置回收邮件key,则重置时会回收多余的寻宝道具 char
+    def GetCostItemID(self): return self.attrTuple[8] # 消耗道具ID DWORD
+    def GetCostItemCountList(self): return self.attrTuple[9] # 消耗个数列表 list
+    def GetCostMoneyType(self): return self.attrTuple[10] # 消耗货币类型 BYTE
+    def GetCostMoneyList(self): return self.attrTuple[11] # 消耗货币列表 list
+    def GetEnsureCount(self): return self.attrTuple[12] # 每x次必出 WORD
+    def GetOnceLucky(self): return self.attrTuple[13] # 单次幸运值 BYTE
+    def GetFullLucky(self): return self.attrTuple[14] # 满幸运值 WORD
+    def GetLuckyRateFormat(self): return self.attrTuple[15] # 幸运格子概率公式 char
+    def GetLuckyGridNum(self): return self.attrTuple[16] # 幸运格子编号 BYTE
+    def GetGridNumMaxLimitInfo(self): return self.attrTuple[17] # 格子最大产出次数限制,{"格子":最大可产出次数, ...} dict
+    def GetNotifyGridNumList(self): return self.attrTuple[18] # 需要额外广播的格子 list
+    def GetNotifyKey(self): return self.attrTuple[19] # 广播key char
+    def GetAwardMoneyType(self): return self.attrTuple[20] # 额外奖励货币类型 BYTE
+    def GetAwardMoneyValue(self): return self.attrTuple[21] # 单次奖励货币数 WORD
 
 # 寻宝产出库表
 class IPY_TreasureHouse():
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 be6bc5d..97a2280 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -65,9 +65,11 @@
     for i in xrange(ipyDataMgr.GetTreasureSetCount()):
         ipyData = ipyDataMgr.GetTreasureSetByIndex(i)
         treasureType = ipyData.GetTreasureType()
-        if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureFreeCount % (treasureType)):
+        if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCountToday % (treasureType)) and \
+            not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureFreeCount % (treasureType)):
             continue
         syncTypeList.append(treasureType)
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCountToday % (treasureType), 0)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureFreeCount % (treasureType), 0)
     if syncTypeList:
         Sync_TreasureInfo(curPlayer, syncTypeList)
@@ -85,6 +87,7 @@
             ItemControler.RecycleItem(curPlayer, costItemID, recycleItemMail)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureFreeCount % (treasureType), 0)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType), 0)
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCountToday % (treasureType), 0)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureLuck % (treasureType), 0)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCntAward % (treasureType), 0)
         
@@ -138,6 +141,13 @@
     treasureCount = treasureCountList[treasureIndex]
     if not treasureCount:
         GameWorld.DebugLog("没有寻宝次数配置!", playerID)
+        return
+    dailyMaxCount = setIpyData.GetDailyMaxCount()
+    curTreasureCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCountToday % (treasureType)) # 今日已寻宝次数
+    updTreasureCountToday = curTreasureCountToday + treasureCount
+    if dailyMaxCount and updTreasureCountToday > dailyMaxCount:
+        GameWorld.DebugLog("寻宝后将超过每日最大次数,无法寻宝! treasureCount(%s) + curTreasureCountToday(%s) = %s > %s" 
+                           % (treasureCount, curTreasureCountToday, updTreasureCountToday, dailyMaxCount), playerID)
         return
     
     packType = setIpyData.GetPackType()
@@ -380,6 +390,7 @@
         GameWorld.DebugLog("扣除货币,costGoldType=%s,costGold=%s" % (costGoldType, costGold), playerID)
         
     # 加数据
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCountToday % (treasureType), updTreasureCountToday)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType), updTreasureCount)
     for luckyGridNum in luckyGridNumList:
         if luckyGridNum in getGridResult:
@@ -433,8 +444,8 @@
     if mailItemList:
         PlayerControl.SendMailByKey("HappyXBUnEnough", [playerID], mailItemList)
         
-    GameWorld.DebugLog("寻宝成功: treasureType=%s,updTreasureCount=%s,updLuck=%s,addScoreType=%s,addScore=%s,gridNumCountInfo=%s" 
-                       % (treasureType, updTreasureCount, updLuck, addScoreType, addScore, gridNumCountInfo), playerID)
+    GameWorld.DebugLog("寻宝成功: treasureType=%s,updTreasureCount=%s(%s),updLuck=%s,addScoreType=%s,addScore=%s,gridNumCountInfo=%s" 
+                       % (treasureType, updTreasureCount, updTreasureCountToday, updLuck, addScoreType, addScore, gridNumCountInfo), playerID)
     GameWorld.DebugLog("    treasureResult=%s" % (treasureResult), playerID)
     GameWorld.DebugLog("    mailItemList=%s" % (mailItemList), playerID)
     
@@ -561,6 +572,7 @@
         tTypeInfo.TreasureType = tType
         tTypeInfo.LuckValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureLuck % (tType))
         tTypeInfo.TreasureCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCount % (tType))
+        tTypeInfo.TreasureCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCountToday % (tType))
         tTypeInfo.FreeCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureFreeCount % (tType))
         tTypeInfo.TreasureCntAward = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCntAward % (tType))
         for gridNumStr in gridNumMaxLimitInfo.keys():

--
Gitblit v1.8.0