hxp
2019-03-19 038ec15bf9d4d442fddf3d26dab1254e4b86d125
6357 【后端】【2.0】任务给物品优化,支持拍品处理
1个文件已修改
38 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -2839,10 +2839,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 +2866,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 +2875,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,11 +2930,11 @@
#  @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))
@@ -2947,9 +2947,6 @@
    #tmpEquipData.isBind = bind
    
    #ChItem.EquipAddAdditionEx(curSingleItem, tmpEquipData)
    #设置数量
    ItemControler.SetItemCount(curSingleItem, itemCount)
    
    return curSingleItem
@@ -3734,7 +3731,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 +3756,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 +3786,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 +3825,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 +3845,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 +3872,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()