| | |
| | | import ChConfig
|
| | | import BuffSkill
|
| | | import PlayerEventCounter
|
| | | import PlayerTeam
|
| | | import PlayerHorse
|
| | | import NPCCommon
|
| | | import SkillCommon
|
| | |
| | | import PetControl
|
| | | import OperControlManager
|
| | | import ShareDefine
|
| | | import PlayerAutoCheckOnline
|
| | | import PlayerGameWallow
|
| | | import NetPackCommon
|
| | | import ChPyNetSendPack
|
| | | import DataRecordPack
|
| | |
| | | import PlayerGoldInvest
|
| | | import PlayerActivity
|
| | | import FBCommon
|
| | | import BossHurtMng
|
| | | import PlayerWishingWell
|
| | | import PlayerSuccess
|
| | | import PlayerDienstgrad
|
| | | import PlayerFreeGoods
|
| | | import PlayerRecover
|
| | | import GameLogic_SkyTower
|
| | | import PlayerEquipDecompose
|
| | | import PlayerGreatMaster
|
| | | import PlayerGatherSoul
|
| | | import PlayerGatherTheSoul
|
| | | import PlayerFairyDomain
|
| | | import PlayerCrossRealmPK
|
| | | import PlayerCrossChampionship
|
| | | import PlayerCrossBattlefield
|
| | | import GameFuncComm
|
| | | import PlayerMagicWeapon
|
| | | import GameLogic_FamilyBoss
|
| | | import GameLogic_TrialTower
|
| | | import GameLogic_FamilyWar
|
| | | import PlayerBossReborn
|
| | | import PlayerWeekParty
|
| | | import PlayerFeastWeekParty
|
| | |
| | | import PlayerFeastWish
|
| | | import PlayerActLogin
|
| | | import PlayerTreasure
|
| | | import GameLogic_GodArea
|
| | | import PlayerRune
|
| | | import PlayerFamilyRedPacket
|
| | | import IpyGameDataPY
|
| | | import EventReport
|
| | | import OpenServerCampaign
|
| | | import PlayerVip
|
| | | import PlayerRefineStove
|
| | | import PassiveBuffEffMng
|
| | | import GameLogic_XMZZ
|
| | | import PlayerFlashSale
|
| | | import PlayerFlashGiftbag
|
| | | import PlayerDailyGiftbag
|
| | |
| | | import PlayerActCollectWords
|
| | | import PlayerActTotalRecharge
|
| | | import PlayerActRechargePrize
|
| | | import PlayerActGarbageSorting
|
| | | import PlayerActXianXiaMJ
|
| | | import PlayerActGubao
|
| | | import PlayerActHorsePetTrain
|
| | | import PlayerActLianqi
|
| | | import PlayerActGodGift
|
| | | import PlayerActFamilyCTGAssist
|
| | | import PlayerActRechargeRebateGold
|
| | | import PlayerActManyDayRecharge
|
| | | import PlayerActSingleRecharge
|
| | | import PlayerActHorsePetFeast
|
| | | import PlayerActBossTrial
|
| | | import PlayerSpringSale
|
| | | import PlayerFairyCeremony
|
| | | import PlayerNewFairyCeremony
|
| | | import GY_Query_BossFirstKill
|
| | | import PlayerCrossYaomoBoss
|
| | | import PlayerFeastRedPacket
|
| | |
| | | import PlayerTongTianLing
|
| | | import CrossRealmPlayer
|
| | | import ChNetSendPack
|
| | | import FamilyRobBoss
|
| | | import FBHelpBattle
|
| | | import PlayerAssist
|
| | | import PlayerArena
|
| | | import PyGameData
|
| | | import PlayerCoin
|
| | |
| | | import PlayerLove
|
| | | import GameObj
|
| | | import PlayerChangeJob
|
| | | import PlayerGuaji
|
| | | import PlayerFace
|
| | | import PlayerChatBox
|
| | | import PlayerXiangong
|
| | | import PlayerMineArea
|
| | | import PlayerGoldRush
|
| | | import PlayerActLoginNew
|
| | | import PlayerActBuyCountGift
|
| | | import PlayerActLunhuidian
|
| | |
| | | InitPlayerPack(curPlayer)
|
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
|
| | | #SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
|
| | | # 重置所有技能CD
|
| | |
|
| | | DoPlayerLoginInMap(curPlayer, tick)
|
| | |
| | | DataRecordPack.DR_PlayerLogin(curPlayer)
|
| | | EventReport.WriteEvent_login(curPlayer)
|
| | | #---玩家上线, 宠物逻辑处理---
|
| | | PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | | |
| | | PlayerTeam.OnPlayerLoginCrossServer(curPlayer)
|
| | | #PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | | return
|
| | |
|
| | | leaveServerSecond = PlayerControl.GetPlayerLeaveServerSecond(curPlayer)
|
| | |
| | | # 离线过久恢复为非跨服状态
|
| | | if PlayerControl.GetCrossMapID(curPlayer):
|
| | | PlayerControl.SetCrossMapID(curPlayer, 0)
|
| | | |
| | | |
| | | __FirstLoginOnEnter(curPlayer)
|
| | | |
| | | TurnAttack.OnPlayerLogin(curPlayer)
|
| | | SyncGuideState(curPlayer)
|
| | |
|
| | |
| | | PlayerControl.UpdPlayerServerGroupID(curPlayer)
|
| | |
|
| | | #上线学习技能
|
| | | SkillCommon.PlayerLoginCheckLearnSkill(curPlayer)
|
| | | #SkillCommon.PlayerLoginCheckLearnSkill(curPlayer)
|
| | |
|
| | | #刷新技能CD
|
| | | SkillCommon.PlayerLoginUpdateSkillCD(curPlayer, tick)
|
| | | #SkillCommon.PlayerLoginUpdateSkillCD(curPlayer, tick)
|
| | |
|
| | | #通知玩家技能信息
|
| | | __Sync_ClientSkill(curPlayer)
|
| | | #__Sync_ClientSkill(curPlayer)
|
| | | #清除VIPbuff
|
| | | #BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_VIPExp_SkillTypeID, tick)
|
| | |
|
| | | #通知玩家的buff
|
| | | __Sync_ClientBuff(curPlayer)
|
| | | #__Sync_ClientBuff(curPlayer)
|
| | |
|
| | | #---刷新了玩家属性, 登陆只刷新一次,其他地方不用刷
|
| | | DoPlayerLoginInMap(curPlayer, tick)
|
| | |
| | | #DataRecordPack.DR_PlayerLogin(curPlayer)
|
| | | EventReport.WriteEvent_login(curPlayer)
|
| | |
|
| | | __FirstLoginOnEnter(curPlayer)
|
| | | |
| | | # 合服首登处理
|
| | | __DoMixServerFirstLogin(curPlayer)
|
| | | PlayerBillboard.BillboardOnLogin(curPlayer)
|
| | | |
| | | #上线时通知脱机挂时被击杀的离线时间
|
| | | __Sync_PlayerOffline(curPlayer, tick)
|
| | |
|
| | | #玩家扩展信息
|
| | | __SyncPlayerInfoEx(curPlayer)
|
| | |
| | | GiveDownloadPatchAward(curPlayer)
|
| | |
|
| | | #PKģʽ
|
| | | SyncPKModel(curPlayer)
|
| | | |
| | | #大师
|
| | | PlayerGreatMaster.MasterOnLogin(curPlayer)
|
| | | |
| | | #֪ͨVIP
|
| | | PlayerVip.DoOnLogin(curPlayer, tick)
|
| | | |
| | | #通知法宝精炼等级
|
| | | PlayerRefineStove.DoOnLogin(curPlayer, tick)
|
| | | #SyncPKModel(curPlayer)
|
| | |
|
| | | #---玩家上线, 宠物逻辑处理---
|
| | | PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | | PlayerPet.OnPlayerPetLogin(curPlayer)
|
| | | |
| | | #PlayerLoginNotify(curPlayer, tick)
|
| | | |
| | | #防沉迷计算下线累积时间
|
| | | PlayerGameWallow.Calc_Wallow_OfflineTime(curPlayer, tick)
|
| | | #PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | | #PlayerPet.OnPlayerPetLogin(curPlayer)
|
| | |
|
| | | # 通知等级奖励领取记录
|
| | | PlayerLVAward.Sync_LVAwardGetRecordInfo(curPlayer)
|
| | |
| | | # 首充/天天首充/充值豪礼
|
| | | PlayerGoldGift.OnLogin(curPlayer)
|
| | |
|
| | | # #通知功能首次触发情况
|
| | | #通知功能首次触发情况
|
| | | GameFuncComm.Sync_FuncOpenState(curPlayer)
|
| | | # |
| | | # #通知客户端签到信息
|
| | | |
| | | #通知客户端签到信息
|
| | | PlayerSignDay.SignDayOnLogin(curPlayer)
|
| | |
|
| | | #通知玩家死亡时间
|
| | | PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
|
| | | #ClearPlayerDeadInfo(curPlayer)
|
| | | |
| | | #充值活动玩家登入处理
|
| | | #PlayerGoldAction.DoLogic_PlayerOnLogin(curPlayer)
|
| | | |
| | | # 提示贵宾俱乐部信息
|
| | | #PlayerVip.NoteVIPClubInfo(curPlayer)
|
| | | #PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
|
| | |
|
| | | #角色改名次数
|
| | | UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
|
| | | #UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
|
| | |
|
| | | # 坐骑相关通知
|
| | | PlayerHorse.PlayerHorseLogin(curPlayer)
|
| | |
| | |
|
| | | # 开服活动奖励信息
|
| | | OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
|
| | |
|
| | | # 试炼之塔
|
| | | GameLogic_TrialTower.OnFBPlayerLogin(curPlayer)
|
| | | # 古神禁地
|
| | | GameLogic_GodArea.GodAreaOnLogin(curPlayer)
|
| | | |
| | | # 采集NPC次数通知
|
| | | NPCCommon.SyncCollNPCTime(curPlayer)
|
| | | #NPCCommon.SyncCollNPCTime(curPlayer)
|
| | |
|
| | | # 每日活跃度
|
| | | PlayerActivity.OnLogin(curPlayer)
|
| | |
| | | # 跨服PK
|
| | | PlayerCrossRealmPK.DoPlayerLogin(curPlayer)
|
| | | PlayerCrossChampionship.DoPlayerLogin(curPlayer)
|
| | | PlayerCrossBattlefield.DoPlayerLogin(curPlayer)
|
| | |
|
| | | # 幸运云购
|
| | | PlayerLuckyCloudBuy.OnPlayerLogin(curPlayer)
|
| | |
| | | PlayerControl.NotifyPlayerAllCurrency(curPlayer)
|
| | | PlayerControl.NotifyUseMoneyTotal(curPlayer)
|
| | | #通知基础属性
|
| | | NotifyPlayerBasePoint(curPlayer)
|
| | | #NotifyPlayerBasePoint(curPlayer)
|
| | |
|
| | | #跨服充值排行
|
| | | CrossActCTGBillboard.OnPlayerLogin(curPlayer)
|
| | |
| | | PlayerActFamilyCTGAssist.OnPlayerLogin(curPlayer)
|
| | | #集字活动
|
| | | PlayerActCollectWords.OnPlayerLogin(curPlayer)
|
| | | # 世界boss
|
| | | BossHurtMng.OnLogin(curPlayer)
|
| | | ChItem.Sync_ItemDayUseCnt(curPlayer)
|
| | | # 符印登录通知
|
| | | PlayerRune.PlayerRuneLogin(curPlayer)
|
| | | # 仙盟红包登录通知
|
| | | PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
|
| | | PlayerFeastRedPacket.DoPlayerOnLogin(curPlayer)
|
| | | # 法宝登录通知
|
| | | PlayerMagicWeapon.PlayerMagicWeaponLogin(curPlayer)
|
| | | # 商店物品购买次数登录通知
|
| | | FunctionNPCCommon.ShopItemOnLogin(curPlayer)
|
| | | # 通知设置的被动功法
|
| | | #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
|
| | | #仙魔之争
|
| | | GameLogic_XMZZ.OnXMZZLogin(curPlayer)
|
| | | PlayerOnlinePrize.OnPlayerLogin(curPlayer)
|
| | | #装备分解
|
| | | PlayerEquipDecompose.PlayerLogin(curPlayer)
|
| | | #防沉迷
|
| | | PlayerGameWallow.DoLogic_CheckWallow(curPlayer, tick)
|
| | | # 协助
|
| | | PlayerAssist.OnPlayerLogin(curPlayer)
|
| | | # 极品白拿
|
| | | PlayerFreeGoods.OnLogin(curPlayer)
|
| | | # BOSS复活活动
|
| | | PlayerBossReborn.OnLogin(curPlayer)
|
| | | # boss历练
|
| | | PlayerActBossTrial.OnPlayerLogin(curPlayer)
|
| | | # 骑宠盛宴活动
|
| | | PlayerActHorsePetFeast.OnLogin(curPlayer)
|
| | | # 周狂欢活动
|
| | | PlayerWeekParty.OnLogin(curPlayer)
|
| | | # 购买次数礼包活动
|
| | |
| | | PlayerFeastTravel.OnPlayerLogin(curPlayer)
|
| | | # 登录奖励活动
|
| | | PlayerActLogin.OnLogin(curPlayer)
|
| | | # 垃圾分类活动
|
| | | PlayerActGarbageSorting.OnPlayerLogin(curPlayer)
|
| | | # 仙匣秘境活动
|
| | | PlayerActXianXiaMJ.OnPlayerLogin(curPlayer)
|
| | | # 古宝养成活动
|
| | | PlayerActGubao.OnPlayerLogin(curPlayer)
|
| | | # 骑宠养成活动
|
| | | PlayerActHorsePetTrain.OnPlayerLogin(curPlayer)
|
| | | # 炼器活动
|
| | | PlayerActLianqi.OnPlayerLogin(curPlayer)
|
| | | # 天帝礼包活动
|
| | |
| | | PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
|
| | | # 转盘活动
|
| | | PlayerActTurntable.OnPlayerLogin(curPlayer)
|
| | | # 仙界盛典活动
|
| | | PlayerFairyCeremony.OnLogin(curPlayer)
|
| | | # 新仙界盛典活动
|
| | | PlayerNewFairyCeremony.OnLogin(curPlayer)
|
| | | # 分支下载奖励记录通知
|
| | | SyncPackDownloadAward(curPlayer)
|
| | | # 登录触发功能开启(老号处理)
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | # 神兽
|
| | | PlayerDogz.OnPlayerLogin(curPlayer)
|
| | | # 骑宠
|
| | | FamilyRobBoss.OnPlayerLogin(curPlayer)
|
| | | # 许愿池
|
| | | PlayerWishingWell.OnLogin(curPlayer)
|
| | | #幸运鉴宝
|
| | | PlayerLuckyTreasure.OnLogin(curPlayer)
|
| | | # 小助手
|
| | | SyncLittleHelper(curPlayer)
|
| | | # 副本助战
|
| | | FBHelpBattle.DoPlayerLogin(curPlayer)
|
| | | # 聚魂
|
| | | PlayerGatherSoul.PlayerLogin(curPlayer)
|
| | | PlayerGatherTheSoul.OnPlayerLogin(curPlayer)
|
| | | #缥缈仙域
|
| | | PlayerFairyDomain.OnLogin(curPlayer)
|
| | | PlayerFB.OnLogin(curPlayer)
|
| | | #技能专精信息
|
| | | SkillShell.NotifyElementSkillInfo(curPlayer)
|
| | | #SkillShell.NotifyElementSkillInfo(curPlayer)
|
| | | #Boss首杀
|
| | | GY_Query_BossFirstKill.OnPlayerLogin(curPlayer)
|
| | | #通天令
|
| | |
| | | PlayerZhanling.OnPlayerLogin(curPlayer)
|
| | | PlayerTask.OnPlayerLogin(curPlayer)
|
| | | PlayerTree.OnPlayerLogin(curPlayer)
|
| | | PlayerMineArea.OnPlayerLogin(curPlayer)
|
| | | PlayerGuaji.OnPlayerLogin(curPlayer)
|
| | | PlayerGoldRush.OnPlayerLogin(curPlayer)
|
| | | PlayerActFamilyGCZ.OnPlayerLogin(curPlayer)
|
| | | PlayerTalk.OnPlayerLogin(curPlayer)
|
| | |
|
| | |
| | | # 那么在DoPlayerLogin 中设置的数据将不会被保存, 如会导致第一个任务重复触发问题,记录多次发送
|
| | | EventReport.WriteEvent_Entry(curPlayer, 4)
|
| | | #EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
|
| | | |
| | | curPlayer.SetFightPoint(1) # 初始化为1倍消耗
|
| | |
|
| | | #---补满血满魔---
|
| | | GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
|
| | |
| | | PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
|
| | |
|
| | | PlayerHero.OnPlayerFirstLogin(curPlayer)
|
| | | |
| | | #淘金初始化
|
| | | PlayerGoldRush.InitGoldEnergy(curPlayer)
|
| | |
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1)
|
| | | return
|
| | |
| | | # 同步排行榜
|
| | | PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
|
| | |
|
| | | # 天星塔全服过关记录
|
| | | GameLogic_SkyTower.OnMixFirstLogin(curPlayer)
|
| | | |
| | | # bossƾ֤
|
| | | PlayerActBossTrial.OnMixFirstLogin(curPlayer)
|
| | | # 仙匣秘境
|
| | | PlayerActXianXiaMJ.OnMixFirstLogin(curPlayer)
|
| | | # 古宝养成
|
| | | PlayerActGubao.OnMixFirstLogin(curPlayer)
|
| | | # 骑宠养成
|
| | | PlayerActHorsePetTrain.OnMixFirstLogin(curPlayer)
|
| | | # 重置玩家改名次数
|
| | | #UpdatePlayerName.ResetChangeNameCnt(curPlayer)
|
| | | return
|
| | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PlayerDeadCnt, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_DeadTime, 0)
|
| | | return
|
| | |
|
| | | ##玩家登陆, 相关活动通知
|
| | | #@param curPlayer 玩家实例
|
| | | #@param tick 时间戳
|
| | | #@return 返回值无意义
|
| | | #@remarks 玩家登陆, 相关活动通知
|
| | | def PlayerLoginNotify(curPlayer, tick):
|
| | | curTime = GameWorld.GetCurrentTime()
|
| | | |
| | | #读取上线提示表
|
| | | notifyByTimeSect = ReadChConfig.GetEvalChConfig('PlayerLoginNotify_TimeSect') #某时间段内上线提示
|
| | | notifyByDict = ReadChConfig.GetEvalChConfig('PlayerLoginNotify_Dict') #根据字典值给提示
|
| | | |
| | | #在规定时间段内上线给提示
|
| | | DoNotifyByTimeSect(curPlayer, curTime, notifyByTimeSect)
|
| | | #指定字典值内提示
|
| | | DoNotifyByDict(curPlayer, notifyByDict)
|
| | | return
|
| | | #---------------------------------------------------------------------
|
| | | ##在活动规定时间段内上线给提示
|
| | | #@param curPlayer 玩家索引
|
| | | #@param curTime 传入时间
|
| | | #@param notifyInfo 提示信息
|
| | | #@return 返回值无意义
|
| | | #@remarks 在活动规定时间段内上线给提示
|
| | | def DoNotifyByTimeSect(curPlayer, curTime, notifyInfo):
|
| | | for curNotify in notifyInfo:
|
| | | #有时间段限制,验证时间段
|
| | | if not GameWorld.IsAtActTime(curTime, curNotify[0]):
|
| | | continue
|
| | | |
| | | PlayerControl.NotifyCode(curPlayer, curNotify[1], curNotify[2])
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ##指定字典值内提示
|
| | | #@param curPlayer 玩家实例
|
| | | #@param notifyInfo 提示信息
|
| | | #@return 返回值无意义
|
| | | #@remarks 指定字典值内提示
|
| | | def DoNotifyByDict(curPlayer, notifyInfo):
|
| | | gameWorld = GameWorld.GetGameWorld()
|
| | | for curNotify in notifyInfo:
|
| | | if gameWorld.GetGameWorldDictByKey(curNotify[0]) in curNotify[1]:
|
| | | PlayerControl.NotifyCode(curPlayer, curNotify[2], curNotify[3])
|
| | |
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ##通知背包详细信息
|
| | |
| | | clientPack.ObjID = curPlayer.GetID()
|
| | | clientPack.BuffType = 99 # 99代表清所有
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ##上线时通知离线时间(离线挂机功能)
|
| | | # @param curPlayer 玩家实例
|
| | | # @param tick 时间戳
|
| | | # @return 返回值无意义
|
| | | # @remarks 上线时通知离线时间(离线挂机功能)
|
| | | def __Sync_PlayerOffline(curPlayer, tick):
|
| | | #---等级限制---
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | |
| | | #===============================================================================
|
| | | # #---等级限制---
|
| | | # lvLimit = ReadChConfig.GetEvalChConfig('OfflineSys_LVLimit')
|
| | | # if curPlayer.GetLV() < lvLimit:
|
| | | # return
|
| | | # |
| | | # if GameWorld.IsCrossServer():
|
| | | # return
|
| | | # |
| | | # #当前离线时间(分)
|
| | | # curOfflineMinutes = min(PlayerControl.GetPlayerLeaveServerMinute(curPlayer),
|
| | | # ChConfig.Def_UpperLimit_DWord)
|
| | | # |
| | | # #防止服务器时间修改到过去得到负值
|
| | | # if curOfflineMinutes < 0:
|
| | | # GameWorld.ErrLog("Login Time Error, outTime: %s - loginTime :%s" % |
| | | # (curPlayer.GetLogoffTime(), GameWorld.GetCurrentDataTimeStr()),
|
| | | # curPlayer.GetPlayerID())
|
| | | # curOfflineMinutes = 0
|
| | | # |
| | | # #时间为分钟
|
| | | # minTimeLimit, maxTimeLimit = ReadChConfig.GetEvalChConfig("OfflineSys_AllTimeUpperLimit")
|
| | | # if curOfflineMinutes >= minTimeLimit:
|
| | | # #总离线时间(分)
|
| | | # allOfflineMinutes = min(curPlayer.GetOfflineMinutes() + curOfflineMinutes, maxTimeLimit)
|
| | | # #记录离线总时间
|
| | | # curPlayer.SetOfflineMinutes(int(allOfflineMinutes))
|
| | | # GameWorld.DebugLog("设置离线奖励时间 %s,curOfflineMinutes=%s" % (allOfflineMinutes, curOfflineMinutes), curPlayer.GetPlayerID())
|
| | | # else:
|
| | | # GameWorld.DebugLog("离线时间过短,不计入离线奖励!curOfflineMinutes=%s" % curOfflineMinutes, curPlayer.GetPlayerID())
|
| | | # |
| | | # #通知客户端离线时间
|
| | | # # curPlayer.Syn_OfflineTimeRefresh(int(curOfflineMinutes))
|
| | | # curPlayer.Syn_OfflineTimeQueryResult()
|
| | | #===============================================================================
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | #=======================================================================
|
| | | #此时已经是下马状态不需要刷状态 但是需要通知客户端下马
|
| | | PlayerHorse.PlayerRideHorseDown(curPlayer, False)
|
| | | |
| | | PlayerTeam.PlayerLoginSetTeam(curPlayer, tick)
|
| | | |
| | | |
| | | #激活玩家(保证持续性Buff处理间隔)
|
| | | PlayerControl.SetIsNeedProcess(curPlayer, True)
|
| | |
|
| | |
| | | curPlayer.SetFaction(ChConfig.CampType_Neutral)
|
| | | BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_SkillID_Justice, tick)
|
| | | BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_SkillID_Evil, tick)
|
| | | |
| | | |
| | | #再次请求双倍经验是否领取
|
| | | #PlayerDoubleExpSys.ChangeMapAfter_CalcDoubleExpTime(curPlayer, tick)
|
| | | |
| | | #PlayerVip.SetStartCalcVIPTick(curPlayer, tick)
|
| | | |
| | | |
| | | #强制切换PK模式
|
| | | initAttackModel = curMap.GetInitAttackModel()
|
| | | if curPlayer.GetAttackMode() != initAttackModel:
|
| | |
| | | #流向记录玩家下线
|
| | | DataRecordPack.DR_PlayerDisconnect(curPlayer)
|
| | |
|
| | | #VIP时间
|
| | | #PlayerVip.CalcVIPTimeByTick(curPlayer, tick, False)
|
| | | #在线时间
|
| | | PlayerOnlinePrize.CalcOnlineTime(curPlayer)
|
| | | #首充提示时间
|
| | |
| | | return
|
| | |
|
| | | elif rebornType == ChConfig.rebornType_UseItem:
|
| | | if crossMapID == ChConfig.Def_FBMapID_CrossBattlefield:
|
| | | rebornItemID = IpyGameDataPY.GetFuncCfg("CrossBattlefieldReborn", 1)
|
| | | rebornItem = ItemCommon.FindItemInPackByItemID(curPlayer, rebornItemID, IPY_GameWorld.rptItem)
|
| | | else:
|
| | | rebornItem = ItemCommon.FindItemInPackByEffectEx(curPlayer, ChConfig.Def_Effect_Reborn)
|
| | | rebornItem = ItemCommon.FindItemInPackByEffectEx(curPlayer, ChConfig.Def_Effect_Reborn)
|
| | | if not rebornItem:
|
| | | GameWorld.ErrLog("复活道具不足,无法原地复活! ", playerID)
|
| | | return
|
| | |
| | | # @param transportType 传送类型
|
| | | # @return 是否vip等级限制
|
| | | def TransportVipLvRestrict(curPlayer, transportType):
|
| | | return PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_FreeTransport)
|
| | | return 0
|
| | |
|
| | |
|
| | |
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, awardReceiveState)
|
| | | return
|
| | |
|
| | | ## 领取奖励表奖励
|
| | | # @param None None
|
| | | # @return None
|
| | | def ClientPlayerGetReward(index, clientData, tick):
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | curPlayer = playerManager.GetPlayerByIndex(index)
|
| | | |
| | | # 背包空间不足
|
| | | if not ItemCommon.CheckPackHasSpace(curPlayer, IPY_GameWorld.rptItem):
|
| | | PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_676165", [IPY_GameWorld.rptItem])
|
| | | return
|
| | | |
| | | rewardType = clientData.RewardType
|
| | | |
| | | #通知GameServer领取奖励
|
| | | resultName = str(rewardType)
|
| | | GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, 'PlayerGetReward',
|
| | | resultName, len(resultName))
|
| | | return
|
| | |
|
| | | #//A5 04 玩家领取奖励 #tagCMPlayerGetReward
|
| | | #
|
| | | #struct tagCMPlayerGetReward
|
| | |
| | | # 活跃放置奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActivityPlace:
|
| | | PlayerActivity.GetActivityPlaceReward(curPlayer)
|
| | | # 挂机奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_Guaji:
|
| | | PlayerGuaji.OnGetGuajiAward(curPlayer, dataEx)
|
| | | # 仙树免费减时
|
| | | elif rewardType == ChConfig.Def_RewardType_TreeFreeTime:
|
| | | PlayerTree.FreeReduceTreeLVTime(curPlayer)
|
| | | # 每日免费直购礼包
|
| | | elif rewardType == ChConfig.Def_RewardType_DayFreeGoldGift:
|
| | | PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
|
| | | # 仙盟联赛冠军仙盟每日俸禄奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ChampionFamilyDailyReward:
|
| | | GameLogic_FamilyWar.GetChampionFamilyDailyReward(curPlayer)
|
| | | # 仙魔之争胜利场数奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_XMZZWinCnt:
|
| | | GameLogic_XMZZ.GetXMZZWinPrize(curPlayer, dataEx)
|
| | | # 仙盟每日福利奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FamilyDayAward:
|
| | | PlayerFamily.GetFamilyDayAward(curPlayer)
|
| | | # 玩家等级奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_LVAward:
|
| | | PlayerLVAward.GetPlayerLVAward(curPlayer, dataEx)
|
| | | # 仙宝寻主奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_XBXZ:
|
| | | PlayerMagicWeapon.OnGetXBXZAward(curPlayer, dataEx)
|
| | | # 首充礼包奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_GoldGiftFirst:
|
| | | PlayerGoldGift.GetPlayerGoldGiftFirst(curPlayer, dataEx)
|
| | |
| | | # 领取boss复活活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_BossReborn:
|
| | | PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
|
| | | # 领取仙界盛典充值大礼
|
| | | elif rewardType == ChConfig.Def_RewardType_FCRecharge:
|
| | | PlayerFairyCeremony.GetFCRechargeAward(curPlayer)
|
| | | # 领取仙界盛典全民来嗨
|
| | | elif rewardType == ChConfig.Def_RewardType_FCParty:
|
| | | PlayerFairyCeremony.GetFCPartyAward(curPlayer, dataEx)
|
| | | # 领取分包下载奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_DownLoad:
|
| | | GetDownloadAward(curPlayer, dataEx)
|
| | |
| | | # 领取登录奖励活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActLoginAwardAct:
|
| | | PlayerActLogin.GetLoginAwardActionAward(curPlayer, dataEx, dataExStr)
|
| | | # 领取新仙界盛典充值大礼
|
| | | elif rewardType == ChConfig.Def_RewardType_NewFairyCRecharge:
|
| | | PlayerNewFairyCeremony.GetFCRechargeAward(curPlayer)
|
| | | # 领取新仙界盛典全民来嗨
|
| | | elif rewardType == ChConfig.Def_RewardType_NewFairyCParty:
|
| | | PlayerNewFairyCeremony.GetFCPartyAward(curPlayer, dataEx)
|
| | | # 领取节日巡礼活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FeastWeekPartyAct:
|
| | | PlayerFeastWeekParty.GetFeastWeekPartyActionAward(curPlayer, dataEx, dataExStr)
|
| | |
| | | # 轮回殿奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_LunhuidianAward:
|
| | | PlayerActLunhuidian.GetLunhuidianAward(curPlayer, dataEx, dataExStr)
|
| | | #缥缈奇遇领取
|
| | | elif rewardType == ChConfig.Def_RewardType_FairyAdventuresAward:
|
| | | PlayerFairyDomain.GetFairyAdventuresAward(curPlayer, dataEx, dataExStr)
|
| | | #历史累计充值领取
|
| | | elif rewardType == ChConfig.Def_RewardType_HistoryChargeAward:
|
| | | PlayerGoldGift.OnGetHistoryRechargeAward(curPlayer, dataEx)
|
| | | #在线特惠充值额外奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_OnlineRechargeTH:
|
| | | PlayerCoin.OnGetOnlineRechargeTH(curPlayer)
|
| | | #天星塔全服挑战层领奖
|
| | | elif rewardType == ChConfig.Def_RewardType_SkyTowerServerChallengeReward:
|
| | | GameLogic_SkyTower.OnGetSkyTowerServerChallengeReward(curPlayer, dataEx, dataExStr)
|
| | | #创角奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_CreateRole:
|
| | | OnGetCreateRoleAward(curPlayer)
|
| | |
| | | #境界渡劫任务条件奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_RealmLVUpTask:
|
| | | PlayerPrestigeSys.GetRealmLVUpTaskAward(curPlayer, dataEx)
|
| | | #仙盟boss伤害奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FamilyBossHurt:
|
| | | GameLogic_FamilyBoss.GetFamilyBossHurtAward(curPlayer, dataEx, dataExStr)
|
| | | #打包直购礼包奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_DailyPackBuyGift:
|
| | | PlayerGoldGift.GetDailyPackBuyGift(curPlayer, dataEx)
|
| | |
| | | #战令奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_Zhanling:
|
| | | PlayerZhanling.GetZhanlingReward(curPlayer, dataEx, dataExStr)
|
| | | #福地聚宝盆奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_MineTreasure:
|
| | | PlayerMineArea.GetMineTreasureAward(curPlayer, dataEx)
|
| | | #玩法前瞻奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_GameNotice:
|
| | | OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1))
|
| | |
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | if not curPlayer:
|
| | | return
|
| | | BossHurtMng.OnQueryBossHurtList(curPlayer, clientData)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | #PlayerControl.SetRealmDifficulty(curPlayer, clientData.RealmDifficulty)
|
| | | return
|
| | |
|
| | | #// A0 08 查看通用记录 #tagCSViewGameRec
|
| | | #
|
| | | #struct tagCSViewGameRec
|
| | | #{
|
| | | # tagHead Head;
|
| | | # WORD RecType; //记录类型
|
| | | # DWORD RecID; //自定义记录ID
|
| | | #};
|
| | | def OnViewGameRec(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | recType = clientData.RecType
|
| | | recID = clientData.RecID
|
| | | if recType not in ShareDefine.Def_GameRecTypeList:
|
| | | return
|
| | | if recType in ShareDefine.Def_ViewGameRecSelfList:
|
| | | recID = curPlayer.GetPlayerID()
|
| | | recTypeIDMgr = DBDataMgr.GetGameRecMgr().GetRecTypeIDMgr(recType, recID)
|
| | | SyncGameRecInfo(curPlayer, recType, recID, recTypeIDMgr.GetDataList())
|
| | | return
|
| | |
|
| | | def SyncGameRecInfo(curPlayer, recType, recID, recDataList):
|
| | | recList = []
|
| | | for recData in recDataList:
|
| | | if not recData:
|
| | | continue
|
| | | rec = ChPyNetSendPack.tagSCGameRec()
|
| | | rec.Time = recData.GetTime()
|
| | | rec.Value1 = recData.GetValue1()
|
| | | rec.Value2 = recData.GetValue2()
|
| | | rec.Value3 = recData.GetValue3()
|
| | | rec.Value4 = recData.GetValue4()
|
| | | rec.Value5 = recData.GetValue5()
|
| | | rec.Value6 = recData.GetValue6()
|
| | | rec.Value7 = recData.GetValue7()
|
| | | rec.Value8 = recData.GetValue8()
|
| | | rec.UserData = recData.GetUserData()
|
| | | rec.UserDataLen = len(rec.UserData)
|
| | | recList.append(rec)
|
| | | |
| | | clientPack = ChPyNetSendPack.tagSCGameRecInfo()
|
| | | clientPack.Clear()
|
| | | clientPack.RecType = recType
|
| | | clientPack.RecID = recID
|
| | | clientPack.RecList = recList
|
| | | clientPack.Count = len(clientPack.RecList)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|