From cec6b0d59b0ea6d0ea5d165183b7d93569de0761 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 01 十一月 2018 14:56:16 +0800
Subject: [PATCH] 4521 【后端】【1.2.0】N阶前防具合成,前X次红2必成,前Y次红三必成
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 3 +++
PySysDB/PySysDBPY.h | 1 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py | 15 ++++++++++-----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 2 +-
4 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 5efdcb1..c7485d2 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -70,6 +70,7 @@
struct tagItemCompound
{
WORD _ID; //合成配置编号ID
+ BYTE ComposeGroup; //合成归组类型
list MakeID; //可合成的道具ID,多个则随机一个
BYTE IsFirstSuccMakeJobItem; //首次成功是否必出本职业
list UnfixedItemID; //不固定道具ID, 多个ID时则任意一种均可
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 8f03608..aaa490d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/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-已领
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py
index 2a65f95..f87e025 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py
+++ b/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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index e73c365..de04888 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/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时则任意一种均可
--
Gitblit v1.8.0