ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/TurnFight.py
@@ -33,7 +33,7 @@
#  @remarks 函数详细说明.
def OnExec(curPlayer, msgList):
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "发起战斗: TurnFight mapID [lineID 玩家ID]")
        GameWorld.DebugAnswer(curPlayer, "发起战斗: TurnFight mapID [lineID 玩家ID V ...]")
        GameWorld.DebugAnswer(curPlayer, "设置属性: TurnFight a 属性ID 值 [阵营 位置] ")
        GameWorld.DebugAnswer(curPlayer, "击杀目标: TurnFight k 阵营 [位置 ...] ")
        GameWorld.DebugAnswer(curPlayer, "添加buff: TurnFight b 阵营  位置 buff归属阵营 位置 技能ID [ID ...]")
@@ -72,6 +72,7 @@
    clientData.FuncLineID = funcLineID
    clientData.TagType = 0 if not tagPlayerID else 1
    clientData.TagID = tagPlayerID
    clientData.ValueList = msgList[3:]
    index = curPlayer.GetIndex()
    tick = GameWorld.GetGameWorld().GetTick()
    if not TurnAttack.OnTurnFight(index, clientData, tick):
@@ -106,9 +107,10 @@
            continue
        batFaction = turnFight.getBatFaction(faction)
        batLineup = batFaction.getBatlineup(1)
        posNumList = [pNum] if pNum else batLineup.posObjIDDict.keys()
        posObjIDDict = batLineup.getPosObjIDDict()
        posNumList = [pNum] if pNum else posObjIDDict.keys()
        for posNum in posNumList:
            objID = batLineup.posObjIDDict.get(posNum)
            objID = posObjIDDict.get(posNum)
            batObj = batObjMgr.getBatObj(objID)
            if not batObj:
                GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (faction, posNum))
@@ -144,8 +146,9 @@
    batObjMgr = BattleObj.GetBatObjMgr()
    batFaction = turnFight.getBatFaction(faction)
    batLineup = batFaction.getBatlineup(1)
    posObjIDDict = batLineup.getPosObjIDDict()
    for posNum in posNumList:
        objID = batLineup.posObjIDDict.get(posNum)
        objID = posObjIDDict.get(posNum)
        if not objID:
            continue
        batObj = batObjMgr.getBatObj(objID)
@@ -182,7 +185,7 @@
    batObjMgr = BattleObj.GetBatObjMgr()
    batFaction = turnFight.getBatFaction(faction)
    batLineup = batFaction.getBatlineup(1)
    objID = batLineup.posObjIDDict.get(posNum)
    objID = batLineup.getPosObjIDDict().get(posNum)
    batObj = batObjMgr.getBatObj(objID)
    if not batObj:
        GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (faction, posNum))
@@ -193,7 +196,7 @@
    
    ownerFaction = turnFight.getBatFaction(ownerFaction)
    ownerLineup = ownerFaction.getBatlineup(1)
    ownerID = ownerLineup.posObjIDDict.get(ownerPosNum)
    ownerID = ownerLineup.getPosObjIDDict().get(ownerPosNum)
    buffOwner = batObjMgr.getBatObj(ownerID)
    if not buffOwner:
        GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (ownerFaction, ownerPosNum))
