fix:3580 【后端】【1.1.0】【1.0.15】封魔坛鼓舞修改为N次仙玉鼓舞,去除铜钱鼓舞
6个文件已修改
232 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyParty.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -923,7 +923,7 @@
    DWORD        _DataMapID;    //地图ID
    BYTE        _InspireType; //鼓舞类型
    WORD        InspireMaxLV;    //鼓舞等级限制
    DWORD        MoneyCount;    //单次消耗金钱数量
    char        MoneyCount;    //单次消耗金钱数量
};
//符印合成表
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -11558,19 +11558,15 @@
#------------------------------------------------------
#A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
class  tagMCFBEncourageInfo(Structure):
class  tagMCFBEncourageCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Cnt1", c_ubyte),    # 当前铜钱鼓舞次数
                  ("Cnt2", c_ubyte),    # 当前仙玉鼓舞次数
                  ("MoneyType", c_ubyte),    # 金钱类型
                  ("EncourageCnt", c_ubyte),    # 当前鼓舞次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x0A
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -11579,36 +11575,92 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x0A
        self.Cnt1 = 0
        self.Cnt2 = 0
        self.MoneyType = 0
        self.EncourageCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFBEncourageInfo)
        return sizeof(tagMCFBEncourageCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 0A 副本鼓舞信息通知 //tagMCFBEncourageInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                Cnt1:%d,
                                Cnt2:%d
                                MoneyType:%d,
                                EncourageCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Cnt1,
                                self.Cnt2
                                self.MoneyType,
                                self.EncourageCnt
                                )
        return DumpString
class  tagMCFBEncourageInfo(Structure):
    Head = tagHead()
    Cnt = 0    #(BYTE Cnt)//
    InfoList = list()    #(vector<tagMCFBEncourageCnt> InfoList)// 次数信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x0A
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Cnt):
            temInfoList = tagMCFBEncourageCnt()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x0A
        self.Cnt = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Cnt):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Cnt)
        for i in range(self.Cnt):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Cnt:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Cnt,
                                "..."
                                )
        return DumpString
m_NAtagMCFBEncourageInfo=tagMCFBEncourageInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Cmd,m_NAtagMCFBEncourageInfo.SubCmd))] = m_NAtagMCFBEncourageInfo
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Head.Cmd,m_NAtagMCFBEncourageInfo.Head.SubCmd))] = m_NAtagMCFBEncourageInfo
#------------------------------------------------------
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyParty.py
@@ -196,7 +196,7 @@
    ipyData = IpyGameDataPY.IPY_Data().GetQuestionBankByIndex(questionID-1)
    answerList = eval(ipyData.GetAnswer())
    ChContent = PlayerTalk.ChangeVoiceChat(content)
    ChContent = ChContent.decode(GameWorld.GetCharacterEncoding()).encode(ShareDefine.Def_Game_Character_Encoding)
    ChContent = GameWorld.CodeToGBK(ChContent)
    ChContent = ChContent.strip()
    isRight = ChContent in answerList
#    if curPlayer.GetMapID() != ChConfig.Def_FBMapID_FamilyParty:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -11558,19 +11558,15 @@
#------------------------------------------------------
#A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
class  tagMCFBEncourageInfo(Structure):
class  tagMCFBEncourageCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Cnt1", c_ubyte),    # 当前铜钱鼓舞次数
                  ("Cnt2", c_ubyte),    # 当前仙玉鼓舞次数
                  ("MoneyType", c_ubyte),    # 金钱类型
                  ("EncourageCnt", c_ubyte),    # 当前鼓舞次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x0A
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -11579,36 +11575,92 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x0A
        self.Cnt1 = 0
        self.Cnt2 = 0
        self.MoneyType = 0
        self.EncourageCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFBEncourageInfo)
        return sizeof(tagMCFBEncourageCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 0A 副本鼓舞信息通知 //tagMCFBEncourageInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                Cnt1:%d,
                                Cnt2:%d
                                MoneyType:%d,
                                EncourageCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Cnt1,
                                self.Cnt2
                                self.MoneyType,
                                self.EncourageCnt
                                )
        return DumpString
class  tagMCFBEncourageInfo(Structure):
    Head = tagHead()
    Cnt = 0    #(BYTE Cnt)//
    InfoList = list()    #(vector<tagMCFBEncourageCnt> InfoList)// 次数信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x0A
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Cnt):
            temInfoList = tagMCFBEncourageCnt()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x0A
        self.Cnt = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Cnt):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Cnt)
        for i in range(self.Cnt):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Cnt:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Cnt,
                                "..."
                                )
        return DumpString
