6457 【后端】【2.0】缥缈仙域开发单(定制)
| | |
| | | struct tagFairyDomainAppoint
|
| | | {
|
| | | WORD _Cnt; //次数
|
| | | DWORD OpenServerDay; //事件编号
|
| | | DWORD EventID; //事件编号
|
| | | list Award; //定制奖励(没配走正常奖励规则)[[物品ID,数量,是否拍品],..]
|
| | | }; |
| | |
| | |
|
| | | class tagMCFairyDomainInfo(Structure):
|
| | | Head = tagHead()
|
| | | State = 0 #(BYTE State)//是否寻访中
|
| | | IsAll = 0 #(BYTE IsAll)//是否全部
|
| | | State = 0 #(BYTE State)//0-未寻访 1-寻访中 2-任务标记可寻访
|
| | | VisitCnt = 0 #(DWORD VisitCnt)//寻访次数
|
| | | Energy = 0 #(WORD Energy)//体力
|
| | | Count = 0 #(BYTE Count)// 信息个数
|
| | | InfoList = list() #(vector<tagMCFairyDomainEvent> InfoList)// 信息列表
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.VisitCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Energy,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x06
|
| | | self.IsAll = 0
|
| | | self.State = 0
|
| | | self.VisitCnt = 0
|
| | | self.Energy = 0
|
| | | self.Count = 0
|
| | | self.InfoList = list()
|
| | |
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | |
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.IsAll)
|
| | | data = CommFunc.WriteBYTE(data, self.State)
|
| | | data = CommFunc.WriteDWORD(data, self.VisitCnt)
|
| | | data = CommFunc.WriteWORD(data, self.Energy)
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | |
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | IsAll:%d,
|
| | | State:%d,
|
| | | VisitCnt:%d,
|
| | | Energy:%d,
|
| | | Count:%d,
|
| | | InfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.IsAll,
|
| | | self.State,
|
| | | self.VisitCnt,
|
| | | self.Energy,
|
| | | self.Count,
|
| | | "..."
|
| | |
| | | Def_PDict_EquipPartStar = "EQPartStar_%s" #装备部位星数 参数 装备背包格子索引
|
| | |
|
| | | #缥缈仙域
|
| | | Def_PDict_FairyDomainState = "FairyDomainState" #是否寻访中
|
| | | Def_PDict_FairyDomainState = "FairyDomainState" #是否寻访中 0未寻访 1寻访中 2任务标记可寻访
|
| | | Def_PDict_FairyDomainEventState = "FairyDomainEventState%s" #单个事件状态1-未拜访 2-拜访中 3-已拜访 参数事件ID
|
| | | Def_PDict_FairyDomainEventID = "FairyDomainEventID%s" #事件ID 参数第n个事件
|
| | | Def_PDict_FairyDomainEnergy = "FairyDomainEnergy" #体力值
|
| | |
| | |
|
| | | class tagMCFairyDomainInfo(Structure):
|
| | | Head = tagHead()
|
| | | State = 0 #(BYTE State)//是否寻访中
|
| | | IsAll = 0 #(BYTE IsAll)//是否全部
|
| | | State = 0 #(BYTE State)//0-未寻访 1-寻访中 2-任务标记可寻访
|
| | | VisitCnt = 0 #(DWORD VisitCnt)//寻访次数
|
| | | Energy = 0 #(WORD Energy)//体力
|
| | | Count = 0 #(BYTE Count)// 信息个数
|
| | | InfoList = list() #(vector<tagMCFairyDomainEvent> InfoList)// 信息列表
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.VisitCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Energy,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x06
|
| | | self.IsAll = 0
|
| | | self.State = 0
|
| | | self.VisitCnt = 0
|
| | | self.Energy = 0
|
| | | self.Count = 0
|
| | | self.InfoList = list()
|
| | |
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | |
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.IsAll)
|
| | | data = CommFunc.WriteBYTE(data, self.State)
|
| | | data = CommFunc.WriteDWORD(data, self.VisitCnt)
|
| | | data = CommFunc.WriteWORD(data, self.Energy)
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | |
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | IsAll:%d,
|
| | | State:%d,
|
| | | VisitCnt:%d,
|
| | | Energy:%d,
|
| | | Count:%d,
|
| | | InfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.IsAll,
|
| | | self.State,
|
| | | self.VisitCnt,
|
| | | self.Energy,
|
| | | self.Count,
|
| | | "..."
|
| | |
| | |
|
| | | def EventRespons_Talk(curPlayer, eventName):
|
| | | #频道发言
|
| | | RunQuestEvent(curPlayer, "Talk", eventName, Def_RunQuestType_Normal)
|
| | | RunQuestEvent(curPlayer, "talk", eventName, Def_RunQuestType_Normal)
|
| | | return
|
| | |
|
| | | def EventRespons_FairyDomain(curPlayer):
|
| | | #完成缥缈仙域事件
|
| | | RunQuestEvent(curPlayer, "fairydomain", 'fairydomain', Def_RunQuestType_Normal)
|
| | | return
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | |
| | | import PlayerFairyCeremony
|
| | | import PlayerNewFairyCeremony
|
| | | import PlayerWeekParty
|
| | | import PlayerFairyDomain
|
| | | import PlayerActLogin
|
| | | import PlayerHorse
|
| | | import FBCommon
|
| | |
| | | return
|
| | |
|
| | |
|
| | | def DoType_Setfairydomain(curPlayer, curMission, curActionNode):
|
| | | ## 任务开启缥缈仙域 (做标记可寻访) <Setfairydomain/>
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainState):
|
| | | #若已在寻访中则不可设置
|
| | | return
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainState, 2)
|
| | | PlayerFairyDomain.NotifyVisitFairyDomainInfo(curPlayer)
|
| | | return |
| | |
| | | FBCommon.SetFBStep(FB_Step_Over, tick)
|
| | |
|
| | | lineID = FBCommon.GetFBPropertyMark()
|
| | | awardCfg = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_FairyTreasure, lineID)
|
| | | curAlchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | giveItemList = []
|
| | | dropItemList = []
|
| | | for awardRateList in awardCfg:
|
| | | newItemInfoList = []
|
| | | for itemInfo in awardRateList:
|
| | | itemID = itemInfo[1][0]
|
| | | itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
|
| | | if not itemData:
|
| | | return
|
| | | if curAlchemyLV < itemData.GetLV() - 1:
|
| | | #丹炉等级不足
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomain', {'MapID':ChConfig.Def_FBMapID_FairyTreasure, 'LineID':lineID})
|
| | | fdeventID = ipyData.GetID()
|
| | | giveItemList = PlayerFairyDomain.GetFairyAppointAward(curPlayer, fdeventID)
|
| | | if not giveItemList:
|
| | | awardCfg = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_FairyTreasure, lineID)
|
| | | curAlchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | giveItemList = []
|
| | | dropItemList = []
|
| | | for awardRateList in awardCfg:
|
| | | newItemInfoList = []
|
| | | for itemInfo in awardRateList:
|
| | | itemID = itemInfo[1][0]
|
| | | itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
|
| | | if not itemData:
|
| | | return
|
| | | if curAlchemyLV < itemData.GetLV() - 1:
|
| | | #丹炉等级不足
|
| | | continue
|
| | | |
| | | newItemInfoList.append(itemInfo)
|
| | | if not newItemInfoList:
|
| | | continue
|
| | |
|
| | | newItemInfoList.append(itemInfo)
|
| | | if not newItemInfoList:
|
| | | continue
|
| | | randomitem = GameWorld.GetResultByWeightList(newItemInfoList)
|
| | | giveItemList.append(randomitem)
|
| | | for _ in randomitem[1]:
|
| | | dropItemList.append([randomitem[0],1,randomitem[2]])
|
| | | randomitem = GameWorld.GetResultByWeightList(newItemInfoList)
|
| | | giveItemList.append(randomitem)
|
| | | for _ in randomitem[1]:
|
| | | dropItemList.append([randomitem[0],1,randomitem[2]])
|
| | |
|
| | | if giveItemList:
|
| | | NPCCommon.DoVirtualItemDrop(curPlayer, dropItemList, dropPosX, dropPosY)
|
| | |
| | | curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
|
| | | overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)}
|
| | | FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_FairyTreasure, lineID, 1, overDict)
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomain', {'MapID':ChConfig.Def_FBMapID_FairyTreasure, 'LineID':lineID})
|
| | | fdeventID = ipyData.GetID()
|
| | | |
| | | PlayerFairyDomain.SetFairyDomainEventState(curPlayer, fdeventID, PlayerFairyDomain.FDEventState_Visited)
|
| | | return
|
| | |
|
| | |
| | |
|
| | | "FairyDomainAppoint":(
|
| | | ("WORD", "Cnt", 1),
|
| | | ("DWORD", "OpenServerDay", 0),
|
| | | ("DWORD", "EventID", 0),
|
| | | ("list", "Award", 0),
|
| | | ),
|
| | | }
|
| | |
| | | |
| | | def __init__(self): |
| | | self.Cnt = 0
|
| | | self.OpenServerDay = 0
|
| | | self.EventID = 0
|
| | | self.Award = [] |
| | | return |
| | | |
| | | def GetCnt(self): return self.Cnt # 次数
|
| | | def GetOpenServerDay(self): return self.OpenServerDay # 事件编号
|
| | | def GetEventID(self): return self.EventID # 事件编号
|
| | | def GetAward(self): return self.Award # 定制奖励(没配走正常奖励规则)[[物品ID,数量,是否拍品],..] |
| | |
|
| | |
|
| | |
| | | import IpyGameDataPY
|
| | | import PlayerActivity
|
| | | import ItemControler
|
| | | import EventShell
|
| | |
|
| | | import copy
|
| | | import random
|
| | |
| | | #};
|
| | | def OnVisitFairyDomain(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | dailyID = ShareDefine.DailyActionID_FairyDomain
|
| | | hasOpen = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_DailyActionState % dailyID)
|
| | | if not hasOpen:
|
| | | GameWorld.DebugLog(" 寻访仙域活动未开启!")
|
| | | return
|
| | | |
| | | otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
|
| | | maxEventCnt = max([info[1] for info in otherCntRateList]) + 1 #最大可出现事件个数
|
| | | |
| | | fairyDomainState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainState) #是否寻访中 0未寻访 1寻访中 2任务标记可寻访
|
| | | if clientData.Type == 1: #结束寻访
|
| | | if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainState):
|
| | | if fairyDomainState != 1:
|
| | | GameWorld.DebugLog(" 未开始寻访仙域, 无法结束")
|
| | | return
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainState, 0)
|
| | |
| | | NotifyVisitFairyDomainInfo(curPlayer)
|
| | | return
|
| | |
|
| | | dailyID = ShareDefine.DailyActionID_FairyDomain
|
| | | hasOpen = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_DailyActionState % dailyID)
|
| | | if fairyDomainState != 2 and not hasOpen:
|
| | | GameWorld.DebugLog(" 寻访仙域活动未开启!")
|
| | | return
|
| | | |
| | | #是否寻访中
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainState):
|
| | | if fairyDomainState == 1:
|
| | | GameWorld.DebugLog(" 正在寻访仙域中!请先退出寻访")
|
| | | return
|
| | |
|
| | | if not PlayerActivity.AddDailyActionFinishCnt(curPlayer, dailyID):
|
| | | if fairyDomainState != 2 and not PlayerActivity.AddDailyActionFinishCnt(curPlayer, dailyID):
|
| | | GameWorld.DebugLog(" 寻访仙域次数不足!")
|
| | | return
|
| | |
|
| | | #随机事件 重置事件状态
|
| | | visitCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainVisitCnt)
|
| | | specialVisitDict = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 5, {})
|
| | | maxSpecialCnt = max(specialVisitDict) if specialVisitDict else 0
|
| | | if visitCnt + 1 in specialVisitDict:
|
| | | fdEventIDList = specialVisitDict[visitCnt + 1]
|
| | | appointIpyDataList = IpyGameDataPY.GetIpyGameDataListNotLog('FairyDomainAppoint', visitCnt+1)
|
| | | if appointIpyDataList:
|
| | | fdEventIDList = []
|
| | | for appointIpyData in appointIpyDataList:
|
| | | fdEventIDList.append(appointIpyData.GetEventID()) |
| | | else:
|
| | | fdEventTypeDict = {}
|
| | | #先随机奇遇事件
|
| | |
| | | GameWorld.Log('寻访仙域, 没有随机出事件!!')
|
| | | return
|
| | |
|
| | | if visitCnt < maxSpecialCnt:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainVisitCnt, visitCnt + 1)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainVisitCnt, min(visitCnt + 1, ChConfig.Def_UpperLimit_DWord))
|
| | | #设置事件
|
| | | for i in xrange(maxEventCnt):
|
| | | fdEventID = fdEventIDList[i] if i < len(fdEventIDList) else 0
|
| | |
| | | randomRateList = []
|
| | | rate = 0
|
| | | curAlchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | curLV = curPlayer.GetLV()
|
| | | for ipyData in ipyDataList:
|
| | | needAlchemyLV = ipyData.GetNeedAlchemyLV()
|
| | | if curAlchemyLV < needAlchemyLV - 1:
|
| | | #丹炉等级不足
|
| | | continue
|
| | | lvLimit = ipyData.GetNeedLV()
|
| | | if lvLimit and not (lvLimit[0]<=curLV<=lvLimit[1]):
|
| | | #等级范围不满足
|
| | | continue
|
| | | |
| | | rate += ipyData.GetWeight()
|
| | | randomRateList.append([rate, ipyData.GetID()])
|
| | | if not randomRateList:
|
| | |
| | | if curState != FDEventState_Visiting:
|
| | | GameWorld.Log('缥缈仙域事件状态设置错误,fdeventID=%s, state=%s, curState=%s' % (fdeventID, state, curState))
|
| | | return
|
| | | |
| | | EventShell.EventRespons_FairyDomain(curPlayer)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainEventState % fdeventID, state)
|
| | | NotifyVisitFairyDomainInfo(curPlayer, [fdeventID])
|
| | | return True
|
| | |
|
| | |
|
| | | def NotifyVisitFairyDomainInfo(curPlayer, fdEventList=[]):
|
| | | isAll = 0
|
| | | if not fdEventList:
|
| | | isAll = 1
|
| | | otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
|
| | | maxEventCnt = max([info[1] for info in otherCntRateList]) + 1 #最大可出现事件个数
|
| | | for i in xrange(maxEventCnt):
|
| | |
| | | fdEventList.append(fdEventID)
|
| | |
|
| | | packData = ChPyNetSendPack.tagMCFairyDomainInfo()
|
| | | packData.IsAll = isAll
|
| | | packData.State = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainState)
|
| | | packData.Energy = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainEnergy)
|
| | | packData.VisitCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainVisitCnt)
|
| | | packData.InfoList = []
|
| | | for fdeventID in fdEventList:
|
| | | fdeventData = ChPyNetSendPack.tagMCFairyDomainEvent()
|
| | |
| | | ###=========================奇遇===============================
|
| | | def NotifyFairyAdventuresInfo(curPlayer):
|
| | | ##通知奇遇信息
|
| | | visitCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainVisitCnt)
|
| | |
|
| | | packData = ChPyNetSendPack.tagMCFairyAdventuresInfo()
|
| | | packData.InfoList = []
|
| | | otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
|
| | |
| | | continue
|
| | | conditionList = ipyData.GetCondition()
|
| | | index = adventuresdata % 100
|
| | | condition = conditionList[index] if index < len(conditionList) else 0
|
| | | if IpyGameDataPY.GetIpyGameDataByCondition('FairyDomainAppoint', {'Cnt':visitCnt, 'EventID':fdEventID}, False, False):
|
| | | condition = 0 #定制的条件为0
|
| | | else:
|
| | | condition = conditionList[index] if index < len(conditionList) else 0
|
| | | adventuresdata = ChPyNetSendPack.tagMCFairyAdventuresData()
|
| | | adventuresdata.Gear = index + 1
|
| | | adventuresdata.Condition = condition
|
| | |
| | | if fdeventID != ipyData.GetEventID():
|
| | | GameWorld.Log('奇遇领取奖励 事件ID错误!')
|
| | | return
|
| | | #1-等级奇遇 2-境界奇遇 3-战力奇遇 4-气运奇遇
|
| | | if fdeventID == 1:
|
| | | curData = curPlayer.GetLV()
|
| | | elif fdeventID == 2:
|
| | | curData = curPlayer.GetOfficialRank()
|
| | | elif fdeventID == 3:
|
| | | curData = curPlayer.GetFightPower()
|
| | | elif fdeventID == 4:
|
| | | curData = curPlayer.GetLuckValue()
|
| | | else:
|
| | | return
|
| | | if curData >= condition:
|
| | | gearAwardList = ipyData.GetGearAward()
|
| | | if not gearAwardList:
|
| | | giveItemList = GetFairyAppointAward(curPlayer, fdeventID)
|
| | | if not giveItemList:
|
| | | #1-等级奇遇 2-境界奇遇 3-战力奇遇 4-气运奇遇
|
| | | if fdeventID == 1:
|
| | | curData = curPlayer.GetLV()
|
| | | elif fdeventID == 2:
|
| | | curData = curPlayer.GetOfficialRank()
|
| | | elif fdeventID == 3:
|
| | | curData = curPlayer.GetFightPower()
|
| | | elif fdeventID == 4:
|
| | | curData = curPlayer.GetLuckValue()
|
| | | else:
|
| | | return
|
| | | itemRateList = gearAwardList[index] if index < len(gearAwardList) else gearAwardList[-1]
|
| | | itemInfo = GameWorld.GetResultByWeightList(itemRateList)
|
| | | else:
|
| | | itemInfo = ipyData.GetBasicAward()
|
| | | if curData >= condition:
|
| | | gearAwardList = ipyData.GetGearAward()
|
| | | if not gearAwardList:
|
| | | return
|
| | | itemRateList = gearAwardList[index] if index < len(gearAwardList) else gearAwardList[-1]
|
| | | giveItemList = [GameWorld.GetResultByWeightList(itemRateList)]
|
| | | else:
|
| | | giveItemList = [ipyData.GetBasicAward()]
|
| | |
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, [itemInfo])
|
| | | msgDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList([itemInfo])}
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, giveItemList)
|
| | | msgDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)}
|
| | | FBCommon.Notify_FB_Over(curPlayer, msgDict)
|
| | | GameWorld.DebugLog('缥缈奇遇领奖 msgDict=%s, fdeventID=%s' % (msgDict, fdeventID))
|
| | | return
|
| | |
|
| | |
|
| | | def GetFairyAppointAward(curPlayer, fdEventID):
|
| | | ##获取事件定制奖励, 没有的给正常奖励
|
| | | visitCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainVisitCnt)
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomainAppoint', {'Cnt':visitCnt, 'EventID':fdEventID}, False, False)
|
| | | if not ipyData:
|
| | | return
|
| | | return ipyData.GetAward() |
| | |
| | | #世界频道发言成就
|
| | | #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkWorld, 1)
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_TalkWorld, 1)
|
| | | EventShell.EventRespons_Talk(curPlayer, 'TalkWorld')
|
| | | EventShell.EventRespons_Talk(curPlayer, 'talkworld')
|
| | | return
|
| | |
|
| | | ## 国家频道(封包参数)
|
| | |
| | | curPlayer.ChatFamily(content, 0, extras)
|
| | | #仙盟频道发言成就
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkFamily, 1)
|
| | | EventShell.EventRespons_Talk(curPlayer, 'TalkFamily')
|
| | | EventShell.EventRespons_Talk(curPlayer, 'talkfamily')
|
| | | return
|
| | |
|
| | | ## 队伍频道(封包参数)
|