8921 【主干】【BT2】【后端】H.活动-节日活动-垃圾分类(增加垃圾分类结果封包通知 AA57, 去除分类结果系统提示)
3个文件已修改
164 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGarbageSorting.py 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -24723,17 +24723,23 @@
#------------------------------------------------------
# AA 56 垃圾收集活动任务进度信息 #tagMCActGarbageTaskInfo
# AA 57 垃圾收集活动分类结果 #tagMCActGarbageSortingResult
class  tagMCActGarbageTaskItem(Structure):
class  tagMCActGarbageSortingResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    #活动编号
                  ("GarbageSortingType", c_ubyte),    #垃圾分类类型
                  ("IsRight", c_ubyte),    #是否正确
                  ("AddEnvValue", c_ushort),    #增加环保值
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x57
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -24742,27 +24748,46 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.ItemID = 0
        self.ItemCount = 0
        self.Cmd = 0xAA
        self.SubCmd = 0x57
        self.ActNum = 0
        self.GarbageSortingType = 0
        self.IsRight = 0
        self.AddEnvValue = 0
        return
    def GetLength(self):
        return sizeof(tagMCActGarbageTaskItem)
        return sizeof(tagMCActGarbageSortingResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 56 垃圾收集活动任务进度信息 //tagMCActGarbageTaskInfo:
                                ItemID:%d,
                                ItemCount:%d
        DumpString = '''// AA 57 垃圾收集活动分类结果 //tagMCActGarbageSortingResult:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                GarbageSortingType:%d,
                                IsRight:%d,
                                AddEnvValue:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.GarbageSortingType,
                                self.IsRight,
                                self.AddEnvValue
                                )
        return DumpString
m_NAtagMCActGarbageSortingResult=tagMCActGarbageSortingResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGarbageSortingResult.Cmd,m_NAtagMCActGarbageSortingResult.SubCmd))] = m_NAtagMCActGarbageSortingResult
#------------------------------------------------------
# AA 56 垃圾收集活动任务进度信息 #tagMCActGarbageTaskInfo
class  tagMCActGarbageTask(Structure):
    _pack_ = 1
@@ -24812,8 +24837,6 @@
    ActNum = 0    #(BYTE ActNum)// 活动编号
    GarbageTaskCount = 0    #(BYTE GarbageTaskCount)//任务数
    GarbageTaskList = list()    #(vector<tagMCActGarbageTask> GarbageTaskList)//任务信息列表
    TaskItemCount = 0    #(BYTE TaskItemCount)//本次获得的垃圾收集任务奖励物品个数,可能为0
    GarbageTaskItemList = list()    #(vector<tagMCActGarbageTaskItem> GarbageTaskItemList)
    data = None
    def __init__(self):
@@ -24831,11 +24854,6 @@
            temGarbageTaskList = tagMCActGarbageTask()
            _pos = temGarbageTaskList.ReadData(_lpData, _pos)
            self.GarbageTaskList.append(temGarbageTaskList)
        self.TaskItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskItemCount):
            temGarbageTaskItemList = tagMCActGarbageTaskItem()
            _pos = temGarbageTaskItemList.ReadData(_lpData, _pos)
            self.GarbageTaskItemList.append(temGarbageTaskItemList)
        return _pos
    def Clear(self):
@@ -24846,8 +24864,6 @@
        self.ActNum = 0
        self.GarbageTaskCount = 0
        self.GarbageTaskList = list()
        self.TaskItemCount = 0
        self.GarbageTaskItemList = list()
        return
    def GetLength(self):
@@ -24857,9 +24873,6 @@
        length += 1
        for i in range(self.GarbageTaskCount):
            length += self.GarbageTaskList[i].GetLength()
        length += 1
        for i in range(self.TaskItemCount):
            length += self.GarbageTaskItemList[i].GetLength()
        return length
@@ -24870,9 +24883,6 @@
        data = CommFunc.WriteBYTE(data, self.GarbageTaskCount)
        for i in range(self.GarbageTaskCount):
            data = CommFunc.WriteString(data, self.GarbageTaskList[i].GetLength(), self.GarbageTaskList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.TaskItemCount)
        for i in range(self.TaskItemCount):
            data = CommFunc.WriteString(data, self.GarbageTaskItemList[i].GetLength(), self.GarbageTaskItemList[i].GetBuffer())
        return data
    def OutputString(self):
@@ -24880,16 +24890,12 @@
                                Head:%s,
                                ActNum:%d,
                                GarbageTaskCount:%d,
                                GarbageTaskList:%s,
                                TaskItemCount:%d,
                                GarbageTaskItemList:%s
                                GarbageTaskList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.GarbageTaskCount,
                                "...",
                                self.TaskItemCount,
                                "..."
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -24723,17 +24723,23 @@
#------------------------------------------------------
# AA 56 垃圾收集活动任务进度信息 #tagMCActGarbageTaskInfo
# AA 57 垃圾收集活动分类结果 #tagMCActGarbageSortingResult
class  tagMCActGarbageTaskItem(Structure):
class  tagMCActGarbageSortingResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    #活动编号
                  ("GarbageSortingType", c_ubyte),    #垃圾分类类型
                  ("IsRight", c_ubyte),    #是否正确
                  ("AddEnvValue", c_ushort),    #增加环保值
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x57
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -24742,27 +24748,46 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.ItemID = 0
        self.ItemCount = 0
        self.Cmd = 0xAA
        self.SubCmd = 0x57
        self.ActNum = 0
        self.GarbageSortingType = 0
        self.IsRight = 0
        self.AddEnvValue = 0
        return
    def GetLength(self):
        return sizeof(tagMCActGarbageTaskItem)
        return sizeof(tagMCActGarbageSortingResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 56 垃圾收集活动任务进度信息 //tagMCActGarbageTaskInfo:
                                ItemID:%d,
                                ItemCount:%d
        DumpString = '''// AA 57 垃圾收集活动分类结果 //tagMCActGarbageSortingResult:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                GarbageSortingType:%d,
                                IsRight:%d,
                                AddEnvValue:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.GarbageSortingType,
                                self.IsRight,
                                self.AddEnvValue
                                )
        return DumpString
