From 7b112d5e0399064f63b6f9c5754ac9974956026c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 28 十一月 2018 20:08:41 +0800
Subject: [PATCH] 4923 【后端】【1.3】神兵技能 -- 优化神兵护盾恢复逻辑
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py | 109 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 86 insertions(+), 23 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 5c448a1..34bbe66 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -1707,6 +1707,11 @@
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):
# 领取完成就
RunQuestEvent(curPlayer, "successfinish", succID, Def_RunQuestType_RunAll)
@@ -1831,6 +1836,41 @@
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
#---------------------------------------------------------------------
@@ -3904,7 +3944,7 @@
# @remarks 自定义函数, 读数据库任务删除表, 删除任务
def __DoLogic_DeleteMission(curPlayer, curMission):
missionID = curMission.GetMissionID()
-
+ GameWorld.Log("__DoLogic_DeleteMission---%s"%missionID)
delMissionData = GameWorld.GetGameData().GetMissionDeleteByID(missionID)
#任务删除表中无此任务
if not delMissionData:
@@ -4949,30 +4989,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)
--
Gitblit v1.8.0