hxp
2024-04-10 d7e6ef56122500442ccee80ffeb29091e3fd0ce9
10130 【后端】福地争夺资源功能(增加摇人功能)

# Conflicts:
# ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
# ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
# ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
# ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
8个文件已修改
3个文件已添加
377 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTurnFight.py 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MineArea.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MineArea.py 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_TurnFight.py 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -718,6 +718,11 @@
#情缘副本
Def_FBMapID_Love = 31300
#回合战斗自定义地图ID
TurnFightMapIDList = (
Def_TFMapID_MineArea, # 福地 1
) = range(1, 1 + 1)
#需要刷世界BOSS的副本
WorldBossFBMapIDList = [Def_FBMapID_SealDemon, Def_FBMapID_ZhuXianBoss, Def_FBMapID_DemonKing]
#跨服地图
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -44582,6 +44582,7 @@
    TreasureState = list()    #(vector<BYTE> TreasureState)// 聚宝盆是否已激活列表,[类型0是否已激活, ...]
    TreasureAward = list()    #(vector<BYTE> TreasureAward)// 聚宝盆奖励是否已领取列表,[类型0是否已领取, ...]
    TreasureProgress = list()    #(vector<BYTE> TreasureProgress)// 聚宝盆进度值列表,[类型0进度值, ...],满进度100
    HelpAwardCount = 0    #(BYTE HelpAwardCount)// 今日已帮助别人奖励次数
    data = None
    def __init__(self):
@@ -44607,6 +44608,7 @@
        for i in range(self.TreasureCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.TreasureProgress.append(value)
        self.HelpAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -44622,6 +44624,7 @@
        self.TreasureState = list()
        self.TreasureAward = list()
        self.TreasureProgress = list()
        self.HelpAwardCount = 0
        return
    def GetLength(self):
@@ -44635,6 +44638,7 @@
        length += 1 * self.TreasureCount
        length += 1 * self.TreasureCount
        length += 1 * self.TreasureCount
        length += 1
        return length
@@ -44652,6 +44656,7 @@
            data = CommFunc.WriteBYTE(data, self.TreasureAward[i])
        for i in range(self.TreasureCount):
            data = CommFunc.WriteBYTE(data, self.TreasureProgress[i])
        data = CommFunc.WriteBYTE(data, self.HelpAwardCount)
        return data
    def OutputString(self):
@@ -44664,7 +44669,8 @@
                                TreasureCount:%d,
                                TreasureState:%s,
                                TreasureAward:%s,
                                TreasureProgress:%s
                                TreasureProgress:%s,
                                HelpAwardCount:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -44675,7 +44681,8 @@
                                self.TreasureCount,
                                "...",
                                "...",
                                "..."
                                "...",
                                self.HelpAwardCount
                                )
        return DumpString
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
@@ -20,6 +20,7 @@
import PyDataManager
import ChPyNetSendPack
import PyGameDataStruct
import PlayerCompensation
import PlayerViewCache
import PlayerDBGSEvent
import PlayerControl
@@ -42,6 +43,7 @@
# 物品实例额外属性名
MineItemAttr_MoveSpeed = "MoveSpeed"
MineItemAttr_EndTime = "EndTime"
MineItemAttr_HelpTick = "HelpTick"
# 物品类型
MineType_Normal = 0 # 常规物品
@@ -226,6 +228,7 @@
        # 不入库的属性
        setattr(mineItemData, MineItemAttr_EndTime, 0)
        setattr(mineItemData, MineItemAttr_MoveSpeed, 0)
        setattr(mineItemData, MineItemAttr_HelpTick, 0)
        return
    
    def GetMineItem(self, playerID, index):
@@ -331,10 +334,7 @@
def DoMineAreaFuncOpen(curPlayer):
    ## 福地功能开启
    playerID = curPlayer.GetPlayerID()
    mineItemMgr = PyDataManager.GetDBPyMineAreaItemManager()
    # 还没有福地物品数据,则刷新初始化
    if playerID not in mineItemMgr.playerMineItemDict:
        __DoMineItemRefresh(playerID, curPlayer)
    __DoMineItemRefresh(playerID, curPlayer)
    return
