hxp
5 天以前 4e3d1ff7e0b98fc18b0b6e63e449f3d7577c0ba6
16 卡牌服务端(功能开启增加开服天条件支持;)
3个文件已修改
11 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -551,6 +551,7 @@
    DWORD        LimitLV;    //开启等级
    WORD        LimiRealmLV;    //需要境界等级
    DWORD        LimitMissionID;    //需要完成的任务ID
    WORD        LimitOpenDay;    //开服第几天开启
    char        MailKey;    //邮件
};
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -494,6 +494,7 @@
                        ("DWORD", "LimitLV", 0),
                        ("WORD", "LimiRealmLV", 0),
                        ("DWORD", "LimitMissionID", 0),
                        ("WORD", "LimitOpenDay", 0),
                        ("char", "MailKey", 0),
                        ),
@@ -2883,7 +2884,8 @@
    def GetLimitLV(self): return self.attrTuple[1] # 开启等级 DWORD
    def GetLimiRealmLV(self): return self.attrTuple[2] # 需要境界等级 WORD
    def GetLimitMissionID(self): return self.attrTuple[3] # 需要完成的任务ID DWORD
    def GetMailKey(self): return self.attrTuple[4] # 邮件 char
    def GetLimitOpenDay(self): return self.attrTuple[4] # 开服第几天开启 WORD
    def GetMailKey(self): return self.attrTuple[5] # 邮件 char
# 合成表
class IPY_ItemCompound():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -37,6 +37,7 @@
import PlayerHorse
import PlayerArena
import PlayerTask
import DBDataMgr
# 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可
@@ -54,6 +55,7 @@
    '''
    #GameWorld.DebugLog("执行触发功能开启逻辑: finishMissionIDList=%s" % finishMissionIDList, curPlayer.GetPlayerID())
    
    serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
    openFuncIDList = []
    curLV = curPlayer.GetLV()
    ipyGameData = IpyGameDataPY.IPY_Data()
@@ -84,6 +86,10 @@
        if limitMissionID and not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID):
            continue
        
        limitOpenDay = ipyData.GetLimitOpenDay()
        if limitOpenDay and serverDay < limitOpenDay:
            continue
        # 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环
        befValue, updValue = GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, 1)
        if befValue == updValue: