xdh
2018-11-23 4a5b10c5ca95f49cf3700619e1033da645c9de89
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -599,25 +599,29 @@
    Event_OnKillByID(curPlayer, npcTypeID)
    
    #触发按等级杀怪
    #EventRespons_OnKillByLv(curPlayer, curNPC)
    EventRespons_OnKillByLv(curPlayer, curNPC)
    return
#---------------------------------------------------------------------
###任务触发器_OnKillByLv 击杀指定等级的怪物
##@param curPlayer 玩家实例
##@param curNPC NPC实例
##@return 返回值无意义
##@remarks 任务触发器_OnKillByLv 击杀指定等级的怪物
#def EventRespons_OnKillByLv(curPlayer, curNPC):
#    #得到NPC的TypeID
#    npcLV = curNPC.GetLV()
#    #运行on_kill_by_lv目录下的[NPCTypeID].xml文件
#    QuestRunner.SetKillNPC(curNPC)
#
#    RunQuestEvent(curPlayer, "on_kill_by_lv", npcLV, Def_RunQuestType_Normal)
#
#    #触发每日任务杀怪
#    RunDayEvent(curPlayer, "on_kill_by_lv", npcLV, QuestCommon.Def_Kill_Npc_LV)
#    return
##任务触发器_OnKillByLv 击杀指定等级的怪物
#@param curPlayer 玩家实例
#@param curNPC NPC实例
#@return 返回值无意义
#@remarks 任务触发器_OnKillByLv 击杀指定等级的怪物
def EventRespons_OnKillByLv(curPlayer, curNPC):
    if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
        return
    #得到NPC的TypeID
    npcLV = curNPC.GetLV()
    #运行on_kill_by_lv目录下的[NPCTypeID].xml文件
    #QuestRunner.SetKillNPC(curNPC)
    RunQuestEvent(curPlayer, "on_kill_by_lv", npcLV, Def_RunQuestType_Normal)
    #触发每日任务杀怪
    RunDayEvent(curPlayer, "on_kill_by_lv", npcLV, QuestCommon.Def_Kill_Npc_LV)
    return
#---------------------------------------------------------------------
##任务触发器_完成某手机任务
@@ -1521,7 +1525,7 @@
    
    #触发每日任务杀怪
    RunDayEvent(curPlayer, "on_kill_by_feel", npcTypeID, QuestCommon.Def_Kill_Npc_ID)
    EventRespons_OnKillByLv(curPlayer, curNPC)
    return
## 完成任务
@@ -1617,14 +1621,6 @@
    RunQuestEvent(curPlayer, "on_buy_mission_sum", buyNum, Def_RunQuestType_RunAll)
    return
## 坐骑升阶
#  @param curPlayer 玩家实例
#  @param  eventName
#  @return None
def EventRespons_OnHorseUp(curPlayer, updClassLV, updStarLV):
    #星级*100+阶级
    RunQuestEvent(curPlayer, "on_horseup", updStarLV*100+updClassLV, Def_RunQuestType_Normal)
    return
## 穿装备触发判断所穿橙装数量
#  @param curPlayer 玩家实例
@@ -1805,6 +1801,71 @@
def EventRespons_RunTaskAllCnt(curPlayer, tastType, allcnt):
    #当天已完成跑环数
    RunQuestEvent(curPlayer, "runtaskallcnt", '%s_%s'%(tastType, allcnt), Def_RunQuestType_Normal)
    return
def EventRespons_RealmUp(curPlayer, realmlv):
    #境界升级
    RunQuestEvent(curPlayer, "realmup", realmlv, Def_RunQuestType_RunAll)
    return
def EventRespons_MWSoulActive(curPlayer, soulid):
    #法宝之魂激活
    RunQuestEvent(curPlayer, "mwsoulactive", soulid, Def_RunQuestType_RunAll)
    return
def EventRespons_PassQueenRelecs(curPlayer, lineID, grade):
    #X级通关X层娲皇遗迹
    RunQuestEvent(curPlayer, "passqueenrelecs", '%s_%s'%(lineID, grade), Def_RunQuestType_Normal)
    return
def EventRespons_HorseUp(curPlayer):
    #坐骑升级
    RunQuestEvent(curPlayer, "horseup", "horseup", Def_RunQuestType_Normal)
    return
def EventRespons_SuitPlus(curPlayer, cnt):
    #2阶强化防具套装X件
    RunQuestEvent(curPlayer, "suitplus", cnt, Def_RunQuestType_Normal)
    return
def EventRespons_TrialExchange(curPlayer, costItemID):
    #宗门试炼兑换装备
    RunQuestEvent(curPlayer, "trialexange", costItemID, Def_RunQuestType_Normal)
    return
def EventRespons_EquipByPlace(curPlayer, equipplace):
    #穿戴某部位装备(非时效)
    RunQuestEvent(curPlayer, "equipbyplace", equipplace, Def_RunQuestType_Normal)
    return
def EventRespons_CompoundEquip(curPlayer, itemColor, itemQuality):
    #装备合成某品质某星级
    RunQuestEvent(curPlayer, "compoundequip", '%s_%s'%(itemColor, itemQuality), Def_RunQuestType_Normal)
    return
def EventRespons_EquipWash(curPlayer, washType, washLV):
    #装备洗练至X级
    RunQuestEvent(curPlayer, "equipwash", '%s_%s'%(washType, washLV), Def_RunQuestType_Normal)
    return
def EventRespons_AddBourseItem(curPlayer):
    #上架集市物品
    RunQuestEvent(curPlayer, "addbourseitem", "addbourseitem", Def_RunQuestType_Normal)
    return
def EventRespons_StoreDonate(curPlayer):
    #捐献仙盟装备
    RunQuestEvent(curPlayer, "storedonate", "storedonate", Def_RunQuestType_Normal)
    return
def EventRespons_EquipPlus(curPlayer):
    #强化等级变化
    RunQuestEvent(curPlayer, "equipplus", "equipplus", Def_RunQuestType_Normal)
    return
def EventRespons_EquipStar(curPlayer):
    #装备总星级变化
    RunQuestEvent(curPlayer, "equipstar", "equipstar", Def_RunQuestType_Normal)
    return
#---------------------------------------------------------------------
@@ -3878,7 +3939,7 @@
# @remarks 自定义函数, 读数据库任务删除表, 删除任务
def __DoLogic_DeleteMission(curPlayer, curMission):
    missionID = curMission.GetMissionID()
    GameWorld.Log("__DoLogic_DeleteMission---%s"%missionID)
    delMissionData = GameWorld.GetGameData().GetMissionDeleteByID(missionID)
    #任务删除表中无此任务
    if not delMissionData:
@@ -4923,30 +4984,53 @@
    if hasGotAward:
        GameWorld.DebugLog('领取环任务每轮奖励  已奖励 类型 %s'%taskType)
        return
    runTaskAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward')
    if taskType not in runTaskAwardDict:
        GameWorld.DebugLog('领取环任务每轮奖励  RunTaskAward 没有配置类型的奖励 类型 %s'%taskType)
        return
    moneyNum = 0
    specialAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 2)
    if taskType in specialAwardDict:
        rate, moneyCnt = specialAwardDict[taskType]
        if GameWorld.CanHappen(rate):
            moneyNum = moneyCnt
            if taskType == QuestCommon.Def_Mission_Type_RunDaily:
                PlayerControl.WorldNotify(0, 'CoinTaskReward', [curPlayer.GetName()])
    moneyType, minMoney, maxMoney = runTaskAwardDict[taskType]
    if not moneyNum:
        moneyNum = random.randint(minMoney, maxMoney)
    if moneyType == ShareDefine.TYPE_Price_Family_Contribution:
        PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, moneyNum, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson)
    else:
        addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
        PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
    #物品奖励
    itemList = []
    itemAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 3, {})
    if str(taskType) in itemAwardDict:
        itemList = itemAwardDict[str(taskType)]
        # 检查背包
        needSpace = len(itemList)
        packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
        if needSpace > packSpace:
            PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
            return
        for itemID, itemCount, isBind in itemList:
            ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
    
    #给经验
    giveExp = 0
    expAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 4, {})
    if str(taskType) in expAwardDict:
        reExp = PlayerControl.GetPlayerReExp(curPlayer)
        giveExp = eval(expAwardDict[str(taskType)])
        PlayerControl.PlayerControl(curPlayer).AddExp(giveExp)
    #给钱
    moneyType = 0
    moneyNum = 0
    runTaskMoneyAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward')
    if taskType in runTaskMoneyAwardDict:
        specialAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 2, {})
        if taskType in specialAwardDict:
            rate, moneyCnt = specialAwardDict[taskType]
            if GameWorld.CanHappen(rate):
                moneyNum = moneyCnt
                if taskType == QuestCommon.Def_Mission_Type_RunDaily:
                    PlayerControl.WorldNotify(0, 'CoinTaskReward', [curPlayer.GetName()])
        moneyType, minMoney, maxMoney = runTaskMoneyAwardDict[taskType]
        if not moneyNum:
            moneyNum = random.randint(minMoney, maxMoney)
        if moneyType == ShareDefine.TYPE_Price_Family_Contribution:
            PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, moneyNum, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson)
        else:
            addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
            PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % taskType, moneyNum)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardState % taskType, 1)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % taskType, moneyNum)
    GameWorld.DebugLog('领取环任务每轮奖励成功  moneyType=%s, moneyNum=%s'%(moneyType, moneyNum))
    GameWorld.DebugLog('领取环任务每轮奖励成功  moneyType=%s, moneyNum=%s, itemList=%s, giveExp=%s'%(moneyType, moneyNum, itemList, giveExp))
    
    #通知客户端
    NotifyRunEndAward(curPlayer, taskType)