From b7270f2676fd8e37aa05d71dcd31b9f42938b4d5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 28 三月 2019 15:07:10 +0800
Subject: [PATCH] 6373 【后端】【2.0】删除无用功能代码、封包、配置
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 348 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 227 insertions(+), 121 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index 0c3ecdd..96a3f80 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -49,19 +49,17 @@
import ChEquip
import PlayerActivity
import PlayerSuccess
-import EventReport
-#import PlayerCostVIP
-import GameFuncComm
import IpyGameDataPY
-import ShopItemManage
import PlayerPet
import PlayerArrestTask
import PlayerMagicWeapon
import PlayerBossReborn
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
+import PlayerWeekParty
+import PlayerActLogin
import PlayerHorse
import FBCommon
-import PyGameData
import math
import time
@@ -92,7 +90,7 @@
Def_Run_Around_Reward_Exp = "run_around_exp" #跑环任务的奖励
Def_Run_Around_Reward_ExpPoint = "run_around_exp_point" #跑环任务的奖励
Def_Run_Around_Reward_Money = "run_around_money" #跑环任务的给钱
-
+Def_Run_Around_Reward_FamilyHornor = "run_around_familyhornor" #跑环任务的仙盟贡献奖励
Def_Run_Around_Reward_Multiple = "run_around_multiple" #跑环任务的奖励翻倍数
Def_Task_Reward_Per = "reward_per" #领取任务奖励倍数百分比; 150代表1.5倍
@@ -1221,7 +1219,7 @@
def __RunAnswerAction(curPlayer, curMission, answersNode):
actionsNode = __FindAnswerActionNode(curPlayer, curMission, answersNode)
if actionsNode == None or actionsNode.IsEmpty():
- GameWorld.Log('__RunAnswerAction找不到回答节点')
+ GameWorld.DebugLog('__RunAnswerAction找不到回答节点--%s'%curMission.GetMissionID())
return
__DoAnswerActionNode(curPlayer, curMission, actionsNode)
@@ -1276,7 +1274,7 @@
#特殊清空处理, 如果没有任务, state为0
curValue = 0
elif tagMission == None:
- GameWorld.Log("没有目标任务 %s" % conditionID , curPlayer.GetPlayerID())
+ GameWorld.DebugLog("没有目标任务 %s" % conditionID , curPlayer.GetPlayerID())
return
else:
curValue = QuestRunnerValue.GetValue(curPlayer, tagMission, conditionName)
@@ -1362,6 +1360,22 @@
value = 1
return QuestRunnerValue.GetEval(conditionType, value, conditionValue)
+##判断是否穿戴某部位(非时效)
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curConditionNode 节点信息
+# @return 返回值, 是否判断成功
+# @remarks <have_equip value="装备位"/>
+def ConditionType_Have_Equip(curPlayer, curMission, curConditionNode):
+ equipPlace = int(curConditionNode.GetAttribute("value"))
+ roleEquipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
+ curEquip = roleEquipPack.GetAt(equipPlace)
+ if curEquip.IsEmpty():
+ return False
+ if curEquip.GetEndureReduceType():
+ return False
+ return True
+
#---------------------------------------------------------------------
##增加家族相关值
# @param curPlayer 玩家实例
@@ -2490,7 +2504,7 @@
equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
for equipIndex in range(0, equipPack.GetCount()):
#备用装备栏不处理
- if equipIndex not in ChConfig.Type_Equip_CanTake :
+ if equipIndex not in ShareDefine.RoleEquipType:
continue
curEquip = equipPack.GetAt(equipIndex)
if curEquip.IsEmpty():
@@ -2515,7 +2529,7 @@
totalPlusLV = 0
for packType, equipPartIndexList in ChConfig.Pack_EquipPart_CanPlusStar.items():
for i in equipPartIndexList:
- partStarLV = ChEquip.GetEquipPartStarLV(curPlayer, packType, i)
+ partStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, packType, i)
totalPlusLV += partStarLV
@@ -2526,7 +2540,7 @@
# equipPartIndexList = ChConfig.Pack_EquipPart_CanPlusStar.get(IPY_GameWorld.rptEquip, [])
# for i in equipPartIndexList:
# #统计全身强化等级
-# partStarLV = ChEquip.GetEquipPartStarLV(curPlayer, IPY_GameWorld.rptEquip, i)
+# partStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, IPY_GameWorld.rptEquip, i)
# if partStarLV >= star:
# partCnt +=1
#GameWorld.Log('star=%s,conditionValue=%s,partCnt=%s,%s'%(star,conditionValue,partCnt,QuestRunnerValue.GetEval(conditionType, partCnt, conditionValue)))
@@ -2573,42 +2587,6 @@
return False
return petPack.GetCount() > 0
return PlayerPet.GetPetDataItemByNPCID(curPlayer, checkPetID) != None
-
-def ConditionType_Is_Buy_Tehuiitem(curPlayer, curMission, curConditionNode):
- # 判断是否购买过特惠商店物品
- # <Is_Buy_Tehuiitem shopID="1007" itemShopIndex="0,1,2"/> shopID暂定需指定商店ID, itemShopIndex可指定多个索引, 中间英文逗号隔开
- shopID = GameWorld.ToIntDef(curConditionNode.GetAttribute("shopID"), 0)
- if not shopID:
- return False
- indexList = []
- indexInfo = curConditionNode.GetAttribute("itemShopIndex")
- if indexInfo != '':
- indexList = eval('[' + indexInfo + ']')
- if not indexList:
- shopItemList = ShopItemManage.GetShopItemList(shopID)
- indexList = range(len(shopItemList))
- if not indexList:
- GameWorld.DebugLog("需指定判断的特惠商店物品索引编号!indexInfo=%s" % indexInfo)
- return False
- for i in indexList:
- buyCnt = ShopItemManage.__GetPlayerShopItemBuyCnt(curPlayer, shopID, i)
- if buyCnt > 0:
- return True
- return False
-
-##竞技场是否达到多少名
-# @param curPlayer 玩家实例
-# @param curMission 任务实例
-# @param curConditionNode 节点信息
-# @return 返回值, 是否判断成功
-# @remarks <Check_Jjcorder type="类型" value="值"/>
-def ConditionType_Check_Jjcorder(curPlayer, curMission, curConditionNode):
- conditionValue = GameWorld.ToIntDef(curConditionNode.GetAttribute("value"), 0)
- conditionType = curConditionNode.GetAttribute("type")
- maxOrder = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_HistoryMaxOrder, 0,
- ChConfig.Def_PDictType_Default)
-
- return QuestRunnerValue.GetEval(conditionType, maxOrder, conditionValue)
#---------------------------------------------------------------------
##执行 扣除玩家镖车押金
@@ -2820,10 +2798,10 @@
# @param bind 绑定
# @param packList 背包索引
# @return 背包索引,-1表示没有可放的背包
-def GetCanPutInPackIndex(curPlayer, itemID, itemCount, bind, packList):
+def GetCanPutInPackIndex(curPlayer, itemID, itemCount, bind, packList, isAuctionItem=False):
itemControl = ItemControler.PlayerItemControler(curPlayer)
for index in packList:
- if not itemControl.CanPutInItem(index, itemID, itemCount, bind):
+ if not itemControl.CanPutInItem(index, itemID, itemCount, isAuctionItem):
continue
return index
@@ -2847,22 +2825,22 @@
itemStarLV=0, bind=False, property=None,
packList=[IPY_GameWorld.rptItem], isSuite=False,
addAttrLV=0, isLucky=False, skillBoostEff=[], holeCount=0,
- equipIndex= -1, isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[]):
- if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
- #仙盟兽粮自动使用
- return
+ equipIndex= -1, isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[], isAuctionItem=False):
+# if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
+# #仙盟兽粮自动使用
+# return
#任务给予物品应该只能放入万能背包和背包
itemControl = ItemControler.PlayerItemControler(curPlayer)
#获得可放入的背包索引
- packIndex = GetCanPutInPackIndex(curPlayer, itemID, itemCount, bind, packList)
+ packIndex = GetCanPutInPackIndex(curPlayer, itemID, itemCount, bind, packList, isAuctionItem)
if packIndex == -1:
return
#设置物品属性
- curSingleItem = CreatMissionItem(itemID, itemStarLV, addAttrLV, isSuite, bind,
- isLucky, skillBoostEff, itemCount, holeCount, isGreat, baseAttrRate, greatAttrList)
+ curSingleItem = CreatMissionItem(curPlayer, itemID, itemStarLV, addAttrLV, isSuite, bind,
+ isLucky, skillBoostEff, itemCount, holeCount, isGreat, baseAttrRate, greatAttrList, isAuctionItem=isAuctionItem)
if not curSingleItem:
return
@@ -2881,15 +2859,15 @@
if equipIndex == 0:
GameWorld.ErrLog("任务赠送装备位置错误 equipIndex=-1")
return
-
- if ItemCommon.CheckHasEquip(curPlayer, IPY_GameWorld.rptEquip, equipIndex):
+ equipPackIndex = ItemCommon.GetEquipPackIndex(curSingleItem)
+ if ItemCommon.CheckHasEquip(curPlayer, IPY_GameWorld.rptEquip, equipPackIndex):
#物品已存在直接给背包
if not itemControl.PutInItem(IPY_GameWorld.rptItem, curSingleItem, event=["AddEventItem", False, {'MissionID':missionID}]):
GameWorld.Log('###任务 = %s给予物品异常, %s, %s' % (missionID, itemID, itemCount), curPlayer.GetPlayerID())
curSingleItem.Clear()
return
else:
- ChEquip.DoPlayerEquipItem(curPlayer, curSingleItem, equipIndex, 0)
+ ChEquip.DoPlayerEquipItem(curPlayer, curSingleItem,equipPackIndex, 0)
#ObtainRes01 <n>获得</n><Info Type="Item" Name="Name" ID="{%S1%}"/><n>×</n><n>{%S2%}!</n>
elif not itemControl.PutInItem(packIndex, curSingleItem, event=["AddEventItem", False, {'MissionID':missionID}]):
@@ -2911,26 +2889,23 @@
# @param itemCount: 物品数量
# @param baseAttrRate: 任务创建的物品默认的基础属性随机值为10000
# @return None
-def CreatMissionItem(itemID, starLV=0, addAttrLV=0, isSuite=False, bind=False,
+def CreatMissionItem(curPlayer, itemID, starLV=0, addAttrLV=0, isSuite=False, bind=False,
isLucky=0, skillBoostEff=[], itemCount=1, holeCount=0,
- isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[]):
+ isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[], isAuctionItem=False):
- curSingleItem = ItemControler.GetOutPutItemObj(itemID)
+ curSingleItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem, curPlayer=curPlayer)
if not curSingleItem:
GameWorld.Log('###创造任务物品失败, itemID = %s' % (itemID))
return
- tmpEquipData = ItemControler.SingleEquipTmpData()
- tmpEquipData.starLV = starLV
- tmpEquipData.holeCnt = holeCount
- tmpEquipData.isSuite = isSuite
- tmpEquipData.isBind = bind
+ #tmpEquipData = ItemControler.SingleEquipTmpData()
+ #tmpEquipData.starLV = starLV
+ #tmpEquipData.holeCnt = holeCount
+ #tmpEquipData.isSuite = isSuite
+ #tmpEquipData.isBind = bind
- ChItem.EquipAddAdditionEx(curSingleItem, tmpEquipData)
-
- #设置数量
- ItemControler.SetItemCount(curSingleItem, itemCount)
+ #ChItem.EquipAddAdditionEx(curSingleItem, tmpEquipData)
return curSingleItem
@@ -3715,7 +3690,7 @@
# @param curMission 任务实例
# @param curActionNode节点信息
# @return 返回值无意义
-# @remarks <Add_Item id="物品ID" count="物品数量" starLV="星级" bind="是否绑定"
+# @remarks <Add_Item id="物品ID" count="物品数量" starLV="星级" bind="是否绑定" isAuctionItem="是否拍品"
# packtype="1,2背包索引" equipIndex="装备位置" suite="是否套装化" addAttrLV="追加等级",isLucky="是否有幸运"
# skillBoostEff="[技能效果增强索引, 值]", holeCount="孔数" isGreat="1" baseAttrRate="可强化的装备基础属性随机加强比例默认10000"
# greatAttr="[卓越属性列表]" />
@@ -3736,10 +3711,13 @@
itemStarLV = GameWorld.ToIntDef(curActionNode.GetAttribute("starLV"), 0)
#物品是否绑定
- bind = True if curActionNode.GetAttribute("bind") else False
-
+ bind = True if GameWorld.ToIntDef(curActionNode.GetAttribute("bind")) else False
+
#物品是否套装化
isSuite = True if curActionNode.GetAttribute("suite") else False
+
+ #是否拍品
+ isAuctionItem = GameWorld.ToIntDef(curActionNode.GetAttribute("isAuctionItem"), 0)
#追加
addAttrLV = GameWorld.ToIntDef(curActionNode.GetAttribute("addAttrLV"), 0)
@@ -3767,7 +3745,7 @@
baseAttrRate = GameWorld.ToIntDef(curActionNode.GetAttribute("baseAttrRate"), ShareDefine.Def_MaxRateValue)
AddEventItem(curPlayer, curMission, curItemID, curItemCount, None, itemStarLV,
bind, False, packTypeList, isSuite, addAttrLV, isLucky,
- skillBoostEff, holeCount, equipIndex, isGreat, baseAttrRate, greatAttrList)
+ skillBoostEff, holeCount, equipIndex, isGreat, baseAttrRate, greatAttrList, isAuctionItem=isAuctionItem)
#---------------------------------------------------------------------
@@ -3806,7 +3784,7 @@
# @param curMission 任务实例
# @param curActionNode节点信息
# @return 返回值无意义
-# @remarks <Drop_Item id="物品ID" count="物品数量" starLV="星级" bind="是否绑定"
+# @remarks <Drop_Item id="物品ID" count="物品数量" starLV="星级" bind="是否绑定" isAuctionItem="是否拍品"
# suite="是否套装化" addAttrLV="追加等级",isLucky="是否有幸运"
# skillBoostEff="[技能效果增强索引, 值]", holeCount="孔数", isGreat="1", effIndex="1" , dropDist="掉落范围默认3"
# aroundPlayer="1" baseAttrRate="可强化的装备基础属性随机加强比例默认10000" greatAttr="[卓越属性列表]" />
@@ -3826,6 +3804,8 @@
isSuite = GameWorld.ToIntDef((curActionNode.GetAttribute("suite")), 0)
bind = GameWorld.ToIntDef((curActionNode.GetAttribute("bind")), 1)
+
+ isAuctionItem = GameWorld.ToIntDef((curActionNode.GetAttribute("isAuctionItem")), 0)
#追加
addAttrLV = GameWorld.ToIntDef(curActionNode.GetAttribute("addAttrLV"), 0)
@@ -3851,14 +3831,14 @@
baseAttrRate = GameWorld.ToIntDef(curActionNode.GetAttribute("baseAttrRate"), ShareDefine.Def_MaxRateValue)
#设置物品属性
- curItem = CreatMissionItem(curItemID, starLV, addAttrLV, isSuite, bind,
- isLucky, skillBoostEff, count, holeCount, isGreat, baseAttrRate, greatAttrList)
+ curItem = CreatMissionItem(curPlayer, curItemID, starLV, addAttrLV, isSuite, bind,
+ isLucky, skillBoostEff, count, holeCount, isGreat, baseAttrRate, greatAttrList, isAuctionItem=isAuctionItem)
if not curItem:
GameWorld.Log('###创建地上物品异常,无此ID物品 = %s' % (curItemID))
return
- if curActionNode.GetAttribute("aroundPlayer") == "1":
+ if curActionNode.GetAttribute("aroundPlayer") == "1" or not curNPC:
posX, posY = curPlayer.GetPosX(), curPlayer.GetPosY()
else:
posX, posY = curNPC.GetPosX(), curNPC.GetPosY()
@@ -4809,7 +4789,7 @@
mission_1.SetProperty(Def_Around_AllCount, allCount)
EventShell.EventRespons_RunTaskAllCnt(curPlayer, curMissionData.Type, allCount)
- GameWorld.DebugLog("删除任务allCount %s, RUNCOUNT=%s" % (allCount, RUNCOUNT))
+ GameWorld.Log("删除任务allCount %s, RUNCOUNT=%s" % (allCount, RUNCOUNT))
if allCount < RUNCOUNT:
@@ -4874,6 +4854,7 @@
# @return 无
# @remarks 跑环任务结束处理,删除或者随机下一个
def __RunAroundMission(curPlayer, missionID, curMissionData, curActionNode):
+ GameWorld.Log("__RunAroundMission----%s"%missionID, curPlayer.GetID())
#任务完成,触发随机跑环
run_event = GameWorld.ToIntDef(curActionNode.GetAttribute("run_around"), 0)
firstMissionID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
@@ -4910,8 +4891,9 @@
#总跑环次数已满,不可再做
- if run_event == Def_Run_Around_Over_1 and allCount >= RUNCOUNT:
- return
+ if run_event == Def_Run_Around_Over_1:
+ if allCount >= RUNCOUNT or aroundCount >= AROUNDCOUNT:
+ return
nextMissionID = 0
nextMission = None
@@ -4959,9 +4941,9 @@
if curMissionData.Type == QuestCommon.Def_Mission_Type_RunFamily:
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TaskFRun, 1)
- if allCount < RUNCOUNT:
- nextMissionID = __OverRandRunAround(curPlayer, curMissionData)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskNextMissionID % curMissionData.Type, nextMissionID)
+# if allCount < RUNCOUNT:
+# nextMissionID = __OverRandRunAround(curPlayer, curMissionData)
+# PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskNextMissionID % curMissionData.Type, nextMissionID)
@@ -5216,14 +5198,21 @@
def OnAroundMissionFinish(curPlayer, missionType, addCnt=1):
#跑环任务id列表
# 活跃度
+ GameWorld.Log(' 跑环完成触发活跃度 missionType=%s'%missionType, curPlayer.GetPlayerID())
if missionType == QuestCommon.Def_Mission_Type_RunDaily:
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_DailyRunMission, addCnt)
+ PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_TaskCRun, addCnt)
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TaskCRun, addCnt)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RunTask, addCnt)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RunTask, addCnt)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RunTask, addCnt)
+ PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_RunTask, addCnt)
+ PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_RunTask, 1)
elif missionType == QuestCommon.Def_Mission_Type_RunFamily:
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_FamilyRunMission, addCnt)
PlayerFamily.AddFamilyActivity(curPlayer, ShareDefine.FamilyActive_Task, addCnt)
+ else:
+ GameWorld.Log(' 跑环完成触发活跃度异常 missionType=%s'%missionType, curPlayer.GetPlayerID())
return
@@ -5383,7 +5372,6 @@
randStarList = eval(ReadChConfig.GetChConfig('RunAround_Star'))
aroundStar = GameWorld.GetResultByRandomList(randStarList, 1)
- #vipStar = PlayerCostVIP.GetRoundStar(curPlayer)
vipStar = 0
if vipStar > 0:
aroundStar = vipStar
@@ -5417,6 +5405,8 @@
# @return 返回值无意义
# @remarks 设置跑环任务奖励 <set_run_around_reward multiple="指定倍数" id_name="任务ID存储key" />
def DoType_Set_Run_Around_Reward(curPlayer, curMission, curActionNode):
+ curMissionID = curMission.GetMissionID()
+ GameWorld.Log("DoType_Set_Run_Around_Reward---%s"%curMissionID, curPlayer.GetID())
idNameStr = curActionNode.GetAttribute("id_name")
if curMission and idNameStr != "":
questID = GameWorld.ToIntDef(curMission.GetProperty(idNameStr), 0)
@@ -5425,16 +5415,15 @@
if curMission == None:
curMission = QuestCommon.AddNewMission(curPlayer, questID)
- curMissionID = curMission.GetMissionID()
curMissionData = FindQuestFunc(curMissionID)
if not curMissionData:
return
rewardList = __GetRunAroundReward(curPlayer, curMission)
if rewardList:
- curExp, curMoney, itemID, itemCount = rewardList
+ curExp, curMoney, curFamilyHornor, itemID, itemCount = rewardList
else:
- curExp, curMoney, itemID, itemCount = 0, 0, 0, 0
+ curExp, curMoney, curFamilyHornor, itemID, itemCount = 0, 0, 0, 0
curMission.SetProperty(Def_Run_Around_Reward_Exp, curExp % ChConfig.Def_PerPointValue)
curMission.SetProperty(Def_Run_Around_Reward_ExpPoint, curExp / ChConfig.Def_PerPointValue)
@@ -5442,6 +5431,8 @@
curMission.SetProperty(Def_Day_Event_Reward_Item_Id, itemID)
curMission.SetProperty(Def_Day_Event_Reward_Item_Count, itemCount)
+ curMission.SetProperty(Def_Run_Around_Reward_FamilyHornor, curFamilyHornor)
+
return
@@ -5470,14 +5461,14 @@
curExp = eval(IpyGameDataPY.GetFuncCfg('RunTaskExp'))
curExp += curLVRunAroundReward.AddExp
curMoney = baseMoney
-
+ curFamilyHornor = curLVRunAroundReward.PlayerFamilyHornor
itemInfo = curLVRunAroundReward.Item
if itemInfo:
itemID, itemCount = eval(itemInfo)
else:
itemID, itemCount = 0, 0
- return (curExp, curMoney, itemID, itemCount)
+ return (curExp, curMoney, curFamilyHornor, itemID, itemCount)
#---------------------------------------------------------------------
##给予跑环奖励
@@ -5505,14 +5496,24 @@
addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
PlayerControl.GiveMoney(curPlayer, runAroundReward.MoneyType, money, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
+ familyHornor = curMission.GetProperty(Def_Run_Around_Reward_FamilyHornor)
+ if familyHornor:
+ PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, familyHornor, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson, True)
+
item_id = curMission.GetProperty(Def_Day_Event_Reward_Item_Id)
item_count = curMission.GetProperty(Def_Day_Event_Reward_Item_Count)
#给物品奖励
itemInfo = []
if item_id and item_count:
- AddEventItem(curPlayer, curMission, item_id, item_count, bind=True)
itemInfo = [[item_id, item_count, True]]
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, 1)
+ if 1 > packSpace:
+ PlayerControl.NotifyCode(curPlayer, "UnionTask_Reward")
+ PlayerControl.SendMailByKey("UnionTaskReward", [curPlayer.GetID()], itemInfo)
+ else:
+ AddEventItem(curPlayer, curMission, item_id, item_count, bind=True)
+
GameWorld.DebugLog("任务:%d 获得经验:%d,钱=%s,物品ID=%s,物品数量=%s"
% (curMission.GetMissionID(), exp, money, item_id, item_count))
@@ -5850,6 +5851,11 @@
#记录副本对应的任务ID
if FBCommon.GetRecordMapID(mapID) in [ChConfig.Def_FBMapID_ClearDevil, ChConfig.Def_FBMapID_MagicWeapon]:
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ReqFBMissionID, curMission.GetMissionID())
+ missionID = curMission.GetMissionID()
+ curMissionData = FindQuestFunc(missionID)
+ if curMissionData:
+ missionType = curMissionData.Type
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ReqFBMissionType, missionType)
return
#---------------------------------------------------------------------
@@ -6043,10 +6049,66 @@
# @remarks <Set_Horsetotallv key="" />
def DoType_Set_Horsetotallv(curPlayer, curMission, curActionNode):
key = curActionNode.GetAttribute("key")
- questID = GameWorld.ToIntDef(curMission.GetProperty("id"), 0)
+ questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
if questID != 0:
curMission = curPlayer.FindMission(questID)
curMission.SetProperty(key, PlayerHorse.GetHorseSumLV(curPlayer))
+ return
+
+##设置某阶达到强化等级的件数
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Pluslvpartcnt key="" id="" classLV="" plusLV=""/>
+def DoType_Set_Pluslvpartcnt(curPlayer, curMission, curActionNode):
+ key = curActionNode.GetAttribute("key")
+ questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
+ if questID != 0:
+ curMission = curPlayer.FindMission(questID)
+ classLV = GameWorld.ToIntDef(curActionNode.GetAttribute("classLV"), 0)
+ if not classLV:
+ return
+ needPlusLV = GameWorld.ToIntDef(curActionNode.GetAttribute("plusLV"), 0)
+ totalCnt = 0
+ equipPlaceList = ChConfig.Pack_EquipPart_CanPlusStar[IPY_GameWorld.rptEquip]
+ for equipPlace in equipPlaceList:
+ ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
+ if not ipyData:
+ continue
+ partStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, IPY_GameWorld.rptEquip, ipyData.GetGridIndex())
+ if partStarLV >= needPlusLV:
+ totalCnt += 1
+
+ curMission.SetProperty(key, totalCnt)
+ return
+
+##设置强化总等级
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Totalpluslv key="" />
+def DoType_Set_Totalpluslv(curPlayer, curMission, curActionNode):
+ key = curActionNode.GetAttribute("key")
+ questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
+ if questID != 0:
+ curMission = curPlayer.FindMission(questID)
+ curMission.SetProperty(key, ChEquip.GetTotalPlusLV(curPlayer, False))
+ return
+
+##设置装备总星级
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Equiptotalstar key="" />
+def DoType_Set_Equiptotalstar(curPlayer, curMission, curActionNode):
+# key = curActionNode.GetAttribute("key")
+# questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
+# if questID != 0:
+# curMission = curPlayer.FindMission(questID)
+# curMission.SetProperty(key, ChEquip.GetTotalEquipStars(curPlayer))
return
#---------------------------------------------------------------------
##DoType_调度器
@@ -6420,6 +6482,18 @@
mwid = GameWorld.ToIntDef(curConditionNode.GetAttribute("mwid"), 0)
conditionValue = GameWorld.ToIntDef(curConditionNode.GetAttribute("value"), 0)
return PlayerMagicWeapon.GetIsActiveMagicWeapon(curPlayer, mwid, conditionValue)
+
+##判断魔族法宝通关关卡
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curConditionNode节点信息
+# @return 返回值, 是否通过检查
+# @remarks <Check_Magicweapon_Passfblv" mwid="法宝ID" value="期望值" />
+def ConditionType_Check_Magicweapon_Passfblv(curPlayer, curMission, curConditionNode):
+ mwid = GameWorld.ToIntDef(curConditionNode.GetAttribute("mwid"), 0)
+ conditionValue = GameWorld.ToIntDef(curConditionNode.GetAttribute("value"), 0)
+ fbpasslv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWFBPassLevel % mwid)
+ return fbpasslv >= conditionValue
#---------------------------------------------------------------------
##是否拥有足够的竞技点
@@ -7135,21 +7209,15 @@
realmlv = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
return curPlayer.GetOfficialRank() >= realmlv
-##法宝之魂是否激活
-# @param None
-# @return None <Mwsoul value="id"/>
-def ConditionType_Mwsoul(curPlayer, curMission, curActionNode):
- soulID = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
- return bool(PlayerMagicWeapon.GetIsActiveMWSoul(curPlayer, soulID))
-##S级通关X层娲皇遗迹
+##X级通关X层娲皇遗迹
# @param None
-# @return None <Passqueenrelecs value="lineID"/>
+# @return None <Passqueenrelecs value="lineID" grade="grade"/>
def ConditionType_Passqueenrelecs(curPlayer, curMission, curActionNode):
lineID = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
grade = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [ChConfig.Def_FBMapID_QueenRelics])
- maxGrade = len(FBCommon.GetFBLineGrade(ChConfig.Def_FBMapID_QueenRelics, lineID))
- return grade >=maxGrade
+ needGrade = GameWorld.ToIntDef(curActionNode.GetAttribute("grade"), 0)
+ return grade >=needGrade
##坐骑总等级
# @param None
@@ -7158,22 +7226,47 @@
totallv = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
return PlayerHorse.GetHorseSumLV(curPlayer) >= totallv
-##2阶强化防具套装件数
-# @param None
-# @return None <Suitplus value="cnt"/>
-def ConditionType_Suitplus(curPlayer, curMission, curActionNode):
- needCnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
-
- equipSuitTypeDict = IpyGameDataPY.GetFuncEvalCfg('EquipSuitType')
- groupCnt = 0 #2阶强化防具套装件数
- for groupType, equipIndexList in equipSuitTypeDict.items():
- for i in equipIndexList:
- suiteInfo = ChEquip.GetSuiteInfoByPlace(curPlayer, i)
- for suiteType, lv in suiteInfo.items():
- if lv >= 2 and groupType == 1 and suiteType == 2:
- groupCnt +=1
- return groupCnt >= needCnt
+
+##法宝激活个数
+# @param None
+# @return None <Mwcnt value="cnt"/>
+def ConditionType_Mwcnt(curPlayer, curMission, curActionNode):
+ totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+ return PlayerMagicWeapon.GetMWActiveCntTotal(curPlayer) >= totalcnt
+
+##总强化等级
+# @param None
+# @return None <Totalpluslv value="cnt"/>
+def ConditionType_Totalpluslv(curPlayer, curMission, curActionNode):
+ totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+ return ChEquip.GetTotalPlusLV(curPlayer, False) >= totalcnt
+
+##判断某阶强化等级达到X的件数是否达到
+# @param None
+# @return None <Classlvpluslv classLV="" plusLV="" value="cnt"/>
+def ConditionType_Classlvpluslv(curPlayer, curMission, curActionNode):
+ classLV = GameWorld.ToIntDef(curActionNode.GetAttribute("classLV"), 0)
+ if not classLV:
+ return
+ needPlusLV = GameWorld.ToIntDef(curActionNode.GetAttribute("plusLV"), 0)
+ totalCnt = 0
+ equipPlaceList = ChConfig.Pack_EquipPart_CanPlusStar[IPY_GameWorld.rptEquip]
+ for equipPlace in equipPlaceList:
+ ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
+ if not ipyData:
+ continue
+ partStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, IPY_GameWorld.rptEquip, ipyData.GetGridIndex())
+ if partStarLV >= needPlusLV:
+ totalCnt += 1
+ return totalCnt >= GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+
+##装备总星级
+# @param None
+# @return None <Equiptotalstar value="cnt"/>
+def ConditionType_Equiptotalstar(curPlayer, curMission, curActionNode):
+ totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+ return #ChEquip.GetTotalEquipStars(curPlayer) >= totalcnt
##激活法宝,确认与成就逻辑后使用
# @param None
@@ -7181,8 +7274,6 @@
def DoType_Active_Magicweapon(curPlayer, curMission, curActionNode):
mwID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
PlayerMagicWeapon.DoActiveMW(curPlayer, mwID)
- PlayerMagicWeapon.NotifyMagicWeapon(curPlayer)
-
return
## 人物隐身 <Visible id="0隐身1现身"/>
@@ -7194,4 +7285,19 @@
else:
curPlayer.SetVisible(False)
curPlayer.SetSight(0)
- return
\ No newline at end of file
+ return
+
+
+# 被动技能孔
+def DoType_Open_Skill_Slots(curPlayer, curMission, curActionNode):
+ # 开孔
+ slotIndex = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+ mission_1 = QuestCommon.GetCommonMission(curPlayer)
+ if not mission_1:
+ return
+
+ mission_1.SetProperty("OpenSkillSlots", pow(2, slotIndex)|mission_1.GetProperty("OpenSkillSlots"))
+
+ return
+
+
--
Gitblit v1.8.0