hxp
2025-09-03 efaf363493930c5148271e5a50bbddd07909e110
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -27,9 +27,7 @@
import IPY_GameWorld
import PlayerControl
import ItemControler
import PlayerMagicWeapon
import PlayerFamilyRedPacket
import PlayerGatherSoul
import IpyGameDataPY
import PyGameData
import EventReport
@@ -125,7 +123,6 @@
        self.attrDict = {} # 完成成就获得的属性 {attrid:attrvalue}
        self.hasAward = True #是否有奖励
        self.redPacketID = 0 # 红包ID
        self.magicWeaponExp = {} # 法宝升级经验{id:exp}
        return
@@ -166,11 +163,7 @@
            succData.exp = successIpyData.GetExp()
            succData.attrDict = successIpyData.GetAwardAttr()
            succData.redPacketID = successIpyData.GetRedPacketID()
            magicWeaponID = successIpyData.GetMagicWeaponID()
            magicWeaponExp = successIpyData.GetMagicWeaponExp()
            if magicWeaponID and magicWeaponExp:
                succData.magicWeaponExp[magicWeaponID] = magicWeaponExp
            succData.hasAward = bool(succData.awardItemDict or succData.moneyDict or succData.exp or succData.attrDict or succData.redPacketID or succData.magicWeaponExp \
            succData.hasAward = bool(succData.awardItemDict or succData.moneyDict or succData.exp or succData.attrDict or succData.redPacketID \
                                     or succData.awardItemDict2)
            successDataObjDict[succData.succID]=succData
            if tuple(succData.condition) not in conditionDict:
@@ -395,49 +388,6 @@
        if finishTime > 0 or GetSuccHasGot(curPlayer, succID):
            continue
        SetSuccFinishValue(curPlayer, succType, condition, 0)
    return
def DoEquipSuccessLogic(curPlayer, classLV):
    #玩家当前可装备的装备类型
    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlaceIndexMap', {'ClassLV':classLV}, True)
    if not ipyDataList:
        return
    placeCountDict, colorCountDict, suitCountDict = {}, {}, {}
    playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
    for ipyData in ipyDataList:
        equipIndex = ipyData.GetGridIndex()
        curEquip = playerEquip.GetAt(equipIndex)
        if curEquip.IsEmpty():
            continue
        itemPlace = curEquip.GetEquipPlace()
        # 套装、颜色 成就 统计基础部位
        if itemPlace in ChConfig.EquipPlace_Base:
            itemColor = curEquip.GetItemColor()
            colorConditionKey = (classLV, itemColor)
            colorCountDict[colorConditionKey] = colorCountDict.get(colorConditionKey, 0) + 1
            # 统计套装数
            if curEquip.GetSuiteID():
                suitConditionKey = (classLV, )
                suitCountDict[suitConditionKey] = suitCountDict.get(suitConditionKey, 0) + 1
        # 部位 成就 统计特殊部位
        elif itemPlace in ChConfig.EquipPlace_Special:
            placeConditionKey = (classLV, itemPlace)
            placeCountDict[placeConditionKey] = placeCountDict.get(placeConditionKey, 0) + 1
    # 更新成就
    #GameWorld.DebugLog("装备阶部位成就数据: classLV=%s,placeCountDict=%s" % (classLV, placeCountDict))
    UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipPlace, placeCountDict)
    #GameWorld.DebugLog("装备阶颜色成就数据: classLV=%s,colorCountDict=%s" % (classLV, colorCountDict))
    UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipColorItem, colorCountDict)
    #GameWorld.DebugLog("装备阶套装成就数据: classLV=%s,suitCountDict=%s" % (classLV, suitCountDict))
    UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipSuit, suitCountDict)
    return
def UpdateSuccessProgressByConditions(curPlayer, successType, conditionCountDict):
@@ -742,9 +692,7 @@
            
            if isNeedSys:
                PlayerControl.WorldNotify(0, 'AncientBattlefield_1', [playerName, succID])
            for mwID in succDataObj.magicWeaponExp.keys():
                EventReport.WriteEvent_MWSuccess(curPlayer, mwID, succID, ChConfig.CME_Log_Start)
            GameWorld.DebugLog("    完成成就succID=%s, type=%s,time=%s" 
                               % (succID, successType, curTime))
            
@@ -992,11 +940,6 @@
    #发红包
    if succData.redPacketID:
        PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, succData.redPacketID, PlayerFamilyRedPacket.State_NoGot, succID)
    #法宝经验
    if succData.magicWeaponExp:
        for mwID, addExp in succData.magicWeaponExp.items():
            PlayerMagicWeapon.AddMagicWeaponUpExp(curPlayer, mwID, addExp)
            EventReport.WriteEvent_MWSuccess(curPlayer, mwID, succID, ChConfig.CME_Log_End, 1)
    GameWorld.DebugLog("    OK! awardItemDict=%s moneyDict=%s" % (itemDict, succData.moneyDict))
    ItemControler.NotifyGiveAwardInfo(curPlayer, giveItemList, "SuccessAward", exp=succData.exp, moneyInfo=succData.moneyDict)
    return itemDict
@@ -1042,13 +985,6 @@
def AddEnterFBSuccess(curPlayer, mapID, addCount):
    #进入副本成就相关
    if mapID == ChConfig.Def_FBMapID_BZZD:
        #仙界秘境
        DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_BZZD, addCount)
    elif mapID == ChConfig.Def_FBMapID_IceLode:
        #冰晶矿脉
        DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_IceLode, addCount)
    return
def GetSuccessScoreAward(curPlayer, awardIndex):