| | |
| | |
|
| | | g_stoneCanPlaceList = [] #可镶嵌的位置
|
| | |
|
| | | def OnLogin(curPlayer):
|
| | | ###登录发包同步客户端宝石信息
|
| | | Sycn_StoneHoleInfo(curPlayer)
|
| | | return
|
| | | #def OnLogin(curPlayer):
|
| | | # ###登录发包同步客户端宝石信息
|
| | | # Sycn_StoneHoleInfo(curPlayer)
|
| | | # return
|
| | |
|
| | | def GetAllStoneEquipIndexList():
|
| | | ###得到所有可镶嵌宝石装备位列表
|
| | |
| | |
|
| | | 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):
|
| | |
| | |
|
| | | 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
|
| | |
| | | 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
|
| | |
| | | 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
|
| | |
|
| | |
|