| | |
| | | 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
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ##任务触发器_完成某手机任务
|
| | |
| | |
|
| | | #触发每日任务杀怪
|
| | | RunDayEvent(curPlayer, "on_kill_by_feel", npcTypeID, QuestCommon.Def_Kill_Npc_ID)
|
| | | |
| | | EventRespons_OnKillByLv(curPlayer, curNPC)
|
| | | return
|
| | |
|
| | | ## 完成任务
|
| | |
| | | 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 玩家实例
|
| | |
| | | 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
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | |
| | | # @remarks 自定义函数, 读数据库任务删除表, 删除任务
|
| | | def __DoLogic_DeleteMission(curPlayer, curMission):
|
| | | missionID = curMission.GetMissionID()
|
| | | |
| | | GameWorld.Log("__DoLogic_DeleteMission---%s"%missionID)
|
| | | delMissionData = GameWorld.GetGameData().GetMissionDeleteByID(missionID)
|
| | | #任务删除表中无此任务
|
| | | if not delMissionData:
|
| | |
| | | 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)
|