def OnPlayerLogin(curPlayer):
@@ -788,6 +788,94 @@
    mineItemMgr.socialIDListDict[playerID] = socialIDList
    return socialIDList
def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList):
    # 摇人帮助请求
    if funcLineID == 0:
        return __OnMineHelpRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList)
    return
def OnTurnFightOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList):
    # 摇人帮助结果
    if funcLineID == 0:
        return __OnMineHelpOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList)
    return
def __OnMineHelpRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList):
    # 摇人帮助请求
    playerID = curPlayer.GetPlayerID()
    if not valueList or len(valueList) < 2:
        GameWorld.DebugLog("没有指定valueList!", playerID)
        return
    areaPlayerID = valueList[0]
    itemIndex = valueList[1]
    if playerID == areaPlayerID:
        GameWorld.DebugLog("不能帮助自己!", playerID)
        return
    mineItemMgr = PyDataManager.GetDBPyMineAreaItemManager()
    mineItemData = mineItemMgr.GetMineItem(areaPlayerID, itemIndex)
    mineID = mineItemData.MineID
    if not mineID:
        # 该资源已消失
        PlayerControl.NotifyCode(curPlayer, "MineDisappeared")
        return
    robPlayerID = mineItemData.RobPlayerID
    if not robPlayerID or robPlayerID != tagPlayerID:
        # 当前资源无争夺者或已被其他玩家完成
        PlayerControl.NotifyCode(curPlayer, "MineHelpFinished")
        return
    tick = GameWorld.GetGameWorld().GetTick()
    helpTick = getattr(mineItemData, MineItemAttr_HelpTick)
    if helpTick and tick - helpTick < 10000:
        GameWorld.DebugLog("已经有其他人在帮助中!", playerID)
        return
    setattr(mineItemData, MineItemAttr_HelpTick, tick)
    return True
def __OnMineHelpOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList):
    # 摇人帮助结果
    playerID = curPlayer.GetPlayerID()
    helpPlayerName = curPlayer.GetName()
    areaPlayerID = valueList[0]
    itemIndex = valueList[1]
    isWin = fightRet[0]
    mineItemMgr = PyDataManager.GetDBPyMineAreaItemManager()
    mineItemData = mineItemMgr.GetMineItem(areaPlayerID, itemIndex)
    setattr(mineItemData, MineItemAttr_HelpTick, 0)
    if not isWin:
        #GameWorld.DebugLog("帮助失败")
        return
    robPlayerID = mineItemData.RobPlayerID
    # 赶走抢夺者
    if robPlayerID and robPlayerID == tagPlayerID:
        __DoCancelPull(tagPlayerID, areaPlayerID, itemIndex)
    robCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(tagPlayerID))
    robPlayerName = robCacheDict.get("Name", "")
    areaCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(areaPlayerID))
    areaPlayerName = areaCacheDict.get("Name", "")
    # 邮件发放奖励
    PlayerCompensation.SendMailByKey("MineHelpAward", [playerID], awardItemList, [areaPlayerName, robPlayerName])
    # 通知福地玩家
    PlayerCompensation.SendMailByKey("MineHelpReqOK", [areaPlayerID], [], [helpPlayerName, robPlayerName])
    return True
def MapServer_MineArea(curPlayer, msgList):
    mapID = curPlayer.GetRealMapID()
    playerID = curPlayer.GetPlayerID()
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -82,6 +82,7 @@
import PlayerFairyDomain
import GameWorldSkyTower
import GameWorldMineArea
import PlayerTurnFight
import GameWorldArena
import GameWorldItem
import PlayerAssist
@@ -992,7 +993,7 @@
    
    
    # 副本助战
    if callName =="FBHelpBattle":
    if callName == "FBHelpBattle":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        if not curPlayer:
            return
