From d9f13c5e9a02f31cad2f58357acd3140809e88c1 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 11 九月 2018 19:57:27 +0800
Subject: [PATCH] fix:3477【后端】【1.0.15】【1.1.0】娲皇遗迹新增Vip特权:副本购买次数
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py | 109 ++++++++++++++++++++++++++++++------------------------
1 files changed, 61 insertions(+), 48 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
index 4ac8980..289e5ff 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
@@ -26,8 +26,9 @@
import GameWorldProcess
import PlayerFairyCeremony
import EventReport
-
-
+import PyGameData
+import ItemCommon
+import ItemControler
#当前副本地图的状态
(
@@ -45,6 +46,9 @@
FBPlayerDict_TotalPoint = 'XMYH_TotalPoint%s' # 获得的总仙盟贡献值
FBPlayerDict_HasCollect = 'XMYH_HasCollect%s' # 是否已采集
+def OnFBPlayerOnDay(curPlayer):
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, 0)
+ return
##开启副本
# @param tick 时间戳
@@ -190,7 +194,8 @@
FBCommon.SetFBStep(FB_Step_Fighting, tick)
elif fbStep == FB_Step_Fighting:
if not FBCommon.GetFBFuncOpenState(ChConfig.Def_FBMapID_FamilyParty):
- GiveJoinPrize()
+ FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 0)
+ PyGameData.g_familyPartyInfo = []
FBCommon.SetFBStep(FB_Step_Over, tick)
FBCommon.DoLogic_FBKickAllPlayer()
GameWorldProcess.CloseFB(tick)
@@ -219,44 +224,43 @@
def FamilyPartyAnswerRight(curPlayer):
#回答正确,给奖励
- mapID = GameWorld.GetMap().GetMapID()
- if mapID != ChConfig.Def_FBMapID_FamilyParty:
- return
-
- playerID = curPlayer.GetID()
- gameWorld = GameWorld.GetGameWorld()
+# mapID = GameWorld.GetMap().GetMapID()
+# if mapID != ChConfig.Def_FBMapID_FamilyParty:
+# return
+#
addPoint, addExp = IpyGameDataPY.GetFuncEvalCfg('PartyReward',2)
#仙盟贡献度
- PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty)
- totalPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalPoint%playerID)
- updPoint = totalPoint + addPoint
- gameWorld.SetGameWorldDict(FBPlayerDict_TotalPoint % playerID, updPoint)
-
-
+ PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty, True)
#答题经验更新
PlayerControl.PlayerControl(curPlayer).AddExp(addExp)
-
- exp = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExp%playerID)
- expPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExpPoint%playerID)
- totalExp = expPoint * ChConfig.Def_PerPointValue + exp
- updTotalExp = totalExp + addExp
- updExp = updTotalExp % ChConfig.Def_PerPointValue
- updExpPoint = updTotalExp / ChConfig.Def_PerPointValue
- gameWorld.SetGameWorldDict(FBPlayerDict_TotalExp % playerID, updExp)
- gameWorld.SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, updExpPoint)
-
- DoFBHelp(curPlayer, 0)
+ curAnswerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, curAnswerCnt+1)
+
+ if GameWorld.GetMap().GetMapID() == ChConfig.Def_FBMapID_FamilyParty:
+ DoFBHelp(curPlayer, 0)
return
def OnFamilyPartyStateChange(state, tick):
#活动状态变更
+ GameWorld.DebugLog(' 仙盟宴会活动状态变更 state=%s'%state)
+# if state == 0:
+# playerManager = GameWorld.GetPlayerManager()
+# for i in xrange(playerManager.GetPlayerCount()):
+# curPlayer = playerManager.GetPlayerByIndex(i)
+# if not curPlayer or curPlayer.IsEmpty():
+# continue
+# #答对题或者进过图的给参与奖励
+# curAnswerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt)
+# if FBCommon.GetEnterFBCount(curPlayer, ChConfig.Def_FBMapID_FamilyParty) or curAnswerCnt:
+# GiveJoinPrize(curPlayer)
+
+
mapID = GameWorld.GetMap().GetMapID()
if mapID != ChConfig.Def_FBMapID_FamilyParty:
return
- GameWorld.DebugLog(' 仙盟宴会活动状态变更 state=%s'%state)
if state == 1:
GameWorld.GetGameWorld().SetGameWorldDict(Map_FamilyPartyFB_StartTick, tick)
@@ -264,21 +268,15 @@
return
-
-def GiveJoinPrize():
- #参与奖
- joinAward = IpyGameDataPY.GetFuncCfg('PartyReward')
- if not joinAward:
- return
- copyMapPlayerManager = GameWorld.GetMapCopyPlayerManager()
- for i in xrange(copyMapPlayerManager.GetPlayerCount()):
-
- curPlayer = copyMapPlayerManager.GetPlayerByIndex(i)
-
- if curPlayer == None or curPlayer.IsEmpty():
- continue
- PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, joinAward, True, ShareDefine.Def_AddFAVReason_FamilyParty)
- return
+#
+#def GiveJoinPrize(curPlayer):
+# #参与奖
+# joinAward = IpyGameDataPY.GetFuncCfg('PartyReward')
+# if not joinAward:
+# return
+#
+# PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, joinAward, True, ShareDefine.Def_AddFAVReason_FamilyParty)
+# return
@@ -319,22 +317,29 @@
gameWorld = GameWorld.GetGameWorld()
playerID = curPlayer.GetPlayerID()
totalExp = FBCommon.GetFBAreaRewardExp(gameWorld, playerID)
-
+ curAnswerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt)
+ addPoint, addExp = IpyGameDataPY.GetFuncEvalCfg('PartyReward',2)
exp = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExp%playerID)
expPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExpPoint%playerID)
- totalExp = totalExp + expPoint * ChConfig.Def_PerPointValue + exp
+ totalExp = totalExp + expPoint * ChConfig.Def_PerPointValue + exp + addExp * curAnswerCnt
exp = totalExp % ChConfig.Def_PerPointValue
expPoint = totalExp / ChConfig.Def_PerPointValue
totalPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalPoint%playerID)
- totalPoint += IpyGameDataPY.GetFuncCfg('PartyReward') #加参与奖
-
+ #totalPoint += IpyGameDataPY.GetFuncCfg('PartyReward') #加参与奖
+ totalPoint += addPoint * curAnswerCnt
hasCollect = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasCollect%playerID)
getCnt = gameWorld.GetGameWorldDictByKey(ChConfig.Map_Player_AreaReward_GetCnt%playerID)
isFull = 1 if getCnt >= IpyGameDataPY.GetFuncCfg('FamilyPartyAreaAward', 3) else 0
-
-
helpDict = {FBCommon.Help_exp:exp, FBCommon.Help_expPoint:expPoint,FBCommon.Help_score:totalPoint, "hasCollect":hasCollect, "isFullExp":isFull}
+ if PyGameData.g_familyPartyInfo:
+ rankList = []
+ for i, info in enumerate(PyGameData.g_familyPartyInfo[0], 1):
+ rankList.append({"rank":i, "name":info[1], "cnt":info[2]})
+ helpDict['familyPartyRank'] = rankList
+ helpDict['familyPartyTop'] = {'name':PyGameData.g_familyPartyInfo[1], "cnt":PyGameData.g_familyPartyInfo[2]}
+
+
GameWorld.DebugLog("DoFBHelp %s" % helpDict, playerID)
FBCommon.Notify_FBHelp(curPlayer, helpDict)
return
@@ -349,6 +354,11 @@
hasCollect = GameWorld.GetGameWorld().GetGameWorldDictByKey(FBPlayerDict_HasCollect%curPlayer.GetID())
if hasCollect:
PlayerControl.NotifyCode(curPlayer, 'Party_HadCollected')
+ return
+ needSpace = len(IpyGameDataPY.GetFuncEvalCfg('FamilyPartyDesk', 3))
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+ if needSpace > packSpace:
+ PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
return
return True
@@ -372,6 +382,9 @@
GameWorld.DebugLog(' 宴会采集成功!', playerID)
#给奖励
+ itemAward = IpyGameDataPY.GetFuncEvalCfg('FamilyPartyDesk', 3)
+ for itemID, itemCount, isBind in itemAward:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
addPoint = IpyGameDataPY.GetFuncCfg('FamilyPartyDesk')
PlayerControl.NotifyCode(curPlayer, 'Party_CollectSuccess', [addPoint])
PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty)
--
Gitblit v1.8.0