From 53124044116c9fdf6f79884c63550a5f192b6ea3 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 31 八月 2018 16:38:54 +0800
Subject: [PATCH] fix:3094 【后端】仙盟兽粮,修改为可手动捐献
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 22 +++++-----
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 43 ++++++++++++---------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 22 +++++++----
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py | 3 +
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyBoss.py | 6 +-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestManager.py | 2 +
PySysDB/PySysDBG.h | 1
7 files changed, 58 insertions(+), 41 deletions(-)
diff --git a/PySysDB/PySysDBG.h b/PySysDB/PySysDBG.h
index 60edbb5..ac7d27f 100644
--- a/PySysDB/PySysDBG.h
+++ b/PySysDB/PySysDBG.h
@@ -28,6 +28,7 @@
BYTE EliteCnt; //精英数量
DWORD NeedMoney; //升级需要资金
DWORD WeekMissionMoneyMax; //每周任务最大可获得仙盟资金
+ BYTE BossFBCnt; //BOSS副本次数
};
//集市查询表
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
index 9943950..49d2bb0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -205,7 +205,7 @@
Def_FamilySetting_MaxZhangLaoCnt, #最大长老数
Def_FamilySetting_LvUpCost, #家族升级需要消耗升级所需资金
Def_FamilySetting_WeekMissionMoneyMax,#每周任务最大可获得仙盟资金
-Def_FamilySetting_SystemLostMoney, #系统每日维护费
+Def_FamilySetting_BossFBCnt, #BOSS副本次数
Def_FamilySetting_Max, #表长度异常(必须放最后)
) = range(0, 6 + 1)
FamilySettingDict = {
@@ -214,6 +214,7 @@
Def_FamilySetting_MaxZhangLaoCnt:'EliteCnt',
Def_FamilySetting_LvUpCost:'NeedMoney',
Def_FamilySetting_WeekMissionMoneyMax:'WeekMissionMoneyMax',
+ Def_FamilySetting_BossFBCnt:'BossFBCnt',
}
#家族成员接口对应家族配置表索引
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index e807a07..7bd60ad 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -53,6 +53,7 @@
("BYTE", "EliteCnt", 0),
("DWORD", "NeedMoney", 0),
("DWORD", "WeekMissionMoneyMax", 0),
+ ("BYTE", "BossFBCnt", 0),
),
"MarketQuery":(
@@ -299,7 +300,8 @@
self.DeputyLeaderCnt = 0
self.EliteCnt = 0
self.NeedMoney = 0
- self.WeekMissionMoneyMax = 0
+ self.WeekMissionMoneyMax = 0
+ self.BossFBCnt = 0
return
def GetFamilyLV(self): return self.FamilyLV # 仙盟等级
@@ -307,7 +309,8 @@
def GetDeputyLeaderCnt(self): return self.DeputyLeaderCnt # 副盟主数量
def GetEliteCnt(self): return self.EliteCnt # 精英数量
def GetNeedMoney(self): return self.NeedMoney # 升级需要资金
- def GetWeekMissionMoneyMax(self): return self.WeekMissionMoneyMax # 每周任务最大可获得仙盟资金
+ def GetWeekMissionMoneyMax(self): return self.WeekMissionMoneyMax # 每周任务最大可获得仙盟资金
+ def GetBossFBCnt(self): return self.BossFBCnt # BOSS副本次数
# 集市查询表
class IPY_MarketQuery():
@@ -896,22 +899,26 @@
for i, strValue in enumerate(rowList):
if i == 0:
continue
- fieldName = fieldList[i][1]
- strValue = strValue.lstrip().rstrip()
- if strValue.isdigit():
- configValue = int(strValue)
- elif (strValue.startswith("{") and strValue.endswith("}")) \
- or (strValue.startswith("[") and strValue.endswith("]")) \
- or (strValue.startswith("(") and strValue.endswith(")")):
- configValue = eval(strValue)
- elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:
- configValue = self.__StrToDict(strValue)
- elif ChConfig.Def_Str_Montant in strValue:
- configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))
- elif strValue in ["-", ""]:
- configValue = ""
- else:
- configValue = self.__ToFloat(strValue)
+ try:
+ fieldName = fieldList[i][1]
+ strValue = strValue.lstrip().rstrip()
+ if strValue.isdigit():
+ configValue = int(strValue)
+ elif (strValue.startswith("{") and strValue.endswith("}")) \
+ or (strValue.startswith("[") and strValue.endswith("]")) \
+ or (strValue.startswith("(") and strValue.endswith(")")):
+ configValue = eval(strValue)
+ elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:
+ configValue = self.__StrToDict(strValue)
+ elif ChConfig.Def_Str_Montant in strValue:
+ configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))
+ elif strValue in ["-", ""]:
+ configValue = ""
+ else:
+ configValue = self.__ToFloat(strValue)
+ except BaseException:
+ ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue))
+ raise
setattr(funcConfigObj, fieldName, configValue)
self.ipyFuncConfigDict[key] = funcConfigObj
return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index fe9b667..db968a2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -2464,13 +2464,13 @@
familyMoney = family.GetMoney()
- useMoney = GetFamilySetting(family, ChConfig.Def_FamilySetting_SystemLostMoney)
-
- #家族资金不足, 解散
- if familyMoney < useMoney:
- family.SetMoney(0)
- delFamilyList.append(family)
- continue
+# useMoney = GetFamilySetting(family, ChConfig.Def_FamilySetting_SystemLostMoney)
+#
+# #家族资金不足, 解散
+# if familyMoney < useMoney:
+# family.SetMoney(0)
+# delFamilyList.append(family)
+# continue
#多久没人上线,解散
offlineDay = GetLastOnlineMemberOfflineTime(family)
GameWorld.DebugLog(' 仙盟%s %s天没人上线了'%(family.GetID(), offlineDay))
@@ -2486,10 +2486,10 @@
ChConfig.Def_Family_ClearRequestAddNote_Day)
#此处不通知地图服务器家族资金变更
- family.SetMoney(familyMoney - useMoney)
- if useMoney > 0:
- #帮会日常维持消耗{%S1%}银两帮会资金
- PlayerControl.FamilyNotify(family.GetID(), 'jiazu_lhs_272921', [useMoney])
+# family.SetMoney(familyMoney - useMoney)
+# if useMoney > 0:
+# #帮会日常维持消耗{%S1%}银两帮会资金
+# PlayerControl.FamilyNotify(family.GetID(), 'jiazu_lhs_272921', [useMoney])
#自动传位
__AutoChangeLeader(family)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyBoss.py
index b975aea..77af721 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyBoss.py
@@ -35,9 +35,9 @@
def GetFamilyBossIsOpen(fActionData): return fActionData.GetValue2()
def SetFamilyBossIsOpen(fActionData, isOpen): return fActionData.SetValue2(isOpen)
-def GetFamilyBossLimitCnt():
+def GetFamilyBossLimitCnt(family):
'''仙盟BOSS每周次数限制'''
- return IpyGameDataPY.GetFuncCfg('FamilyBossOpen', 4)
+ return PlayerFamily.GetFamilySetting(family, ChConfig.Def_FamilySetting_BossFBCnt)#IpyGameDataPY.GetFuncCfg('FamilyBossOpen', 4)
def GetFamilyBossCostFood():
'''仙盟BOSS开启消耗兽粮'''
@@ -125,7 +125,7 @@
curWeekOpenCnt = GetFamilyBossOpenCnt(familyBossFBData)
# 次数判断
- maxOpenCnt = GetFamilyBossLimitCnt()
+ maxOpenCnt = GetFamilyBossLimitCnt(curFamily)
if curWeekOpenCnt >= maxOpenCnt:
GameWorld.Log(" 本周开启次数=%s >= 最大开启次数=%s" % (curWeekOpenCnt, maxOpenCnt))
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestManager.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestManager.py
index e356700..1dd4708 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestManager.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestManager.py
@@ -1274,12 +1274,14 @@
Item = curRunAroundRewardNode.GetAttribute("item")
minLV = GameWorld.ToIntDef(curRunAroundRewardNode.GetAttribute("minlv"), 0)
maxLV = GameWorld.ToIntDef(curRunAroundRewardNode.GetAttribute("maxlv"), 0)
+ familyHornor = GameWorld.ToIntDef(curRunAroundRewardNode.GetAttribute("familyhornor"), 0)
#继承每日奖励,参考设置
dayEventRewardData = RunAroundRewardData()
dayEventRewardData.Exp = Exp
dayEventRewardData.AddExp = addExp
dayEventRewardData.Money = Money
dayEventRewardData.Item = Item
+ dayEventRewardData.PlayerFamilyHornor = familyHornor
allRunAround.Rewards[(minLV, maxLV)] = dayEventRewardData
if minLV < allRunAround.MinLV:
allRunAround.MinLV = minLV
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index fc57f03..b8c4cc1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -92,7 +92,7 @@
Def_Run_Around_Reward_Exp = "run_around_exp" #跑环任务的奖励
Def_Run_Around_Reward_ExpPoint = "run_around_exp_point" #跑环任务的奖励
Def_Run_Around_Reward_Money = "run_around_money" #跑环任务的给钱
-
+Def_Run_Around_Reward_FamilyHornor = "run_around_familyhornor" #跑环任务的仙盟贡献奖励
Def_Run_Around_Reward_Multiple = "run_around_multiple" #跑环任务的奖励翻倍数
Def_Task_Reward_Per = "reward_per" #领取任务奖励倍数百分比; 150代表1.5倍
@@ -2864,9 +2864,9 @@
packList=[IPY_GameWorld.rptItem], isSuite=False,
addAttrLV=0, isLucky=False, skillBoostEff=[], holeCount=0,
equipIndex= -1, isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[]):
- if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
- #仙盟兽粮自动使用
- return
+# if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
+# #仙盟兽粮自动使用
+# return
#任务给予物品应该只能放入万能背包和背包
itemControl = ItemControler.PlayerItemControler(curPlayer)
@@ -5448,9 +5448,9 @@
rewardList = __GetRunAroundReward(curPlayer, curMission)
if rewardList:
- curExp, curMoney, itemID, itemCount = rewardList
+ curExp, curMoney, curFamilyHornor, itemID, itemCount = rewardList
else:
- curExp, curMoney, itemID, itemCount = 0, 0, 0, 0
+ curExp, curMoney, curFamilyHornor, itemID, itemCount = 0, 0, 0, 0
curMission.SetProperty(Def_Run_Around_Reward_Exp, curExp % ChConfig.Def_PerPointValue)
curMission.SetProperty(Def_Run_Around_Reward_ExpPoint, curExp / ChConfig.Def_PerPointValue)
@@ -5458,6 +5458,8 @@
curMission.SetProperty(Def_Day_Event_Reward_Item_Id, itemID)
curMission.SetProperty(Def_Day_Event_Reward_Item_Count, itemCount)
+ curMission.SetProperty(Def_Run_Around_Reward_FamilyHornor, curFamilyHornor)
+
return
@@ -5486,14 +5488,14 @@
curExp = eval(IpyGameDataPY.GetFuncCfg('RunTaskExp'))
curExp += curLVRunAroundReward.AddExp
curMoney = baseMoney
-
+ curFamilyHornor = curLVRunAroundReward.PlayerFamilyHornor
itemInfo = curLVRunAroundReward.Item
if itemInfo:
itemID, itemCount = eval(itemInfo)
else:
itemID, itemCount = 0, 0
- return (curExp, curMoney, itemID, itemCount)
+ return (curExp, curMoney, curFamilyHornor, itemID, itemCount)
#---------------------------------------------------------------------
##给予跑环奖励
@@ -5521,6 +5523,10 @@
addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
PlayerControl.GiveMoney(curPlayer, runAroundReward.MoneyType, money, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
+ familyHornor = curMission.GetProperty(Def_Run_Around_Reward_FamilyHornor)
+ if familyHornor:
+ PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, familyHornor, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson, True)
+
item_id = curMission.GetProperty(Def_Day_Event_Reward_Item_Id)
item_count = curMission.GetProperty(Def_Day_Event_Reward_Item_Count)
--
Gitblit v1.8.0