hxp
3 天以前 540eced2499bf2814f3264c0d41eb0e9c52b9957
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -1409,31 +1409,39 @@
#{
#    tagHead        Head;
#    BYTE        PresetID;        //阵容方案预设ID
#    BYTE        ShapeType;    //本阵容阵型,0为默认阵型,可扩展不同的阵型
#    BYTE        PosCnt;
#    tagCSHeroPresetPos    HeroPosList[PosCnt];    // 保存的阵容,只发送最终的阵容武将位置即可
#};
def OnHeroPresetSave(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    presetID = clientData.PresetID
    shapeType = clientData.ShapeType
    shapeType = 0#clientData.ShapeType
    heroPosList = clientData.HeroPosList
    
    heroPosDict = {}
    indexList = []
    itemIndexPosDict = {}
    for posInfo in heroPosList:
        posNum = posInfo.PosNum
        itemIndex = posInfo.ItemIndex
        itemIndexPosDict[itemIndex] = posNum
    DoSaveHeroPreset(curPlayer, presetID, itemIndexPosDict, shapeType)
    return
def DoSaveHeroPreset(curPlayer, presetID, itemIndexPosDict, shapeType=0):
    if not PlayerPreset.GetFuncPresetIDState(curPlayer, presetID, ShareDefine.FuncPreset_Hero):
        GameWorld.DebugLog("该武将阵容预设不可用! presetID=%s" % presetID)
        return
    heroPosDict = {}
    indexList = []
    for itemIndex, posNum in itemIndexPosDict.items():
        if itemIndex in indexList:
            # 单武将只能一个位置,一个位置只能对应唯一武将单位
            continue
        indexList.append(itemIndex)
        heroPosDict[posNum] = itemIndex
        
    if not PlayerPreset.GetFuncPresetIDState(curPlayer, presetID, ShareDefine.FuncPreset_Hero):
        GameWorld.DebugLog("该武将阵容预设不可用! presetID=%s" % presetID)
        return
    GameWorld.DebugLog("保存武将预设阵容: presetID=%s, %s" % (presetID, heroPosDict), curPlayer.GetPlayerID())
    curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
    # 直接重置旧阵型
@@ -1790,7 +1798,7 @@
                heroItemIndexList.append(0)
        preset = ChPyNetSendPack.tagSCHeroPreset()
        preset.PresetID = heroPresetID
        preset.ShapeType = heroPreset.shapeType
        #preset.ShapeType = heroPreset.shapeType
        preset.HeroItemIndexList = heroItemIndexList
        preset.HeroCnt = len(preset.HeroItemIndexList)
        presetList.append(preset)