m_NAtagMCActGarbageSortingResult=tagMCActGarbageSortingResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGarbageSortingResult.Cmd,m_NAtagMCActGarbageSortingResult.SubCmd))] = m_NAtagMCActGarbageSortingResult
#------------------------------------------------------
# AA 56 垃圾收集活动任务进度信息 #tagMCActGarbageTaskInfo
class  tagMCActGarbageTask(Structure):
    _pack_ = 1
@@ -24812,8 +24837,6 @@
    ActNum = 0    #(BYTE ActNum)// 活动编号
    GarbageTaskCount = 0    #(BYTE GarbageTaskCount)//任务数
    GarbageTaskList = list()    #(vector<tagMCActGarbageTask> GarbageTaskList)//任务信息列表
    TaskItemCount = 0    #(BYTE TaskItemCount)//本次获得的垃圾收集任务奖励物品个数,可能为0
    GarbageTaskItemList = list()    #(vector<tagMCActGarbageTaskItem> GarbageTaskItemList)
    data = None
    def __init__(self):
@@ -24831,11 +24854,6 @@
            temGarbageTaskList = tagMCActGarbageTask()
            _pos = temGarbageTaskList.ReadData(_lpData, _pos)
            self.GarbageTaskList.append(temGarbageTaskList)
        self.TaskItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskItemCount):
            temGarbageTaskItemList = tagMCActGarbageTaskItem()
            _pos = temGarbageTaskItemList.ReadData(_lpData, _pos)
            self.GarbageTaskItemList.append(temGarbageTaskItemList)
        return _pos
    def Clear(self):
@@ -24846,8 +24864,6 @@
        self.ActNum = 0
        self.GarbageTaskCount = 0
        self.GarbageTaskList = list()
        self.TaskItemCount = 0
        self.GarbageTaskItemList = list()
        return
    def GetLength(self):
@@ -24857,9 +24873,6 @@
        length += 1
        for i in range(self.GarbageTaskCount):
            length += self.GarbageTaskList[i].GetLength()
        length += 1
        for i in range(self.TaskItemCount):
            length += self.GarbageTaskItemList[i].GetLength()
        return length
