534 【开服冲榜】新增活动类型-服务端(武将冲榜-7;红颜冲榜-8;命格冲榜-9;)
| | |
| | | Def_PDict_SuccessValue = "Succ_%s_%s" # 当前次数值,参数(成就类型、条件)
|
| | | Def_PDict_SuccessAward = "Succ_Award_%s" # 成就领奖记录,按成就ID位存储0-未领,1-已领,参数(key编号)
|
| | |
|
| | | # 开服冲榜
|
| | | Def_PDict_OSAValue = "OSAValue_%s" # 冲榜活动值,参数(冲榜类型)
|
| | | Def_PDict_OSABillValue = "OSABillValue_%s" # 冲榜上榜值,用于判断上榜,参数(冲榜类型)
|
| | |
|
| | | # 开服庆典
|
| | | Def_PDict_OSACelebrationPoint = "OSACelebrationPoint" # 开服庆典累计积分
|
| | | Def_PDict_OSACelebrationAward = "OSACelebrationAward" # 开服庆典累计积分阶段奖励领奖状态,按积分排序后的索引位记录是否已领取
|
| | |
| | | ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj),
|
| | | ShareDefine.GameFuncID_Travel:lambda curObj:PlayerTravel.DoTravelOpen(curObj),
|
| | | ShareDefine.GameFuncID_Mingge:lambda curObj:PlayerMingge.DoMinggeOpen(curObj),
|
| | | ShareDefine.GameFuncID_OSA_MainLevel:lambda curObj:OpenServerActivity.DoOSA_MainLevel(curObj),
|
| | | ShareDefine.GameFuncID_OSA_HeroCall:lambda curObj:OpenServerActivity.DoOSA_HeroCall(curObj),
|
| | | ShareDefine.GameFuncID_OSA_MainLevel:lambda curObj:OpenServerActivity.DoOSA_MainLevelOpen(curObj),
|
| | | ShareDefine.GameFuncID_OSA_HeroCall:lambda curObj:OpenServerActivity.DoOSA_HeroCallOpen(curObj),
|
| | | ShareDefine.GameFuncID_OSA_HeroTrain:lambda curObj:OpenServerActivity.DoOSA_HeroTrainOpen(curObj),
|
| | | ShareDefine.GameFuncID_OSA_BeautyTrain:lambda curObj:OpenServerActivity.DoOSA_BeautyTrainOpen(curObj),
|
| | | ShareDefine.GameFuncID_OSA_MinggeTrain:lambda curObj:OpenServerActivity.DoOSA_MinggeTrainOpen(curObj),
|
| | | }
|
| | |
|
| | | def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
|
| | |
| | | befValue, updValue = GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, 1)
|
| | | if befValue == updValue:
|
| | | continue
|
| | | GameWorld.DebugLog(" 功能开启:funcID=%s,befValue=%s(%s),updValue=%s(%s)" |
| | | GameWorld.DebugLog(" 功能开启: funcID=%s,befValue=%s(%s),updValue=%s(%s)" |
| | | % (funcID, befValue, str(bin(befValue)[2:]), updValue, str(bin(updValue)[2:])), curPlayer.GetPlayerID())
|
| | |
|
| | | if funcID in FuncOpenLogicDict:
|
| | |
| | | import DBDataMgr
|
| | | import PlayerMail
|
| | | import ShareDefine
|
| | | import PlayerPreset
|
| | | import PlayerOnline
|
| | | import GameFuncComm
|
| | | import IPY_GameWorld
|
| | | import IpyGameDataPY
|
| | |
| | | import PlayerControl
|
| | | import NetPackCommon
|
| | | import ItemControler
|
| | | import PlayerBeauty
|
| | | import ItemCommon
|
| | | import GameWorld
|
| | | import ChConfig
|
| | |
| | | OSAFuncIDDict = {
|
| | | ShareDefine.Def_BT_OSA_MainLevel:ShareDefine.GameFuncID_OSA_MainLevel,
|
| | | ShareDefine.Def_BT_OSA_HeroCall:ShareDefine.GameFuncID_OSA_HeroCall,
|
| | | ShareDefine.Def_BT_OSA_HeroTrain:ShareDefine.GameFuncID_OSA_HeroTrain,
|
| | | ShareDefine.Def_BT_OSA_BeautyTrain:ShareDefine.GameFuncID_OSA_BeautyTrain,
|
| | | ShareDefine.Def_BT_OSA_MinggeTrain:ShareDefine.GameFuncID_OSA_MinggeTrain,
|
| | | }
|
| | |
|
| | | def DoOSA_MainLevel(curPlayer):
|
| | | def DoOSA_MainLevelOpen(curPlayer): UpdOSA_MainLevelBillboard(curPlayer)
|
| | | def UpdOSA_MainLevelBillboard(curPlayer, lvID=0):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MainLevel) != 1:
|
| | | return
|
| | | if not lvID:
|
| | | lvID = PlayerControl.GetPassMainLevelID(curPlayer)
|
| | | GameWorld.DebugLog("开服关卡榜开启更新榜单: lvID=%s" % lvID, curPlayer.GetPlayerID())
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MainLevel, lvID)
|
| | | return
|
| | |
|
| | | def DoOSA_HeroCall(curPlayer):
|
| | | def DoOSA_HeroCallOpen(curPlayer): UpdOSA_HeroCallBillboard(curPlayer)
|
| | | def UpdOSA_HeroCallBillboard(curPlayer, callCnt=0):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_HeroCall) != 1:
|
| | | return
|
| | | if not callCnt:
|
| | | callCnt = PlayerTreasure.GetHeroCallCnt(curPlayer)
|
| | | GameWorld.DebugLog("开服招募榜开启更新榜单: callCnt=%s" % callCnt, curPlayer.GetPlayerID())
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_HeroCall, callCnt)
|
| | | return
|
| | |
|
| | | def GetOSAState(curPlayer, osaType):
|
| | | def DoOSA_HeroTrainOpen(curPlayer): UpdOSA_HeroTrainBillboard(curPlayer)
|
| | | def UpdOSA_HeroTrainBillboard(curPlayer):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_HeroTrain) != 1:
|
| | | return
|
| | | |
| | | osaType = ShareDefine.Def_BT_OSA_HeroTrain
|
| | | mainBatPresetID = PlayerPreset.GetBatPresetID(curPlayer, ShareDefine.BatPreset_Main)
|
| | | heroPresetID = PlayerPreset.GetFuncPresetID(curPlayer, mainBatPresetID, ShareDefine.FuncPreset_Hero)
|
| | | olPlayer = PlayerOnline.GetOnlineMgr().GetOnlinePlayer(curPlayer)
|
| | | heroPreset = olPlayer.GetHeroPreset(heroPresetID)
|
| | | effCardDict = heroPreset.GetEffectiveCardDict()
|
| | | |
| | | cardScore = 0
|
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
|
| | | for cardInfo in effCardDict.values():
|
| | | index = cardInfo[1]
|
| | | if index < 0 or index >= curPack.GetCount():
|
| | | continue
|
| | | heroItem = curPack.GetAt(index)
|
| | | if not heroItem or heroItem.IsEmpty():
|
| | | continue
|
| | | cardScore += __calcHeroCardTrainScore(heroItem)
|
| | | |
| | | washItemID = IpyGameDataPY.GetFuncCfg("HeroWash", 1)
|
| | | trainItemScoreDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboardTrain", 1, {})
|
| | | osaValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSAValue % osaType)
|
| | | washScore = osaValue * trainItemScoreDict.get(str(washItemID), 0)
|
| | | |
| | | trainScore = cardScore + washScore
|
| | | |
| | | # 上榜积分: 只取历史最高分
|
| | | osaBillValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSABillValue % osaType)
|
| | | GameWorld.DebugLog("武将冲榜: trainScore=%s(%s+%s),osaValue=%s,osaBillValue=%s,mainBatPresetID=%s,heroPresetID=%s" |
| | | % (trainScore, cardScore, washScore, osaValue, osaBillValue, mainBatPresetID, heroPresetID))
|
| | | if trainScore <= osaBillValue:
|
| | | # 可能降低积分,降低时不更新榜单
|
| | | GameWorld.DebugLog(" 武将冲榜积分未提升不更新榜单! trainScore=%s <= %s" % (trainScore, osaBillValue))
|
| | | return
|
| | | trainScore = PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSABillValue % osaType, trainScore)
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_HeroTrain, trainScore)
|
| | | return
|
| | |
|
| | | def __calcHeroCardTrainScore(heroItem):
|
| | | heroID = heroItem.GetItemTypeID()
|
| | | heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
|
| | | if not heroIpyData:
|
| | | return 0
|
| | | quality = heroIpyData.GetQuality()
|
| | | qualityIpyData = IpyGameDataPY.GetIpyGameData("HeroQuality", quality)
|
| | | if not qualityIpyData:
|
| | | return 0
|
| | | |
| | | heroLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroLV)
|
| | | star = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar)
|
| | | breakLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
|
| | | awakeLV = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroAwakeLV)
|
| | | |
| | | # 培养积分,开服武将冲榜会用到
|
| | | # 武将冲榜增加积分 按消耗材料算 {"消耗物品ID":每个物品积分, },积分支持小数,物品ID支持配武将经验石、突破石、觉醒石、洗练石等
|
| | | trainItemScoreDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboardTrain", 1, {})
|
| | | qualityStarScoreDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboardTrain", 2, {})
|
| | | trainItemCntDict = {}
|
| | | #GameWorld.DebugLog("武将物品培养积分: heroID=%s,quality=%s,heroLV=%s,star=%s,breakLV=%s,awakeLV=%s" % (heroID, quality, heroLV, star, breakLV, awakeLV))
|
| | | # 等级
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("HeroQualityLV", {"Quality":quality}, True)
|
| | | if ipyDataList:
|
| | | for ipyData in ipyDataList:
|
| | | if heroLV <= ipyData.GetHeroLV():
|
| | | break
|
| | | costItemInfo = ipyData.GetUPCostItem()
|
| | | if not costItemInfo:
|
| | | continue
|
| | | costItemID, costItemCount = costItemInfo
|
| | | trainItemCntDict[costItemID] = trainItemCntDict.get(costItemID, 0) + costItemCount
|
| | | #GameWorld.DebugLog(" quality=%s,heroLV=%s,%s" % (quality, heroLV, trainItemCntDict))
|
| | | |
| | | # 突破
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("HeroQualityBreak", {"Quality":quality}, True)
|
| | | if ipyDataList:
|
| | | for ipyData in ipyDataList:
|
| | | if breakLV <= ipyData.GetBreakLV():
|
| | | break
|
| | | costItemList = ipyData.GetUPCostItemList()
|
| | | if not costItemList:
|
| | | continue
|
| | | for costItemInfo in costItemList:
|
| | | costItemID, costItemCount = costItemInfo[:2]
|
| | | trainItemCntDict[costItemID] = trainItemCntDict.get(costItemID, 0) + costItemCount
|
| | | #GameWorld.DebugLog(" quality=%s,breakLV=%s,%s" % (quality, breakLV, trainItemCntDict))
|
| | | |
| | | # 觉醒 |
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("HeroQualityAwake", {"Quality":quality}, True, False)
|
| | | if ipyDataList:
|
| | | for ipyData in ipyDataList:
|
| | | if awakeLV <= ipyData.GetAwakeLV():
|
| | | break
|
| | | costItemInfo = ipyData.GetUPCostItem()
|
| | | if not costItemInfo:
|
| | | continue
|
| | | costItemID, costItemCount = costItemInfo
|
| | | trainItemCntDict[costItemID] = trainItemCntDict.get(costItemID, 0) + costItemCount
|
| | | #GameWorld.DebugLog(" quality=%s,awakeLV=%s,%s" % (quality, awakeLV, trainItemCntDict))
|
| | | |
| | | trainScore = 0
|
| | | for costItemID, itemCnt in trainItemCntDict.items():
|
| | | addScore = trainItemScoreDict.get(str(costItemID), 0) * itemCnt
|
| | | trainScore += addScore
|
| | | |
| | | # 星级
|
| | | starScore = star * qualityStarScoreDict.get(str(quality), 0)
|
| | | trainScore += starScore
|
| | | #GameWorld.DebugLog(" trainScore=%s,starScore=%s" % (trainScore, starScore))
|
| | | |
| | | # 洗炼为通用的,在外层最后直接加
|
| | | return int(trainScore)
|
| | |
|
| | | def DoOSA_BeautyTrainOpen(curPlayer): UpdOSA_BeautyTrainBillboard(curPlayer)
|
| | | def UpdOSA_BeautyTrainBillboard(curPlayer):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_BeautyTrain) != 1:
|
| | | return
|
| | | # 红颜好感总等级
|
| | | beautyTotalLV = PlayerBeauty.GetBeautyLVTotal(curPlayer)
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_BeautyTrain, beautyTotalLV)
|
| | | return
|
| | |
|
| | | def DoOSA_MinggeTrainOpen(curPlayer): UpdOSA_MinggeTrainBillboard(curPlayer)
|
| | | def UpdOSA_MinggeTrainBillboard(curPlayer):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MinggeTrain) != 1:
|
| | | return
|
| | | osaType = ShareDefine.Def_BT_OSA_MinggeTrain
|
| | | trainScoreList = IpyGameDataPY.GetFuncEvalCfg("OSABillboardTrain", 4)
|
| | | if not trainScoreList or len(trainScoreList) != 2:
|
| | | return
|
| | | tuiyanScore, lingyingScore = trainScoreList
|
| | | osaValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSAValue % osaType)
|
| | | curLingying = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MGLingying)
|
| | | trainScore = int(osaValue * tuiyanScore + curLingying * lingyingScore)
|
| | | GameWorld.DebugLog("命格冲榜: trainScore=%s,osaValue=%s,curLingying=%s" % (trainScore, osaValue, curLingying))
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MinggeTrain, trainScore)
|
| | | return
|
| | |
|
| | | def AddOSAValue(curPlayer, osaType, addValue):
|
| | | ## 增加开服冲榜活动值,功能未开启时也要加
|
| | | if GetOSAState(curPlayer, osaType, checkFuncOpen=False) != 1:
|
| | | return
|
| | | osaValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSAValue % osaType)
|
| | | updOSAValue = PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSAValue % osaType, osaValue + addValue)
|
| | | GameWorld.DebugLog("更新开服冲榜活动值: osaType=%s,addValue=%s,updOSAValue=%s" % (osaType, addValue, updOSAValue))
|
| | | return
|
| | |
|
| | | def GetOSAState(curPlayer, osaType, checkFuncOpen=True):
|
| | | ## 玩家是否在开服冲榜活动中
|
| | | # @return: 0-未开启;1-活动中;2-结束显示期;3-结束关闭期
|
| | | funcID = OSAFuncIDDict.get(osaType)
|
| | | if not funcID:
|
| | | return 0
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, funcID):
|
| | | if checkFuncOpen and not GameFuncComm.GetFuncCanUse(curPlayer, funcID):
|
| | | #GameWorld.DebugLog("开服冲榜功能未开启! osaType=%s,funcID=%s" % (osaType, funcID))
|
| | | return 0
|
| | | osaDayDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 1, {})
|
| | |
| | | elif osaType == ShareDefine.Def_BT_OSA_HeroCall:
|
| | | billboardAwardDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 3, {})
|
| | | PlayerBillboard.DoGiveBillboardAwardByMail(osaType, "OSAHeroCall", billboardAwardDict, "OSAHeroCall")
|
| | | elif osaType == ShareDefine.Def_BT_OSA_HeroTrain:
|
| | | billboardAwardDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboardTrain", 3, {})
|
| | | PlayerBillboard.DoGiveBillboardAwardByMail(osaType, "OSAHeroTrain", billboardAwardDict, "OSAHeroTrain")
|
| | | elif osaType == ShareDefine.Def_BT_OSA_BeautyTrain:
|
| | | billboardAwardDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 4, {})
|
| | | PlayerBillboard.DoGiveBillboardAwardByMail(osaType, "OSABeautyTrain", billboardAwardDict, "OSABeautyTrain")
|
| | | elif osaType == ShareDefine.Def_BT_OSA_MinggeTrain:
|
| | | billboardAwardDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboardTrain", 5, {})
|
| | | PlayerBillboard.DoGiveBillboardAwardByMail(osaType, "OSAMinggeTrain", billboardAwardDict, "OSAMinggeTrain")
|
| | |
|
| | | return
|
| | |
|
| | |
| | | import PlayerControl
|
| | | import IpyGameDataPY
|
| | | import ChPyNetSendPack
|
| | | import OpenServerActivity
|
| | | import PlayerGoldRush
|
| | | import NetPackCommon
|
| | | import ItemControler
|
| | |
| | | actCnt += 1
|
| | | return actCnt
|
| | |
|
| | | def GetBeautyLVTotal(curPlayer):
|
| | | ## 红颜总等级
|
| | | lvTotal = 0
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetBeautyCount()):
|
| | | ipyData = ipyDataMgr.GetBeautyByIndex(index)
|
| | | beautyID = ipyData.GetBeautyID()
|
| | | if not GetBeautyState(curPlayer, beautyID):
|
| | | continue
|
| | | curLV = GetBeautyLVInfo(curPlayer, beautyID)[0]
|
| | | lvTotal += curLV
|
| | | return lvTotal
|
| | |
|
| | | #// B2 20 红颜好感度升级 #tagCSBeautyLVUP
|
| | | #
|
| | | #struct tagCSBeautyLVUP
|
| | |
| | | # 有升级额外处理
|
| | | if updLV > curLV:
|
| | | RefreshBeautyAttr(curPlayer)
|
| | | OpenServerActivity.UpdOSA_BeautyTrainBillboard(curPlayer)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_MainLevel)
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_MainLevel, lvID)
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_OSAMainLevel, lvID)
|
| | | if OpenServerActivity.GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MainLevel) == 1:
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MainLevel, lvID)
|
| | | OpenServerActivity.UpdOSA_MainLevelBillboard(curPlayer, lvID)
|
| | | DataRecordPack.DR_MainLevelPass(curPlayer, lvID)
|
| | | return value
|
| | | def GetMainLevelPassInfo(curPlayer):
|
| | |
| | | import ItemControler
|
| | | import PlayerSuccess
|
| | | import ChPyNetSendPack
|
| | | import OpenServerActivity
|
| | | import PlayerActivity
|
| | | import NetPackCommon
|
| | | import PlayerControl
|
| | |
| | | #首次获得图鉴额外逻辑 ...
|
| | | Sync_HeroInfo(curPlayer, [heroID])
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate(heroItem) # 首次获得
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 首次获得
|
| | |
|
| | | return
|
| | |
|
| | |
| | | PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_HeroLVUP, 1)
|
| | | PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_HeroLVUP)
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_OSAHeroLVUP, 1)
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 升级
|
| | | return
|
| | |
|
| | | def GetHeroLVMax(heroItem):
|
| | |
| | | returnItemList.append([itemID, returnCnt])
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, returnItemList, event=["HeroStarUPReturn", False, {}])
|
| | |
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 升星
|
| | | return
|
| | |
|
| | | def GetHeroStarMax(heroID, heroItem=None):
|
| | |
| | | SetHeroBreakLV(curPlayer, heroItem, nextBreakLV)
|
| | |
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate(heroItem) # 突破
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 突破
|
| | | return
|
| | |
|
| | | def SetHeroBreakLV(curPlayer, heroItem, breakLV, isSync=True):
|
| | |
| | | SetHeroAwakeLV(heroItem, nextAwakeLV)
|
| | |
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate(heroItem) # 觉醒
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 觉醒
|
| | | return
|
| | |
|
| | | def SetHeroAwakeLV(heroItem, awakeLV, isSync=True):
|
| | |
| | | heroItem.Sync_Item()
|
| | | GameWorld.DebugLog("武将洗炼结果! itemIndex=%s,heroID=%s,washIDList=%s,lockTalentIndexs=%s"
|
| | | % (itemIndex, heroID, washIDList, lockTalentIndexs))
|
| | | OpenServerActivity.AddOSAValue(curPlayer, ShareDefine.Def_BT_OSA_HeroTrain, washCostItemCount)
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 洗炼
|
| | | return
|
| | |
|
| | | def HeroTalentWashReplace(curPlayer, itemIndex, heroItem):
|
| | |
| | | import PlayerControl
|
| | | import ItemControler
|
| | | import IpyGameDataPY
|
| | | import OpenServerActivity
|
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | | import PlayerOnline
|
| | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MGGanwuExp, updExp)
|
| | | Sync_MinggeInfo(curPlayer)
|
| | |
|
| | | OpenServerActivity.AddOSAValue(curPlayer, ShareDefine.Def_BT_OSA_MinggeTrain, succCount)
|
| | | OpenServerActivity.UpdOSA_MinggeTrainBillboard(curPlayer) # 推演
|
| | | |
| | | ItemCommon.SyncMakeItemAnswer(curPlayer, ShareDefine.Def_mitMGTuiyan, ChConfig.Def_ComposeState_Sucess, succCount)
|
| | | return True
|
| | |
|
| | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MGLingying, updLingying)
|
| | | GameWorld.DebugLog(" updLingying=%s,useCount=%s" % (updLingying, useCount))
|
| | | Sync_MinggeInfo(curPlayer)
|
| | | |
| | | OpenServerActivity.UpdOSA_MinggeTrainBillboard(curPlayer)
|
| | | return
|
| | |
|
| | | def RefreshMinggeAttr(curPlayer, mgNum=0):
|
| | |
| | | import FormulaControl
|
| | | import PlayerPrestigeSys
|
| | | import GameLogic_Dingjunge
|
| | | import OpenServerActivity
|
| | | import PlayerMingge
|
| | | import PlayerBeauty
|
| | | import PlayerHorse
|
| | |
| | | import PlayerHero
|
| | | import PlayerHJG
|
| | | import GameWorld
|
| | | import ChPlayer
|
| | | import ChConfig
|
| | | import ChEquip
|
| | |
|
| | |
| | | self._effectiveCardDict[heroID] = [cardAddPer, itemIndex, inThis]
|
| | | return
|
| | |
|
| | | def GetEffectiveCardDict(self): return self._effectiveCardDict
|
| | | def SetEffectiveCardDict(self, effectiveCardDict): self._effectiveCardDict = effectiveCardDict
|
| | | def GetEffCardAddPer(self):
|
| | | effCardAddPer = 0
|
| | |
| | | for syncItem in syncItemDict.values():
|
| | | syncItem.Sync_Item()
|
| | |
|
| | | OpenServerActivity.UpdOSA_HeroTrainBillboard(curPlayer) # 重载生效卡
|
| | | return
|
| | |
|
| | | def getHeroCardAddPer(heroItem):
|
| | |
| | | if taskID not in taskIDList:
|
| | | taskIDList.append(taskID)
|
| | | IpyGameDataPY.SetConfigEx(key, taskIDListDict)
|
| | | GameWorld.Log("任务ID列表: %s" % taskIDListDict)
|
| | | #GameWorld.Log("任务ID列表: %s" % taskIDListDict)
|
| | | return taskIDListDict.get(taskGroup, [])
|
| | |
|
| | | def OnPlayerLogin(curPlayer):
|
| | |
| | | PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_HeroCall, treasureCount)
|
| | | PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_HeroCall, treasureCount)
|
| | | heroCallCnt = GetHeroCallCnt(curPlayer)
|
| | | if OpenServerActivity.GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_HeroCall) == 1:
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_HeroCall, heroCallCnt)
|
| | | OpenServerActivity.UpdOSA_HeroCallBillboard(curPlayer, heroCallCnt)
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_OSAHeroCall, heroCallCnt)
|
| | |
|
| | | PlayerActLunhuidian.AddLunhuidianValue(curPlayer, PlayerActLunhuidian.AwardType_Treasure, treasureType, treasureCount)
|
| | |
| | | Def_BT_OSA_HeroCall, # 开服招募榜 4
|
| | | Def_BT_Dingjunge, # 定军阁过关榜 5
|
| | | Def_BT_ActHeroAppear, # 武将登场招募榜 6
|
| | | ) = range(0, 7) |
| | | Def_BT_OSA_HeroTrain, # 开服武将冲榜 7
|
| | | Def_BT_OSA_BeautyTrain, # 开服红颜冲榜 8
|
| | | Def_BT_OSA_MinggeTrain, # 开服命格冲榜 9
|
| | | ) = range(0, 10) |
| | |
|
| | | ''' 跨服排行榜类型, 从 150 开始,最大条数在功能配置表 CrossBillboardSet 配置,没配默认100
|
| | | 与本服榜单存储的是不一样的数据库表格,理论上类型可以和本服榜单类型重复,为了做下区分防误导,跨服榜单从 150 开始
|
| | |
| | |
|
| | | BillboardNameDict = {Def_BT_MainLevel:"主线过关榜", Def_BT_Arena:"演武场积分周榜", Def_BT_Tianzi:"天子考验伤害榜",
|
| | | Def_BT_OSA_MainLevel:"开服关卡榜", Def_BT_OSA_HeroCall:"开服招募榜", Def_BT_Dingjunge:"定军阁过关榜",
|
| | | Def_BT_ActHeroAppear:"武将登场招募榜(分组值1-ActNum)"
|
| | | Def_BT_OSA_HeroTrain:"开服武将冲榜", Def_BT_OSA_BeautyTrain:"开服红颜冲榜", Def_BT_OSA_MinggeTrain:"开服命格冲榜", |
| | | Def_BT_ActHeroAppear:"武将登场招募榜(分组值1-ActNum)",
|
| | | }
|
| | |
|
| | | #仙盟榜单类型
|
| | |
| | | GameFuncID_OSA_HeroCall = 46 # 开服招募榜
|
| | | GameFuncID_OSA_Celebration = 47 # 开服庆典
|
| | | GameFuncID_Mingge = 54 # 命格
|
| | | GameFuncID_OSA_HeroTrain = 59 # 开服武将冲榜
|
| | | GameFuncID_OSA_BeautyTrain = 60 # 开服红颜冲榜
|
| | | GameFuncID_OSA_MinggeTrain = 61 # 开服命格冲榜
|
| | |
|
| | | # 以下为暂时无用的
|
| | | GameFuncID_Pet = -1 # 宠物,灵宠 6
|