| | |
| | | dict Reward; //奖励 {"职业":[[物品ID,个数],...], ...}
|
| | | };
|
| | |
|
| | | //七天在线奖励表新
|
| | |
|
| | | struct tagOnlineAwardNew
|
| | | {
|
| | | BYTE _DayID; //天数
|
| | | list StageTime; //阶段所需时间(分钟)
|
| | | dict Reward; //奖励 {"索引":[[物品ID,个数],...], ...}
|
| | | };
|
| | |
|
| | | //七天限时特惠表
|
| | |
|
| | | struct tagSpringSale
|
| | |
| | | PacketSubCMD_1=0x06
|
| | | PacketCallFunc_1=OnQueryRecharge
|
| | |
|
| | |
|
| | | ;在线奖励
|
| | | [PlayerOnlinePrize]
|
| | | ScriptName = Player\PlayerOnlinePrize.py
|
| | | Writer = alee
|
| | | Releaser = alee
|
| | | RegType = 0
|
| | | RegisterPackCount = 2
|
| | |
|
| | | PacketCMD_1=0xA5
|
| | | PacketSubCMD_1=0x06
|
| | | PacketCallFunc_1=GetOnlinePrize
|
| | |
|
| | | PacketCMD_2=
|
| | | PacketSubCMD_2=
|
| | | PacketCallFunc_2=
|
| | |
|
| | | ;玩家副本
|
| | | [PlayerFB]
|
| | | ScriptName = Player\PlayerFB.py
|
| | |
| | |
|
| | | Def_Player_Dict_LastAutoOpenPackTick = "LastAutoOpenPackTick219_%s" #上一次自动购买的tick<背包类型>
|
| | |
|
| | | Def_PDict_OnlinePrizeNote = "OnlinePrizeNote" # 当日在线奖励领取信息
|
| | |
|
| | | Def_PDict_OpenSererDailyAward = "OpenSererDailyAward" # 开服每日奖励记录
|
| | | Def_PDict_CreateRoleAwardState = "CreateRoleAwardState" # 创角奖励领取记录
|
| | | Def_PDict_GameNoticeAwardState = "GameNoticeAwardState" # 玩法前瞻游戏领奖记录
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A5 06 玩家领取在线奖励 #tagCMGetOnlinePrize
|
| | |
|
| | | class tagCMGetOnlinePrize(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Index", c_ubyte), # 奖励索引,其他按顺序
|
| | | ("IsDaily", c_ubyte), # 是否领取每日日常的奖励,是发1,如果领取定制创角天奖励的则默认发0即可
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x06
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x06
|
| | | self.Index = 0
|
| | | self.IsDaily = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMGetOnlinePrize)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//A5 06 玩家领取在线奖励 //tagCMGetOnlinePrize:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Index:%d,
|
| | | IsDaily:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Index,
|
| | | self.IsDaily
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMGetOnlinePrize=tagCMGetOnlinePrize()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetOnlinePrize.Cmd,m_NAtagCMGetOnlinePrize.SubCmd))] = m_NAtagCMGetOnlinePrize
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 42 领取成就奖励 #tagMCGetSuccessAward
|
| | |
|
| | | class tagMCGetSuccessAward(Structure):
|
| | |
| | |
|
| | | m_NAtagCMPlayerGetReward=tagCMPlayerGetReward()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPlayerGetReward.Head.Cmd,m_NAtagCMPlayerGetReward.Head.SubCmd))] = m_NAtagCMPlayerGetReward
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A5 07 查询在线奖励 #tagCMQueryOnlinePrizeInfo
|
| | |
|
| | | class tagCMQueryOnlinePrizeInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x07
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x07
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMQueryOnlinePrizeInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//A5 07 查询在线奖励 //tagCMQueryOnlinePrizeInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMQueryOnlinePrizeInfo=tagCMQueryOnlinePrizeInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryOnlinePrizeInfo.Cmd,m_NAtagCMQueryOnlinePrizeInfo.SubCmd))] = m_NAtagCMQueryOnlinePrizeInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 08 在线奖励信息 #tagMCOnlinePrize
|
| | |
|
| | | class tagMCOnlinePrize(Structure):
|
| | | Head = tagHead()
|
| | | OnlineTime = 0 #(DWORD OnlineTime)//在线时间毫秒
|
| | | Len = 0 #(BYTE Len)
|
| | | PrizeInfo = list() #(vector<DWORD> PrizeInfo)//领奖记录
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Len):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.PrizeInfo.append(value)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x08
|
| | | self.OnlineTime = 0
|
| | | self.Len = 0
|
| | | self.PrizeInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4 * self.Len
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.OnlineTime)
|
| | | data = CommFunc.WriteBYTE(data, self.Len)
|
| | | for i in range(self.Len):
|
| | | data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | OnlineTime:%d,
|
| | | Len:%d,
|
| | | PrizeInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.OnlineTime,
|
| | | self.Len,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCOnlinePrize=tagMCOnlinePrize()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrize.Head.Cmd,m_NAtagMCOnlinePrize.Head.SubCmd))] = m_NAtagMCOnlinePrize
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
|
| | |
|
| | | class tagMCPackDownloadRecord(Structure):
|
| | |
| | |
|
| | | m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 03 玩家在线奖励信息(暂停使用) #tagMCPlayerOnlinePrizeInfo
|
| | |
|
| | | class tagMCOnlinePrizeItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("PrizeItem", c_int), |
| | | ("ItemCount", c_ubyte), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x03
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x03
|
| | | self.PrizeItem = 0
|
| | | self.ItemCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCOnlinePrizeItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//A3 03 玩家在线奖励信息(暂停使用) //tagMCPlayerOnlinePrizeInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PrizeItem:%d,
|
| | | ItemCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PrizeItem,
|
| | | self.ItemCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCPlayerOnlinePrizeInfo(Structure):
|
| | | Head = tagHead()
|
| | | RemaindTime = 0 #(DWORD RemaindTime)//产生奖励剩余时间
|
| | | HasPrize = 0 #(BYTE HasPrize)//是否可以领取 |
| | | PrizeType = 0 #(BYTE PrizeType)//在线奖励类型
|
| | | PrizeCnt = 0 #(BYTE PrizeCnt)//在线奖励类型
|
| | | PrizeInfo = list() #(vector<tagMCOnlinePrizeItem> PrizeInfo)//在线奖励类型
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x03
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.RemaindTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.HasPrize,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PrizeType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.PrizeCnt):
|
| | | temPrizeInfo = tagMCOnlinePrizeItem()
|
| | | _pos = temPrizeInfo.ReadData(_lpData, _pos)
|
| | | self.PrizeInfo.append(temPrizeInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x03
|
| | | self.RemaindTime = 0
|
| | | self.HasPrize = 0
|
| | | self.PrizeType = 0
|
| | | self.PrizeCnt = 0
|
| | | self.PrizeInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.PrizeCnt):
|
| | | length += self.PrizeInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.RemaindTime)
|
| | | data = CommFunc.WriteBYTE(data, self.HasPrize)
|
| | | data = CommFunc.WriteBYTE(data, self.PrizeType)
|
| | | data = CommFunc.WriteBYTE(data, self.PrizeCnt)
|
| | | for i in range(self.PrizeCnt):
|
| | | data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | RemaindTime:%d,
|
| | | HasPrize:%d,
|
| | | PrizeType:%d,
|
| | | PrizeCnt:%d,
|
| | | PrizeInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.RemaindTime,
|
| | | self.HasPrize,
|
| | | self.PrizeType,
|
| | | self.PrizeCnt,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCPlayerOnlinePrizeInfo=tagMCPlayerOnlinePrizeInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerOnlinePrizeInfo.Head.Cmd,m_NAtagMCPlayerOnlinePrizeInfo.Head.SubCmd))] = m_NAtagMCPlayerOnlinePrizeInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | | m_NAtagMCNotifyPlayerMove=tagMCNotifyPlayerMove()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyPlayerMove.Cmd,m_NAtagMCNotifyPlayerMove.SubCmd))] = m_NAtagMCNotifyPlayerMove
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 13 在线奖励信息新 #tagMCOnlinePrizeNew
|
| | |
|
| | | class tagMCOnlinePrizeNew(Structure):
|
| | | Head = tagHead()
|
| | | OnlineTime = 0 #(DWORD OnlineTime)//在线时间毫秒
|
| | | Len = 0 #(BYTE Len)
|
| | | PrizeInfo = list() #(vector<DWORD> PrizeInfo)//领奖记录
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB1
|
| | | self.Head.SubCmd = 0x13
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Len):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.PrizeInfo.append(value)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB1
|
| | | self.Head.SubCmd = 0x13
|
| | | self.OnlineTime = 0
|
| | | self.Len = 0
|
| | | self.PrizeInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4 * self.Len
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.OnlineTime)
|
| | | data = CommFunc.WriteBYTE(data, self.Len)
|
| | | for i in range(self.Len):
|
| | | data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | OnlineTime:%d,
|
| | | Len:%d,
|
| | | PrizeInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.OnlineTime,
|
| | | self.Len,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCOnlinePrizeNew=tagMCOnlinePrizeNew()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrizeNew.Head.Cmd,m_NAtagMCOnlinePrizeNew.Head.SubCmd))] = m_NAtagMCOnlinePrizeNew
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | | ("dict", "Reward", 0),
|
| | | ),
|
| | |
|
| | | "OnlineAwardNew":(
|
| | | ("BYTE", "DayID", 1),
|
| | | ("list", "StageTime", 0),
|
| | | ("dict", "Reward", 0),
|
| | | ),
|
| | |
|
| | | "SpringSale":(
|
| | | ("BYTE", "GiftID", 1),
|
| | | ("BYTE", "SellDay", 0),
|
| | |
| | | def GetDayID(self): return self.attrTuple[0] # 天数 BYTE
|
| | | def GetReward(self): return self.attrTuple[1] # 奖励 {"职业":[[物品ID,个数],...], ...} dict |
| | | |
| | | # 七天在线奖励表新 |
| | | class IPY_OnlineAwardNew(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetDayID(self): return self.attrTuple[0] # 天数 BYTE
|
| | | def GetStageTime(self): return self.attrTuple[1] # 阶段所需时间(分钟) list
|
| | | def GetReward(self): return self.attrTuple[2] # 奖励 {"索引":[[物品ID,个数],...], ...} dict |
| | | |
| | | # 七天限时特惠表 |
| | | class IPY_SpringSale(): |
| | | |
| | |
| | | self.__LoadFileData("OSCBillRankAward", onlyCheck)
|
| | | self.__LoadFileData("OSCBillTagAward", onlyCheck)
|
| | | self.__LoadFileData("LoginDayAward", onlyCheck)
|
| | | self.__LoadFileData("OnlineAwardNew", onlyCheck)
|
| | | self.__LoadFileData("SpringSale", onlyCheck)
|
| | | self.__LoadFileData("OrderInfo", onlyCheck)
|
| | | self.__LoadFileData("CTG", onlyCheck)
|
| | |
| | | def GetLoginDayAwardByIndex(self, index): |
| | | self.CheckLoadData("LoginDayAward") |
| | | return self.ipyLoginDayAwardCache[index]
|
| | | |
| | | def GetOnlineAwardNewCount(self): |
| | | self.CheckLoadData("OnlineAwardNew") |
| | | return self.ipyOnlineAwardNewLen
|
| | | def GetOnlineAwardNewByIndex(self, index): |
| | | self.CheckLoadData("OnlineAwardNew") |
| | | return self.ipyOnlineAwardNewCache[index]
|
| | | |
| | | def GetSpringSaleCount(self): |
| | | self.CheckLoadData("SpringSale") |
| | |
| | | import ChPyNetSendPack
|
| | | import DataRecordPack
|
| | | import PlayerBillboard
|
| | | import PlayerOnlinePrize
|
| | | import PlayerLVAward
|
| | | import PlayerGoldGift
|
| | | import PlayerSignDay
|
| | |
| | | FunctionNPCCommon.ShopItemOnLogin(curPlayer)
|
| | | # 通知设置的被动功法
|
| | | #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
|
| | | PlayerOnlinePrize.OnPlayerLogin(curPlayer)
|
| | | # 极品白拿
|
| | | PlayerFreeGoods.OnLogin(curPlayer)
|
| | | # BOSS复活活动
|
| | |
| | | #流向记录玩家下线
|
| | | DataRecordPack.DR_PlayerDisconnect(curPlayer)
|
| | |
|
| | | #在线时间
|
| | | PlayerOnlinePrize.CalcOnlineTime(curPlayer)
|
| | | #玩家未回图形验证码下线将会记录错误次数
|
| | | #===========================================================================
|
| | | # if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_Captcha_WaitSign) \
|
| | |
| | | import PlayerControl
|
| | | import PlayerFamily
|
| | | import PlayerFamilyZhenfa
|
| | | import PlayerOnlinePrize
|
| | | import PlayerLoginDayAward
|
| | | import NPCCommon
|
| | | import FunctionNPCCommon
|
| | |
| | |
|
| | | #重置宠物每天的训练次数
|
| | | #PlayerPet.DoLogic_PetInfo_OnDay(curPlayer)
|
| | | |
| | | PlayerOnlinePrize.ResetPrizeInfoOnDay(curPlayer)
|
| | | |
| | |
|
| | | #OnDay时清除每日签到的信息
|
| | | PlayerSignDay.SignDayOnDay(curPlayer)
|