@@ -1002,7 +1003,7 @@
        resultName = '%s' % ret
    
    # 竞技场
    if callName =="Arena":
    if callName == "Arena":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        if not curPlayer:
            return
@@ -1010,14 +1011,14 @@
        resultName = '%s' % ret if ret != None else '' # 需要重置间隔,每次都回复
        
    # 仙盟boss
    if callName =="FamilyBoss":
    if callName == "FamilyBoss":
        ret = PlayerFamilyBoss.MapServer_FamilyBoss(eval(resultName), tick)
        if ret == None:
            return
        resultName = '%s' % ret
        
    # 情缘
    if callName =="Love":
    if callName == "Love":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        if not curPlayer:
            return
@@ -1026,8 +1027,18 @@
            return
        resultName = '%s' % ret
        
    # 回合制
    if callName == "TurnFight":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        if not curPlayer:
            return
        ret = PlayerTurnFight.MapServer_TurnFight(curPlayer, eval(resultName))
        if ret == None:
            return
        resultName = '%s' % ret
    # 福地
    if callName =="MineArea":
    if callName == "MineArea":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        if not curPlayer:
            return
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTurnFight.py
New file
@@ -0,0 +1,62 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package PlayerTurnFight
#
# @todo:回合制
# @author hxp
# @date 2024-04-10
# @version 1.0
#
# 详细描述: 回合制
#
#-------------------------------------------------------------------------------
#"""Version = 2024-04-10 14:00"""
#-------------------------------------------------------------------------------
import GameWorld
import GameWorldMineArea
import ChConfig
def MapServer_TurnFight(curPlayer, msgList):
    mapID = curPlayer.GetRealMapID()
    playerID = curPlayer.GetPlayerID()
    GameWorld.DebugLog("MapServer_TurnFight mapID=%s,msgList=%s" % (mapID, msgList), playerID)
    if not msgList:
        return
    msgType, dataMsg = msgList
    ret = None
    if msgType == "TurnFightRequest":
        ret = __OnTurnFightRequest(curPlayer, dataMsg)
    elif msgType == "TurnFightOver":
        ret = __OnTurnFightOver(curPlayer, dataMsg)
    if ret == None:
        return
    return msgList + (ret if isinstance(ret, list) else [ret])
def __OnTurnFightRequest(curPlayer, dataMsg):
    ## 回合战斗请求
    # @return: None-不允许战斗;非None-允许战斗,具体返回内容功能自己决定
    mapID, funcLineID, tagPlayerID, valueList = dataMsg
    if mapID == ChConfig.Def_TFMapID_MineArea:
        return GameWorldMineArea.OnTurnFightRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList)
    return
def __OnTurnFightOver(curPlayer, dataMsg):
    ## 回合战斗结束
    mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList = dataMsg
    if mapID == ChConfig.Def_TFMapID_MineArea:
        return GameWorldMineArea.OnTurnFightOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -44582,6 +44582,7 @@
    TreasureState = list()    #(vector<BYTE> TreasureState)// 聚宝盆是否已激活列表,[类型0是否已激活, ...]
    TreasureAward = list()    #(vector<BYTE> TreasureAward)// 聚宝盆奖励是否已领取列表,[类型0是否已领取, ...]
    TreasureProgress = list()    #(vector<BYTE> TreasureProgress)// 聚宝盆进度值列表,[类型0进度值, ...],满进度100
    HelpAwardCount = 0    #(BYTE HelpAwardCount)// 今日已帮助别人奖励次数
    data = None
    def __init__(self):
