| | |
| | |
|
| | |
|
| | | def OnPlayerLogin(curPlayer):
|
| | | DoGMForbidenTalkOnLogin(curPlayer)
|
| | | #DoGMForbidenTalkOnLogin(curPlayer)
|
| | | curPlayer.SetDict(ChConfig.Def_PDict_DayOnlineCalcTime, int(time.time()))
|
| | | return
|
| | |
|
| | |
| | | playerControl.RefreshAllState()
|
| | |
|
| | | #玩家下线更新排行榜
|
| | | PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer) #排行榜已实时更新,故下线不再同步
|
| | | #PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer) #排行榜已实时更新,故下线不再同步
|
| | |
|
| | | #玩家下线通知gameserver记录缓存(放在下线更新排行榜之后,方便Gameserver判断是否需要存入数据库中)
|
| | | PlayerViewCache.OnPlayerLogout(curPlayer)
|
| | |
| | |
|
| | | #不需要做升级任务, 设置玩家经验
|
| | | SetPlayerTotalExp(curPlayer, curTotalExp)
|
| | | DoDeleteTestRebate(curPlayer)
|
| | | return
|
| | |
|
| | | def __GiveLVMailAward(self, curLV):
|
| | |
| | | GameWorld.DebugLog("SetPlayerAccState %s" % (accState), curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | | def DoGMForbidenTalkOnLogin(curPlayer):
|
| | | ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
|
| | | ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
|
| | | |
| | | if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
|
| | | GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
|
| | | __SetGMForbidenTalkValue(curPlayer, 2)
|
| | | __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
|
| | | GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
|
| | | __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | else:
|
| | | SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
|
| | | return
|
| | | #GM命令支持离线玩家上线后处理,且 PlayerGMOper 也有上线触发逻辑处理,故暂屏蔽
|
| | | #def DoGMForbidenTalkOnLogin(curPlayer):
|
| | | # ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
|
| | | # ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
|
| | | # |
| | | # if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
|
| | | # GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
|
| | | # __SetGMForbidenTalkValue(curPlayer, 2)
|
| | | # __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | # elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
|
| | | # GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
|
| | | # __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | # else:
|
| | | # SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
|
| | | # return
|
| | |
|
| | | def IsMainLevelPass(curPlayer, lvID):
|
| | | ## 判断玩家是否过关某个主线关卡ID
|
| | |
| | | if not curSummon:
|
| | | continue
|
| | | curSummon.SetSightLevel(sightLevel)
|
| | | return |
| | | return
|
| | |
|
| | | def DoDeleteTestRebate(curPlayer):
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | appID = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 1)
|
| | | if GameWorld.GetAppIDByAccID(curPlayer.GetAccID()) != appID:
|
| | | #GameWorld.DebugLog("非返利渠道AppID! appID=%s" % appID, playerID)
|
| | | return
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DeleteTestRebate):
|
| | | GameWorld.DebugLog("删档测试返利已经处理过,不再请求!", playerID)
|
| | | return
|
| | | if curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 2):
|
| | | GameWorld.DebugLog("等级不足不处理删档测试返利! lv=%s" % curPlayer.GetLV(), playerID)
|
| | | return
|
| | | rebateRate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 5)
|
| | | if rebateRate <= 0:
|
| | | GameWorld.DebugLog("没有返利比例不处理!", playerID)
|
| | | return
|
| | | curTime = int(time.time())
|
| | | testEndDate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 3) # 删档测试结束日期
|
| | | testEndTime = GameWorld.ChangeTimeStrToNum("%s235959" % testEndDate, ChConfig.TYPE_Time_Format_YmdHMS)
|
| | | if curTime <= testEndTime:
|
| | | GameWorld.DebugLog("删档测试期间不处理删档测试返利! testEndDate=%s" % testEndDate, playerID)
|
| | | return
|
| | | rebateEndDate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 4) # 返利结束日期,由公测日期+有效天数得到
|
| | | rebateEndTime = GameWorld.ChangeTimeStrToNum("%s235959" % rebateEndDate, ChConfig.TYPE_Time_Format_YmdHMS)
|
| | | if curTime > rebateEndTime:
|
| | | GameWorld.DebugLog("返利有效期已结束不处理删档测试返利! rebateEndDate=%s" % rebateEndDate, playerID)
|
| | | return
|
| | | import EventReport
|
| | | EventReport.EventReport("DeleteTestRebate", "testEndDate=%s"%(testEndDate), curPlayer, checkNeed=False)
|
| | | return
|