| | |
| | | import ChConfig
|
| | | import BuffSkill
|
| | | import PlayerEventCounter
|
| | | import PlayerTeam
|
| | | import PlayerHorse
|
| | | import NPCCommon
|
| | | import SkillCommon
|
| | |
| | | import PlayerGameWallow
|
| | | import NetPackCommon
|
| | | import ChPyNetSendPack
|
| | | import Operate_PlayerBuyZhenQi
|
| | | import DataRecordPack
|
| | | import PlayerBillboard
|
| | | import UpdatePlayerName
|
| | |
| | | import PlayerFamily
|
| | | import PlayerLoginDayAward
|
| | | import PlayerGodWeapon
|
| | | import PlayerWorldAverageLv
|
| | | import PlayerGoldInvest
|
| | | import PlayerActivity
|
| | | import FBCommon
|
| | | import PlayerBindJadeWheel
|
| | | import BossHurtMng
|
| | | import PlayerWishingWell
|
| | | import PlayerAttrFruit
|
| | | import PlayerSuccess
|
| | | import PlayerDienstgrad
|
| | | import PlayerFreeGoods
|
| | | import PlayerRecover
|
| | | import GameLogic_IceLode
|
| | | 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 PlayerDiceEx
|
| | | import GameLogic_XMZZ
|
| | | import PlayerFlashSale
|
| | | import PlayerFlashGiftbag
|
| | | import PlayerDailyGiftbag
|
| | |
| | | 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 IPY_ServerDefine
|
| | | import CommFunc
|
| | | from PyMongoDB import RecvPackToMapDB
|
| | | import PyMongoMain
|
| | | import PlayerTalk
|
| | | import PlayerHero
|
| | | import PlayerOnline
|
| | | import TurnAttack
|
| | |
|
| | | import datetime
|
| | | import time
|
| | |
| | | #@return 返回值无意义
|
| | | #@remarks 玩家登陆游戏初始化
|
| | | def InitLoginPlayer(curPlayer, tick):
|
| | | PlayerOnline.OnPlayerLogin(curPlayer)
|
| | | #初始化玩家的时钟个数
|
| | | if curPlayer.GetTickTypeCount() == 0:
|
| | | curPlayer.SetTickTypeCount(ChConfig.TYPE_Player_Tick_Count)
|
| | |
| | | curPlayer.SetLoginTime(GameWorld.GetCurrentDataTimeStr())
|
| | | #初始化玩家背包
|
| | | InitPlayerPack(curPlayer)
|
| | | #通知玩家物品信息
|
| | | __Sync_PackDetel(curPlayer)
|
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
|
| | |
| | | EventReport.WriteEvent_login(curPlayer)
|
| | | #---玩家上线, 宠物逻辑处理---
|
| | | PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | | |
| | | PlayerTeam.OnPlayerLoginCrossServer(curPlayer)
|
| | | return
|
| | |
|
| | | leaveServerSecond = PlayerControl.GetPlayerLeaveServerSecond(curPlayer)
|
| | |
| | | # 离线过久恢复为非跨服状态
|
| | | if PlayerControl.GetCrossMapID(curPlayer):
|
| | | PlayerControl.SetCrossMapID(curPlayer, 0)
|
| | | |
| | | |
| | | __FirstLoginOnEnter(curPlayer)
|
| | | |
| | | TurnAttack.OnPlayerLogin(curPlayer)
|
| | | SyncGuideState(curPlayer)
|
| | |
|
| | | #上线检查一次装备属性
|
| | |
| | |
|
| | | #通知玩家技能信息
|
| | | __Sync_ClientSkill(curPlayer)
|
| | | #清除国家答题Buff
|
| | | #PlayerExam.DoLogic_ExitExam(curPlayer, tick, needRefresh = False)
|
| | | #清除VIPbuff
|
| | | #BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_VIPExp_SkillTypeID, tick)
|
| | |
|
| | | #通知玩家的buff
|
| | | __Sync_ClientBuff(curPlayer)
|
| | | |
| | | #初始化现实时间物品
|
| | | InitRealityTimeItem(curPlayer, tick)
|
| | |
|
| | | #---刷新了玩家属性, 登陆只刷新一次,其他地方不用刷
|
| | | DoPlayerLoginInMap(curPlayer, tick)
|
| | |
| | | PlayerPrestigeSys.OnLogin(curPlayer)
|
| | | #DataRecordPack.DR_PlayerLogin(curPlayer)
|
| | | EventReport.WriteEvent_login(curPlayer)
|
| | | |
| | | __FirstLoginOnEnter(curPlayer)
|
| | |
|
| | | # 合服首登处理
|
| | | __DoMixServerFirstLogin(curPlayer)
|
| | |
| | |
|
| | | #PKģʽ
|
| | | SyncPKModel(curPlayer)
|
| | | |
| | | #装备相关信息
|
| | | ChEquip.OnPlayerEquipLoginLogic(curPlayer)
|
| | | |
| | | #大师
|
| | | PlayerGreatMaster.MasterOnLogin(curPlayer)
|
| | | |
| | | #֪ͨVIP
|
| | | PlayerVip.DoOnLogin(curPlayer, tick)
|
| | | |
| | | #通知法宝精炼等级
|
| | | PlayerRefineStove.DoOnLogin(curPlayer, tick)
|
| | |
|
| | | #---玩家上线, 宠物逻辑处理---
|
| | | PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | | PlayerPet.OnPlayerPetLogin(curPlayer)
|
| | | |
| | | #清空玩家万能背包中的任务物品
|
| | | ItemControler.ClearPackEventItem(curPlayer, IPY_GameWorld.rptAnyWhere)
|
| | |
|
| | | #PlayerLoginNotify(curPlayer, tick)
|
| | |
|
| | |
| | | # 首充/天天首充/充值豪礼
|
| | | PlayerGoldGift.OnLogin(curPlayer)
|
| | |
|
| | | #通知购买功能中各购买类型的已购买和可购买次数
|
| | | Operate_PlayerBuyZhenQi.DoPlayerLogin(curPlayer)
|
| | | # |
| | | # #通知功能首次触发情况
|
| | | GameFuncComm.Sync_FuncOpenState(curPlayer)
|
| | | #
|
| | |
| | |
|
| | | #通知玩家死亡时间
|
| | | PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
|
| | | #ClearPlayerDeadInfo(curPlayer)
|
| | | |
| | | #充值活动玩家登入处理
|
| | | #PlayerGoldAction.DoLogic_PlayerOnLogin(curPlayer)
|
| | | |
| | | # 提示贵宾俱乐部信息
|
| | | #PlayerVip.NoteVIPClubInfo(curPlayer)
|
| | |
|
| | | #角色改名次数
|
| | | UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
|
| | |
| | |
|
| | | # 开服活动奖励信息
|
| | | OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
|
| | |
|
| | | # 试炼之塔
|
| | | GameLogic_TrialTower.OnFBPlayerLogin(curPlayer)
|
| | | # 古神禁地
|
| | | GameLogic_GodArea.GodAreaOnLogin(curPlayer)
|
| | | |
| | | # 采集NPC次数通知
|
| | | NPCCommon.SyncCollNPCTime(curPlayer)
|
| | |
|
| | |
| | | # 副本进入时间
|
| | | FBCommon.FBOnLogin(curPlayer)
|
| | |
|
| | | #世界等级
|
| | | PlayerWorldAverageLv.OnLogin(curPlayer)
|
| | | |
| | | # 投资理财
|
| | | PlayerGoldInvest.OnLogin(curPlayer)
|
| | | |
| | | #属性果实使用情况
|
| | | PlayerAttrFruit.AttrFruitOnLogin(curPlayer)
|
| | |
|
| | | #成就
|
| | | PlayerSuccess.SuccOnLogin(curPlayer)
|
| | |
| | | # 跨服PK
|
| | | PlayerCrossRealmPK.DoPlayerLogin(curPlayer)
|
| | | PlayerCrossChampionship.DoPlayerLogin(curPlayer)
|
| | | PlayerCrossBattlefield.DoPlayerLogin(curPlayer)
|
| | |
|
| | | # 幸运云购
|
| | | PlayerLuckyCloudBuy.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)
|
| | | #我要太极
|
| | | PlayerDiceEx.DiceExOnLogin(curPlayer)
|
| | | #仙魔之争
|
| | | GameLogic_XMZZ.OnXMZZLogin(curPlayer)
|
| | | PlayerOnlinePrize.OnPlayerLogin(curPlayer)
|
| | | #装备分解
|
| | | PlayerEquipDecompose.PlayerLogin(curPlayer)
|
| | | #防沉迷
|
| | | PlayerGameWallow.DoLogic_CheckWallow(curPlayer, tick)
|
| | | # 协助
|
| | | PlayerAssist.OnPlayerLogin(curPlayer)
|
| | | # 极品白拿
|
| | | PlayerFreeGoods.OnLogin(curPlayer)
|
| | | # BOSS复活活动
|
| | |
| | | PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
|
| | | # 转盘活动
|
| | | PlayerActTurntable.OnPlayerLogin(curPlayer)
|
| | | # 仙界盛典活动
|
| | | PlayerFairyCeremony.OnLogin(curPlayer)
|
| | | # 新仙界盛典活动
|
| | | PlayerNewFairyCeremony.OnLogin(curPlayer)
|
| | | # 分支下载奖励记录通知
|
| | | SyncPackDownloadAward(curPlayer)
|
| | | # 登录触发功能开启(老号处理)
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | # 神兽
|
| | | PlayerDogz.OnPlayerLogin(curPlayer)
|
| | | # 骑宠
|
| | | FamilyRobBoss.OnPlayerLogin(curPlayer)
|
| | | # 绑玉转盘
|
| | | PlayerBindJadeWheel.OnLogin(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)
|
| | |
| | | pass
|
| | |
|
| | | else:
|
| | | PyMongoMain.GetUserCtrlDB().OnPlayerLogin(curPlayer)
|
| | | PlayerHero.OnPlayerLogin(curPlayer)
|
| | | PlayerMail.OnPlayerLogin(curPlayer)
|
| | | PlayerChatBox.OnPlayerLogin(curPlayer)
|
| | | PlayerFace.OnPlayerLogin(curPlayer)
|
| | |
| | |
|
| | | #---补满血满魔---
|
| | | GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
|
| | | curPlayer.SetMP(curPlayer.GetMaxMP())
|
| | | #curPlayer.SetMP(curPlayer.GetMaxMP())
|
| | |
|
| | | #默认触发一次功能开启
|
| | | if curPlayer.GetLV() == 1:
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | |
|
| | | #初始化组队状态
|
| | | autoJoinReqCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 1)
|
| | | autoInviteCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 2)
|
| | | PlayerControl.SetTeamCheckStateEx(curPlayer, int(not autoJoinReqCheck), int(not autoInviteCheck))
|
| | | #autoJoinReqCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 1)
|
| | | #autoInviteCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 2)
|
| | | #PlayerControl.SetTeamCheckStateEx(curPlayer, int(not autoJoinReqCheck), int(not autoInviteCheck))
|
| | |
|
| | | #玩家默认恶名值
|
| | | curPlayer.SetInfamyValue(ChConfig.Def_FirstLogin_InfamyValue)
|
| | | #curPlayer.SetInfamyValue(ChConfig.Def_FirstLogin_InfamyValue)
|
| | |
|
| | | #curPlayer.SetDict("ThunderLogin", 1)
|
| | | #记录第一次登陆
|
| | |
| | | for mailTypeKey, mailItemList in mailList:
|
| | | PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
|
| | |
|
| | | PlayerHero.OnPlayerFirstLogin(curPlayer)
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1)
|
| | | return
|
| | |
|
| | |
| | |
|
| | | # 同步排行榜
|
| | | PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
|
| | | |
| | | # 天星塔全服过关记录
|
| | | GameLogic_SkyTower.OnMixFirstLogin(curPlayer)
|
| | |
|
| | | # bossƾ֤
|
| | | PlayerActBossTrial.OnMixFirstLogin(curPlayer)
|
| | |
| | | rolePack = itemManager.GetPack(packIndex)
|
| | | rolePack.Sync_Refresh()
|
| | |
|
| | | # 刷下装备评分,仓库可以暂不处理,取出装备后登录触发刷新
|
| | | for i in xrange(rolePack.GetCount()):
|
| | | curItem = rolePack.GetAt(i)
|
| | | if curItem.IsEmpty():
|
| | | continue
|
| | | newScore = ItemCommon.CalcEquipGS(curItem)
|
| | | hisScore = ItemCommon.GetEquipGearScore(curItem)
|
| | | if hisScore != newScore:
|
| | | ItemCommon.SetEquipGearScore(curItem, newScore)
|
| | | GameWorld.Log("登录更新装备评分: packType=%s,i=%s,hisScore=%s,newScore=%s,itemID=%s,guid=%s" |
| | | % (packIndex, i, hisScore, newScore, curItem.GetItemTypeID(), curItem.GetGUID()), curPlayer.GetPlayerID())
|
| | | |
| | | for packIndex in ChConfig.Def_VPackCnt_Dict.keys():
|
| | | ItemControler.Sync_VPackItem_Refresh(curPlayer, packIndex)
|
| | |
|
| | |
| | | # #itemManager.GetPack(IPY_GameWorld.rptBreakPrepare).Sync_Refresh()
|
| | | # #itemManager.GetPack(IPY_GameWorld.rptBreakItem).Sync_Refresh()
|
| | | #===============================================================================
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ##初始化现实时间物品
|
| | | #@param curPlayer 玩家实例
|
| | | #@param tick 时间戳
|
| | | #@return 返回值无意义
|
| | | #@remarks 初始化现实时间物品
|
| | | def InitRealityTimeItem(curPlayer, tick):
|
| | | PlayerState.ProcessTimeEquip(curPlayer, tick)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
|
| | | #副本地图上线切换才加无敌buff
|
| | | SkillCommon.AddBuffBySkillType_NoRefurbish(curPlayer, ChConfig.Def_SkillID_LimitSuperBuff, tick)
|
| | | |
| | | #刷新玩家的视野
|
| | | if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or PlayerControl.GetCustomMapID(curPlayer)):
|
| | | GameWorld.DebugLog("===登录本服地图时,处于跨服或自定义场景状态,不刷新视野!", curPlayer.GetPlayerID())
|
| | | |
| | | #卡牌改为0视野 |
| | | if curPlayer.GetSightLevel() != curPlayer.GetID():
|
| | | PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
|
| | | elif not GameWorld.IsCrossServer():
|
| | | realmDifficulty = PlayerControl.GetMapRealmDifficulty(curPlayer)
|
| | | if realmDifficulty:
|
| | | GameWorld.DebugLog("===登录本服地图时,处于境界难度地图,自动设置难度! realmDifficulty=%s" % realmDifficulty, curPlayer.GetPlayerID())
|
| | | PlayerControl.SetRealmDifficulty(curPlayer, realmDifficulty)
|
| | | |
| | | if curPlayer.GetSight() != 0:
|
| | | PlayerControl.SetSight(curPlayer, 0)
|
| | | #刷新玩家的视野
|
| | | #if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or PlayerControl.GetCustomMapID(curPlayer)):
|
| | | # GameWorld.DebugLog("===登录本服地图时,处于跨服或自定义场景状态,不刷新视野!", curPlayer.GetPlayerID())
|
| | | # PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
|
| | | #elif not GameWorld.IsCrossServer():
|
| | | # realmDifficulty = PlayerControl.GetMapRealmDifficulty(curPlayer)
|
| | | # if realmDifficulty:
|
| | | # GameWorld.DebugLog("===登录本服地图时,处于境界难度地图,自动设置难度! realmDifficulty=%s" % realmDifficulty, curPlayer.GetPlayerID())
|
| | | # PlayerControl.SetRealmDifficulty(curPlayer, realmDifficulty)
|
| | | |
| | | PlayerState.ChangePlayerSigh(curPlayer, tick)
|
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | curPlayer.SetForbiddenSyncClientState(False)
|
| | |
|
| | | playerControl = PlayerControl.PlayerControl(curPlayer)
|
| | | #刷新所有状态
|
| | | playerControl.ReCalcAllState()
|
| | | olPlayer = PlayerOnline.GetOnlinePlayer(curPlayer)
|
| | | olPlayer.ReCalcAllAttr()
|
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | curPlayer.SetForbiddenSyncClientState(True)
|
| | |
| | | #@return 返回值无意义
|
| | | #@remarks 初始化玩家背包
|
| | | def InitPlayerPack(curPlayer) :
|
| | | itemManager = curPlayer.GetItemManager()
|
| | | |
| | | #设置装备实际个数,默认最大个数
|
| | | PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptEquip, defaultMax=True, isSync=False)
|
| | |
|
| | | #初始化玩家背包
|
| | | PlayerControl.Init_ItemPack(curPlayer)
|
| | | PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptItem)
|
| | |
|
| | | #初始化玩家仓库
|
| | | PlayerControl.Init_Warehouse(curPlayer)
|
| | | #PlayerControl.Init_Warehouse(curPlayer)
|
| | | |
| | | #初始化鉴定背包,默认最大个数用于存放主线掉落
|
| | | PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptIdentify, defaultMax=True)
|
| | | |
| | | #初始化英雄背包
|
| | | PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptHero)
|
| | | |
| | | #初始化临时交换背包,默认最大个数
|
| | | PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTempSwap, defaultMax=True, isSync=False)
|
| | | |
| | | #初始化临时存放背包,默认最大个数
|
| | | PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTempItem, defaultMax=True, isSync=False)
|
| | |
|
| | | #初始化寻宝背包
|
| | | PlayerControl.Init_TreasurePack(curPlayer)
|
| | | PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTreasure)
|
| | |
|
| | | #初始化神兽物品背包
|
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzItem)
|
| | | curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptDogzItem))
|
| | | curPack.Sync_PackCanUseCount()
|
| | | #curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzItem)
|
| | | #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptDogzItem))
|
| | | #curPack.Sync_PackCanUseCount()
|
| | | #初始化神兽装备背包
|
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
|
| | | curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptDogzEquip))
|
| | | curPack.Sync_PackCanUseCount()
|
| | | #curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
|
| | | #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptDogzEquip))
|
| | | #curPack.Sync_PackCanUseCount()
|
| | | #初始化垃圾分类背包
|
| | | curPack = itemManager.GetPack(ShareDefine.rptGarbage)
|
| | | curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptGarbage))
|
| | | curPack.Sync_PackCanUseCount()
|
| | | |
| | | #初始化临时交换背包
|
| | | curPack = itemManager.GetPack(ShareDefine.rptTempSwap)
|
| | | curPack.SetCount(ChConfig.Def_PackCnt_TempSwap)
|
| | | |
| | | #初始化临时存放背包
|
| | | curPack = itemManager.GetPack(ShareDefine.rptTempItem)
|
| | | curPack.SetCount(ChConfig.Def_PackCnt_TempItem)
|
| | |
|
| | | #设置装备实际个数
|
| | | curPack = itemManager.GetPack(IPY_GameWorld.rptEquip)
|
| | | curPack.SetCount(ItemCommon.GetPackInitCount(IPY_GameWorld.rptEquip))
|
| | | #curPack = itemManager.GetPack(ShareDefine.rptGarbage)
|
| | | #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptGarbage))
|
| | | #curPack.Sync_PackCanUseCount()
|
| | |
|
| | | #初始化垃圾桶
|
| | | #curPack = itemManager.GetPack(IPY_GameWorld.rptRecycle)
|
| | | #curPack.SetCount(ChConfig.Def_PackCnt_Recycle)
|
| | |
|
| | | #初始化万能背包
|
| | | curPack = itemManager.GetPack(IPY_GameWorld.rptAnyWhere)
|
| | | curPack.SetCount(IPY_GameWorld.Def_AnyWherePackCount)
|
| | | #curPack = itemManager.GetPack(IPY_GameWorld.rptAnyWhere)
|
| | | #curPack.SetCount(IPY_GameWorld.Def_AnyWherePackCount)
|
| | |
|
| | | #初始化宠物背包
|
| | | curPack = itemManager.GetPack(ShareDefine.rptPet)
|
| | | curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptPet))
|
| | | #curPack = itemManager.GetPack(ShareDefine.rptPet)
|
| | | #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptPet))
|
| | | #curPack.Sync_PackCanUseCount()
|
| | | |
| | | ItemCommon.SyncPackBuyCnt(curPlayer)
|
| | | |
| | | #通知玩家物品信息
|
| | | __Sync_PackDetel(curPlayer)
|
| | | |
| | | ItemControler.CheckGiveBindMoneyTypeItem(curPlayer)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | #将玩家放置在这个地图上
|
| | | curPlayer.InitPos(curPlayer.GetPosX(), curPlayer.GetPosY())
|
| | |
|
| | | #刷新自己的视野
|
| | | if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene)):
|
| | | GameWorld.DebugLog("===本服LoadMapOK时玩家处于跨服或自定义场景状态,不设置可见!", curPlayer.GetPlayerID())
|
| | | #卡牌改为0视野
|
| | | if curPlayer.GetSightLevel() != curPlayer.GetID():
|
| | | PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
|
| | | elif not GameWorld.IsCrossServer():
|
| | | realmDifficulty = PlayerControl.GetMapRealmDifficulty(curPlayer)
|
| | | if realmDifficulty:
|
| | | GameWorld.DebugLog("===本服LoadMapOK时玩家处于境界难度地图,自动设置难度!realmDifficulty=%s" % realmDifficulty, curPlayer.GetPlayerID())
|
| | | PlayerControl.SetRealmDifficulty(curPlayer, realmDifficulty)
|
| | | |
| | | if curPlayer.GetSight() != 0:
|
| | | PlayerControl.SetSight(curPlayer, 0)
|
| | | #刷新自己的视野
|
| | | #if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene)):
|
| | | # GameWorld.DebugLog("===本服LoadMapOK时玩家处于跨服或自定义场景状态,不设置可见!", curPlayer.GetPlayerID())
|
| | | # PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
|
| | | #elif not GameWorld.IsCrossServer():
|
| | | # realmDifficulty = PlayerControl.GetMapRealmDifficulty(curPlayer)
|
| | | # if realmDifficulty:
|
| | | # GameWorld.DebugLog("===本服LoadMapOK时玩家处于境界难度地图,自动设置难度!realmDifficulty=%s" % realmDifficulty, curPlayer.GetPlayerID())
|
| | | # PlayerControl.SetRealmDifficulty(curPlayer, realmDifficulty)
|
| | | |
| | | curPlayer.RefreshView()
|
| | | curPlayer.SetVisible(True)
|
| | |
|
| | |
| | | #=======================================================================
|
| | | #此时已经是下马状态不需要刷状态 但是需要通知客户端下马
|
| | | 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:
|
| | |
| | |
|
| | | PassiveBuffEffMng.OnLoadMapGFPassive(curPlayer)
|
| | | PlayerYinji.OnLoadMap(curPlayer)
|
| | | ItemControler.PlayerItemControler(curPlayer).RefreshStartEquipCount() # 刷新装备珍品星级
|
| | |
|
| | | #EndLoadMap需放在最后, 0403 tagPlayerLoginLoadOK
|
| | | curPlayer.EndLoadMap()
|
| | |
| | | NotifyPlayerBasePoint(curPlayer, pointAttrIDList)
|
| | | playerControl = PlayerControl.PlayerControl(curPlayer)
|
| | | playerControl.RefreshPlayerAttrState()
|
| | | PlayerControl.SetLingGenMaxIndex(curPlayer)
|
| | | #PlayerControl.SetLingGenMaxIndex(curPlayer)
|
| | | return
|
| | |
|
| | | #// B2 07 重置加点 #tagCMResetAttrPoint
|
| | |
| | | #流向记录玩家下线
|
| | | DataRecordPack.DR_PlayerDisconnect(curPlayer)
|
| | |
|
| | | #VIP时间
|
| | | #PlayerVip.CalcVIPTimeByTick(curPlayer, tick, False)
|
| | | #在线时间
|
| | | PlayerOnlinePrize.CalcOnlineTime(curPlayer)
|
| | | #首充提示时间
|
| | |
| | |
|
| | | #离线session
|
| | | EventReport.WriteEvent_session(curPlayer)
|
| | | |
| | | #需放最后
|
| | | PlayerOnline.OnPlayerLogoff(curPlayer)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | 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
|
| | |
|
| | |
|
| | |
|
| | |
| | | #参考经验
|
| | | rExp = PlayerControl.GetPlayerReExp(curPlayer)
|
| | | reLV = curPlayer.GetLV() #参考等级
|
| | | worldLvExpRate = PlayerWorldAverageLv.GetWorldAverageLvExpRate(curPlayer) #世界等级经验加成
|
| | | worldLvExpRate = 0
|
| | |
|
| | | #经验公式
|
| | | redeemExp = int(eval(recList[1]))
|
| | |
| | | # @param tick: 时间戳
|
| | | # @return: None
|
| | | def ReceiveFamilyArrestAward(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | arrestID = clientData.ArrestID
|
| | | |
| | | bit = ShareDefine.Def_ArrestOverState_BitDic.get(arrestID)
|
| | | if bit == None:
|
| | | #没有这个家族悬赏任务
|
| | | GameWorld.DebugLog("没有这个家族悬赏任务 arrestID=%s" % arrestID)
|
| | | return
|
| | | |
| | | receiveState = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyArrestAwardState)
|
| | | |
| | | if receiveState & pow(2, bit):
|
| | | #该任务奖励已经领取
|
| | | GameWorld.DebugLog("该任务奖励已经领取 arrestID=%s" % arrestID)
|
| | | return
|
| | | |
| | | if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FamilyArrestQueryState) == 1:
|
| | | #已经在查询中, 不重复查询
|
| | | GameWorld.DebugLog("已经在查询中, 不重复查询 arrestID=%s" % arrestID)
|
| | | return
|
| | | |
| | | sendMsg = '%s' % arrestID
|
| | | |
| | | #向GameServer请求该悬赏任务是否已经完成
|
| | | curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_FamilyArrest, 0, 'FamilyArrestAward', sendMsg, len(sendMsg))
|
| | | |
| | | #设置状态查询中
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_FamilyArrestQueryState, 1)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | # 每日免费直购礼包
|
| | | 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_OpenFunc:
|
| | | GameFuncComm.GetFuncOpenAward(curPlayer, dataEx)
|
| | | # 冰晶矿脉星级奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_IceLodeStar:
|
| | | GameLogic_IceLode.GetIceLodeStarAward(curPlayer, dataEx)
|
| | | # 领取周狂欢活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_WeekPartyAct:
|
| | | PlayerWeekParty.GetWeekPartyActionAward(curPlayer, dataEx, dataExStr)
|
| | |
| | | # 领取登录奖励活动奖励
|
| | | 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)
|
| | |
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | if not curPlayer:
|
| | | return
|
| | | BossHurtMng.OnQueryBossHurtList(curPlayer, clientData)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | # WORD RealmDifficulty; //境界难度 = 1000 + 所选境界等级,如境界13,则发1013
|
| | | #};
|
| | | def OnSelectRealmDifficulty(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | PlayerControl.SetRealmDifficulty(curPlayer, clientData.RealmDifficulty)
|
| | | #curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | #PlayerControl.SetRealmDifficulty(curPlayer, clientData.RealmDifficulty)
|
| | | return
|
| | |
|