@@ -44607,6 +44608,7 @@
        for i in range(self.TreasureCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.TreasureProgress.append(value)
        self.HelpAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -44622,6 +44624,7 @@
        self.TreasureState = list()
        self.TreasureAward = list()
        self.TreasureProgress = list()
        self.HelpAwardCount = 0
        return
    def GetLength(self):
@@ -44635,6 +44638,7 @@
        length += 1 * self.TreasureCount
        length += 1 * self.TreasureCount
        length += 1 * self.TreasureCount
        length += 1
        return length
@@ -44652,6 +44656,7 @@
            data = CommFunc.WriteBYTE(data, self.TreasureAward[i])
        for i in range(self.TreasureCount):
            data = CommFunc.WriteBYTE(data, self.TreasureProgress[i])
        data = CommFunc.WriteBYTE(data, self.HelpAwardCount)
        return data
    def OutputString(self):
@@ -44664,7 +44669,8 @@
                                TreasureCount:%d,
                                TreasureState:%s,
                                TreasureAward:%s,
                                TreasureProgress:%s
                                TreasureProgress:%s,
                                HelpAwardCount:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -44675,7 +44681,8 @@
                                self.TreasureCount,
                                "...",
                                "...",
                                "..."
                                "...",
                                self.HelpAwardCount
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MineArea.py
@@ -35,12 +35,14 @@
        GameWorld.DebugAnswer(curPlayer, "设置工人数量: MineArea w 数量")
        GameWorld.DebugAnswer(curPlayer, "设置刷新次数: MineArea r 次数 [是否超级]")
        GameWorld.DebugAnswer(curPlayer, "设置聚宝进度: MineArea t 类型 进度值")
        GameWorld.DebugAnswer(curPlayer, "设置帮助次数: MineArea h 次数")
        return True
    
    value1 = msgList[0]
    if value1 == 0:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineWorkerCount, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineWorkerEnergyUsed, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineHelpAwardCount, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineRefreshCount % 0, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineRefreshCount % 1, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineTreasureState, 0)
@@ -73,6 +75,11 @@
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineTreasureProgess % treasureType, setProgress)
        GameWorld.DebugAnswer(curPlayer, "设置聚宝进度: Type:%s,进度=%s" % (treasureType, setProgress))
        
    elif value1 == "h":
        helpAwardCount = msgList[1] if len(msgList) > 1 else 0
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineHelpAwardCount, helpAwardCount)
        GameWorld.DebugAnswer(curPlayer, "设置帮助次数: %s" % helpAwardCount)
    else:
        return True
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -2423,4 +2423,44 @@
    if callFunc == None:
        return False
    return callFunc(curPlayer)
def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList):
    ## 回合战斗请求 - 地图验证
    # @return: 是否允许
    do_FBLogic_ID = __GetFBLogic_MapID(mapID)
    callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightRequest"))
    if callFunc == None:
        # 默认不限制
        return True
    return callFunc(curPlayer, mapID, funcLineID, tagPlayerID, valueList)
def OnTurnFightOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet):
    ## 回合战斗结束
    # @return: 是否需要同步GameServer, 奖励列表, 发放方式(0-不发放, 1-TurnAttack模块统一发放, 2-功能自己决定发放逻辑)
    # @return: None - 无结算逻辑,可走TurnAttack模块通用逻辑
    do_FBLogic_ID = __GetFBLogic_MapID(mapID)
    callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightOver"))
    if callFunc == None:
        return
    return callFunc(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet)
def OnTurnFightOver_GameServerRet(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList, ret):
    ## 回合战斗结束 - GameServer处理完毕返回
    do_FBLogic_ID = __GetFBLogic_MapID(mapID)
    callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightOver_GameServerRet"))
    if callFunc == None:
        return
    return callFunc(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList, ret)
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MineArea.py
New file
@@ -0,0 +1,75 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GameWorldLogic.FBProcess.GameLogic_MineArea
#
# @todo:福地
# @author hxp
# @date 2024-04-10
# @version 1.0
#
# 详细描述: 福地
#
#-------------------------------------------------------------------------------
#"""Version = 2024-04-10 14:00"""
#-------------------------------------------------------------------------------
import ChConfig
import IpyGameDataPY
import PlayerMineArea
import PlayerControl
import GameWorld
def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList):
    ## 回合战斗请求 - 地图验证
    # 摇人帮助
    if funcLineID == 0:
        if not tagPlayerID:
            return
        awardCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineHelpAwardCount)
        awardCountMax = IpyGameDataPY.GetFuncCfg("MineAreaHelp", 1)
        if awardCountMax and awardCount >= awardCountMax:
            GameWorld.DebugLog("已达到今日福地帮助奖励次数上限! awardCount=%s" % awardCount, curPlayer.GetPlayerID())
            return
    else:
        # 通过lineID扩展同个功能系统下的不同战斗需求
        pass
    return True
def OnTurnFightOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet):
    ## 回合战斗结束
    # @return: 是否需要同步GameServer, 奖励列表, 发放方式(0-不发放, 1-TurnAttack模块统一发放, 2-功能自己决定发放逻辑)
    # 摇人帮助
    if funcLineID == 0:
        # 无论胜负都要同步GameServer汇报结果
        isWin = fightRet[0]
        if not isWin:
            return True, [], 0
        awardItemList = IpyGameDataPY.GetFuncEvalCfg("MineAreaHelp", 2)
        return True, awardItemList, 2
    return
def OnTurnFightOver_GameServerRet(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList, ret):
    ## 回合战斗结束 - GameServer处理完毕返回
    # 摇人帮助
    if funcLineID == 0:
        isWin = fightRet[0]
        if not isWin or not ret:
            return
        # 增加奖励次数
        awardCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineHelpAwardCount) + 1
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineHelpAwardCount, awardCount)
        GameWorld.DebugLog("更新福地帮助他人奖励次数: awardCount=%s" % awardCount, curPlayer.GetPlayerID())
        PlayerMineArea.SyncPlayerMineAreaInfo(curPlayer)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py
@@ -33,6 +33,7 @@
    return
def PlayerOnDay(curPlayer):
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineHelpAwardCount, 0)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineWorkerEnergyUsed, 0)
    for refreshType in [0, 1]:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MineRefreshCount % refreshType, 0)
@@ -296,6 +297,7 @@
    clientPack = ChPyNetSendPack.tagMCPlayerMineAreaInfo()
    clientPack.WorkerCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineWorkerCount)
    clientPack.EnergyUsed = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineWorkerEnergyUsed)
    clientPack.HelpAwardCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineHelpAwardCount)
    clientPack.RefreshCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineRefreshCount % 0)
    clientPack.RefreshCountSuper = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MineRefreshCount % 1)
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_TurnFight.py
New file
@@ -0,0 +1,47 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Player.RemoteQuery.GY_Query_TurnFight
#
# @todo:回合制
# @author hxp
# @date 2024-04-10
# @version 1.0
#
# 详细描述: 回合制
#
#-------------------------------------------------------------------------------
#"""Version = 2024-04-10 14:00"""
#-------------------------------------------------------------------------------
import GameWorld
import TurnAttack
#---------------------------------------------------------------------
#逻辑实现
## 请求逻辑
#  @param query_Type 请求类型
#  @param query_ID 请求的玩家ID
#  @param packCMDList 发包命令 [ ]
#  @param tick 当前时间
#  @return "True" or "False" or ""
#  @remarks 函数详细说明.
def DoLogic(query_Type, query_ID, packCMDList, tick):
    return ""
#---------------------------------------------------------------------
#执行结果
## 执行结果
#  @param curPlayer 发出请求的玩家
#  @param callFunName 功能名称
#  @param funResult 查询的结果
#  @param tick 当前时间
#  @return None
#  @remarks 函数详细说明.
def DoResult(curPlayer, callFunName, funResult, tick):
    GameWorld.DebugLog("GY_Query_TurnFight DoResult %s" % str(funResult), curPlayer.GetPlayerID())
    if funResult != "":
        TurnAttack.GameServer_TurnFight_DoResult(curPlayer, eval(funResult), tick)
    return