From bb284affe6541fa85c492ce9af26b4ee35805aab Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 12 三月 2019 14:25:07 +0800 Subject: [PATCH] 6328 【后端】优化代码eval -- 玩家缓存数据提取常用字段 等级和最后一次发送时间 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 45 insertions(+), 8 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py index 0597d42..05cf2f4 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py @@ -42,7 +42,7 @@ import PlayerRune import Operate_EquipStone import Operate_EquipWash -import Operate_EquipSuitCompose +import PlayerFeastRedPacket import PlayerDogz import QuestCommon import DataRecordPack @@ -320,7 +320,7 @@ 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]) @@ -361,8 +361,8 @@ curSkillLV = curSkill.GetSkillLV() UptateSuccessProgress(curPlayer, succType, curSkillLV, [curSkill.GetSkillTypeID()]) - elif succType == ShareDefine.SuccType_EquipSuit: - Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer) +# elif succType == ShareDefine.SuccType_EquipSuit: +# Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer) elif succType == ShareDefine.SuccType_FamilyTechLV: ResetSuccessByType(curPlayer, succType) techNeedLVDict = IpyGameDataPY.GetFuncEvalCfg('FamilyTechNeedLV', 1, {}) @@ -435,6 +435,29 @@ 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) @@ -539,7 +562,7 @@ 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]) @@ -559,6 +582,9 @@ 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 @@ -580,6 +606,11 @@ 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 # 已完成的不再检查 @@ -650,7 +681,14 @@ 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: @@ -973,8 +1011,7 @@ # 给物品 if isGiveItem: for itemID, itemCnt in itemDict.items(): - isPutIn = ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 1, - [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere], True) + isPutIn = ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere]) #给钱 for moneyType, value in succData.moneyDict.items(): -- Gitblit v1.8.0