| | |
| | | import ItemControler
|
| | | import PlayerMagicWeapon
|
| | | import PlayerFamilyRedPacket
|
| | | import PlayerGatherSoul
|
| | | import IpyGameDataPY
|
| | | import EventShell
|
| | | import PyGameData
|
| | |
| | | import Operate_EquipStone
|
| | | import Operate_EquipWash
|
| | | import Operate_EquipSuitCompose
|
| | | import PlayerFeastRedPacket
|
| | | import PlayerDogz
|
| | | import QuestCommon
|
| | | import DataRecordPack
|
| | |
| | | ShareDefine.SuccType_DogzBattle,
|
| | | ShareDefine.SuccType_DogzEquipPlus,
|
| | | ShareDefine.SuccType_MainTaskNode,
|
| | | ShareDefine.SuccType_InlayGatherSoul,
|
| | | ShareDefine.SuccType_GatherSoulLvUp,
|
| | | ShareDefine.SuccType_UseStoveBylv,
|
| | | ]
|
| | |
|
| | | curCheckVersion = GetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion)
|
| | |
| | | passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
|
| | | DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_PassRuneTower, 1, [passlv])
|
| | | elif succType == ShareDefine.SuccType_GodWeapon:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
|
| | | for i in xrange(1, maxType + 1):
|
| | | weaponLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % i)
|
| | |
| | | ResetSuccessByType(curPlayer, succType)
|
| | | for pType, indexList in ChConfig.Pack_EquipPart_CanPlusStar.items():
|
| | | for i in indexList:
|
| | | equipPartStarLV = ChEquip.GetEquipPartStarLV(curPlayer, pType, i)
|
| | | equipPartStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, pType, i)
|
| | | for pluslv in xrange(1, equipPartStarLV+1):
|
| | | DoAddSuccessProgress(curPlayer, succType, 1, [pluslv])
|
| | |
|
| | |
| | | DoEquipSuccessLogic(curPlayer)
|
| | | elif succType in [ShareDefine.SuccType_InlayRune, ShareDefine.SuccType_RuneLvUp]:
|
| | | PlayerRune.DoRuneSuccessLogic(curPlayer)
|
| | | elif succType in [ShareDefine.SuccType_InlayGatherSoul, ShareDefine.SuccType_GatherSoulLvUp]:
|
| | | PlayerGatherSoul.DoGatherSoulSuccessLogic(curPlayer)
|
| | | elif succType == ShareDefine.SuccType_RealmlvUp:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | UptateSuccessProgress(curPlayer, succType, curPlayer.GetOfficialRank())
|
| | | elif succType == ShareDefine.SuccType_PetClassLV:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | |
| | | elif succType in [ShareDefine.SuccType_EquipWashLV1,ShareDefine.SuccType_EquipWashLV2,ShareDefine.SuccType_EquipWashLV3]:
|
| | | Operate_EquipWash.EquipWashSuccess(curPlayer)
|
| | | elif succType == ShareDefine.SuccType_MWSkillUp:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | skillManager = curPlayer.GetSkillManager()
|
| | | for i in range(0, skillManager.GetSkillCount()):
|
| | | curSkill = skillManager.GetSkillByIndex(i)
|
| | |
| | | elif succType == ShareDefine.SuccType_EquipSuit:
|
| | | Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
|
| | | elif succType == ShareDefine.SuccType_FamilyTechLV:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | techNeedLVDict = IpyGameDataPY.GetFuncEvalCfg('FamilyTechNeedLV', 1, {})
|
| | | techIDList = techNeedLVDict.keys()
|
| | | for techID in techIDList:
|
| | | techLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTechLV % techID)
|
| | | UptateSuccessProgress(curPlayer, succType, techLV, [techID])
|
| | | elif succType == ShareDefine.SuccType_AlchemyLV:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | alchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | UptateSuccessProgress(curPlayer, succType, alchemyLV)
|
| | | elif succType == ShareDefine.SuccType_VIPLV:
|
| | |
| | | missionID = succData.condition[0]
|
| | | if QuestCommon.GetHadFinishMainMission(curPlayer, missionID):
|
| | | DoAddSuccessProgress(curPlayer, succType, 1, [missionID])
|
| | | elif succType == ShareDefine.SuccType_UseStoveBylv:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | for i in xrange(ipyDataMgr.GetAttrFruitCount()):
|
| | | ipyData = ipyDataMgr.GetAttrFruitByIndex(i)
|
| | | fruitItemID = ipyData.GetID()
|
| | | hasUseCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AttrFruitEatCnt % fruitItemID)
|
| | | if ipyData.GetFuncID() == ShareDefine.Def_AttrFruitFunc_Stove:
|
| | | itemData = GameWorld.GetGameData().GetItemByTypeID(fruitItemID)
|
| | | if not itemData:
|
| | | continue
|
| | | DoAddSuccessProgress(curPlayer, succType, hasUseCnt, [itemData.GetLV()])
|
| | |
|
| | | DataRecordPack.DR_CheckOldPlayerSuccess(curPlayer)
|
| | | SetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion, initGameWorldTime)
|
| | |
| | | SetSuccHasGot(curPlayer, succID, False)
|
| | | resetList.append(succID)
|
| | | GameWorld.DebugLog(" OnWeek 重置成就类型: succID=%s" % (succID))
|
| | | if resetList:
|
| | | Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
|
| | | Sync_SuccessInfo(curPlayer, resetList, True)
|
| | | return
|
| | |
|
| | | def DoResetSuccessIDList(curPlayer, resetSuccIDList):
|
| | | ## 重置成就相关数据
|
| | | if not resetSuccIDList:
|
| | | return
|
| | | resetList = []
|
| | | for succID in resetSuccIDList:
|
| | | succData = GetSuccDataMng().GetSuccessData(succID)
|
| | | if not succData:
|
| | | continue
|
| | | succType = succData.succType
|
| | | condition = succData.condition
|
| | | #if not GetSuccFinishValue(curPlayer, succType, condition):
|
| | | # continue
|
| | | SetSuccFinishValue(curPlayer, succType, condition, 0)
|
| | | SetSuccFinish(curPlayer, succID, False)
|
| | | SetSuccHasGot(curPlayer, succID, False)
|
| | | resetList.append(succID)
|
| | | GameWorld.DebugLog(" 重置成就类型: succType=%s,succID=%s" % (succType, succID))
|
| | | if resetList:
|
| | | Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
|
| | | Sync_SuccessInfo(curPlayer, resetList, True)
|
| | |
| | |
|
| | | itemQuality = curEquip.GetItemQuality()
|
| | | classLV = ItemCommon.GetItemClassLV(curEquip)
|
| | | if equipIndex not in [ShareDefine.retWing,ShareDefine.retGuard,ShareDefine.retHorse]:
|
| | | if equipIndex not in [ShareDefine.retWing,ShareDefine.retGuard1,ShareDefine.retGuard2,ShareDefine.retHorse]:
|
| | | DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipColorItem, 1, [classLV, itemColor])
|
| | | if equipIndex in ChConfig.BaseEquipPlace_Weapon:
|
| | | DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipWeapon, 1, [itemColor, itemQuality, classLV])
|
| | |
| | | def UptateSuccessProgress(curPlayer, successType, newCnt, condition=[]):
|
| | | if successType not in ShareDefine.SuccessTypeList:
|
| | | return
|
| | | if successType in ShareDefine.FeastRedPackSuccessTypeList:
|
| | | if not PlayerFeastRedPacket.GetFeastRedPacketState():
|
| | | return
|
| | | succInfoList = GetSuccDataMng().GetSuccDataByType(successType)
|
| | | if not succInfoList:
|
| | | return
|
| | |
| | | succID = succDataObj.succID
|
| | | cond = succDataObj.condition
|
| | |
|
| | | if successType in ShareDefine.FeastRedPackSuccessTypeList:
|
| | | todayFeastSuccIDList = PlayerFeastRedPacket.GetTodayFeastSuccIDList()
|
| | | if not todayFeastSuccIDList or succID not in todayFeastSuccIDList:
|
| | | #GameWorld.DebugLog(" 非今日节日红包成就,不增加进度! succID=%s,todayFeastSuccIDList=%s" % (succID, todayFeastSuccIDList))
|
| | | return
|
| | | isUnDownCheck = successType in ShareDefine.UnDownCheckSuccessTypeList
|
| | | isContain = successType in ShareDefine.ContainSuccessTypeList
|
| | | # 已完成的不再检查
|
| | |
| | | def DoAddSuccessProgress(curPlayer, successType, addCnt, condition=[], delayCalc=True):
|
| | | #GameWorld.DebugLog("DoAddSuccessProgress type=%s,addCnt=%s,condition=%s"
|
| | | # % (successType, addCnt, condition), curPlayer.GetPlayerID())
|
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | |
| | | if successType in ShareDefine.FeastRedPackSuccessTypeList:
|
| | | if not PlayerFeastRedPacket.GetFeastRedPacketState():
|
| | | #GameWorld.DebugLog("非节日红包活动时间,不增加成就!successType=%s" % successType)
|
| | | return
|
| | | |
| | | playerID = curPlayer.GetID()
|
| | | if delayCalc and successType not in ShareDefine.NeedResetSuccessTypeList:
|
| | | if playerID not in PyGameData.g_delaySuccessDict:
|