m_NAtagMCFBEncourageInfo=tagMCFBEncourageInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Cmd,m_NAtagMCFBEncourageInfo.SubCmd))] = m_NAtagMCFBEncourageInfo
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Head.Cmd,m_NAtagMCFBEncourageInfo.Head.SubCmd))] = m_NAtagMCFBEncourageInfo
#------------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
@@ -1858,7 +1858,7 @@
## 副本行为 - 鼓舞buff
#  @param curPlayer 玩家
#  @param key 副本玩家字典key
#  @param encourageType 1-铜钱 2-消耗绑玉或仙玉
#  @param encourageType 金钱类型
#  @param tick 当前时间
#  @param isMaxlv 是否直接满级
#  @return None
@@ -1875,21 +1875,20 @@
    encourageLV = gameFB.GetPlayerGameFBDictByKey(curPlayerID, key)
    encourageCntKey = 'FbEncourageCnt_%s' % encourageType
    encourageCnt = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey)
    if encourageLV >= 10:
    maxLV = IpyGameDataPY.GetFuncEvalCfg('FBEncourageBuff', 2, {}).get(curMapID, 0)
    if encourageLV >= maxLV:
        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_93643")
        return
    if encourageCnt >= maxCnt:
        if encourageType == 1:
        if encourageType == IPY_GameWorld.TYPE_Price_Silver_Money:
            PlayerControl.NotifyCode(curPlayer, "Xjmj_CopperInspireFull")
        else:
            PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_93643")
        return
    
    encourageCost = ipyData.GetMoneyCount()
    if encourageType == 1:
        costMoneyList = [[IPY_GameWorld.TYPE_Price_Silver_Money, encourageCost]]
    else:
        costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, ShareDefine.TYPE_Price_Gold_Paper_Money, encourageCost)
    encourageCost = eval(ipyData.GetMoneyCount())
    costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, encourageType, encourageCost)
    if not costMoneyList:
        return
    
@@ -1910,7 +1909,8 @@
    gameFB.SetPlayerGameFBDict(curPlayerID, key, encourageLV+1)
    gameFB.SetPlayerGameFBDict(curPlayerID, encourageCntKey, encourageCnt+1)
    #GameWorld.Log("FbEncourageBuff encourage nextLV=%s success" % encourageLV)
    PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_628920", [(encourageLV+1)*10])
    addHurtNum = IpyGameDataPY.GetFuncEvalCfg('FBEncourageBuff', 3, {}).get(curMapID, 0)
    PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_628920", [(encourageLV+1)*addHurtNum])
    SendFBEncourageInfo(curPlayer, encourageLV+1)
    #成就
    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FBEncourage, 1, [curMapID])
@@ -1964,15 +1964,25 @@
#  @return None
def SendFBEncourageInfo(curPlayer, lv):
    #//A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
    curMapID = curPlayer.GetMapID()
    curMapID = GetRecordMapID(curMapID)
    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('FbEncourage', {'DataMapID':curMapID}, True)
    if not ipyDataList:
        return
    encourageInfo = ChPyNetSendPack.tagMCFBEncourageInfo()
    encourageInfo.Clear()
    #encourageInfo.LV = lv
    encourageInfo.InfoList = []
    encourageCntKey = 'FbEncourageCnt_%s'
    gameFB = GameWorld.GetGameFB()
    curPlayerID = curPlayer.GetID()
    encourageInfo.Cnt1 = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey%1)
    encourageInfo.Cnt2 = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey%2)
    NetPackCommon.SendFakePack(curPlayer, encourageInfo)
    for ipyData in ipyDataList:
        inspireType = ipyData.GetInspireType()
        packData = ChPyNetSendPack.tagMCFBEncourageCnt()
        packData.MoneyType = inspireType
        packData.EncourageCnt = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey % inspireType)
        encourageInfo.InfoList.append(packData)
    encourageInfo.Cnt = len(encourageInfo.InfoList)
    NetPackCommon.SendFakePack(curPlayer, encourageInfo)
    return
## 获取玩家所在副本区域福利倍值
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -750,7 +750,7 @@
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "InspireType", 1),
                        ("WORD", "InspireMaxLV", 0),
                        ("DWORD", "MoneyCount", 0),
                        ("char", "MoneyCount", 0),
                        ),
                "RuneCompound":(
@@ -2466,7 +2466,7 @@
        self.DataMapID = 0
        self.InspireType = 0
        self.InspireMaxLV = 0
        self.MoneyCount = 0
        self.MoneyCount = ""
        return
        
    def GetDataMapID(self): return self.DataMapID # 地图ID