@@ -230,37 +233,47 @@
        GameWorld.DebugAnswer(curPlayer, "---------- 【阵营%s】 ----------" % faction)
        batFaction = turnFight.getBatFaction(faction)
        batLineup = batFaction.getBatlineup(1)
        mgObj = batLineup.getMinggeObj()
        if mgObj:
            objName = "命格 ID:%s" % mgObj.GetID()
            __printObj(curPlayer, mgObj, objName)
        posObjIDDict = batLineup.getPosObjIDDict()
        for posNum in posNumList:
            objID = batLineup.posObjIDDict.get(posNum)
            objID = posObjIDDict.get(posNum)
            if not objID:
                continue
            batObj = batObjMgr.getBatObj(objID)
            objName = TurnAttack.GetObjName(batObj)
            GameWorld.DebugAnswer(curPlayer, "--- %s%s" % (objName, "" if batObj.IsAlive() else " [被击杀]"))
            GameWorld.DebugAnswer(curPlayer, "HP:%s/%s" % (batObj.GetHP(), batObj.GetMaxHP()))
            GameWorld.DebugAnswer(curPlayer, "攻:%s,防:%s,怒:%s" % (batObj.GetAtk(), batObj.GetDef(), batObj.GetXP()))
            attrStr = ""
            attrDict = batObj.GetBatAttrDict()
            attrIDList = attrDict.keys()
            attrIDList.sort()
            for attrID in attrIDList:
                attrValue = attrDict[attrID]
                if attrValue:
                    attrStr += "%s=%s;" % (attrID, attrValue)
            GameWorld.DebugAnswer(curPlayer, "属性:%s" % attrStr)
            skillMgr = batObj.GetSkillManager()
            skillIDList = skillMgr.GetSkillIDList()
            GameWorld.DebugAnswer(curPlayer, "技能: %s,%s" % (len(skillIDList), skillIDList))
            buffMgr = batObj.GetBuffManager()
            GameWorld.DebugAnswer(curPlayer, "Buff: %s" % buffMgr.GetBuffCount())
            for index in range(buffMgr.GetBuffCount()):
                buff = buffMgr.GetBuffByIndex(index)
                buffName = GameWorld.CodeToGbk(buff.GetSkillData().GetSkillName())
                GameWorld.DebugAnswer(curPlayer, "ID:%s,%s(%s),回合:%s,层:%s,V:%s,来源:%s,光环:%s"
                                      % (buff.GetBuffID(), buffName, buff.GetSkillID(), buff.GetRemainTime(), buff.GetLayer(),
                                         [buff.GetValue1(), buff.GetValue2(), buff.GetValue3()], buff.GetOwnerID(), buff.GetHaloObjIDList()
                                         ))
            __printObj(curPlayer, batObj, objName)
    return
def __printObj(curPlayer, batObj, objName):
    GameWorld.DebugAnswer(curPlayer, "--- %s%s" % (objName, "" if batObj.IsAlive() else " [被击杀]"))
    GameWorld.DebugAnswer(curPlayer, "HP:%s/%s" % (batObj.GetHP(), batObj.GetMaxHP()))
    GameWorld.DebugAnswer(curPlayer, "攻:%s,防:%s,怒:%s" % (batObj.GetAtk(), batObj.GetDef(), batObj.GetXP()))
    attrStr = ""
    attrDict = batObj.GetBatAttrDict()
    attrIDList = attrDict.keys()
    attrIDList.sort()
    for attrID in attrIDList:
        attrValue = attrDict[attrID]
        if attrValue:
            attrStr += "%s=%s;" % (attrID, attrValue)
    GameWorld.DebugAnswer(curPlayer, "属性:%s" % attrStr)
    skillMgr = batObj.GetSkillManager()
    skillIDList = skillMgr.GetSkillIDList()
    GameWorld.DebugAnswer(curPlayer, "技能: %s,%s" % (len(skillIDList), skillIDList))
    buffMgr = batObj.GetBuffManager()
    GameWorld.DebugAnswer(curPlayer, "Buff: %s" % buffMgr.GetBuffCount())
    for index in range(buffMgr.GetBuffCount()):
        buff = buffMgr.GetBuffByIndex(index)
        buffName = GameWorld.CodeToGbk(buff.GetSkillData().GetSkillName())
        GameWorld.DebugAnswer(curPlayer, "ID:%s,%s(%s),回合:%s,层:%s,V:%s,来源:%s,光环:%s"
                              % (buff.GetBuffID(), buffName, buff.GetSkillID(), buff.GetRemainTime(), buff.GetLayer(),
                                 [buff.GetValue1(), buff.GetValue2(), buff.GetValue3()], buff.GetOwnerID(), buff.GetHaloObjIDList()
                                 ))
    return
def __doFightTest(curPlayer, msgList):