121 【武将】武将系统-服务端(Hero命令优化一键满级可指定等级、星级、突破、觉醒;)
1个文件已修改
47 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Hero.py 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Hero.py
@@ -249,10 +249,10 @@
def __oneKeyMax(curPlayer, msgList):
    ## 一键满级: Hero max [指定等级 星级 突破 觉醒]
    setLV = msgList[2] if len(msgList) > 2 else None
    setStar = msgList[3] if len(msgList) > 3 else None
    setBreakLV = msgList[4] if len(msgList) > 4 else None
    setAwakeLV = msgList[5] if len(msgList) > 5 else None
    setLV = msgList[1] if len(msgList) > 1 else None
    setStar = msgList[2] if len(msgList) > 2 else None
    setBreakLV = msgList[3] if len(msgList) > 3 else None
    setAwakeLV = msgList[4] if len(msgList) > 4 else None
    
    heroIDList = []
    ipyDataMgr = IpyGameDataPY.IPY_Data()
@@ -410,18 +410,22 @@
        return
    singleItem = heroItem.GetItem()
    
    # 重置
    PlayerHero.InitHeroItem(singleItem)
    # 天赋        
    awakeLVMax = 0
    for aLV in range(1, 100):
        if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityAwake", quality, aLV):
            break
        awakeLVMax = aLV
    if setAwakeLV != None:
        awakeLV = setAwakeLV
        awakeLV = min(setAwakeLV, awakeLVMax)
        if not IpyGameDataPY.GetIpyGameData("HeroQualityAwake", quality, awakeLV):
            GameWorld.DebugAnswer(curPlayer, "觉醒等级不存在:%s 品质:%s" % (awakeLV, quality))
            return
            #GameWorld.DebugAnswer(curPlayer, "觉醒等级不存在:%s 品质:%s" % (awakeLV, quality))
            awakeLV = 0
    else:
        awakeLV = 0
        for aLV in range(1, 100):
            if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityAwake", quality, aLV):
                break
            awakeLV = aLV
        awakeLV = awakeLVMax
    PlayerHero.SetHeroAwakeLV(heroItem, awakeLV, False)
    
    doCnt = 0
@@ -434,17 +438,18 @@
        awakeRandCnt = singleItem.GetUserAttrCount(ShareDefine.Def_IudetHeroTalentIDAwakeRand)
        
    # 突破
    breakLVMax = 0
    for bLV in range(1, 100):
        if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityBreak", quality, bLV):
            break
        breakLVMax = bLV
    if setBreakLV != None:
        breakLV = setBreakLV
        breakLV = min(setBreakLV, breakLVMax)
        if not IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, breakLV):
            GameWorld.DebugAnswer(curPlayer, "突破等级不存在:%s 品质:%s" % (breakLV, quality))
            return
            #GameWorld.DebugAnswer(curPlayer, "突破等级不存在:%s 品质:%s" % (breakLV, quality))
            breakLV = 0
    else:
        breakLV = 0
        for bLV in range(1, 100):
            if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityBreak", quality, bLV):
                break
            breakLV = bLV
        breakLV = breakLVMax
    PlayerHero.SetHeroBreakLV(curPlayer, heroItem, breakLV, False)
    
    # 星级
@@ -458,7 +463,7 @@
    # 等级
    lvMax = PlayerHero.GetHeroLVMax(heroItem)
    if setLV != None:
        updHeroLV = min(setLV, lvMax)
        updHeroLV = max(1, min(setLV, lvMax))
    else:
        updHeroLV = lvMax
    singleItem.SetUserAttr(ShareDefine.Def_IudetHeroLV, updHeroLV)