ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -603,13 +603,15 @@
        hero = lineup.GetLineupHero(posNum)
        heroID = hero.heroID
        itemIndex = hero.itemIndex
        userData = ""
        heroLV = 1
        star = 0
        if itemIndex >= 0 and itemIndex < curPack.GetCount():
            heroItem = curPack.GetAt(itemIndex)
            if heroItem and not heroItem.IsEmpty():
                userData = heroItem.GetUserData()
                heroLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroLV)
                star = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar)
                #breakLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
                #awakeLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroAwakeLV)
                
        skillIDlist = []
        skillIDlist += hero.heroSkillIDList
@@ -617,7 +619,9 @@
                                 "HeroID":heroID,
                                 "SkinID":hero.skinID,
                                 "LV":heroLV,
                                 "Data":userData,
                                 "Star":star,
                                 #"BreakLV":breakLV,
                                 #"AwakeLV":awakeLV,
                                 "FightPower":hero.fightPower,
                                 "AttrDict":{str(k):v for k, v in hero.heroBatAttrDict.items() if v > 0},
                                 "SkillIDList":skillIDlist,
@@ -755,6 +759,7 @@
        return
    heroID = npcData.GetRelatedHeroID()
    npcLV = npcData.GetLV()
    star, breakLV, awakeLV = 0, 0, 0
    
    lvIpyData = None
    heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID) if heroID else None
@@ -765,11 +770,14 @@
            npcLV = strongerLV
    if not lvIpyData:
        lvIpyData = IpyGameDataPY.GetIpyGameData("PlayerLV", npcLV)
    if lvIpyData:
        star = lvIpyData.GetReHeroStar()
        breakLV = lvIpyData.GetReHeroBreakLV()
        awakeLV = lvIpyData.GetReHeroAwakeLV()
    if heroIpyData and lvIpyData:
        skinIDList = heroIpyData.GetSkinIDList()
        skinID = skinIDList[0] if skinIDList else 0
        skillIDList = GetNPCHeroSkillIDList(heroID, heroIpyData, lvIpyData.GetReHeroBreakLV(), lvIpyData.GetReHeroAwakeLV())
        skillIDList = GetNPCHeroSkillIDList(heroID, heroIpyData, breakLV, awakeLV)
    else:
        heroID = 0
        skinID = 0
@@ -809,6 +817,9 @@
                  "HeroID":heroID,
                  "SkinID":skinID,
                  "LV":npcLV,
                  "Star":star,
                  #"BreakLV":breakLV,
                  #"AwakeLV":awakeLV,
                  "AttrDict":{str(k):v for k, v in batAttrDict.items() if v > 0},
                  "SkillIDList":skillIDList,
                  }
@@ -896,6 +907,7 @@
        heroID = heroInfo.get("HeroID", 0)
        skinID = heroInfo.get("SkinID", 0)
        lv = heroInfo.get("LV", 1)
        star = heroInfo.get("Star", 0)
        specialty, atkDistType, country, sex, job = 0, 1, 0, 1, 0
        heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID) if heroID else None
        if heroIpyData:
@@ -932,6 +944,7 @@
        batObj.SetLineupPos(posNum, num)
        batObj.SetFightPower(fightPower)
        batObj.SetLV(lv)
        batObj.SetStar(star)
        batObj.SetAtkDistType(atkDistType)
        batObj.SetSpecialty(specialty)
        batObj.SetCountry(country)
@@ -946,7 +959,7 @@
            
        batLineup.posObjIDDict[posNum] = objID
        batLineup.heroObjIDDict[heroID] = objID
        GameWorld.DebugLog("AddBatObj %s,skill=%s" % (GetObjName(batObj), skillManager.GetSkillIDList()))
        GameWorld.DebugLog("AddBatObj %s,lv=%s,star=%s,skill=%s" % (GetObjName(batObj), lv, star, skillManager.GetSkillIDList()))
        ResetObjSkill(batObj)
        
        if npcID:
@@ -2036,9 +2049,11 @@
                cureHP = batObj.cureStat
                batLineup.totalHurt += atkHurt
                batFaction.totalHurt += atkHurt
                dead = 0 if batObj.IsAlive() else 1
                GameWorld.DebugLog("    Pos:%s ID=%s,npcID=%s,heroID=%s,HP=%s/%s, 输出=%s,承伤=%s,治疗=%s" 
                                   % (posNum, objID, npcID, heroID, batObj.GetHP(), batObj.GetMaxHP(), atkHurt, defHurt, cureHP))
                lineupStatInfo[str(posNum)] = {"ObjID":objID, "HeroID":heroID, "NPCID":npcID, "AtkHurt":atkHurt, "DefHurt":defHurt, "CureHP":cureHP}
                lineupStatInfo[str(posNum)] = {"ObjID":objID, "HeroID":heroID, "NPCID":npcID, "AtkHurt":atkHurt, "DefHurt":defHurt, "CureHP":cureHP,
                                               "LV":batObj.GetLV(), "Star":batObj.GetStar(), "Skin":batObj.GetSkinID(), "Dead":dead}
                
    statMsg = {"winFaction":winFaction, "statInfo":statInfo}