4521 【后端】【1.2.0】N阶前防具合成,前X次红2必成,前Y次红三必成
4个文件已修改
21 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -70,6 +70,7 @@
struct    tagItemCompound
{
    WORD        _ID;    //合成配置编号ID
    BYTE        ComposeGroup;    //合成归组类型
    list        MakeID;    //可合成的道具ID,多个则随机一个
    BYTE        IsFirstSuccMakeJobItem;    //首次成功是否必出本职业
    list        UnfixedItemID;    //不固定道具ID, 多个ID时则任意一种均可
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3503,7 +3503,7 @@
Def_PDict_IsAddReviveTired = "IsAddReviveTired"  # 死亡是否增加复活疲劳
Def_PDict_HadCompoundWing = "HadCompoundWing"  # 是否合成过一代翅膀
Def_PDict_ComposeMustSuccess = "ComposeMustSuccess_%s"  # 前X次合成必定成功,参数(合成归组)
Def_PDict_FirstSuccMakeJobItem = "FirstSuccMakeJobItem_%s"  # 首次合成成功给本职业物品记录,参数为(合成ID)
Def_PDict_DownloadAwardState = "DownloadAwardState"  # 分支下载奖励状态 0-未领 1-已领
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py
@@ -71,6 +71,7 @@
        GameWorld.ErrLog("找不到该合成表数据配置! ID=%s" % compoundID)
        return
    
    composeGroup = ipyData.GetComposeGroup()
    makeIDList = ipyData.GetMakeID()
    unfixedItemIDList = ipyData.GetUnfixedItemID()
    fixedItemIDList = ipyData.GetFixedItemID()
@@ -223,12 +224,16 @@
        totalSuccRate = min(successRateMax, totalSuccRate)
    GameWorld.DebugLog("合成成功率: successRate=%s,addSuccRate=%s,incRate=%s,successRateMax=%s,totalSuccRate=%s" 
                       % (successRate, addSuccRate, incRate, successRateMax, totalSuccRate), playerID)
    # 首次合成一代翅膀成功率百分百
    if makeItemData.GetType() == ChConfig.Def_ItemType_retWing and ItemCommon.GetWingLV(makeItemData) == 1:
        if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HadCompoundWing):
    # 前X次合成成功率百分百
    composeMustSuccessDict = IpyGameDataPY.GetFuncEvalCfg("ComposeMustSuccess", 1, {})
    if composeGroup in composeMustSuccessDict:
        mustSuccessCountTotal = composeMustSuccessDict[composeGroup]
        hisComposeCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ComposeMustSuccess % composeGroup)
        if hisComposeCount < mustSuccessCountTotal:
            totalSuccRate = ShareDefine.Def_MaxRateValue
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HadCompoundWing, 1)
            GameWorld.DebugLog("首次合成一代翅膀,必定成功!totalSuccRate=%s" % totalSuccRate, playerID)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ComposeMustSuccess % composeGroup, hisComposeCount + 1)
            GameWorld.DebugLog("前X次合成必定成功!composeGroup=%s,hisComposeCount=%s,mustSuccessCountTotal=%s,totalSuccRate=%s"
                               % (composeGroup, hisComposeCount, mustSuccessCountTotal, totalSuccRate), playerID)
            
    # 合成成功
    maxRateValue = ShareDefine.Def_MaxRateValue
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -85,6 +85,7 @@
                "ItemCompound":(
                        ("WORD", "ID", 1),
                        ("BYTE", "ComposeGroup", 0),
                        ("list", "MakeID", 0),
                        ("BYTE", "IsFirstSuccMakeJobItem", 0),
                        ("list", "UnfixedItemID", 0),
@@ -1178,6 +1179,7 @@
    
    def __init__(self):
        self.ID = 0
        self.ComposeGroup = 0
        self.MakeID = []
        self.IsFirstSuccMakeJobItem = 0
        self.UnfixedItemID = []
@@ -1194,6 +1196,7 @@
        return
        
    def GetID(self): return self.ID # 合成配置编号ID
    def GetComposeGroup(self): return self.ComposeGroup # 合成归组类型
    def GetMakeID(self): return self.MakeID # 可合成的道具ID,多个则随机一个
    def GetIsFirstSuccMakeJobItem(self): return self.IsFirstSuccMakeJobItem # 首次成功是否必出本职业
    def GetUnfixedItemID(self): return self.UnfixedItemID # 不固定道具ID, 多个ID时则任意一种均可