From 676d0d627868fc1c2e04bcdf7e43396d283d88b5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 21 八月 2018 14:46:09 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/master' --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 61 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 2 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 5962869..60877cc 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 @@ -1921,7 +1921,7 @@ # @param curMission 任务实例 # @param curConditionNode 节点信息 # @return 返回值, 是否判断成功 -# @remarks <Have_Money value="期望值" check="查找对话中的货币" moneytype="货币类型 1元宝2礼券3银两" type="__Eval+替换的名字"/> +# @remarks <Have_Money value="期望值" check="查找对话中的货币" moneytype="货币类型 1元宝2礼券3银两" type="__Eval+替换的名字" maxItem="需要物品数量" itemID="20410"/> def ConditionType_Have_Money(curPlayer, curMission, curConditionNode): #格式<have_money value="" type="" moneytype=""/> value = curConditionNode.GetAttribute("value") @@ -1930,6 +1930,13 @@ conditionValue = int(value) elif check != "": conditionValue = int(QuestRunnerValue.GetNPCTalkReplaceValue(curPlayer, curMission, check)) + + maxItemCnt = GameWorld.ToIntDef(curConditionNode.GetAttribute("maxItem"), 0) + itemID = GameWorld.ToIntDef(curConditionNode.GetAttribute("itemID"), 0) + if maxItemCnt and itemID: #未收集的道具个数乘以单价 + haveCnt = ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptItem, itemID) + conditionValue = max(0, maxItemCnt-haveCnt)*value + conditionType = curConditionNode.GetAttribute("type") moneyType = int(curConditionNode.GetAttribute("moneytype")) goldValue = curPlayer.GetGold() @@ -3655,7 +3662,7 @@ # @param curMission 任务实例 # @param curActionNode节点信息 # @return 返回值无意义 -# @remarks <Del_Money form_value="是否取对话的值" value="form_value为空取" moneytype="1元宝2礼券3银两" /> +# @remarks <Del_Money form_value="是否取对话的值" value="form_value为空取" moneytype="1元宝2礼券3银两" maxItem="需要物品数量" itemID="20410"/> def DoType_Del_Money(curPlayer, curMission, curActionNode): #扣钱 #格式<del_money form_value = ""value="" moneytype=""/> @@ -3665,6 +3672,12 @@ value = int(QuestRunnerValue.GetNPCTalkReplaceValue(curPlayer, curMission, form_value)) else: value = int(curActionNode.GetAttribute("value")) + + maxItemCnt = GameWorld.ToIntDef(curActionNode.GetAttribute("maxItem"), 0) + itemID = GameWorld.ToIntDef(curActionNode.GetAttribute("itemID"), 0) + if maxItemCnt and itemID: #未收集的道具个数乘以单价 + haveCnt = ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptItem, itemID) + value = max(0, maxItemCnt-haveCnt)*value moneytype = int(curActionNode.GetAttribute("moneytype")) @@ -6011,6 +6024,17 @@ key = curActionNode.GetAttribute("key") curMission.SetProperty(key, PlayerMagicWeapon.GetMWActiveCntTotal(curPlayer)) return + +##设置坐骑总等级 +# @param curPlayer 玩家实例 +# @param curMission 任务实例 +# @param curActionNode节点信息 +# @return 返回值无意义 +# @remarks <Set_Horsetotallv key="" /> +def DoType_Set_Horsetotallv(curPlayer, curMission, curActionNode): + key = curActionNode.GetAttribute("key") + curMission.SetProperty(key, PlayerHorse.GetHorseSumLV(curPlayer)) + return #--------------------------------------------------------------------- ##DoType_调度器 # @param curPlayer 玩家实例 @@ -7105,6 +7129,39 @@ soulID = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0) return bool(PlayerMagicWeapon.GetIsActiveMWSoul(curPlayer, soulID)) +##S级通关X层娲皇遗迹 +# @param None +# @return None <Passqueenrelecs value="lineID"/> +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 + +##坐骑总等级 +# @param None +# @return None <Horsetotallv value="lv"/> +def ConditionType_Horsetotallv(curPlayer, curMission, curActionNode): + totallv = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0) + return PlayerHorse.GetHorseSumLV(curPlayer) >= totallv + +##2阶强化防具套装件数 +# @param None +# @return None <Mwsoul value="id"/> +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 <Active_Magicweapon id="法宝ID"/> -- Gitblit v1.8.0