7个文件已修改
44 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -1720,6 +1720,7 @@
    BYTE        LuckyGridNum;    //幸运格子编号
    dict        GridNumMaxLimitInfo;    //格子最大产出次数限制,{"格子":最大可产出次数, ...}
    list        NotifyGridNumList;    //需要额外广播的格子
    char        NotifyKey;    //广播key
    BYTE        AwardMoneyType;    //额外奖励货币类型
    WORD        AwardMoneyValue;    //单次奖励货币数
};
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -7890,6 +7890,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CountID", c_int),    # 计数ID,客户端与策划约定,可以是NPCID或其他
                  ("Type", c_ubyte),    # 1-杀怪
                  ]
    def __init__(self):
@@ -7907,6 +7908,7 @@
        self.Cmd = 0xA2
        self.SubCmd = 0x25
        self.CountID = 0
        self.Type = 0
        return
    def GetLength(self):
@@ -7919,12 +7921,14 @@
        DumpString = '''//A2 25 客户端任务计数 // tagCMClientTaskCount:
                                Cmd:%s,
                                SubCmd:%s,
                                CountID:%d
                                CountID:%d,
                                Type:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CountID
                                self.CountID,
                                self.Type
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -7890,6 +7890,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CountID", c_int),    # 计数ID,客户端与策划约定,可以是NPCID或其他
                  ("Type", c_ubyte),    # 1-杀怪
                  ]
    def __init__(self):
@@ -7907,6 +7908,7 @@
        self.Cmd = 0xA2
        self.SubCmd = 0x25
        self.CountID = 0
        self.Type = 0
        return
    def GetLength(self):
@@ -7919,12 +7921,14 @@
        DumpString = '''//A2 25 客户端任务计数 // tagCMClientTaskCount:
                                Cmd:%s,
                                SubCmd:%s,
                                CountID:%d
                                CountID:%d,
                                Type:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CountID
                                self.CountID,
                                self.Type
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -107,6 +107,7 @@
import NPCCommon
import PlayerVip
import PlayerGoldInvest
import PlayerPrestigeSys
import GameObj
import math
@@ -5198,10 +5199,13 @@
# {
#    tagHead        Head;
#    DWORD        CountID;        // 计数ID,客户端与策划约定,可以是NPCID或其他
#    BYTE        Type;    // 1-杀怪
# };
#===============================================================================
def ClientTaskCount(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    countType = clientData.Type
    RunQuestEvent(curPlayer, "on_client_by_id", clientData.CountID, Def_RunQuestType_Normal)
    if countType == 1:
        PlayerPrestigeSys.AddRealmTaskValue(curPlayer, PlayerPrestigeSys.RealmTaskType_KillNPC, 1)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1367,6 +1367,7 @@
                        ("BYTE", "LuckyGridNum", 0),
                        ("dict", "GridNumMaxLimitInfo", 0),
                        ("list", "NotifyGridNumList", 0),
                        ("char", "NotifyKey", 0),
                        ("BYTE", "AwardMoneyType", 0),
                        ("WORD", "AwardMoneyValue", 0),
                        ),
@@ -4524,8 +4525,9 @@
    def GetLuckyGridNum(self): return self.attrTuple[15] # 幸运格子编号 BYTE
    def GetGridNumMaxLimitInfo(self): return self.attrTuple[16] # 格子最大产出次数限制,{"格子":最大可产出次数, ...} dict
    def GetNotifyGridNumList(self): return self.attrTuple[17] # 需要额外广播的格子 list
    def GetAwardMoneyType(self): return self.attrTuple[18] # 额外奖励货币类型 BYTE
    def GetAwardMoneyValue(self): return self.attrTuple[19] # 单次奖励货币数 WORD
    def GetNotifyKey(self): return self.attrTuple[18] # 广播key char
    def GetAwardMoneyType(self): return self.attrTuple[19] # 额外奖励货币类型 BYTE
    def GetAwardMoneyValue(self): return self.attrTuple[20] # 单次奖励货币数 WORD
# 寻宝产出库表
class IPY_TreasureHouse():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -5195,9 +5195,9 @@
                PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_KillNPC)
                PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_KillNPC)
                PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_KillNPC)
            PlayerPrestigeSys.AddRealmTaskValue(curPlayer, PlayerPrestigeSys.RealmTaskType_KillNPC, 1)
            PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_KillSpecificNPC, 1, [npcID])
        PlayerPrestigeSys.AddRealmTaskValue(curPlayer, PlayerPrestigeSys.RealmTaskType_KillNPC, 1)
        if ChConfig.IsGameBoss(curNPC):
            OnPlayerKillBoss(curPlayer, npcID, mapID, False)
        return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -235,6 +235,7 @@
    GameWorld.DebugLog("beSureCountDict=%s" % beSureCountDict, playerID)
    GameWorld.DebugLog("ensureCount=%s, %s" % (ensureCount, ensureRateList), playerID)
    notifyGridNumList = setIpyData.GetNotifyGridNumList() # 额外需要广播的格子,幸运必出、次数必出可不配置
    notifyKey = setIpyData.GetNotifyKey()
    gridNumMaxLimitInfo = setIpyData.GetGridNumMaxLimitInfo() # {"格子":最大可产出次数, ...}
    gridNumCountInfo = {} # 有限制产出次数的格子已经产出数
    for gridNumStr in gridNumMaxLimitInfo.keys():
@@ -422,8 +423,8 @@
        itemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, False, curPlayer=curPlayer)
        mailItemDict = ItemCommon.GetMailItemDict(itemObj)
        
        if int(gridNum) in notifyGridNumList:
            PlayerControl.WorldNotify(0, "HappyXB", [curPlayer.GetPlayerName(), itemID, itemObj.GetUserData(), itemCount])
        if int(gridNum) in notifyGridNumList and notifyKey:
            PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), itemID, itemObj.GetUserData(), itemCount])
            
        if mailItemList or not itemControl.PutInItem(packType, itemObj, event=[ChConfig.ItemGive_Treasure, False, {}]):
            mailItemList.append(mailItemDict)
@@ -506,7 +507,7 @@
    return itemID
def GetTreasureCntAward(curPlayer, treasureType, needTreasureCnt):
    ## 领取天道树奖励
    ## 领取寻宝累计次数奖励
    needTreasureCnt = GameWorld.ToIntDef(needTreasureCnt, 0)
    playerID = curPlayer.GetPlayerID()
    ipyData = IpyGameDataPY.GetIpyGameData("TreasureCntAward", treasureType, needTreasureCnt)
@@ -532,7 +533,7 @@
    GameWorld.DebugLog("领取寻宝次数奖励! treasureType=%s,needTreasureCnt=%s,awardIndex=%s,awardState=%s,updState=%s" 
                       % (treasureType, needTreasureCnt, awardIndex, awardState, updState), playerID)
    
    ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList)
    ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["TreasureCntAward", False, {}])
    Sync_TreasureInfo(curPlayer, [treasureType])
    return