From 249cacb2f0656ef08c2d9293e1a931d26078347c Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期五, 28 十二月 2018 22:03:52 +0800 Subject: [PATCH] 5512 子 【开发】【1.4】跨服竞技场 / 【后端】【1.4】跨服竞技场开发 -- 命名规则修改 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py | 306 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 219 insertions(+), 87 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..e90909c 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,24 +26,31 @@ import GameWorldProcess import PlayerFairyCeremony 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 ##开启副本 @@ -52,8 +59,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 @@ -102,6 +108,7 @@ # @return posX, posY, 随机半径(可选) def OnGetFBEnterPos(curPlayer, mapID, lineId, ipyEnterPosInfo, tick): return ipyEnterPosInfo + ##是否可以进入 # @param ask 请求结构体 @@ -130,12 +137,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): @@ -149,9 +158,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: @@ -160,42 +167,62 @@ 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) + 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() @@ -206,80 +233,69 @@ 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): #回答正确,给奖励 - 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) + 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) - - + 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 ##获得玩家传入副本需要携带的信息 @@ -290,6 +306,7 @@ def GetPlayerResetWorldPosFBMsg(curPlayer, lineId): return '%s' % (curPlayer.GetPlayerID()) + ##玩家退出家族处理 # @param curPlayer 玩家实例 # @param tick 时间戳 @@ -297,7 +314,6 @@ def OnLeaveFamily(curPlayer, tick): #GameWorld.DebugLog("OnLeaveFamily...") curPlayerID = curPlayer.GetPlayerID() - PlayerControl.PlayerLeaveFB(curPlayer) return @@ -309,35 +325,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) - - exp = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExp%playerID) - expPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExpPoint%playerID) - totalExp = totalExp + expPoint * ChConfig.Def_PerPointValue + exp + 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 + 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) + hasSit = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % playerID) - hasCollect = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasCollect%playerID) - getCnt = gameWorld.GetGameWorldDictByKey(ChConfig.Map_Player_AreaReward_GetCnt%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} + 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 玩家实例 @@ -346,11 +375,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 玩家实例 @@ -360,18 +395,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, isBind, [IPY_GameWorld.rptItem]) addPoint = IpyGameDataPY.GetFuncCfg('FamilyPartyDesk') PlayerControl.NotifyCode(curPlayer, 'Party_CollectSuccess', [addPoint]) PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty) @@ -380,4 +419,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