From 866ce280c4c931a34cedd06d86b81019018d4160 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 03 一月 2020 20:33:56 +0800
Subject: [PATCH] 8364 【恺英】【后端】缥缈随机任务(S副本未处理)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPiaomiaoTask.py | 221 ++++++++++++++++++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini | 19 +++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestCommon.py | 6 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py | 56 ++++++++-
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py | 3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 7 +
11 files changed, 311 insertions(+), 10 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 2b7a31f..092bb98 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -960,6 +960,7 @@
GameFuncID_TJG = 147 # 脱机挂
GameFuncID_SuperGift = 150 # 超值礼包
GameFuncID_ZhuXianBoss = 163 # 诛仙BOSS
+GameFuncID_PiaomiaoTask = 173 # 缥缈任务
# 以下为暂时无用的
GameFuncID_Truck = 33 # 运镖
GameFuncID_RunDaily = 34 # 日常跑环
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index 22d6543..eb6a611 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -242,7 +242,7 @@
Writer = alee
Releaser = alee
RegType = 0
-RegisterPackCount = 10
+RegisterPackCount = 11
PacketCMD_1=0xA2
PacketSubCMD_1=0x03
@@ -284,6 +284,23 @@
PacketSubCMD_10=0x06
PacketCallFunc_10=OnCrossNPCTalk
+PacketCMD_11=0xA2
+PacketSubCMD_11=0x07
+PacketCallFunc_11=OnTakeTask
+
+
+;缥缈任务
+[PlayerPiaomiaoTask]
+ScriptName = Player\PlayerPiaomiaoTask.py
+Writer = hxp
+Releaser = hxp
+RegType = 0
+RegisterPackCount = 1
+
+PacketCMD_1=0xA2
+PacketSubCMD_1=0x08
+PacketCallFunc_1=OnRefreshPiaomiaoTask
+
;VIP功能
[PlayerVip]
ScriptName = Player\PlayerVip.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index bb70774..cb1f301 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3988,6 +3988,9 @@
Def_PDict_TodayAssistMoney = "TodayAssistMoney" # 今日已获得协助货币奖励
Def_PDict_TodayAssistMoneySocial = "TodayAssistMoneySocial" # 今日已获得协助货币 社交关系额外加成
+#缥缈任务
+Def_PDict_PiaomiaoTaskTakeCount = "PiaomiaoTaskTakeCount" # 今日已接任务次数
+Def_PDict_PiaomiaoTaskRefreshCount = "PiaomiaoTaskRefreshCount" # 今日已刷新次数
#-------------------------------------------------------------------------------
#可以从07 41封包购买的背包类型,和对应字典{背包类型:[字典key, 默认格子数]}
@@ -4678,6 +4681,7 @@
Def_Cost_BuyKillBossCnt, #购买boss次数
Def_Cost_EquipStar, #装备升星
Def_Cost_ActivityPlace, #活跃放置 50
+Def_Cost_PiaomiaoTask, #缥缈任务
#-----------以下为暂时没用的,先不删除,如有新增消费点则放在这些之前------------
Def_Cost_RefreshArrestTask, # 刷新悬赏任务
Def_Cost_OffLineExp, # 兑换离线经验
@@ -4690,7 +4694,7 @@
Def_Cost_Trade, # 交易
Def_Cost_Rename, # 改名
Def_Cost_SkillLvUp, # 技能升级
-) = range(2000, 2000 + 62)
+) = range(2000, 2000 + 63)
Def_Cost_Reason_SonKey = "reason_name_son" # 消费点原因子类说明key
@@ -4774,6 +4778,7 @@
Def_Cost_BuyKillBossCnt:"BuyKillBossCnt",
Def_Cost_EquipStar:"EquipStar",
Def_Cost_ActivityPlace:"ActivityPlace",
+Def_Cost_PiaomiaoTask:"PiaomiaoTask",
}
## -----------------------------------------------------
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 335e550..102265c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -98,12 +98,13 @@
import EventReport
import PlayerCoat
import PlayerGatherSoul
-import PlayerArrestTask
+#import PlayerArrestTask
import PlayerRune
import IpyGameDataPY
import FormulaControl
import GameFuncComm
import ChPyNetSendPack
+import PlayerPiaomiaoTask
import NetPackCommon
import NPCCommon
import PlayerVip
@@ -1573,9 +1574,13 @@
GameWorld.DebugLog("任务状态(%s)不可提交,不能完成任务!taskID=%s" % (missionState, taskID))
return
+ curQuestData = QuestManager.FindQuest(taskID)
+ if curQuestData.Type == QuestCommon.Def_Mission_Type_Piaomiao:
+ PlayerPiaomiaoTask.OnFinishPiaomiaoTask(curPlayer, curMission)
+ return
+
rewardPer = 100 if rewardPer <= 0 else rewardPer
moneyType, moneyCnt = 0, 0
- curQuestData = QuestManager.FindQuest(taskID)
# 环任务支持多倍奖励领取
if curQuestData != None and curQuestData.Type in QuestCommon.Def_RunTask_Type_List:
if rewardPer != 100:
@@ -3960,15 +3965,22 @@
PlayerControl.NotifyCode(curPlayer, "Task_cannot_Delete02")
return
- if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
- PlayerControl.NotifyCode(curPlayer, "GeRen_hgg_880525")
+ #if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
+ # PlayerControl.NotifyCode(curPlayer, "GeRen_hgg_880525")
+ # return
+
+ curQuestData = QuestManager.FindQuest(missionID)
+ if not curQuestData:
return
#放弃悬赏任务
- if missionID == ChConfig.Def_ArrestMissionID:
- PlayerArrestTask.OnDeleteArrestTask(curPlayer)
+ #if missionID == ChConfig.Def_ArrestMissionID:
+ # PlayerArrestTask.OnDeleteArrestTask(curPlayer)
-
+ if curQuestData.Type == QuestCommon.Def_Mission_Type_Piaomiao:
+ PlayerPiaomiaoTask.DoCancelPiaomiaoTask(curPlayer, curMission)
+ return
+
#先在任务表中找数据, 如果找到了, 就不遍历XML了
if __DoLogic_DeleteMission(curPlayer, curMission):
GameWorld.Log("在任务表中找数据, 删除任务 = %s, 状态 = %s"%(missionID, missionState), curPlayer.GetID())
@@ -4877,6 +4889,36 @@
RunQuestEvent(curPlayer, "on_revlogintype_event", "on_revlogintype_event", Def_RunQuestType_Normal)
return
+#// A2 07 接受任务 #tagCMTakeTask
+#
+#struct tagCMTakeTask
+#{
+# tagHead Head;
+# DWORD TaskID;
+#};
+def OnTakeTask(index, clientData, tick):
+ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+
+ missionID = clientData.TaskID
+ curMission = curPlayer.FindMission(missionID)
+ if not curMission:
+ return
+
+ missionState = curMission.GetState()
+ if missionState != ChConfig.Def_Mission_State_NoAccept:
+ return
+
+ curQuestData = QuestManager.FindQuest(missionID)
+ if not curQuestData:
+ return
+
+ if curQuestData.Type == QuestCommon.Def_Mission_Type_Piaomiao:
+ PlayerPiaomiaoTask.OnTakePiaomiaoTask(curPlayer, curMission)
+ return
+
+ QuestCommon.SetPlayerMissionState(curPlayer, curMission, 1)
+ return
+
#// A2 18 完成任务 #tagCMFinishTask
#
#struct tagCMFinishTask
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestCommon.py
index 3d611e9..184b183 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestCommon.py
@@ -34,6 +34,7 @@
import GameFuncComm
import ChPyNetSendPack
import NetPackCommon
+import EventShell
#---------------------------------------------------------------------
#所有任务的索引
FindQuestFunc = None
@@ -74,6 +75,8 @@
Def_NewGuyNoSight = "xinshou" # 新手期隐身无视野
+Def_Mission_Grade = "grade" # 任务评级
+
#------------原DayEventData去除,替换枚举管理-----------------
(
Day_KillNPC_By_ID_List, #Type = Day_KillNPC_By_ID
@@ -103,6 +106,7 @@
Def_GM_Active_Mission_Type = 999 #暂时不用,配大点
Def_Mission_Type_RunDaily = 7
Def_Mission_Type_RunFamily = 12
+Def_Mission_Type_Piaomiao = 25 # 缥缈任务
Def_MainTask_Type_List = [Def_Mission_Type_Main, Def_Mission_Type_MainHid]
Def_RunTask_Type_List = [Def_Mission_Type_RunDaily, Def_Mission_Type_RunFamily]
@@ -338,6 +342,8 @@
curQuestData = QuestManager.FindQuest(curMissionID)
if curQuestData != None:
EventReport.WriteEvent_mission_log(curPlayer, curQuestData, 0)
+
+ EventShell.RunQuestEvent(curPlayer, "on_create", curMissionID, EventShell.Def_RunQuestType_Normal)
return curMission
#---------------------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 3801198..2d25300 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -117,6 +117,7 @@
import PlayerDogz
import PlayerCoat
import PlayerQuDaoDoubleBill
+import PlayerPiaomiaoTask
import PlayerFB
import SkillShell
import PlayerYinji
@@ -643,6 +644,8 @@
ChItem.Sync_ItemDayUseCnt(curPlayer)
# 悬赏登录通知
#PlayerArrestTask.OnLogin(curPlayer)
+ # 缥缈任务
+ PlayerPiaomiaoTask.OnPlayerLogin(curPlayer)
# 符印登录通知
PlayerRune.PlayerRuneLogin(curPlayer)
# 仙盟红包登录通知
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
index 2900423..d0f7704 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -38,6 +38,7 @@
import PlayerSignDay
import PlayerGoldGift
import PlayerEquipDecompose
+import PlayerPiaomiaoTask
import PlayerFreeGoods
import FunctionNPCCommon
import PlayerGreatMaster
@@ -65,6 +66,7 @@
ShareDefine.GameFuncID_AddPoint:lambda curObj:PlayerControl.DoAddPointOpen(curObj),
ShareDefine.GameFuncID_Talent:lambda curObj:PlayerGreatMaster.DoTalentOpen(curObj),
ShareDefine.GameFuncID_TJG:lambda curObj:PlayerTJG.DoTJGOpen(curObj),
+ ShareDefine.GameFuncID_PiaomiaoTask:lambda curObj:PlayerPiaomiaoTask.DoPiaomiaoTaskOpen(curObj),
#ShareDefine.GameFuncID_RunDaily:lambda curObj:FBCommon.DoFuncOpen_RunDaily(curObj),
#ShareDefine.GameFuncID_RunFamily:lambda curObj:FBCommon.DoFuncOpen_RunFamily(curObj),
#ShareDefine.GameFuncID_RefineExp:lambda curObj:Operate_PlayerBuyZhenQi.DoFuncOpen_RefineExp(curObj),
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 22f698e..c627167 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -5524,7 +5524,7 @@
return False
openMapStep = mapData.GetTreasureID() #需要完成的主线任务ID
if openMapStep and not IsMapOpen(curPlayer, openMapStep):
- GameWorld.DebugLog('对不起,该场景destMapID=%s需要完成主线任务%s才能进入!' % (destMapID, openMapStep))
+ #GameWorld.DebugLog('对不起,该场景destMapID=%s需要完成主线任务%s才能进入!' % (destMapID, openMapStep))
return False
return True
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
index 230dd3c..952ce96 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -90,6 +90,7 @@
import PlayerFlashSale
import PlayerWishingWell
import PlayerFairyDomain
+import PlayerPiaomiaoTask
import PlayerVip
import PlayerDiceEx
import IpyGameDataPY
@@ -547,6 +548,8 @@
PlayerCrossRealmPK.DoPlayerOnDay(curPlayer)
#缥缈仙域
PlayerFairyDomain.OnDay(curPlayer)
+ #缥缈任务
+ PlayerPiaomiaoTask.OnDay(curPlayer)
#仙盟宴会
GameLogic_FamilyParty.OnDayFamilyPartyPlayer(curPlayer)
#协助
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPiaomiaoTask.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPiaomiaoTask.py
new file mode 100644
index 0000000..1bf7862
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPiaomiaoTask.py
@@ -0,0 +1,221 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Player.PlayerPiaomiaoTask
+#
+# @todo:缥缈任务
+# @author hxp
+# @date 2020-01-03
+# @version 1.0
+#
+# 详细描述: 缥缈任务
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2020-01-03 20:30"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import EventShell
+import QuestCommon
+import QuestRunner
+import QuestManager
+import NetPackCommon
+import IpyGameDataPY
+import FormulaControl
+import ChPyNetSendPack
+import PlayerControl
+import IPY_GameWorld
+import ItemControler
+import ItemCommon
+import ChConfig
+
+
+def DoPiaomiaoTaskOpen(curPlayer):
+ ## 缥缈任务开启
+ __DoRefreshPiaomiaoTask(curPlayer)
+ return
+
+def OnDay(curPlayer):
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskTakeCount, 0)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskRefreshCount, 0)
+ SyncPiaomiaoTaskInfo(curPlayer)
+ return
+
+def OnPlayerLogin(curPlayer):
+ SyncPiaomiaoTaskInfo(curPlayer)
+ return
+
+#// A2 08 刷新缥缈任务 #tagCMRefreshPiaomiaoTask
+#
+#struct tagCMRefreshPiaomiaoTask
+#{
+# tagHead Head;
+#};
+def OnRefreshPiaomiaoTask(index, clientData, tick):
+ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+
+ freeRefreshCount = IpyGameDataPY.GetFuncCfg("PiaomiaoTask", 2)
+ todayRefreshCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskRefreshCount)
+ if todayRefreshCount >= freeRefreshCount:
+ costGold = IpyGameDataPY.GetFuncCfg("PiaomiaoTask", 3)
+ if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGold, ChConfig.Def_Cost_PiaomiaoTask):
+ return
+ else:
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskRefreshCount, todayRefreshCount + 1)
+ __DoRefreshPiaomiaoTask(curPlayer)
+ return
+
+def __DoRefreshPiaomiaoTask(curPlayer):
+ ## 刷新缥缈任务
+
+ randMissionCount = IpyGameDataPY.GetFuncCfg("PiaomiaoTaskRand", 1)
+ randMissionWeightList = IpyGameDataPY.GetFuncEvalCfg("PiaomiaoTaskRand", 2)
+ missionGradeRewardDict = IpyGameDataPY.GetFuncEvalCfg("PiaomiaoTaskRand", 3)
+ piaomiaoMissionIDList = []
+
+ GameWorld.DebugLog("刷新缥缈任务! randMissionCount=%s" % randMissionCount)
+
+ delMissionIDList = []
+ for i in range(curPlayer.GetMissionCount()):
+ curMission = curPlayer.GetMissionByIndex(i)
+ missionID = curMission.GetMissionID()
+ missionState = curMission.GetState()
+ questData = QuestManager.FindQuest(missionID)
+ if not questData:
+ continue
+
+ if questData.Type != QuestCommon.Def_Mission_Type_Piaomiao:
+ continue
+
+ curGrade = curMission.GetProperty(QuestCommon.Def_Mission_Grade)
+ # 评级5 S不重置
+ if missionState != ChConfig.Def_Mission_State_NoAccept or curGrade == 5:
+ piaomiaoMissionIDList.append(missionID)
+ GameWorld.DebugLog(" 缥缈任务非未接,保留! missionID=%s,missionState=%s" % (missionID, missionState))
+ continue
+ GameWorld.DebugLog(" 缥缈任务未接,删除! missionID=%s,missionState=%s" % (missionID, missionState))
+ delMissionIDList.append(missionID)
+ for delMissionID in delMissionIDList:
+ QuestCommon.DeleteMission(curPlayer, delMissionID)
+
+ reExp = PlayerControl.GetPlayerReExp(curPlayer)
+ doCount = 100
+ while len(piaomiaoMissionIDList) < randMissionCount and doCount > 0:
+ doCount -= 1
+ randMissionInfo = GameWorld.GetResultByWeightList(randMissionWeightList)
+ if not randMissionInfo:
+ continue
+ randMissionID, grade = randMissionInfo
+ if randMissionID in piaomiaoMissionIDList:
+ continue
+ if grade not in missionGradeRewardDict:
+ continue
+ expFormat, goldPaper, itemID = missionGradeRewardDict[grade]
+ curExp = int(eval(FormulaControl.GetCompileFormula("PiaomiaoReward_%s" % grade, expFormat)))
+
+ piaomiaoMissionIDList.append(randMissionID)
+ curMission = QuestCommon.AddNewMission(curPlayer, randMissionID)
+ curMission.SetProperty(QuestCommon.Def_Mission_Grade, grade)
+ QuestCommon.SetPlayerMissionState(curPlayer, curMission, ChConfig.Def_Mission_State_NoAccept)
+
+ curMission.SetProperty(QuestRunner.Def_Run_Around_Reward_Exp, curExp % ChConfig.Def_PerPointValue)
+ curMission.SetProperty(QuestRunner.Def_Run_Around_Reward_ExpPoint, curExp / ChConfig.Def_PerPointValue)
+ curMission.SetProperty(QuestRunner.Def_Run_Around_Reward_GoldPaper, goldPaper)
+
+ itemCount = 1 # 物品暂默认1个
+ curMission.SetProperty(QuestRunner.Def_Day_Event_Reward_Item_Id, itemID)
+ curMission.SetProperty(QuestRunner.Def_Day_Event_Reward_Item_Count, itemCount)
+
+ GameWorld.DebugLog(" 新增随机缥缈任务: randMissionID=%s,grade=%s,curExp=%s,goldPaper=%s,itemID=%s"
+ % (randMissionID, grade, curExp, goldPaper, itemID))
+ #通知客户端
+ EventShell.NotifyOneMission(curPlayer, curMission)
+
+ SyncPiaomiaoTaskInfo(curPlayer)
+ return
+
+def OnTakePiaomiaoTask(curPlayer, curMission):
+ ## 接缥缈任务
+
+ todayTakeCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskTakeCount)
+ maxTakeCount = IpyGameDataPY.GetFuncCfg("PiaomiaoTask", 1)
+ if todayTakeCount >= maxTakeCount:
+ GameWorld.DebugLog("已达今日接任务上限!todayTakeCount=%s" % todayTakeCount)
+ return
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskTakeCount, todayTakeCount + 1)
+
+ QuestCommon.SetPlayerMissionState(curPlayer, curMission, 1)
+
+ EventShell.NotifyOneMission(curPlayer, curMission, isNotifyAll=False)
+ SyncPiaomiaoTaskInfo(curPlayer)
+ return
+
+def OnFinishPiaomiaoTask(curPlayer, curMission):
+ ## 完成缥缈任务
+
+ missionID = curMission.GetMissionID()
+ # 给奖励
+ exp = curMission.GetProperty(QuestRunner.Def_Run_Around_Reward_Exp)
+ expPoint = curMission.GetProperty(QuestRunner.Def_Run_Around_Reward_ExpPoint)
+ exp = expPoint * ChConfig.Def_PerPointValue + exp
+ playerControl = PlayerControl.PlayerControl(curPlayer)
+ playerControl.AddExp(exp)
+
+ goldPaper = curMission.GetProperty(QuestRunner.Def_Run_Around_Reward_GoldPaper)
+ addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Piaomiao"}
+ PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, goldPaper, ChConfig.Def_GiveMoney_Mission, addDataDict)
+
+ itemID = curMission.GetProperty(QuestRunner.Def_Day_Event_Reward_Item_Id)
+ itemCount = curMission.GetProperty(QuestRunner.Def_Day_Event_Reward_Item_Count)
+ if itemID and itemCount:
+ isAuctionItem = 0
+ itemList = [[itemID, itemCount, isAuctionItem]]
+ ItemControler.GivePlayerItemOrMail(curPlayer, itemList)
+
+ delItemID = curMission.GetProperty(QuestCommon.Def_Item_ID)
+ if delItemID:
+ ItemCommon.DelMissionItem(curPlayer, IPY_GameWorld.rptItem, delItemID, 0, missionID)
+
+ GameWorld.DebugLog("完成缥缈任务: missionID=%s,exp=%s,goldPaper=%s,itemID=%s,delItemID=%s"
+ % (missionID, exp, goldPaper, itemID, delItemID))
+
+ # 删任务
+ QuestCommon.DeleteMission(curPlayer, missionID)
+ # 重新刷新
+ __DoRefreshPiaomiaoTask(curPlayer)
+ return
+
+def DoCancelPiaomiaoTask(curPlayer, curMission):
+ ## 放弃任务
+ missionID = curMission.GetMissionID()
+ GameWorld.DebugLog("放弃缥缈任务! missionID=%s" % missionID)
+ QuestCommon.DeleteMission(curPlayer, missionID)
+ __DoRefreshPiaomiaoTask(curPlayer)
+ return
+
+def SyncPiaomiaoTaskInfo(curPlayer):
+ taskIDList = []
+ for i in xrange(curPlayer.GetMissionCount()):
+ curMission = curPlayer.GetMissionByIndex(i)
+ missionID = curMission.GetMissionID()
+ questData = QuestManager.FindQuest(missionID)
+ if not questData:
+ continue
+ if questData.Type != QuestCommon.Def_Mission_Type_Piaomiao:
+ continue
+ taskIDList.append(missionID)
+ if not taskIDList:
+ return
+
+ taskInfo = ChPyNetSendPack.tagMCPiaomiaoTaskInfo()
+ taskInfo.TakeCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskTakeCount)
+ taskInfo.RefreshCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskRefreshCount)
+ taskInfo.TaskIDList = taskIDList
+ taskInfo.TaskCount = len(taskIDList)
+ NetPackCommon.SendFakePack(curPlayer, taskInfo)
+ return
+
+
+
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 2b7a31f..092bb98 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -960,6 +960,7 @@
GameFuncID_TJG = 147 # 脱机挂
GameFuncID_SuperGift = 150 # 超值礼包
GameFuncID_ZhuXianBoss = 163 # 诛仙BOSS
+GameFuncID_PiaomiaoTask = 173 # 缥缈任务
# 以下为暂时无用的
GameFuncID_Truck = 33 # 运镖
GameFuncID_RunDaily = 34 # 日常跑环
--
Gitblit v1.8.0