| | |
| | | TYPE_WorldBossOnlineCntTick = 26 # 定时世界BOSS刷新时间计算 在线玩家数量
|
| | | TYPE_TimeShopProcessTick = 27 # 定时商店处理间隔
|
| | | TYPE_WorldBossProcessTick = 28 # BOSS重生检查间隔
|
| | | TYPE_WorldBossGeTuiTick = 29 # BOSS个推
|
| | | TYPE_WorldNewGuyGeTuiTick = 30 # 低级新玩家离开5分钟后唤回
|
| | |
|
| | | TYPE_Tick_Time = [
|
| | | 1000 * 60 * 3 , #0 查看地图的活动人数 3分钟/次
|
| | |
| | | 1000 * 60 * 5 , #26 定时世界BOSS刷新时间计算 在线玩家数量
|
| | | 1000 * 60 , #27 定时商店处理间隔
|
| | | 1000 * 1 , #28 BOSS重生检查间隔
|
| | | 1000*45, #29 BOSS个推
|
| | | 1000*60, #30 低级新玩家离开5分钟后唤回
|
| | | ]
|
| | |
|
| | | TYPE_Tick_Count = len(TYPE_Tick_Time)
|
| | |
| | | Def_WorldKey_ExamSendSubjectCnt = 'ExamSendSubjectCnt' #当前发题总数
|
| | | Def_WorldKey_BossIsAlive = 'BossIsAlive_%s' #boss是否活着
|
| | | Def_WorldKey_IsGameWorldInit = 'IsGameWorldInit' #GameWold是否初始化完成
|
| | | Def_WorldKey_BossIsGeTui = "BossGeTui%s" #当前复活通知
|
| | | Def_WorldKey_OperationActionState = "State_%s" #运营活动状态,参数为(运营活动名)
|
| | | Def_WorldKey_BossRebornNeedPoint = "BossRebornNeedPoint" #boss复活需要总点数
|
| | | Def_WorldKey_CrossBossIsAlive = 'CrossBossIsAlive_%s_%s' #跨服boss是否活着,参数(zoneID, bossID)
|
| | |
| | |
|
| | | Def_ForbiddenTalk = "ForbiddenTalk" # 禁言
|
| | | Def_TalkTick = "ForbiddenTalk" # 聊天间隔
|
| | |
|
| | | Def_PDict_GeTuiSet = "GetuiSet" # 推送提醒的设置
|
| | | Def_PDict_NoGeTuiTime = "NoGetuiTime" # 推送提醒免打扰时间,将字符串组合数字
|
| | |
|
| | | Def_PlayerKey_ViewCrossPKBillboardTick = "ViewCrossPKBillboardTick_%s_%s" #查询PK排行榜tick,参数(zoneID, seasonID)
|
| | |
|
| | |
| | | import CrossRealmMsg
|
| | | import CommFunc
|
| | | import PyGameData
|
| | | import PlayerGeTui
|
| | | import IPY_GameServer
|
| | | import PlayerTeam
|
| | | import CrossBoss
|
| | |
| | | break
|
| | |
|
| | | #此处只处理复活的
|
| | | #PlayerGeTui.GeTuiBossReborn(bossID)
|
| | | __SetIsAlive(bossID, 1)
|
| | | syncBOSSIDList.append(bossID)
|
| | |
|
| | |
| | | if syncBOSSIDList:
|
| | | Sync_BossInfo(None, syncBOSSIDList)
|
| | | return
|
| | |
|
| | |
|
| | | #BOSS个推提前倒计时通知处理, 复活由DoCheckWorldBossReborn处理
|
| | | def ProcessBossGeTui(tick):
|
| | | return
|
| | | # if not GameWorld.SetWorldDictKey(ChConfig.TYPE_WorldBossGeTuiTick, tick):
|
| | | # #间隔未到 |
| | | # return
|
| | | # if GameWorld.IsCrossServer():
|
| | | # return
|
| | | # curTime = int(time.time())
|
| | | # for bossInfo in PyGameData.g_sortBOSSRefreshList:
|
| | | # bossID, killedTime, refreshTime = bossInfo
|
| | | # isAlive = __GetIsAlive(bossID)
|
| | | # if isAlive:
|
| | | # #GameWorld.DebugLog(" bossID=%s,未被击杀!" % bossID)
|
| | | # continue
|
| | | # rebornSecond = max(0, refreshTime - (curTime - killedTime))
|
| | | # if not rebornSecond:
|
| | | # #不处理复活BOSS
|
| | | # continue
|
| | | # |
| | | # PlayerGeTui.GeTuiBoss(bossID, rebornSecond)
|
| | |
|
| | |
|
| | | def GetBossIsAliveOrCanReborn(bossID):
|
| | | ##BOSS是否活着或者可重生
|
| | |
| | | import ShareDefine
|
| | | import GameWorldAverageLv
|
| | | import PlayerDBOper
|
| | | import PlayerGeTui
|
| | | import GameWorldBoss
|
| | | import PlayerCompensation
|
| | | import ReadChConfig
|
| | |
| | | GameWorldOpenServerCampaign.DoOnDay()
|
| | | #清理过期补偿
|
| | | PlayerCompensation.ClearUpTimeOutCompensation()
|
| | | #PlayerGeTui.ClearFMTGeTuiLimit()
|
| | | import PlayerBourse
|
| | | PlayerBourse.OverTimeItemsDeal()
|
| | | # 仙盟联赛
|
| | |
| | | CrossRealmPK.OnPKMatchProcess(tick)
|
| | |
|
| | | GameWorldBoss.DoCheckWorldBossReborn(tick)
|
| | | #GameWorldBoss.ProcessBossGeTui(tick)
|
| | | #PlayerGeTui.ProcessNewGuyCallBackGeTui(tick)
|
| | | |
| | | #组队副本版本
|
| | | PlayerTeam.DoTeamProcess(tick)
|
| | |
|
| | |
| | | import PlayerFamilySWRH
|
| | | import IpyGameDataPY
|
| | | import PlayerTalk
|
| | | import PlayerGeTui
|
| | | import PlayerStore
|
| | | import GameWorldActionControl
|
| | | import GameWorldFamilyWar
|
| | |
| | | PlayerFamilySWRH.OnLogin(curPlayer)
|
| | | PlayerTalk.LoginChatMi(curPlayer)
|
| | | PlayerTalk.NotifyTalkCache(curPlayer)
|
| | | #PlayerGeTui.CleanNewGuyCallBackGeTui(curPlayer.GetID())
|
| | | #活动
|
| | | GameWorldActionControl.OnPlayerLogin(curPlayer)
|
| | | #玩家等级记录
|
| | |
| | | PlayerFriend.OnPlayerDisconnect(curPlayer, tick)
|
| | |
|
| | | __UpdOnedayJobPlayerLoginoffTime(curPlayer)
|
| | | #PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick)
|
| | | # 设置家族成员离线时间
|
| | | SetPlayerOfflineTime(curPlayer)
|
| | | #拍卖行
|
| | |
| | | import CrossRealmMsg
|
| | | import ChNetSendPack
|
| | | import NetPackCommon
|
| | | import PlayerGeTui
|
| | | import PyGameData
|
| | |
|
| | | import re
|
| | |
| | | if len(g_ChatMi[tagPlayerID]) > 8:
|
| | | g_ChatMi[tagPlayerID].pop(0)
|
| | | return
|
| | | |
| | | #PlayerGeTui.ChatMiGeTui(tagPlayerID, tagPlayerName, curPlayer.GetName())
|
| | |
|
| | | # 登录时将离线消息下发
|
| | | def LoginChatMi(curPlayer):
|
| | |
| | | return
|
| | | curCache.LV = curPackData.PlayerLV
|
| | | curCache.OffTime = curPackData.OffTime
|
| | | if isLogout:
|
| | | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | if curPlayer:
|
| | | curCache.GeTuiID = curPlayer.GetGeTuiClientID()
|
| | | curCache.GeTuiIDSize = len(curCache.GeTuiID)
|
| | | |
| | | |
| | | curCache.PropDataDict = {} # 每次更新数据时,重置字典缓存,下次获取时重新eval缓存
|
| | | curCache.PropData = curPackData.PropData
|
| | | curCache.PropDataSize = curPackData.PropDataSize
|
| | |
| | | import ChNetSendPack
|
| | | import NetPackCommon
|
| | | import PassiveBuffEffMng
|
| | | import PlayerGeTui
|
| | | import IpyGameDataPY
|
| | | #---------------------------------------------------------------------
|
| | | g_skillHurtList = IPY_GameWorld.IPY_HurtList()
|
| | |
| | | if GameObj.GetHP(defender) <= 0:
|
| | | defender.SetDict(ChConfig.Def_NPCDead_KillerType, attacker.GetGameObjType())
|
| | | defender.SetDict(ChConfig.Def_NPCDead_KillerID, attacker.GetID())
|
| | | #PlayerGeTui.TJGDead(defender, attacker.GetName())
|
| | | if defender.GetGameObjType() == IPY_GameWorld.gotNPC:
|
| | | skillID = 0 if not useSkill else useSkill.GetSkillID()
|
| | | # 记录死亡原因
|
| | |
| | | Def_PDict_BackupTime = "BackupTime" # 最近一次数据备档时间
|
| | | Def_QuDao_DoubleBillGold = "qddbGold" # 渠道返利的仙玉
|
| | | Def_QuDao_DoubleBillCount = "qddbCount" # 渠道返利的仙玉领取次数 日期+次数组合数字
|
| | | Def_PDict_GeTuiSet = "GetuiSet" # 推送提醒的设置
|
| | | Def_PDict_NoGeTuiTime = "NoGetuiTime" # 推送提醒免打扰时间,将字符串组合数字
|
| | | Def_PlayerKey_TJGNPC = "TJGNPC" # 脱机挂机NPC点
|
| | | Def_PDict_OnHour = "OnHour"
|
| | | Def_PDict_OnDay = "OnDay" # 0点过天
|
| | |
| | | import PlayerArena
|
| | | import PyGameData
|
| | | import PlayerCoin
|
| | | import PlayerGeTui
|
| | | import PlayerCharm
|
| | | import PlayerDogz
|
| | | import PlayerCoat
|
| | |
| | |
|
| | | #大师
|
| | | PlayerGreatMaster.MasterOnLogin(curPlayer)
|
| | | |
| | | # 推送提醒
|
| | | PlayerGeTui.LoginNotifySetting(curPlayer)
|
| | |
|
| | | #֪ͨVIP
|
| | | PlayerVip.DoOnLogin(curPlayer, tick)
|
| | |
| | | import math
|
| | | import PassiveBuffEffMng
|
| | | import PlayerPet
|
| | | import PlayerGeTui
|
| | | import ChEquip
|
| | | import QuestCommon
|
| | | import random
|
| | |
| | | #优先执行换守护
|
| | | ChangeGuard(curPlayer, tick)
|
| | | times, finalAddExp = CalcPlayerTJG(curPlayer, tick)
|
| | | |
| | | #PlayerGeTui.TJGEfficiency(curPlayer, times, finalAddExp)
|
| | | #PlayerGeTui.TJGTimeLess(curPlayer)
|
| | | return
|
| | |
|
| | | def GetTJGTime(curPlayer): return curPlayer.GetHappyPoint()
|
| | |
| | | def CheckPackFull(curPlayer):
|
| | | if not ItemCommon.CheckPackHasSpace(curPlayer, IPY_GameWorld.rptItem):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_TJGPackFullAfterEat, 1)
|
| | | #PlayerGeTui.FullPack(curPlayer)
|
| | |
|
| | | # 可执行吞噬操作
|
| | | def CanEatItemsOper(curPlayer):
|
| | |
| | | curPlayerPropDict["AtkBackHP"] = GameObj.GetAtkBackHP(curPlayer) # 攻击回复血量固定值
|
| | | curPlayerPropDict["PVPAtkBackHP"] = PlayerControl.GetPVPAtkBackHP(curPlayer) # PVP攻击回血
|
| | |
|
| | | #推送提醒
|
| | | curPlayerPropDict[ChConfig.Def_PDict_GeTuiSet] = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GeTuiSet)
|
| | | curPlayerPropDict[ChConfig.Def_PDict_NoGeTuiTime] = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NoGeTuiTime)
|
| | | |
| | | # 各类功能 BOSS次数, BOSS相关对应B.Boss信息.xlsx的CntMark
|
| | | # 封魔坛剩余次数
|
| | | enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % ChConfig.Def_FBMapID_SealDemon)
|
| | | maxCnt = FBCommon.GetEnterFBMaxCnt(curPlayer, ChConfig.Def_FBMapID_SealDemon)
|
| | | curPlayerPropDict['CntMark_%s' % ChConfig.Def_FBMapID_SealDemon] = max(maxCnt - enterCnt, 0)
|
| | | # 诛仙BOSS剩余次数
|
| | | enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % ChConfig.Def_FBMapID_ZhuXianBoss)
|
| | | maxCnt = FBCommon.GetEnterFBMaxCnt(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss)
|
| | | curPlayerPropDict['CntMark_%s' % ChConfig.Def_FBMapID_ZhuXianBoss] = max(maxCnt - enterCnt, 0)
|
| | | # 世界BOSS剩余次数
|
| | | curPlayerPropDict['CntMark_%s' % ShareDefine.Def_Boss_Func_World] = BossHurtMng.GetCanKillBossCnt(curPlayer, ShareDefine.Def_Boss_Func_World)[0]
|
| | | # BOSS之家剩余次数
|
| | | curPlayerPropDict['CntMark_%s' % ShareDefine.Def_Boss_Func_Home] = BossHurtMng.GetCanKillBossCnt(curPlayer, ShareDefine.Def_Boss_Func_Home)[0]
|
| | | # 神兽BOSS剩余次数
|
| | | curPlayerPropDict['CntMark_%s' % ShareDefine.Def_Boss_Func_Dogz] = BossHurtMng.GetCanKillBossCnt(curPlayer, ShareDefine.Def_Boss_Func_Dogz)[0]
|
| | | |
| | | #-----------
|
| | | #扩展属性缓存
|
| | | curPlayerPlusDict = {}
|