129 【战斗】战斗系统-服务端(后端废除7号位,通知前端支持通知7号位;)
3个文件已修改
23 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -344,8 +344,8 @@
    DWORD        PosNPCID4;    //4号位NPCID
    DWORD        PosNPCID5;    //5号位NPCID
    DWORD        PosNPCID6;    //6号位NPCID
    DWORD        PosNPCID7;    //7号位NPCID
    DWORD        BossID;    // 本阵容的BossID,没有boss时为0
    BYTE        BossPosView;    //Boss֪ͨվλ
    list        SkillIDExList;    // boss附加技能列表
    BYTE        SkillExCnt;    //随机附加技能数,0为所有
};
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -75,6 +75,10 @@
        self.beautyObjIDDict = {} # 红颜战斗单位 {位置编号:batObjID, ...}
        self.actionNum = ActionNumStart # 行动位置,从1开始
        self.totalHurt = 0 # 阵容总输出
        #特殊
        self.bossID = 0
        self.bossPosView = 0
        return
    
    def getPlayerID(self): return self.turnFight.playerID # 发起的玩家ID
@@ -88,6 +92,8 @@
        self.ownerID = lineupInfo.get("PlayerID", 0) # 阵容所属的玩家ID
        self.shapeType = lineupInfo.get("ShapeType", 0)
        self.fightPower = lineupInfo.get("FightPower", 0)
        self.bossID = lineupInfo.get("BossID", 0)
        self.bossPosView = lineupInfo.get("BossPosView", 0)
        SummonLineupObjs(self, self.faction, self.num, lineupInfo, self.getPlayerID())
        return
    
@@ -384,6 +390,9 @@
                    tfObj.MaxHP = batObj.GetMaxHP() % ChConfig.Def_PerPointValue
                    tfObj.MaxHPEx = batObj.GetMaxHP() / ChConfig.Def_PerPointValue
                    tfObj.LV = batObj.GetLV()
                    if batLineup.bossPosView and batLineup.bossID == batObj.GetNPCID():
                        tfObj.PosNum = batLineup.bossPosView
                    else:
                    tfObj.PosNum = posNum
                    tfObj.AngreXP = batObj.GetXP()
                    tfLineup.ObjList.append(tfObj)
@@ -600,9 +609,11 @@
    ipyData = IpyGameDataPY.GetIpyGameData("NPCLineup", lineupID)
    if not ipyData:
        return {}
    bossID = ipyData.GetBossID()
    bossPosView = ipyData.GetBossPosView()
    
    heroDict = {}
    for posNum in range(1, 1 + 10):
    for posNum in range(1, 1 + 6):
        if not hasattr(ipyData, "GetPosNPCID%s" % posNum):
            break
        npcID = getattr(ipyData, "GetPosNPCID%s" % posNum)()
@@ -613,7 +624,7 @@
            continue
        heroDict[str(posNum)] = battleDict
        
    lineupInfo = {"NPCLineupID":lineupID, "Hero":heroDict}
    lineupInfo = {"NPCLineupID":lineupID, "Hero":heroDict, "BossID":bossID, "BossPosView":bossPosView}
    return lineupInfo
def GetNPCBattleDict(lineupIpyData, npcID, strongerLV=0, difficulty=0):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -332,8 +332,8 @@
                        ("DWORD", "PosNPCID4", 0),
                        ("DWORD", "PosNPCID5", 0),
                        ("DWORD", "PosNPCID6", 0),
                        ("DWORD", "PosNPCID7", 0),
                        ("DWORD", "BossID", 0),
                        ("BYTE", "BossPosView", 0),
                        ("list", "SkillIDExList", 0),
                        ("BYTE", "SkillExCnt", 0),
                        ),
@@ -2816,8 +2816,8 @@
    def GetPosNPCID4(self): return self.attrTuple[4] # 4号位NPCID DWORD
    def GetPosNPCID5(self): return self.attrTuple[5] # 5号位NPCID DWORD
    def GetPosNPCID6(self): return self.attrTuple[6] # 6号位NPCID DWORD
    def GetPosNPCID7(self): return self.attrTuple[7] # 7号位NPCID DWORD
    def GetBossID(self): return self.attrTuple[8] #  本阵容的BossID,没有boss时为0 DWORD
    def GetBossID(self): return self.attrTuple[7] #  本阵容的BossID,没有boss时为0 DWORD
    def GetBossPosView(self): return self.attrTuple[8] # Boss֪ͨվλ BYTE
    def GetSkillIDExList(self): return self.attrTuple[9] #  boss附加技能列表 list
    def GetSkillExCnt(self): return self.attrTuple[10] # 随机附加技能数,0为所有 BYTE