129 【战斗】战斗系统-服务端(后端废除7号位,通知前端支持通知7号位;)
| | |
| | | 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为所有
|
| | | };
|
| | |
| | | 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
|
| | |
| | | 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
|
| | |
|
| | |
| | | tfObj.MaxHP = batObj.GetMaxHP() % ChConfig.Def_PerPointValue
|
| | | tfObj.MaxHPEx = batObj.GetMaxHP() / ChConfig.Def_PerPointValue
|
| | | tfObj.LV = batObj.GetLV()
|
| | | tfObj.PosNum = posNum
|
| | | if batLineup.bossPosView and batLineup.bossID == batObj.GetNPCID():
|
| | | tfObj.PosNum = batLineup.bossPosView
|
| | | else:
|
| | | tfObj.PosNum = posNum |
| | | tfObj.AngreXP = batObj.GetXP()
|
| | | tfLineup.ObjList.append(tfObj)
|
| | | tfLineup.ObjCnt = len(tfLineup.ObjList)
|
| | |
| | | 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)()
|
| | |
| | | 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):
|
| | |
| | | ("DWORD", "PosNPCID4", 0),
|
| | | ("DWORD", "PosNPCID5", 0),
|
| | | ("DWORD", "PosNPCID6", 0),
|
| | | ("DWORD", "PosNPCID7", 0),
|
| | | ("DWORD", "BossID", 0),
|
| | | ("BYTE", "BossPosView", 0),
|
| | | ("list", "SkillIDExList", 0),
|
| | | ("BYTE", "SkillExCnt", 0),
|
| | | ),
|
| | |
| | | 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 |
| | | |