From cd1fa79a477ebb9d02d7494ddd0819c361053f0b Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 09 四月 2019 16:36:12 +0800 Subject: [PATCH] 6457 【后端】【2.0】缥缈仙域开发单(奇遇) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py | 449 +++++++++++++++++++++++++------------------------------- 1 files changed, 200 insertions(+), 249 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py index c1735d3..1638a78 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py @@ -28,8 +28,6 @@ # @change: "2013-09-18 17:00" Alee 退出锁定退出交易 # @change: "2013-09-23 19:30" Alee 红名提示修改 # @change: "2013-11-15 20:20" hxp 关闭07 3A购买背包封包功能,增加背包成功系统提示 -# @change: "2013-11-27 20:30" hxp 修改结束摆摊状态事件单独处理,不在结束事件中处理 -# @change: "2013-12-10 14:00" hxp 修改查看摆摊状态事件单独处理,不在结束事件中处理 # @change: "2013-12-12 14:30" hxp 增加钻石购买背包计费点事件同步 # @change: "2013-12-13 12:20" hxp 修改首登物品绑定设置 # @change: "2013-12-27 16:00" Alee 删除多余代码 @@ -80,7 +78,6 @@ import PlayerControl import FunctionNPCCommon import FBLogic -import PlayerShopItem import ItemControler import ItemCommon import QuestCommon @@ -100,7 +97,7 @@ import PlayerExpandPackCfgMgr import EventReport import PlayerCoat -import PlayerSuccess +import PlayerGatherSoul import PlayerArrestTask import PlayerRune import IpyGameDataPY @@ -229,6 +226,63 @@ EventLogic(curPlayer, sendPack_EventNPCID, tick) return +#// C1 06 跨服NPC对话 #tagCMCrossNPCTalk +# +#struct tagCMCrossNPCTalk +#{ +# tagHead Head; +# WORD ObjID; +# DWORD NPCID; +# WORD PosX; +# WORD PosY; +#}; +def OnCrossNPCTalk(index, clientData, tick): + curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) + + objID = clientData.ObjID + npcID = clientData.NPCID + #posX = clientData.PosX + #posY = clientData.PosY + if GameWorld.IsCrossServer(): + return + + lastTick = curPlayer.GetDictByKey("CrossNPCTalkTick") + if tick - lastTick < 2000: + return + curPlayer.SetDict("CrossNPCTalkTick", tick) + + npcData = GameWorld.GetGameData().FindNPCDataByID(npcID) + if not npcData: + GameWorld.ErrLog("跨服NPCID不存在! npcID=%s" % npcID) + return + + # 目前暂支持跨服采集 + if npcData.GetType() not in [IPY_GameWorld.ntCollection, IPY_GameWorld.ntMissionCollect]: + return + + collectNPCIpyData = IpyGameDataPY.GetIpyGameData("CollectNPC", npcID) + if collectNPCIpyData: + if not NPCCommon.CheckCanCollectByNPCID(curPlayer, npcID, collectNPCIpyData): + return + + msgDict = {"PlayerID":curPlayer.GetPlayerID(), "ObjID":objID, "NPCID":npcID} + GameWorld.SendMsgToCrossServer(ShareDefine.ClientServerMsg_CollectNPC, msgDict) + + return + +def ClientServerMsg_CollectNPC(curPlayer, msgData, serverGroupID, tick): + ## 收到子服同步的采集NPC + objID = msgData["ObjID"] + npcID = msgData["NPCID"] + curNPC = GameWorld.FindNPCByID(objID) + if not curNPC: + return + if npcID != curNPC.GetNPCID(): + GameWorld.ErrLog("采集跨服NPC错误!npcID=%s != curNPCID=%s" % (npcID, curNPC.GetNPCID())) + return + EventLogic(curPlayer, objID, tick) + return + ##客户端//08 01封包响应 自定义函数: 事件处理 #@param curPlayer 当前玩家 #@param eventNPCID 事件NPCID @@ -288,6 +342,9 @@ return curPlayer.SetActionObj(curNPC) + + if NPCCommon.OnCollectNPCBegin(curPlayer, curNPC, tick): + return prepareTime = FBLogic.GetFBPrepareTime(curPlayer, curNPC) @@ -599,25 +656,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 #--------------------------------------------------------------------- ##任务触发器_完成某手机任务 @@ -781,31 +842,10 @@ curPlayer.SetMP(curPlayer.GetMaxMP()) #---给予玩家新手物品--- - itemControler = ItemControler.PlayerItemControler(curPlayer) - firstLoginGiveItemList = ReadChConfig.GetEvalChConfig("FirstLogin_GiveItem") - for itemID, itemCount, itemBind in firstLoginGiveItemList: - if itemID == 0: - continue - giveItem = ItemCommon.CreateSingleItem(itemID) - - if not giveItem: - GameWorld.ErrLog('__FirstLoginOnEnter giveItemErr = %s'%(itemID), playerID) - continue - - if itemCount > 0: - ItemControler.SetItemCount(giveItem, itemCount, curPlayer.GetPlayerID(), curPlayer.GetAccID(), - curPlayer.GetPlayerName()) - - ItemControler.SetItemIsBind(giveItem, itemBind) - - if not itemControler.PutInItem(IPY_GameWorld.rptItem, giveItem): - GameWorld.ErrLog('__FirstLoginOnEnter packFull, giveItemErr = %s'%(itemID), playerID) - giveItem.Clear() - continue - - #---初始化装备显隐--- - curPlayer.SetEquipShowSwitch(IPY_GameWorld.revClothesCoat|IPY_GameWorld.revWeaponCoat|IPY_GameWorld.revMask) + #---初始化装备显隐 第1套*10+没有套装 + curPlayer.SetEquipShowSwitch(10) + PlayerControl.SetFaceEquipIndex(curPlayer, 11012014) #默认触发一次功能开启 if curPlayer.GetLV() == 1: @@ -1521,7 +1561,7 @@ #触发每日任务杀怪 RunDayEvent(curPlayer, "on_kill_by_feel", npcTypeID, QuestCommon.Def_Kill_Npc_ID) - + EventRespons_OnKillByLv(curPlayer, curNPC) return ## 完成任务 @@ -1617,14 +1657,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 玩家实例 @@ -1685,13 +1717,6 @@ RunQuestEvent(curPlayer, "on_goldinvest", "on_goldinvest", Def_RunQuestType_Normal) RunQuestEvent(curPlayer, "on_goldinvest", investType, Def_RunQuestType_Normal) return - -def EventRespons_OnBuyTeHuiItem(curPlayer, shopID, itemShopIndex): - # 购买特惠商店物品 - RunQuestEvent(curPlayer, "on_buy_tehuiitem", "on_buy_tehuiitem", Def_RunQuestType_Normal) - RunQuestEvent(curPlayer, "on_buy_tehuiitem", shopID, Def_RunQuestType_Normal) - RunQuestEvent(curPlayer, "on_buy_tehuiitem", "%s_%s" % (shopID, itemShopIndex), Def_RunQuestType_Normal) - return def EventRespons_OnActivatePet(curPlayer, petID): # 激活宠物 @@ -1699,16 +1724,14 @@ RunQuestEvent(curPlayer, "on_activatepet", petID, Def_RunQuestType_Normal) return -def EventRespons_OnActiveMagicWeapon(curPlayer, mwID): - # 激活法宝 - RunQuestEvent(curPlayer, "on_activemagicweapon", mwID, Def_RunQuestType_Normal) - RunQuestEvent(curPlayer, "on_activemagicweaponex", mwID, Def_RunQuestType_RunAll) - RunQuestEvent(curPlayer, "on_activemagicweaponex", 0, Def_RunQuestType_RunAll) - return - def EventRespons_MagicWeaponLV(curPlayer, mwID, lv): # 法宝解锁进度 RunQuestEvent(curPlayer, "magicweaponlv", '%s_%s'%(mwID, lv), Def_RunQuestType_RunAll) + return + +def EventRespons_MagicWeaponFBPassLV(curPlayer, mwID, lv): + # 魔族法宝关卡进度 + RunQuestEvent(curPlayer, "mwfbpasslv", '%s_%s'%(mwID, lv), Def_RunQuestType_Normal) return def EventRespons_SuccessFinish(curPlayer, succID): @@ -1810,6 +1833,63 @@ def EventRespons_RealmUp(curPlayer, realmlv): #境界升级 RunQuestEvent(curPlayer, "realmup", realmlv, 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, itemClassLV, equipplace): + #穿戴某部位装备(非时效) + RunQuestEvent(curPlayer, "equipbyplace", '%s_%s'%(itemClassLV, 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, classLV, partPlusLV): + #强化等级变化 + RunQuestEvent(curPlayer, "equipplus", "equipplus", Def_RunQuestType_Normal) + RunQuestEvent(curPlayer, "equipplus", '%s_%s'%(classLV, partPlusLV), Def_RunQuestType_Normal) + return + +def EventRespons_EquipStar(curPlayer): + #装备总星级变化 + RunQuestEvent(curPlayer, "equipstar", "equipstar", Def_RunQuestType_Normal) return #--------------------------------------------------------------------- @@ -3642,18 +3722,16 @@ curPlayer.SetForbiddenResetItem(0) ExitCompose(curPlayer) ExitWarehouse(curPlayer) - ExitRepair(curPlayer) + #ExitRepair(curPlayer) ExitCreateFamily(curPlayer) ExitBillboard(curPlayer) #ExitEventLock(curPlayer) - #ExitShopItem(curPlayer) # 奇迹只在切地图及下线时关闭摆摊 - #ExitWatchShopItem(curPlayer) #npc商店退出 ExitNPCShop(curPlayer) - PlayerTrade.LeaveTrade(curPlayer, 0) + #PlayerTrade.LeaveTrade(curPlayer, 0) # 清除py自定义状态 - ClearPyPlayerAction(curPlayer) + #ClearPyPlayerAction(curPlayer) #调用底层结束事件 #避免策划变更,导致其他退出锁定事件使任务1未接取就退出锁定 @@ -3687,85 +3765,6 @@ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PyPlayerAction, 0) return - -##结束摆摊事件 -#@param curPlayer 玩家实例 -#@return 返回值无意义 -#@remarks 自定义函数:结束摆摊事件 -def ExitShopItem(curPlayer): - GameWorld.DebugLog("ExitShopItem", curPlayer.GetPlayerID()) - playerShop = curPlayer.GetPlayerShop() - #在摆摊状态 - if playerShop.GetIsStartShop(): - PlayerShopItem.DoExitShop(curPlayer , curPlayer.GetPlayerShop()) - - return -#--------------------------------------------------------------------- -##结束查看摆摊事件 -#@param curPlayer 玩家实例 -#@return 返回值无意义 -#@remarks 自定义函数:结束查看摆摊事件 -def ExitWatchShopItem(curPlayer): - curPlayerShop = curPlayer.GetPlayerShop() - - if not curPlayerShop.GetIsWatchingShop(): - return - - openShopPlayer = curPlayer.GetActionPlayer() - __DoExitWatchShopItem(curPlayer , openShopPlayer) - - curPlayerShop.SetIsWatchingShop(0) - return -#--------------------------------------------------------------------- -##结束查看摆摊事件 -#@param curPlayer 玩家实例 -#@return 返回值无意义 -#@remarks 自定义函数:结束查看摆摊事件 -def __DoExitWatchShopItem(curPlayer , openShopPlayer): - - if openShopPlayer == None: - return - - shop = openShopPlayer.GetPlayerShop() - #没有开店 - if not shop.GetIsStartShop(): - return - - #商店删除这个玩家 - shop.DeleteWatchPlayer(curPlayer.GetPlayerID()) - return - -#--------------------------------------------------------------------- -##结束事件锁 -#@param curPlayer 玩家实例 -#@return 返回值无意义 -#@remarks 自定义函数:结束事件锁 -#=============================================================================== -# def ExitEventLock(curPlayer): -# if not curPlayer.GetHaveSetEventLock() : -# return -# -# #在摆摊状态不解锁,奇迹摆摊物品解锁只在切地图/下线/玩家主动结束摆摊情况下解锁 -# playerShop = curPlayer.GetPlayerShop() -# if playerShop.GetIsStartShop(): -# return -# -# #获得玩家物品管理器 -# ItemManager = curPlayer.GetItemManager() -# #获得背包 -# curPack = ItemManager.GetPack(IPY_GameWorld.rptItem) -# for i in range(curPack.GetCount()): -# item = curPack.GetAt(i) -# if item == None or item.IsEmpty(): -# continue -# -# if not item.GetIsEventLocked(): -# continue -# -# #离开事件锁 -# item.SetIsEventLocked(False) -#=============================================================================== - #--------------------------------------------------------------------- ##结束查看排行榜 #@param curPlayer 玩家实例 @@ -3883,7 +3882,7 @@ # @remarks 自定义函数, 读数据库任务删除表, 删除任务 def __DoLogic_DeleteMission(curPlayer, curMission): missionID = curMission.GetMissionID() - + GameWorld.Log("__DoLogic_DeleteMission---%s"%missionID, curPlayer.GetID()) delMissionData = GameWorld.GetGameData().GetMissionDeleteByID(missionID) #任务删除表中无此任务 if not delMissionData: @@ -4097,79 +4096,6 @@ # @return 返回值无意义 # @remarks 客户端封包响应 //0D 0C 材料加工#tagCMaterialCompound def StuffMachining(index, tick): -# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) -# -# materialCompoundPack = IPY_GameWorld.IPY_CMaterialCompound() -# itemIndex = materialCompoundPack.GetItemIndex() -# -# curItemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem) -# curItem = curItemPack.GetAt(itemIndex) -# -# #类型不符合 -# if not ItemCommon.CheckItemByType(curItem, ChConfig.Def_Type_Machining_Stuff): -# PlayerControl.NotifyCode(curPlayer, "GeRen_jin_287294") -# return -# -# #[金钱,金钱类型] -# curEffMoney = curItem.GetEffectByIndex(1) -# useMoney = curEffMoney.GetEffectValue(0) -# useMoneyType = curEffMoney.GetEffectValue(1) -# -# #判断金钱 -# if not PlayerControl.HaveMoney(curPlayer, useMoneyType, useMoney): -# return -# -# #[等级,数量] -# curEffInfo = curItem.GetEffectByIndex(0) -# curEffectID = curEffInfo.GetEffectID() -# curItemLv = curEffInfo.GetEffectValue(0) -# useCount = curEffInfo.GetEffectValue(1) -# -# #---数量验证--- -# hasCount = curItem.GetCount() -# if useCount > hasCount: -# PlayerControl.NotifyCode(curPlayer , "GeRen_jin_293296") -# return -# -# #查找更高一级的材料 -# findItemData = ItemCommon.FindItemFromDataByEffValue(ChConfig.Def_Type_Machining_Stuff, curEffectID, curItemLv+1) -# -# #已经是顶级材料 -# if findItemData == None: -# PlayerControl.NotifyCode(curPlayer, "GeRen_jin_708106") -# return -# -# #---创建物品,放入背包,失败则要删除物品--- -# newItem = ItemCommon.CreateSingleItem(findItemData.GetItemTypeID()) -# ItemControler.SetItemIsBind(newItem, curItem.GetIsBind()) -# -# isBind = newItem.GetIsBind() -# -# newItemTypeID = newItem.GetItemTypeID() -# newItemCount = newItem.GetCount() -# -# #是否成功放入背包 -# itemControl = ItemControler.PlayerItemControler(curPlayer) -# if not itemControl.PutInItem(IPY_GameWorld.rptItem, newItem): -# PlayerControl.NotifyCode(curPlayer, "GeRen_jin_650657") -# newItem.Clear() -# return -# -# curItemID = curItem.GetItemTypeID() #合成材料ID -# -# #---扣钱物品并记录--- -# PlayerControl.PayMoney(curPlayer, useMoneyType, useMoney) -# -# ItemCommon.DelItem(curPlayer, curItem, useCount, True, 'ComposeChip') -# -# #生成物品 -# PlayerControl.NotifyCode(curPlayer, 'GeRen_jin_557507', [newItemTypeID, newItemCount]) -# -# #手续费流向记录 -# PlayerControl.DataServerMoneyLog(curPlayer, useMoneyType, 650, par = useMoney, msg = "poundage") -# -# -# DataRecordPack.DR_StuffMachining(curPlayer, newItemTypeID, newItemCount, isBind) return @@ -4317,7 +4243,9 @@ # 符印交换 if PlayerRune.SwitchRune(curPlayer, pack_SrcBackpack, pack_DesBackPack, pack_SrcIndex, pack_DestIndex): return - + # 聚魂交换 + if PlayerGatherSoul.SwitchGatherSoul(curPlayer, pack_SrcBackpack, pack_DesBackPack, pack_SrcIndex, pack_DestIndex): + return #时装 if PlayerCoat.SwitchCoat(curPlayer, pack_SrcBackpack, pack_DesBackPack, pack_SrcIndex, pack_DestIndex): @@ -4928,30 +4856,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, 0, [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) -- Gitblit v1.8.0