hxp
2018-08-30 5f507dd6b2d8a41922e45751e217cfe835b78203
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -1362,6 +1362,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 玩家实例
@@ -1935,10 +1951,13 @@
    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
        conditionValue = max(0, maxItemCnt-haveCnt)*conditionValue
        
    conditionType = curConditionNode.GetAttribute("type")
    moneyType = int(curConditionNode.GetAttribute("moneytype"))
    #GameWorld.Log('    conditionValue=%s,maxItemCnt=%s,itemID=%s'%(conditionValue,maxItemCnt,itemID))
    goldValue = curPlayer.GetGold()
    goldPaperValue = curPlayer.GetGoldPaper()
    silverValue = PlayerControl.GetSilver(curPlayer)
@@ -1949,6 +1968,8 @@
        return QuestRunnerValue.GetEval(conditionType, goldPaperValue, conditionValue)
    elif moneyType == IPY_GameWorld.TYPE_Price_Silver_Money:
        return QuestRunnerValue.GetEval(conditionType, silverValue, conditionValue)
    elif moneyType == ShareDefine.TYPE_Price_Gold_Paper_Money:
        return QuestRunnerValue.GetEval(conditionType, goldValue + goldPaperValue, conditionValue)
    else:
        GameWorld.Log("任务 = %s , moneytype = %s填错拉" % (curMission.GetMissionID() , moneyType) , curPlayer.GetPlayerID())
        return
@@ -3681,21 +3702,26 @@
    
    moneytype = int(curActionNode.GetAttribute("moneytype"))
    
    if moneytype not in ChConfig.Def_MoneyType_All:
        GameWorld.Log("##异常moneytype = %s填错拉" % (moneytype))
        return
#    if moneytype not in ChConfig.Def_MoneyType_All:
#        GameWorld.Log("##异常moneytype = %s填错拉" % (moneytype))
#        return
    
    curMissionID = 0
    if curMission == None:
        curMissionID = 0
    else:
        curMissionID = curMission.GetMissionID()
    #付钱
    if not PlayerControl.PayMoney(curPlayer, moneytype, value, ChConfig.Def_Cost_MissionDel, {"MissionID":curMissionID}):
    costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, moneytype, value)
    if not costMoneyList:
        GameWorld.Log("##付费异常,玩家金钱不足,任务missionID = %s" % (curMissionID) , curPlayer.GetPlayerID())
        EventShell.DoExitEvent(curPlayer)
        return
    #付钱
    for moneyType, moneyNum in costMoneyList:
        if not PlayerControl.PayMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_Cost_MissionDel, {"MissionID":curMissionID}):
            GameWorld.Log("##付费异常,玩家金钱不足,任务missionID = %s" % (curMissionID) , curPlayer.GetPlayerID())
            EventShell.DoExitEvent(curPlayer)
            return
    
    GameWorld.Login_Interface_GoldRec(curPlayer , 0 , 0 , 'MissionID_%s_Cost' % (curMissionID), moneytype, value)
    return
@@ -6033,6 +6059,9 @@
# @remarks <Set_Horsetotallv key="" />
def DoType_Set_Horsetotallv(curPlayer, curMission, curActionNode):
    key = curActionNode.GetAttribute("key")
    questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
    if questID != 0:
        curMission = curPlayer.FindMission(questID)
    curMission.SetProperty(key, PlayerHorse.GetHorseSumLV(curPlayer))
    return
#---------------------------------------------------------------------
@@ -7129,14 +7158,14 @@
    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
@@ -7157,7 +7186,7 @@
        for i in equipIndexList:
            suiteInfo = ChEquip.GetSuiteInfoByPlace(curPlayer, i)
            for suiteType, lv in suiteInfo.items():
                if lv >= 2 and groupType == 1 and suiteType == 2:
                if lv >= 2 and int(groupType) == 1 and suiteType == 2:
                    groupCnt +=1
    return groupCnt >= needCnt