9788 【BT9】【后端】成就系统(新增成就类型164~175)
# Conflicts:
#	ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
#	ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
#	ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
#	ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerArena.py
#	ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
|  |  |  | 
|---|
|  |  |  | if not ipyDataList: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | totalPlusLV = ChEquip.GetTotalPlusLV(curPlayer) | 
|---|
|  |  |  | classPlusLV = 0 | 
|---|
|  |  |  | packType = IPY_GameWorld.rptEquip | 
|---|
|  |  |  | plusLVCountDict = {} | 
|---|
|  |  |  | for ipyData in ipyDataList: | 
|---|
|  |  |  | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | conditionKey = (classLV, plusLV) | 
|---|
|  |  |  | plusLVCountDict[conditionKey] = plusLVCountDict.get(conditionKey, 0) + 1 | 
|---|
|  |  |  | classPlusLV += plusLV | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #GameWorld.DebugLog("强化成就数据: classLV=%s,plusLVCountDict=%s" % (classLV, plusLVCountDict)) | 
|---|
|  |  |  | #GameWorld.DebugLog("强化成就数据: classLV=%s,plusLVCountDict=%s,classPlusLV=%s,totalPlusLV=%s" % (classLV, plusLVCountDict, classPlusLV, totalPlusLV)) | 
|---|
|  |  |  | PlayerSuccess.UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipPlus, plusLVCountDict) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipPlusTotal, totalPlusLV) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipPlusClass, classPlusLV, [classLV]) | 
|---|
|  |  |  | PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_EquipPlus) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if not ipyDataList: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | totalStarLV = ChEquip.GetTotalEquipStars(curPlayer) | 
|---|
|  |  |  | classStarLV = 0 | 
|---|
|  |  |  | starCountDict = {} | 
|---|
|  |  |  | for ipyData in ipyDataList: | 
|---|
|  |  |  | index = ipyData.GetGridIndex() | 
|---|
|  |  |  | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | conditionKey = (classLV, equipStar) | 
|---|
|  |  |  | starCountDict[conditionKey] = starCountDict.get(conditionKey, 0) + 1 | 
|---|
|  |  |  | classStarLV += equipStar | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #GameWorld.DebugLog("升星成就数据: classLV=%s,starCountDict=%s" % (classLV, starCountDict)) | 
|---|
|  |  |  | #GameWorld.DebugLog("升星成就数据: classLV=%s,starCountDict=%s,classStarLV=%s,totalStarLV=%s" % (classLV, starCountDict, classStarLV, totalStarLV)) | 
|---|
|  |  |  | PlayerSuccess.UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipStar, starCountDict) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipStarTotal, totalStarLV) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipStarClass, classStarLV, [classLV]) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | # 同步客户端 | 
|---|
|  |  |  | Sycn_StoneHoleInfo(curPlayer, [equipPackIndex]) | 
|---|
|  |  |  | # 成就 | 
|---|
|  |  |  | DoStoneSuccess(curPlayer) | 
|---|
|  |  |  | DoStoneSuccess(curPlayer, classLV) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | EventShell.EventRespons_InlayStone(curPlayer) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def DoStoneSuccess(curPlayer): | 
|---|
|  |  |  | def DoStoneSuccess(curPlayer, classLV): | 
|---|
|  |  |  | #PlayerSuccess.ResetSuccessByType(curPlayer, ShareDefine.SuccType_InlayStone1) | 
|---|
|  |  |  | #PlayerSuccess.ResetSuccessByType(curPlayer, ShareDefine.SuccType_InlayStone2) | 
|---|
|  |  |  | totalStoneLV = 0 | 
|---|
|  |  |  | classStoneLV = 0 | 
|---|
|  |  |  | holeIndexList = GetAllEquipPlaceHoleIndex() | 
|---|
|  |  |  | gameData = GameWorld.GetGameData() | 
|---|
|  |  |  | packType = IPY_GameWorld.rptEquip | 
|---|
|  |  |  | 
|---|
|  |  |  | #    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_InlayStone2, 1, [gemLV]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | totalStoneLV += gemLV | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlaceIndexMap', {'GridIndex': equipIndex}) | 
|---|
|  |  |  | if ipyData and ipyData.GetClassLV() == classLV: | 
|---|
|  |  |  | classStoneLV += gemLV | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 记录开服活动宝石总等级 | 
|---|
|  |  |  | #GameWorld.DebugLog("classLV=%s,classStoneLV=%s,totalStoneLV=%s" % (classLV, classStoneLV, totalStoneLV)) | 
|---|
|  |  |  | OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_StoneLV, totalStoneLV) | 
|---|
|  |  |  | #PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_StoneTotalLV, totalStoneLV) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_StoneTotalLV, totalStoneLV) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipStoneClass, classStoneLV, [classLV]) | 
|---|
|  |  |  | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Stone, totalStoneLV, False, True) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | # 同步客户端 | 
|---|
|  |  |  | Sycn_StoneHoleInfo(curPlayer, [equipPackIndex]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | DoStoneSuccess(curPlayer) | 
|---|
|  |  |  | DoStoneSuccess(curPlayer, classLV) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __CheckStoneHoleCanUse(curPlayer, equipStar, holeIndex, equipPackType): | 
|---|
|  |  |  | 
|---|
|  |  |  | if not ipyDataList: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | totalWashLV = GetTotalEquipWashLV(curPlayer) | 
|---|
|  |  |  | classWashLV = 0 | 
|---|
|  |  |  | washLVCountDict = {} | 
|---|
|  |  |  | for ipyData in ipyDataList: | 
|---|
|  |  |  | index = ipyData.GetGridIndex() | 
|---|
|  |  |  | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | conditionKey = (classLV, washLV) | 
|---|
|  |  |  | washLVCountDict[conditionKey] = washLVCountDict.get(conditionKey, 0) + 1 | 
|---|
|  |  |  | classWashLV += washLV | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #GameWorld.DebugLog("洗练成就数据: classLV=%s,washLVCountDict=%s" % (classLV, washLVCountDict)) | 
|---|
|  |  |  | #GameWorld.DebugLog("洗练成就数据: classLV=%s,washLVCountDict=%s,classWashLV=%s,totalWashLV=%s" % (classLV, washLVCountDict, classWashLV, totalWashLV)) | 
|---|
|  |  |  | PlayerSuccess.UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipWash, washLVCountDict) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipWashTotal, totalWashLV) | 
|---|
|  |  |  | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_EquipWashClass, classWashLV, [classLV]) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if funcIndex == ShareDefine.Def_AttrFruitFunc_Stove: | 
|---|
|  |  |  | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_UseStoveBylv, hasUseCnt, [item.GetLV()]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | alchemyIpyData = IpyGameDataPY.GetIpyGameDataByCondition("Alchemy", {"AlchemItemID":itemID}, False, True) | 
|---|
|  |  |  | if alchemyIpyData: | 
|---|
|  |  |  | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_UseStoveByType, hasUseCnt, [alchemyIpyData.GetAlchemType()]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | effect = item.GetEffectByIndex(0) | 
|---|
|  |  |  | effID = effect.GetEffectID() | 
|---|
|  |  |  | ## 特殊属性ID处理,此属性ID做一次性处理,不做属性计算 | 
|---|
|  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  | succInfoList = GetSuccDataMng().GetSuccDataByType(successType) | 
|---|
|  |  |  | if not succInfoList: | 
|---|
|  |  |  | GameWorld.DebugLog("    找不到成就数据successType=%s" % successType) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | curCnt = -1 | 
|---|
|  |  |  | for succData in succInfoList: | 
|---|