@@ -24870,9 +24883,6 @@
        data = CommFunc.WriteBYTE(data, self.GarbageTaskCount)
        for i in range(self.GarbageTaskCount):
            data = CommFunc.WriteString(data, self.GarbageTaskList[i].GetLength(), self.GarbageTaskList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.TaskItemCount)
        for i in range(self.TaskItemCount):
            data = CommFunc.WriteString(data, self.GarbageTaskItemList[i].GetLength(), self.GarbageTaskItemList[i].GetBuffer())
        return data
    def OutputString(self):
@@ -24880,16 +24890,12 @@
                                Head:%s,
                                ActNum:%d,
                                GarbageTaskCount:%d,
                                GarbageTaskList:%s,
                                TaskItemCount:%d,
                                GarbageTaskItemList:%s
                                GarbageTaskList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.GarbageTaskCount,
                                "...",
                                self.TaskItemCount,
                                "..."
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGarbageSorting.py
@@ -182,7 +182,7 @@
    
    ItemControler.GivePlayerItemOrMail(curPlayer, giveItemList)
    
    Sync_GarbageTaskInfo(curPlayer, actNum, taskID, giveItemList)
    Sync_GarbageTaskInfo(curPlayer, actNum, taskID)
    return True
#// AA 14 垃圾分类活动分类垃圾 #tagCMActGarbageSorting
@@ -205,6 +205,7 @@
    
    GameWorld.DebugLog("垃圾分类投放: sortingType=%s,itemIndexList=%s" % (sortingType, itemIndexList), playerID)
    
    isRight = 1
    environmentValueInfo = IpyGameDataPY.GetFuncEvalCfg("GarbageSorting", 2)
    addEnvValueTotal = 0
    garbagePack = curPlayer.GetItemManager().GetPack(ShareDefine.rptGarbage)
@@ -219,11 +220,10 @@
        if sortingType == itemSortingType:
            delCount = curItem.GetCount()
            addEnvValue = environmentValueInfo[0] * delCount
            PlayerControl.NotifyCode(curPlayer, "GarbageSortingRight", [addEnvValue])
        else:
            delCount = 1 # 错误只扣除1一个
            addEnvValue = environmentValueInfo[1] * delCount
            PlayerControl.NotifyCode(curPlayer, "GarbageSortingWrong", [addEnvValue])
            isRight = 0
            
        ItemControler.SetItemCount(curItem, max(0, curItem.GetCount() - delCount))
        addEnvValueTotal += addEnvValue
@@ -240,6 +240,14 @@
                       % (addEnvValueTotal, actEnvValueTotal, PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_Environment)), playerID)
    
    PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_Environment, actEnvValueTotal)
    # 通知结果
    clientPack = ChPyNetSendPack.tagMCActGarbageSortingResult()
    clientPack.ActNum = actNum
    clientPack.GarbageSortingType = sortingType
    clientPack.IsRight = isRight
    clientPack.AddEnvValue = addEnvValueTotal
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return
@@ -258,7 +266,7 @@
    __DoCheckFinishGarbageTask(curPlayer, actNum, taskID)
    return
def Sync_GarbageTaskInfo(curPlayer, actNum, taskID=0, awardItemList=None):
def Sync_GarbageTaskInfo(curPlayer, actNum, taskID=0):
    ## 通知垃圾收集任务信息
    syncTaskIDList = [taskID] if taskID else ChConfig.GarbageTaskList
    clientPack = ChPyNetSendPack.tagMCActGarbageTaskInfo()
@@ -271,14 +279,6 @@
        task.GarbageTaskFinishCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GarbageTaskFinishCount % (actNum, taskID))
        clientPack.GarbageTaskList.append(task)
    clientPack.GarbageTaskCount = len(clientPack.GarbageTaskList)
    if awardItemList:
        for itemID, itemCount, _ in awardItemList:
            item = ChPyNetSendPack.tagMCActGarbageTaskItem()
            item.ItemID = itemID
            item.ItemCount = itemCount
            clientPack.GarbageTaskItemList.append(item)
        clientPack.TaskItemCount = len(clientPack.GarbageTaskItemList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return