xdh
2019-05-28 69dc81f34df6887f26cbde4fad3fab687573f5b7
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStone.py
@@ -35,10 +35,10 @@
g_stoneCanPlaceList = [] #可镶嵌的位置
def OnLogin(curPlayer):
    ###登录发包同步客户端宝石信息
    Sycn_StoneHoleInfo(curPlayer)
    return
#def OnLogin(curPlayer):
#    ###登录发包同步客户端宝石信息
#    Sycn_StoneHoleInfo(curPlayer)
#    return
def GetAllStoneEquipIndexList():
    ###得到所有可镶嵌宝石装备位列表
@@ -96,9 +96,31 @@
def SetEquipIndexStoneIDAndIsBand(curPlayer, equipIndex, holeIndex, changeStoneID, isBind):
    ### 保存装备位孔位宝石ID和绑定信息
    befStoneID, befIsBind = GetEquipIndexStoneIDAndIsBand(curPlayer, equipIndex, holeIndex)
    if befStoneID == changeStoneID and befIsBind == isBind:
        return
    isBind = 0 #现绑定无用,默认存0
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipPartStoneID % (equipIndex, holeIndex),
                                       changeStoneID * ChConfig.Def_Stone_SaveStoneInfoXNumber + isBind)
                                       changeStoneID * ChConfig.Def_Stone_SaveStoneInfoXNumber + isBind)
    # 同步更新宝石总等级
    gameData = GameWorld.GetGameData()
    befStoneLV = 0
    if befStoneID:
        befGem = gameData.GetItemByTypeID(befStoneID)
        befStoneLV = 0 if not befGem else befGem.GetEffectByIndex(0).GetEffectValue(1)
    aftStoneLV = 0
    if changeStoneID:
        aftGem = gameData.GetItemByTypeID(changeStoneID)
        aftStoneLV = 0 if not aftGem else aftGem.GetEffectByIndex(0).GetEffectValue(1)
    befTotalStoneLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalStoneLV)
    updTotalStoneLV = max(0, befTotalStoneLV + aftStoneLV - befStoneLV)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalStoneLV, updTotalStoneLV)
    GameWorld.DebugLog("设置宝石等级: equipIndex=%s,holeIndex=%s,befStoneLV=%s,aftStoneLV=%s,befTotalStoneLV=%s,updTotalStoneLV=%s"
                       % (equipIndex, holeIndex, befStoneLV, aftStoneLV, befTotalStoneLV, updTotalStoneLV))
    return
def GetPackTypeByEquipPlace(equipPlace):
@@ -287,12 +309,17 @@
def GetTotalStoneLV(curPlayer):
    ##宝石总等级
    totalStoneLV = 0
    equipIndexList = GetAllStoneEquipIndexList()
    return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalStoneLV)
def GetStoneCntByLV(curPlayer, stoneLV):
    ##指定等级的宝石数量
    cnt = 0
    holeIndexList = GetAllEquipPlaceHoleIndex()
    maxHoleCount = len(holeIndexList)
    equipIndexList = GetAllStoneEquipIndexList()
    gameData = GameWorld.GetGameData()
    for equipIndex in equipIndexList:
        for holeIndex in holeIndexList:
        for holeIndex in xrange(maxHoleCount):
            curGemID = GetEquipIndexStoneIDAndIsBand(curPlayer, equipIndex, holeIndex)[0]
            if curGemID == 0:
                continue
@@ -300,8 +327,9 @@
            if not curGem:
                continue
            gemLV = curGem.GetEffectByIndex(0).GetEffectValue(1)
            totalStoneLV += gemLV
    return totalStoneLV
            if gemLV >= stoneLV:
                cnt += 1
    return cnt
#// A3 06 宝石升级 #tagCMEquipStoneUpgrade
#struct    tagCMEquipStoneUpgrade
@@ -469,7 +497,8 @@
        else:
            PlayerControl.SendMailByKey("GemToPlayer", [curPlayer.GetPlayerID()], [[stoneID, 1, stoneIsBind]])
            
    DataRecordPack.DR_StoneItemChange(curPlayer, eventName, {'equipPackIndex':equipPackIndex,"holeIndex":holeIndex, "stoneID":stoneID, 'changeStoneID':changeStoneID})
    DataRecordPack.DR_StoneItemChange(curPlayer, eventName, {'equipPackIndex':equipPackIndex,"holeIndex":holeIndex, "stoneID":stoneID, 'changeStoneID':changeStoneID})
    EventShell.EventRespons_StoneChange(curPlayer)
    return