From 5ad2bd52bfbdf91a93ecf3a6c98c5e578edabb2b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 26 三月 2019 17:18:50 +0800
Subject: [PATCH] 6373 【后端】【2.0】删除无用功能代码、封包、配置(页游天梯)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py | 273 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 209 insertions(+), 64 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 0d53221..a3c589a 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
@@ -25,29 +25,35 @@
import IpyGameDataPY
import GameWorldProcess
import PlayerFairyCeremony
+import PlayerNewFairyCeremony
+import PlayerActLogin
import EventReport
-
-
+import PyGameData
+import ItemCommon
+import ItemControler
+import Item_AddLV
#当前副本地图的状态
(
-FB_Step_Open, # 地图开启
-FB_Step_Fighting, # 战斗中
-FB_Step_Over, # 副本关闭
+FB_Step_Open, # 地图开启
+FB_Step_Fighting, # 战斗中
+FB_Step_Over, # 副本关闭
) = range(3)
#---战盟副本---
-Map_FamilyPartyFB_FamilyID = "FamilyPartyFB_FamilyID" # 对应的家族id
-Map_FamilyPartyFB_StartTick = "Map_FamilyPartyFB_StartTick" # 副本开始时间
-GameFBDict_LastEnterFbDay = 'LastEnterFbDay_%s' #上次进入活动的开服天
-FBPlayerDict_TotalExp = 'XMYH_TotalExp%s' # 获得的总经验
-FBPlayerDict_TotalExpPoint = 'XMYH_TotalExpPoint%s' # 获得的总经验点
-FBPlayerDict_TotalPoint = 'XMYH_TotalPoint%s' # 获得的总仙盟贡献值
-FBPlayerDict_HasCollect = 'XMYH_HasCollect%s' # 是否已采集
+Map_FamilyPartyFB_StartTick = "Map_FamilyPartyFB_StartTick" # 副本开始时间
+GameFBDict_LastEnterFbDay = 'LastEnterFbDay_%s' #上次进入活动的开服天
+FBPlayerDict_TotalExp = 'XMYH_TotalExp%s' # 获得的总经验
+FBPlayerDict_TotalExpPoint = 'XMYH_TotalExpPoint%s' # 获得的总经验点
+FBPlayerDict_TotalPoint = 'XMYH_TotalPoint%s' # 获得的总仙盟贡献值
+FBPlayerDict_HasCollect = 'XMYH_HasCollect%s' # 是否已采集
+FBPlayerDict_HasSit = 'XMYH_HasSit%s' # 是否已传功
+g_familyMapPlayerIDDict = {}#{lineid:[playerid,..]}
def OnFBPlayerOnDay(curPlayer):
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, 0)
return
+
##开启副本
# @param tick 时间戳
@@ -55,8 +61,7 @@
# @remarks 开启副本
def OnOpenFB(tick):
gameFB = GameWorld.GetGameFB()
- gameFB.SetGameFBDict(Map_FamilyPartyFB_FamilyID, 0)
- gameFB.ClearAllPlayerGameFBDict() # 清除所有玩家对应的副本字典信息
+ gameFB.ClearAllPlayerGameFBDict() # 清除所有玩家对应的副本字典信息
gameFB.SetGameFBDict(ChConfig.Map_FBDict_NotifyStart, 0)
return
@@ -105,6 +110,7 @@
# @return posX, posY, 随机半径(可选)
def OnGetFBEnterPos(curPlayer, mapID, lineId, ipyEnterPosInfo, tick):
return ipyEnterPosInfo
+
##是否可以进入
# @param ask 请求结构体
@@ -133,12 +139,14 @@
#可进入
return IPY_GameWorld.cmeAccept
+
##玩家进入副本
# @param curPlayer 玩家实例
# @param tick 时间戳
# @return 无意义
# @remarks 玩家进入副本
def DoEnterFB(curPlayer, tick):
+ global g_familyMapPlayerIDDict
mapID = GameWorld.GetGameWorld().GetMapID()
playerID = curPlayer.GetPlayerID()
if not __CheckEnter(curPlayer, mapID):
@@ -152,9 +160,7 @@
PlayerControl.PlayerLeaveFB(curPlayer)
return
curPlayer.Sync_TimeTick(IPY_GameWorld.tttTowerTake, 0, closeFB_RemainTick, True)
- GameWorld.DebugLog('closeFB_RemainTick=%s'%closeFB_RemainTick)
- if not gameFB.GetGameFBDictByKey(Map_FamilyPartyFB_FamilyID):
- gameFB.SetGameFBDict(Map_FamilyPartyFB_FamilyID, curPlayer.GetFamilyID())
+ GameWorld.DebugLog('closeFB_RemainTick=%s' % closeFB_RemainTick)
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
if gameWorld.GetGameWorldDictByKey(GameFBDict_LastEnterFbDay % playerID) != openServerDay + 1:
@@ -163,42 +169,64 @@
gameWorld.SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, 0)
gameWorld.SetGameWorldDict(FBPlayerDict_TotalPoint % playerID, 0)
gameWorld.SetGameWorldDict(FBPlayerDict_HasCollect % playerID, 0)
+ gameWorld.SetGameWorldDict(FBPlayerDict_HasSit % playerID, 0)
+
FBCommon.ClearAreaRewardRecord(playerID)
FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_FamilyParty)
PlayerFamily.AddFamilyActivity(curPlayer, ShareDefine.FamilyActive_Party)
EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_FamilyParty, 0, ChConfig.CME_Log_Start)
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_FamilyParty, 1)
+ PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_FamilyParty, 1)
+ PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_FamilyParty, 1)
+ lineID = GameWorld.GetGameWorld().GetLineID()
+ if lineID not in g_familyMapPlayerIDDict:
+ g_familyMapPlayerIDDict[lineID] = []
+ if playerID not in g_familyMapPlayerIDDict[lineID]:
+ g_familyMapPlayerIDDict[lineID].append(playerID)
- DoFBHelp(curPlayer, tick)
+ playerManager = GameWorld.GetMapCopyPlayerManager()
+ for index in xrange(playerManager.GetPlayerCount()):
+ curPlayer = playerManager.GetPlayerByIndex(index)
+ if not curPlayer:
+ continue
+ DoFBHelp(curPlayer, tick, True)
+
return
+
def __GetRemainTick(tick):
##活动剩余毫秒
mapID = GameWorld.GetMap().GetMapID()
- startTick = GameWorld.GetGameWorld().GetGameWorldDictByKey(Map_FamilyPartyFB_StartTick)
- closeFB_RemainTick = max(0, FBCommon.GetFBLineStepTime(mapID)[0]*1000 - (tick - startTick))
+ startTick = GameWorld.GetGameWorld().GetGameWorldDictByKey(Map_FamilyPartyFB_StartTick)
+ closeFB_RemainTick = max(0, FBCommon.GetFBLineStepTime(mapID)[0] * 1000 - (tick - startTick))
return closeFB_RemainTick
+
##副本定时器
# @param tick 时间戳
# @return 返回值无意义
# @remarks 副本定时器
def OnProcess(tick):
+ familyID = GameWorld.GetGameWorld().GetPropertyID()
+ if not familyID:
+ return
gameFB = GameWorld.GetGameFB()
fbStep = gameFB.GetFBStep()
+
#GameWorld.DebugLog(" OnProcess...")
if fbStep == FB_Step_Open:
if FBCommon.GetFBFuncOpenState(ChConfig.Def_FBMapID_FamilyParty):
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)
else:
- FBCommon.DoLogicAreaReward("FamilyPartyAreaAward", tick)
+ #FBCommon.DoLogicAreaReward("FamilyPartyAreaAward", tick)
FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 10000)
mapID = GameWorld.GetMap().GetMapID()
@@ -209,15 +237,12 @@
remaindTick = max(0, __GetRemainTick(tick) - 1000)
if remaindTick <= (notifySecond + 1) * 1000:
#remaindSecond = remaindTick / 1000
- familyID = gameFB.GetGameFBDictByKey(Map_FamilyPartyFB_FamilyID)
+
PlayerControl.FamilyNotify(familyID, "Party_OverTime", [notifySecond])
GameWorld.GetGameFB().SetGameFBDict(ChConfig.Map_FBDict_NotifyStart, notifyIndex + 1)
-
return
-
-
def FamilyPartyAnswerRight(curPlayer):
@@ -227,14 +252,14 @@
# return
#
- addPoint, addExp = IpyGameDataPY.GetFuncEvalCfg('PartyReward',2)
+ addPoint, addExp = IpyGameDataPY.GetFuncEvalCfg('PartyReward', 2)
#仙盟贡献度
PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty, True)
#答题经验更新
PlayerControl.PlayerControl(curPlayer).AddExp(addExp)
curAnswerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, curAnswerCnt+1)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, curAnswerCnt + 1)
if GameWorld.GetMap().GetMapID() == ChConfig.Def_FBMapID_FamilyParty:
DoFBHelp(curPlayer, 0)
@@ -243,33 +268,38 @@
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)
-
-
+ if state:
+ if not GameWorld.GetGameWorld().GetGameWorldDictByKey(Map_FamilyPartyFB_StartTick):
+ GameWorld.GetGameWorld().SetGameWorldDict(Map_FamilyPartyFB_StartTick, tick)
+ else:
+ GameWorld.GetGameWorld().SetGameWorldDict(Map_FamilyPartyFB_StartTick, 0)
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
##获得玩家传入副本需要携带的信息
@@ -280,6 +310,7 @@
def GetPlayerResetWorldPosFBMsg(curPlayer, lineId):
return '%s' % (curPlayer.GetPlayerID())
+
##玩家退出家族处理
# @param curPlayer 玩家实例
# @param tick 时间戳
@@ -287,7 +318,6 @@
def OnLeaveFamily(curPlayer, tick):
#GameWorld.DebugLog("OnLeaveFamily...")
curPlayerID = curPlayer.GetPlayerID()
-
PlayerControl.PlayerLeaveFB(curPlayer)
return
@@ -299,36 +329,48 @@
def OnPlayerReborn():
return True
+
##获得副本帮助信息
# @param curPlayer 玩家实例
# @param tick 时间戳
# @return 无意义
# @remarks 用于通知阵营比分条
-def DoFBHelp(curPlayer, tick):
+def DoFBHelp(curPlayer, tick, isSyncPlayerID=False):
#gameFB = GameWorld.GetGameFB()
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)
+ 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 + addExp * curAnswerCnt
exp = totalExp % ChConfig.Def_PerPointValue
expPoint = totalExp / ChConfig.Def_PerPointValue
- totalPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalPoint%playerID)
- totalPoint += IpyGameDataPY.GetFuncCfg('PartyReward') #加参与奖
+ totalPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalPoint % playerID)
+ #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
-
+ hasCollect = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasCollect % playerID)
+ hasSit = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % playerID)
- helpDict = {FBCommon.Help_exp:exp, FBCommon.Help_expPoint:expPoint,FBCommon.Help_score:totalPoint, "hasCollect":hasCollect, "isFullExp":isFull}
+ 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, "hasSit":hasSit}
+ 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]}
+ if isSyncPlayerID:
+ lineID = GameWorld.GetGameWorld().GetLineID()
+ helpDict['familyPartyPlayer'] = g_familyMapPlayerIDDict.get(lineID, [])
+
GameWorld.DebugLog("DoFBHelp %s" % helpDict, playerID)
FBCommon.Notify_FBHelp(curPlayer, helpDict)
return
+
##是否可以采集
# @param curPlayer 玩家实例
@@ -337,11 +379,17 @@
# @return 无意义
# @remarks
def OnCanCollect(curPlayer, curNPC, tick):
- hasCollect = GameWorld.GetGameWorld().GetGameWorldDictByKey(FBPlayerDict_HasCollect%curPlayer.GetID())
+ 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
+
##副本中,采集物需要Loading时间.
# @param curPlayer 玩家实例
@@ -351,18 +399,22 @@
def GetFBPrepareTime(curPlayer, curNPC):
return IpyGameDataPY.GetFuncCfg('FamilyPartyDesk', 2) * 1000
+
##玩家收集成功(塔, 旗)
# @param curPlayer 玩家实例
# @param tick 时间戳
# @return 无意义
# @remarks
-def OnCollectOK(curPlayer, tick):
+def OnCollectOK(curPlayer, npcID, tick):
playerID = curPlayer.GetID()
gameWorld = GameWorld.GetGameWorld()
gameWorld.SetGameWorldDict(FBPlayerDict_HasCollect % playerID, 1)
GameWorld.DebugLog(' 宴会采集成功!', playerID)
#给奖励
+ itemAward = IpyGameDataPY.GetFuncEvalCfg('FamilyPartyDesk', 3)
+ for itemID, itemCount, isBind in itemAward:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
addPoint = IpyGameDataPY.GetFuncCfg('FamilyPartyDesk')
PlayerControl.NotifyCode(curPlayer, 'Party_CollectSuccess', [addPoint])
PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty)
@@ -371,4 +423,97 @@
updPoint = totalPoint + addPoint
gameWorld.SetGameWorldDict(FBPlayerDict_TotalPoint % playerID, updPoint)
DoFBHelp(curPlayer, 0)
- return
\ No newline at end of file
+ return
+
+##玩家退出副本
+# @param curPlayer 玩家实例
+# @param tick 时间戳
+# @return 无意义
+def DoExitFB(curPlayer, tick):
+ global g_familyMapPlayerIDDict
+ __GiveSitAward(curPlayer)
+ lineID = GameWorld.GetGameWorld().GetLineID()
+ playerID = curPlayer.GetID()
+ if playerID in g_familyMapPlayerIDDict.get(lineID, []):
+ g_familyMapPlayerIDDict[lineID].remove(playerID)
+ if g_familyMapPlayerIDDict[lineID]:
+ playerManager = GameWorld.GetMapCopyPlayerManager()
+ for index in xrange(playerManager.GetPlayerCount()):
+ curPlayer = playerManager.GetPlayerByIndex(index)
+ if not curPlayer:
+ continue
+ DoFBHelp(curPlayer, tick, True)
+ return
+
+## 副本行为
+# @param curPlayer 玩家
+# @param actionType 行为类型
+# @param actionInfo 行为信息
+# @param tick 当前时间
+# @return None
+def DoFBAction(curPlayer, actionType, actionInfo, tick):
+ gameWorld = GameWorld.GetGameWorld()
+ playerID = curPlayer.GetID()
+ if actionType == 0: #邀请打坐
+ tagPlayerID = actionInfo
+ if curPlayer.GetPlayerAction() in [IPY_GameWorld.paSit, IPY_GameWorld.paPreparing]:
+ GameWorld.DebugLog('邀请打坐,玩家已处于打坐或采集状态', playerID)
+ return
+ hasSit = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % playerID)
+ if hasSit:
+ GameWorld.Log('邀请打坐,玩家已打坐过一次', playerID)
+ return
+
+ copyMapPlayerManager = GameWorld.GetMapCopyPlayerManager()
+ tagPlayer = copyMapPlayerManager.FindPlayerByID(tagPlayerID)
+ if not tagPlayer:
+ GameWorld.DebugLog('邀请%s打坐,该玩家不在副本里' % tagPlayerID, playerID)
+ PlayerControl.NotifyCode(curPlayer, 'PartySitFail')
+ return
+ curPlayer.StopMove()
+ curPlayer.Sit()
+# if not gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % tagPlayerID):
+# if tagPlayer.GetPlayerAction() not in [IPY_GameWorld.paSit, IPY_GameWorld.paPreparing]:
+# tagPlayer.StopMove()
+# tagPlayer.Sit()
+ elif actionType == 1: #打坐结束给奖励
+ if not __GiveSitAward(curPlayer):
+ return
+
+ DoFBHelp(curPlayer, 0)
+
+
+ return
+
+def __GiveSitAward(curPlayer):
+ #给打坐奖励
+ gameWorld = GameWorld.GetGameWorld()
+ playerID = curPlayer.GetID()
+ hasSit = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % playerID)
+ if hasSit:
+ GameWorld.Log('打坐结束给奖励,玩家已打坐过一次', playerID)
+ return
+ if curPlayer.GetPlayerAction() != IPY_GameWorld.paSit:
+ GameWorld.Log('打坐结束给奖励,玩家不在打坐状态', playerID)
+ return
+ curPlayer.Stand()
+ reLV = curPlayer.GetLV()
+ worldlv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
+ giveLV = eval(IpyGameDataPY.GetFuncCompileCfg('FamilyPartySitAward', 2))
+ addExp = 0
+ if giveLV:
+ addExp = Item_AddLV.DoAddLVEx(curPlayer, giveLV, True, True, 0)
+ reLV = curPlayer.GetLV()
+ reExp = PlayerControl.GetPlayerReExp(curPlayer)
+ giveExp = eval(IpyGameDataPY.GetFuncCompileCfg('FamilyPartySitAward'))
+ if giveExp:
+ PlayerControl.PlayerControl(curPlayer).AddExp(giveExp)
+ exp = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExp % playerID)
+ expPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExpPoint % playerID)
+ newTotalExp = expPoint*ChConfig.Def_PerPointValue+exp+giveExp+addExp
+ gameWorld.SetGameWorldDict(FBPlayerDict_TotalExp % playerID, newTotalExp%ChConfig.Def_PerPointValue)
+ gameWorld.SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, newTotalExp/ChConfig.Def_PerPointValue)
+
+ gameWorld.SetGameWorldDict(FBPlayerDict_HasSit % playerID, 1)
+ GameWorld.DebugLog(' 传功结束,giveLV=%s, giveExp=%s, worldlv=%s' % (giveLV, giveExp, worldlv))
+ return True
--
Gitblit v1.8.0