7661 【后端】【2.0.200】屏蔽多余日志输出 7632 【后端】【2.0.200】缥缈仙域的boss和宝藏产出的妖丹开出等级配置
| | |
| | |
|
| | | def SetBossRefreshTime(bossid, killedTime):
|
| | | '''设置boss刷新时间'''
|
| | | ipyData = IpyGameDataPY.GetIpyGameData('BOSSInfo', bossid)
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataNotLog('BOSSInfo', bossid)
|
| | | if not ipyData:
|
| | | return
|
| | | onlineCnt = __GetBossOnlineHeroCnt(bossid)[0]
|
| | |
| | | if not lackCnt:
|
| | | break
|
| | | elif lackCnt < 0:
|
| | | GameWorld.ErrLog(' 随机假仙盟异常 已存在的随机数大于还需要的随机个数lackFakeCnt=%s,fakeIDList=%s'%(lackFakeCnt, fakeIDList))
|
| | | #GameWorld.DebugLog(' 随机假仙盟异常 已存在的随机数大于还需要的随机个数lackFakeCnt=%s,fakeIDList=%s'%(lackFakeCnt, fakeIDList))
|
| | | return []
|
| | | return fakeIDList
|
| | |
|
| | |
| | | DailyActionID_EquipPlus, # 强化
|
| | | DailyActionID_FieldFight, # 野外挂机
|
| | | DailyActionID_OfflineFight, # 脱机挂机
|
| | | DailyActionID_RefineStove, # 炼丹材料消耗 6
|
| | | DailyActionID_RefineStove, # 炼丹材料消耗 6(废弃)
|
| | | DailyActionID_Dice, # 我要太极
|
| | | DailyActionID_Pray, # 祈愿
|
| | | DailyActionID_WorldBOSS, # 世界BOSS
|
| | |
| | | giveItemList = PlayerFairyDomain.GetFairyAppointAward(curPlayer, fdeventID)
|
| | | if not giveItemList:
|
| | | awardCfg = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_FairyTreasure, lineID)
|
| | | curAlchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | giveItemList = []
|
| | | for awardRateList in awardCfg:
|
| | | newItemInfoList = []
|
| | | for itemInfo in awardRateList:
|
| | | itemID = itemInfo[1][0]
|
| | | itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
|
| | | if not itemData:
|
| | | return
|
| | | if curAlchemyLV < ItemCommon.GetItemClassLV(itemData) - 1:
|
| | | #丹炉等级不足
|
| | | continue
|
| | | |
| | | newItemInfoList.append(itemInfo)
|
| | | if not newItemInfoList:
|
| | | realWeightList = ItemCommon.GetWeightItemListByAlchemyDiffLV(curPlayer, awardRateList, 1)
|
| | | if not realWeightList:
|
| | | continue
|
| | | randomitem = GameWorld.GetResultByWeightList(newItemInfoList)
|
| | | randomitem = GameWorld.GetResultByWeightList(realWeightList)
|
| | | if not randomitem[0]:
|
| | | continue
|
| | | giveItemList.append(randomitem)
|
| | |
|
| | | if giveItemList:
|
| | |
| | | gameFB = GameWorld.GetGameFB()
|
| | | lineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqFBFuncLine)
|
| | | level, maxLevel = 0, 0
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('MagicWeaponFB', {'LineID':lineID}, True)
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('MagicWeaponFB', {'LineID':lineID}, True, False)
|
| | | if ipyDataList:
|
| | | mwID = ipyDataList[0].GetMWID()
|
| | | level = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWFBPassLevel % mwID)
|
| | |
| | | return itemDict
|
| | |
|
| | | def GetWeightItemListByAlchemyDiffLV(curPlayer, weightList, alchemyDiffLV):
|
| | | ''' 根据炼丹等级差异等级过滤权重列表中不满足的物品,返回新的权重列表
|
| | | ''' 根据炼丹等级差异等级过滤权重列表中不满足的物品,过滤最低玩家等级要求物品 返回新的权重列表
|
| | | @param weightList: 物品权重信息列表
|
| | | @param alchemyDiffLV: 是否过滤掉大于X级的炼丹等级物品,0-不过滤,1-过滤且读默认配置,>1-特殊功能指定的过滤等级
|
| | | '''
|
| | | resultWeightList = []
|
| | | if alchemyDiffLV:
|
| | | itemNeedPlayerLVDict = IpyGameDataPY.GetFuncEvalCfg("AlchemyDiffLV", 2, {})
|
| | | if alchemyDiffLV or itemNeedPlayerLVDict:
|
| | | playerLV = curPlayer.GetLV()
|
| | | # 如果有指定大于1的等级则取指定等级,没有的话取默认等级差
|
| | | if alchemyDiffLV == 1:
|
| | | alchemyDiffLV = IpyGameDataPY.GetFuncCfg("AlchemyDiffLV", 1)
|
| | |
| | | continue
|
| | | if GetItemClassLV(itemData) > curAlchemyLV + alchemyDiffLV:
|
| | | continue
|
| | | if itemID in itemNeedPlayerLVDict:
|
| | | if playerLV < itemNeedPlayerLVDict[itemID]:
|
| | | continue
|
| | | resultWeightList.append(itemInfo)
|
| | | else:
|
| | | resultWeightList = weightList
|
| | |
| | |
|
| | | def ActiveMagicWeaponByFB(curPlayer, mapID, lineID, passLV=0):
|
| | | ##通关副本激活法宝(人族、魔族法宝)
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('MagicWeaponFB', {'LineID':lineID, 'Level':passLV})
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('MagicWeaponFB', {'LineID':lineID, 'Level':passLV}, isLogNone=False)
|
| | | if ipyData:
|
| | | mwID = ipyData.GetMWID()
|
| | | GameWorld.Log('更新魔族副本关卡 mwID=%s,level=%s' % (mwID, passLV), curPlayer.GetID())
|
| | |
| | | Sycn_AlchemyMsg(curPlayer, alchemyID, False)
|
| | | #日常任务
|
| | | costItemCnt = sum(needMaterialDict.values())
|
| | | PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_RefineStove, costItemCnt)
|
| | | #PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_RefineStove, costItemCnt)
|
| | |
|
| | | elif doType == 2:
|
| | | if curAlchemyItemID != alchemyItemID:
|
| | |
| | | DailyActionID_EquipPlus, # 强化
|
| | | DailyActionID_FieldFight, # 野外挂机
|
| | | DailyActionID_OfflineFight, # 脱机挂机
|
| | | DailyActionID_RefineStove, # 炼丹材料消耗 6
|
| | | DailyActionID_RefineStove, # 炼丹材料消耗 6(废弃)
|
| | | DailyActionID_Dice, # 我要太极
|
| | | DailyActionID_Pray, # 祈愿
|
| | | DailyActionID_WorldBOSS, # 世界BOSS
|
| | |
| | |
|
| | | #升级技能CD直接冷却
|
| | | curSkill.SetRemainTime(0)
|
| | | learnSkillNotifyDict = IpyGameDataPY.GetFuncEvalCfg("SPSkillType", 3, {})
|
| | | if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_HorseSkill:
|
| | | PlayerControl.WorldNotify(0, 'GetMountSkill', [curPlayer.GetName(), curSkillID])
|
| | | elif skillTypeID in learnSkillNotifyDict:
|
| | | PlayerControl.WorldNotify(0, learnSkillNotifyDict[skillTypeID], [curPlayer.GetName(), curSkillID]) |
| | | else:
|
| | | #通知技能已升级成功 GeRen_admin_31379
|
| | | PlayerControl.NotifyCode(curPlayer, "GeRen_admin_31379", [curSkillID, curSkill.GetSkillLV()])
|