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 |  159 ++++++++++++++++++++++++++++------------------------
 1 files changed, 85 insertions(+), 74 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 7c1e8a9..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,11 +49,7 @@
 import ChEquip
 import PlayerActivity
 import PlayerSuccess
-import EventReport
-#import PlayerCostVIP
-import GameFuncComm
 import IpyGameDataPY
-import ShopItemManage
 import PlayerPet
 import PlayerArrestTask
 import PlayerMagicWeapon
@@ -64,7 +60,6 @@
 import PlayerActLogin
 import PlayerHorse
 import FBCommon
-import PyGameData
 
 import math
 import time
@@ -2593,42 +2588,6 @@
         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)
-
 #---------------------------------------------------------------------
 ##执行 扣除玩家镖车押金
 # @param curPlayer 玩家实例
@@ -2839,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
@@ -2866,7 +2825,7 @@
                  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=[]):
+                 equipIndex= -1, isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[], isAuctionItem=False):
 #    if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
 #        #仙盟兽粮自动使用
 #        return
@@ -2875,13 +2834,13 @@
     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
     
@@ -2930,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
 
@@ -3734,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="[卓越属性列表]" />  
@@ -3759,6 +3715,9 @@
 
     #物品是否套装化
     isSuite = True if curActionNode.GetAttribute("suite") else False
+    
+    #是否拍品
+    isAuctionItem = GameWorld.ToIntDef(curActionNode.GetAttribute("isAuctionItem"), 0)
     
     #追加
     addAttrLV = GameWorld.ToIntDef(curActionNode.GetAttribute("addAttrLV"), 0)
@@ -3786,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)
 
 
 #---------------------------------------------------------------------
@@ -3825,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="[卓越属性列表]" />  
@@ -3845,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)
@@ -3870,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()
@@ -5411,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
@@ -6095,6 +6055,34 @@
     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 任务实例
@@ -6494,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
 
 #---------------------------------------------------------------------
 ##是否拥有足够的竞技点
@@ -7209,12 +7209,6 @@
     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))
 
 ##X级通关X层娲皇遗迹
 # @param None
@@ -7248,6 +7242,25 @@
     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"/>
@@ -7261,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现身"/>

--
Gitblit v1.8.0