ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -24,21 +24,10 @@
import ChPyNetSendPack
import GameWorld
import NetPackCommon
#import PlayerGodWeapon
#import PlayerHorse
#import PlayerPet
import ShareDefine
import IpyGameDataPY
import PlayerControl
import PlayerPrestigeSys
import PlayerBillboard
import PlayerTreasure
import PlayerSignDay
#import PlayerGoldGift
#import PlayerEquipDecompose
#import PlayerCrossChampionship
#import PlayerFreeGoods
#import FunctionNPCCommon
import PlayerActBuyCountGift
import PlayerActLoginNew
import PlayerActTask
@@ -46,42 +35,18 @@
import ItemCommon
import ItemControler
import PlayerArena
#import PlayerLianTi
#import PlayerFaQi
import PlayerTask
# 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可
FuncOpenLogicDict = {
                     ShareDefine.GameFuncID_Official:lambda curObj:PlayerPrestigeSys.DoOfficialOpen(curObj),
                     ShareDefine.GameFuncID_Billboard:lambda curObj:PlayerBillboard.DoBillboardOpen(curObj),
                     ShareDefine.GameFuncID_SignDay:lambda curObj:PlayerSignDay.DoSignDayOpen(curObj),
                     ShareDefine.GameFuncID_Treasure:lambda curObj:PlayerTreasure.DoTreasureOpen(curObj),
                     ShareDefine.GameFuncID_Arena:lambda curObj:PlayerArena.DoArenaOpen(curObj),
                     #ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj),
                     #ShareDefine.GameFuncID_GodWeapon:lambda curObj:PlayerGodWeapon.DoGodWeaponOpen(curObj),
                     #ShareDefine.GameFuncID_Pet:lambda curObj:PlayerPet.DoPetOpen(curObj),
                     #ShareDefine.GameFuncID_FirstGoldTip:lambda curObj:PlayerGoldGift.DoFirstGoldOpen(curObj),
                     #ShareDefine.GameFuncID_EquipDecompose:lambda curObj:PlayerEquipDecompose.DoEquipDecomposeOpen(curObj),
                     #ShareDefine.GameFuncID_FreeGoods:lambda curObj:PlayerFreeGoods.DoFreeGoodsOpen(curObj),
                     #ShareDefine.GameFuncID_OSSail:lambda curObj:FunctionNPCCommon.OSSaleOpenMail(curObj),
                     #ShareDefine.GameFuncID_AddPoint:lambda curObj:PlayerControl.DoAddPointOpen(curObj),
                     #ShareDefine.GameFuncID_FaQi:lambda curObj:PlayerFaQi.DoFaQiOpen(curObj),
                     #ShareDefine.GameFuncID_LianTi:lambda curObj:PlayerLianTi.DoLianTiOpen(curObj),
                     #ShareDefine.GameFuncID_Championship:lambda curObj:PlayerCrossChampionship.DoChampionshipOpen(curObj),
                     }
## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个
## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个
## 注意:功能开启需执行的函数 及 功能开启后升级逻辑 只会执行其中一个
# 功能开启后升级逻辑 需要处理的函数 {功能ID:执行函数, ...}
#FuncLVUpLogicDict = {
#                     ShareDefine.GameFuncID_Pet:lambda curObj:PlayerPet.DoLVUPLogic_Pet(curObj),
#                     }
def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
def DoFuncOpenLogic(curPlayer, finishMissionIDList=[]):
def DoFuncOpenLogic(curPlayer):
    '''执行触发功能开启逻辑
    @param finishMissionIDList: 完成的任务ID列表
    '''
@@ -95,11 +60,11 @@
        ipyData = ipyGameData.GetFuncOpenLVByIndex(i)
        funcID = ipyData.GetFuncId()
        limitMissionID = ipyData.GetLimitMissionID()
        if limitMissionID and limitMissionID in finishMissionIDList:
            if not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID):
                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_MissionFinish % limitMissionID, 1)
                GameWorld.DebugLog("    设置功能开启所需任务完成: funcID=%s,limitMissionID=%s" % (funcID, limitMissionID), curPlayer.GetPlayerID())
        if limitMissionID and not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID) \
            and PlayerTask.IsTaskFinish(curPlayer, limitMissionID):
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_MissionFinish % limitMissionID, 1)
            GameWorld.DebugLog("    设置功能开启所需任务完成: funcID=%s,limitMissionID=%s" % (funcID, limitMissionID), curPlayer.GetPlayerID())
        isOpen = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, True)
        if isOpen:
            #GameWorld.DebugLog("    功能已经开启过, 不需要重复触发开启! funcID=%s" % (funcID), curPlayer.GetPlayerID())
@@ -142,6 +107,7 @@
## 功能是否可用
def GetFuncCanUse(curPlayer, funcID):
    if funcID < 0: return False
    return GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, True)
## 获取功能限制等级(等级条件为全局)