5559 [越南][英文][tqxbqy][砍树]优化启动检查配表格式(增加检查指定的字段格式dict、list)
5个文件已修改
48 ■■■■■ 已修改文件
PySysDB/PySysDBG.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/生成IpyGameDataPY/IpyGameDataPYTemp.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBG.h
@@ -908,7 +908,7 @@
    list        NotifyInfoLoop;    //全服提示信息 - å¾ªçŽ¯å¹¿æ’­[间隔分钟, å¹¿æ’­key]
    WORD        LVLimit;    //限制等级
    BYTE        IsDayReset;    //是否每天重置
    list        ShopTypeList;    //商店类型列表
    dict        ShopTypeList;    //商店类型列表
};
PySysDB/PySysDBPY.h
@@ -1812,7 +1812,7 @@
    WORD        _GiftbagType;    //礼包模板类型
    DWORD        _GiftbagID;    //礼包编号
    WORD        BuyCountLimit;        //限购次数,0不限购
    list        GiftItemList;    //礼包物品信息列表 [(物品ID,个数,是否绑定),...]
    eval        GiftItemList;    //礼包物品信息列表 [(物品ID,个数,是否绑定),...]
    WORD        Discount;    //折扣百分比
};
@@ -1905,7 +1905,7 @@
    WORD        DropDiffLVLimit;    //掉落等级差值限制
    list        GuajiAwardSet;    //挂机收益设置,x秒|x次小怪掉率
    list        DropItemRateList;    //小怪掉落饼图概率
    list        DropItemRateListBoss;    //Boss掉落饼图概率
    dict        DropItemRateListBoss;    //Boss掉落饼图概率
};
//集字活动兑换模板表
@@ -1914,7 +1914,7 @@
{
    DWORD        _TemplateID;    //模板ID
    BYTE        ExchangeNum;    //兑换编号(同个模板中需唯一不可变)
    list        ExchangeItemInfo;    //兑换目标物品[物品ID,个数,是否绑定]
    eval        ExchangeItemInfo;    //兑换目标物品[物品ID,个数,是否绑定]
    BYTE        ExchangeCountMax;        //最大兑换次数(0不限制)
    list        NeedItemList;    //所需物品信息列表 [[物品ID,个数,是否绑定], ...]
    BYTE        NeedNotify;        //是否需要广播
@@ -2209,7 +2209,7 @@
    WORD        AdvanceMinutes;    //前端提前X分钟展示活动
    WORD        LVLimit;    //限制等级
    BYTE        IsDayReset;    //是否每天重置
    list        ShopTypeList;    //商店类型列表
    dict        ShopTypeList;    //商店类型列表
    char        MailKey;        //活动更新时发送邮件key
    list        MailItemPrize;        //活动更新时发送邮件奖励物品
};
@@ -2659,7 +2659,7 @@
    BYTE        ActionType;    //活动条目ID
    DWORD        TotalTimes;    //可完成的总次数,0表示不限次数
    WORD        SingleTimes;    //单次领奖需要的次数
    list        Reward;    //奖励物品
    eval        Reward;    //奖励物品
    WORD        Point;    //积分
};
PySysDB/Éú³ÉIpyGameDataPY/IpyGameDataPYTemp.py
@@ -173,8 +173,12 @@
                        attrValue = value
                    elif fieldType == "dict":
                        attrValue = self.__StrToDict(value)
                        if type(attrValue) != dict:
                            raise
                    elif fieldType == "list":
                        attrValue = self.__StrToList(value)
                        if type(attrValue) not in [list, tuple]:
                            raise
                    elif fieldType == "eval":
                        attrValue = self.__StrToEval(value)
                    elif fieldType == "float":
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -741,7 +741,7 @@
                        ("list", "NotifyInfoLoop", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ("dict", "ShopTypeList", 0),
                        ),
                "Store":(
@@ -2250,7 +2250,7 @@
    def GetNotifyInfoLoop(self): return self.attrTuple[11] # å…¨æœæç¤ºä¿¡æ¯ - å¾ªçŽ¯å¹¿æ’­[间隔分钟, å¹¿æ’­key] list
    def GetLVLimit(self): return self.attrTuple[12] # é™åˆ¶ç­‰çº§ WORD
    def GetIsDayReset(self): return self.attrTuple[13] # æ˜¯å¦æ¯å¤©é‡ç½® BYTE
    def GetShopTypeList(self): return self.attrTuple[14] # å•†åº—类型列表 list
    def GetShopTypeList(self): return self.attrTuple[14] # å•†åº—类型列表 dict
# å•†åŸŽè¡¨
class IPY_Store():
@@ -3189,8 +3189,12 @@
                        attrValue = value
                    elif fieldType == "dict":
                        attrValue = self.__StrToDict(value)
                        if type(attrValue) != dict:
                            raise
                    elif fieldType == "list":
                        attrValue = self.__StrToList(value)
                        if type(attrValue) not in [list, tuple]:
                            raise
                    elif fieldType == "eval":
                        attrValue = self.__StrToEval(value)
                    elif fieldType == "float":
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1438,7 +1438,7 @@
                        ("WORD", "GiftbagType", 1),
                        ("DWORD", "GiftbagID", 1),
                        ("WORD", "BuyCountLimit", 0),
                        ("list", "GiftItemList", 0),
                        ("eval", "GiftItemList", 0),
                        ("WORD", "Discount", 0),
                        ),
@@ -1507,13 +1507,13 @@
                        ("WORD", "DropDiffLVLimit", 0),
                        ("list", "GuajiAwardSet", 0),
                        ("list", "DropItemRateList", 0),
                        ("list", "DropItemRateListBoss", 0),
                        ("dict", "DropItemRateListBoss", 0),
                        ),
                "CollectWordsExchange":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "ExchangeNum", 0),
                        ("list", "ExchangeItemInfo", 0),
                        ("eval", "ExchangeItemInfo", 0),
                        ("BYTE", "ExchangeCountMax", 0),
                        ("list", "NeedItemList", 0),
                        ("BYTE", "NeedNotify", 0),
@@ -1739,7 +1739,7 @@
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ("dict", "ShopTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
@@ -2071,7 +2071,7 @@
                        ("BYTE", "ActionType", 0),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ("eval", "Reward", 0),
                        ("WORD", "Point", 0),
                        ),
@@ -4624,7 +4624,7 @@
    def GetGiftbagType(self): return self.attrTuple[0] # ç¤¼åŒ…模板类型 WORD
    def GetGiftbagID(self): return self.attrTuple[1] # ç¤¼åŒ…编号 DWORD
    def GetBuyCountLimit(self): return self.attrTuple[2] # é™è´­æ¬¡æ•°,0不限购 WORD
    def GetGiftItemList(self): return self.attrTuple[3] # ç¤¼åŒ…物品信息列表 [(物品ID,个数,是否绑定),...] list
    def GetGiftItemList(self): return self.attrTuple[3] # ç¤¼åŒ…物品信息列表 [(物品ID,个数,是否绑定),...] eval
    def GetDiscount(self): return self.attrTuple[4] # æŠ˜æ‰£ç™¾åˆ†æ¯” WORD
# åŒå€ç»éªŒæ´»åŠ¨è¡¨
@@ -4733,7 +4733,7 @@
    def GetDropDiffLVLimit(self): return self.attrTuple[6] # æŽ‰è½ç­‰çº§å·®å€¼é™åˆ¶ WORD
    def GetGuajiAwardSet(self): return self.attrTuple[7] # æŒ‚机收益设置,x秒|x次小怪掉率 list
    def GetDropItemRateList(self): return self.attrTuple[8] # å°æ€ªæŽ‰è½é¥¼å›¾æ¦‚率 list
    def GetDropItemRateListBoss(self): return self.attrTuple[9] # Boss掉落饼图概率 list
    def GetDropItemRateListBoss(self): return self.attrTuple[9] # Boss掉落饼图概率 dict
# é›†å­—活动兑换模板表
class IPY_CollectWordsExchange():
@@ -4744,7 +4744,7 @@
        
    def GetTemplateID(self): return self.attrTuple[0] # æ¨¡æ¿ID DWORD
    def GetExchangeNum(self): return self.attrTuple[1] # å…‘换编号(同个模板中需唯一不可变) BYTE
    def GetExchangeItemInfo(self): return self.attrTuple[2] # å…‘换目标物品[物品ID,个数,是否绑定] list
    def GetExchangeItemInfo(self): return self.attrTuple[2] # å…‘换目标物品[物品ID,个数,是否绑定] eval
    def GetExchangeCountMax(self): return self.attrTuple[3] # æœ€å¤§å…‘换次数(0不限制) BYTE
    def GetNeedItemList(self): return self.attrTuple[4] # æ‰€éœ€ç‰©å“ä¿¡æ¯åˆ—表 [[物品ID,个数,是否绑定], ...] list
    def GetNeedNotify(self): return self.attrTuple[5] # æ˜¯å¦éœ€è¦å¹¿æ’­ BYTE
@@ -5085,7 +5085,7 @@
    def GetAdvanceMinutes(self): return self.attrTuple[5] # å‰ç«¯æå‰X分钟展示活动 WORD
    def GetLVLimit(self): return self.attrTuple[6] # é™åˆ¶ç­‰çº§ WORD
    def GetIsDayReset(self): return self.attrTuple[7] # æ˜¯å¦æ¯å¤©é‡ç½® BYTE
    def GetShopTypeList(self): return self.attrTuple[8] # å•†åº—类型列表 list
    def GetShopTypeList(self): return self.attrTuple[8] # å•†åº—类型列表 dict
    def GetMailKey(self): return self.attrTuple[9] # æ´»åŠ¨æ›´æ–°æ—¶å‘é€é‚®ä»¶key char
    def GetMailItemPrize(self): return self.attrTuple[10] # æ´»åŠ¨æ›´æ–°æ—¶å‘é€é‚®ä»¶å¥–åŠ±ç‰©å“ list
@@ -5612,7 +5612,7 @@
    def GetActionType(self): return self.attrTuple[1] # æ´»åŠ¨æ¡ç›®ID BYTE
    def GetTotalTimes(self): return self.attrTuple[2] # å¯å®Œæˆçš„æ€»æ¬¡æ•°ï¼Œ0表示不限次数 DWORD
    def GetSingleTimes(self): return self.attrTuple[3] # å•次领奖需要的次数 WORD
    def GetReward(self): return self.attrTuple[4] # å¥–励物品 list
    def GetReward(self): return self.attrTuple[4] # å¥–励物品 eval
    def GetPoint(self): return self.attrTuple[5] # ç§¯åˆ† WORD
# è¿åŠ¿æ´»åŠ¨æ—¶é—´è¡¨
@@ -6781,8 +6781,12 @@
                        attrValue = value
                    elif fieldType == "dict":
                        attrValue = self.__StrToDict(value)
                        if type(attrValue) != dict:
                            raise
                    elif fieldType == "list":
                        attrValue = self.__StrToList(value)
                        if type(attrValue) not in [list, tuple]:
                            raise
                    elif fieldType == "eval":
                        attrValue = self.__StrToEval(value)
                    elif fieldType == "float":