| | |
| | | import PlayerBossReborn
|
| | | import Operate_EquipWash
|
| | | import PlayerTreasure
|
| | | import PlayerMergeEvent
|
| | | import GameLogic_GodArea
|
| | | import PlayerRune
|
| | | import PlayerFamilyRedPacket
|
| | |
| | | #通知玩家物品信息
|
| | | __Sync_PackDetel(curPlayer)
|
| | |
|
| | | #更新主服ID信息
|
| | | #UpdatePlayerServerGroupID(curPlayer)
|
| | | #更新服务器组ID
|
| | | PlayerControl.UpdPlayerServerGroupID(curPlayer)
|
| | |
|
| | | #上线学习技能
|
| | | SkillCommon.PlayerLoginCheckLearnSkill(curPlayer)
|
| | |
| | | #
|
| | | # # ʱװ
|
| | | # PlayerCoat.OnLogin_Coat(curPlayer)
|
| | | #
|
| | | # # 跨服匹配
|
| | | # PlayerMergePK.MergePKOnLogin(curPlayer)
|
| | | # PlayerMergeKing.MergePKOnLogin(curPlayer)
|
| | | |
| | | # 跨服PK
|
| | | PlayerCrossRealmPK.DoPlayerLogin(curPlayer)
|
| | |
|
| | |
| | | # @remarks 上线时通知离线时间(离线挂机功能)
|
| | | def __Sync_PlayerOffline(curPlayer, tick):
|
| | | #---等级限制---
|
| | | if GameWorld.IsMergeServer():
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | PlayerTJG.TJGDeadOffline(curPlayer)
|
| | |
|
| | |
| | | # if curPlayer.GetLV() < lvLimit:
|
| | | # return
|
| | | #
|
| | | # if GameWorld.IsMergeServer():
|
| | | # if GameWorld.IsCrossServer():
|
| | | # return
|
| | | #
|
| | | # #当前离线时间(分)
|
| | |
| | | # # curPlayer.Syn_OfflineTimeRefresh(int(curOfflineMinutes))
|
| | | # curPlayer.Syn_OfflineTimeQueryResult()
|
| | | #===============================================================================
|
| | | return
|
| | |
|
| | | def UpdatePlayerServerGroupID(curPlayer):
|
| | | # 更新自己的服务器组ID, 跨服服务器不处理
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | serverGroupID = GameWorld.GetServerGroupID()
|
| | | if not serverGroupID:
|
| | | return
|
| | | playerServerGroupID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ServerGroupID)
|
| | | if playerServerGroupID != serverGroupID:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ServerGroupID, serverGroupID)
|
| | | GameWorld.DebugLog("更新玩家所属服务器组ID: serverGroupID=%s" % serverGroupID)
|
| | | |
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | |
|
| | | #设置阵营
|
| | | if curPlayer.GetFaction() != ChConfig.CampType_Neutral \
|
| | | and GameWorld.GetMap().GetMapID() not in ChConfig.Def_MapID_NeedCamp \
|
| | | and GameWorld.GetMap().GetMapID() not in ReadChConfig.GetEvalChConfig("MapID_NeedCamp"):
|
| | | and FBCommon.GetRecordMapID(GameWorld.GetMap().GetMapID()) not in ChConfig.Def_MapID_NeedCamp:
|
| | | #重置阵营
|
| | | curPlayer.SetFaction(ChConfig.CampType_Neutral)
|
| | | BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_SkillID_Justice, tick)
|
| | |
| | |
|
| | | GameWorld.Log("PlayerDisconnect!" , curPlayer.GetPlayerID())
|
| | |
|
| | | PlayerMergeEvent.BroadcastMergePlayerEvent()
|
| | | #下线了,将存储在字典中的真实XP值,设置给玩家,完成通知和存储
|
| | | #curPlayer.SetXP(curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_RecordXPValue))
|
| | | #######################################################################
|
| | |
| | | #@param mapBornPlace 复活位置,默认0为原地
|
| | | #@return 返回值无意义
|
| | | #@remarks 自定义函数, 玩家复活
|
| | | def PlayerRebornByType(curPlayer, playerRebornType, tick, mapBornPlace=0):
|
| | | def PlayerRebornByType(curPlayer, playerRebornType, tick, mapBornPlace=0, isAddSuperBuff=True):
|
| | | curPlayerID = curPlayer.GetID()
|
| | | curVipLv = curPlayer.GetVIPLv()
|
| | |
|
| | |
| | | FBLogic.OnResetFBRebornPlacePos(curPlayer, mapBornPlace, tick)
|
| | |
|
| | | #复活加无敌Buff
|
| | | SkillCommon.AddBuffBySkillType_NoRefurbish(curPlayer , ChConfig.Def_SkillID_LimitSuperBuff, tick)
|
| | | if isAddSuperBuff:
|
| | | SkillCommon.AddBuffBySkillType_NoRefurbish(curPlayer , ChConfig.Def_SkillID_LimitSuperBuff, tick)
|
| | | #复活疲劳BUff
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IsAddReviveTired):
|
| | | findBuff = SkillCommon.FindBuffByID(curPlayer, ChConfig.Def_SkillID_ReviveTired)[0]
|
| | |
| | | #@remarks 离线经验兑换
|
| | | def PlayerExpExchange(index, curPackData, tick):
|
| | | # 跨服服务器功能限制
|
| | | if GameWorld.IsMergeServer():
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | |
|
| | | #兑换公式字典
|
| | |
| | | # 冰晶矿脉星级奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_IceLodeStar:
|
| | | GameLogic_IceLode.GetIceLodeStarAward(curPlayer, dataEx)
|
| | | |
| | | #
|
| | | # # 充值豪礼奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_GoldGift:
|
| | | # PlayerGoldGift.GetPlayerGoldGift(curPlayer, dataEx)
|
| | | #
|
| | | # # 累计签到奖励
|
| | | # #elif rewardType == ShareDefine.Def_RewardType_DaySign:
|
| | | # # PlayerSignDay.GiveSignCntAward(curPlayer, dataEx)
|
| | | #
|
| | | # # 天天首充奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_DailyGold:
|
| | | # PlayerGoldGift.GetPlayerDailyGoldChargeGift(curPlayer)
|
| | | #
|
| | | # # 单日充值多选一礼包
|
| | | # elif rewardType == ShareDefine.Def_RewardType_SingleGoldGift:
|
| | | # giftLV = 0 # 默认第一档0
|
| | | # if dataExStr:
|
| | | # try:
|
| | | # giftLV = int(dataExStr)
|
| | | # except:
|
| | | # GameWorld.ErrLog("单日充值多选一礼包奖励档错误!%s" % dataExStr)
|
| | | # PlayerGoldGift.GetSingleGoldGift(curPlayer, dataEx, giftLV, 0)
|
| | | # |
| | | # # 当日充值无限领取礼包
|
| | | # elif rewardType == ShareDefine.Def_RewardType_UnlimitedGoldGift:
|
| | | # PlayerGoldGift.GetSingleGoldGift(curPlayer, 0, 0, 1) |
| | | # |
| | | # # 登陆签到奖励
|
| | | # #elif rewardType == ShareDefine.Def_RewardType_DayLoginSign:
|
| | | # # PlayerSignDay.GetDaySignAward(curPlayer, dataEx)
|
| | | # |
| | | # # 跨服PK奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_MergePKAward:
|
| | | # PlayerMergePK.OnQueryMergePKAward(curPlayer, dataEx, GameWorld.ToIntDef(dataExStr), tick)
|
| | | # |
| | | # # 王者争霸全服荣耀奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_ServerHonour:
|
| | | # PlayerMergeKing.GetMergeKingAward_ServerHonour(curPlayer)
|
| | | # |
| | | # # 王者争霸晋级排名奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_MergeKingRank:
|
| | | # PlayerMergeKing.GetMergeKingAward_Rank(curPlayer)
|
| | | # |
| | | # # 王者争霸竞猜积分奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_MergeKingSupport:
|
| | | # PlayerMergeKing.GetMergeKingAward_Support(curPlayer, dataEx, tick)
|
| | | # |
| | | # # QQ成长礼包奖励
|
| | | # elif rewardType in [ShareDefine.Def_RewardType_QQUpYellow, ShareDefine.Def_RewardType_QQUpBlue]:
|
| | | # PlayerQQ.GetQQUpReward(curPlayer, rewardType, dataEx)
|
| | | # |
| | | # # QQ新手礼包奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_QQNewMan:
|
| | | # PlayerQQ.GetQQNewManAward(curPlayer, rewardType, dataEx)
|
| | | # |
| | | # # QQ每日礼包奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_QQDayGift:
|
| | | # PlayerQQ.GetQQDayGift(curPlayer, rewardType, dataEx)
|
| | | # |
| | | # # Qzone成长礼包奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_QzoneUp:
|
| | | # PlayerQQ.GetQzoneUpReward(curPlayer, rewardType, dataEx)
|
| | | # |
| | | # # Qzone新手礼包奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_QzoneNewMan:
|
| | | # PlayerQQ.GetQzoneNewManAward(curPlayer, rewardType, dataEx)
|
| | | # |
| | | # # Qzone每日礼包奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_QzoneDayGift:
|
| | | # PlayerQQ.GetQzoneDayGift(curPlayer, rewardType, dataEx)
|
| | | # |
| | | # # 消费VIP等级奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_CostVIPLV:
|
| | | # PlayerCostVIP.GetCostVIPAward(curPlayer, dataEx)
|
| | | # |
| | | # # 消费VIP成长奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_CostVIPGrowUp:
|
| | | # PlayerCostVIP.GetVIPGrowUpAward(curPlayer, dataEx)
|
| | | # # 转生领奖
|
| | | # elif rewardType == ShareDefine.Def_RewardType_Reincarnation:
|
| | | # PlayerReincarnation.GetReincarnationAward(curPlayer, dataEx)
|
| | | # # 跨服boss首次参与奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_MergeBossFirstJoinAward:
|
| | | # GameLogic_MergeBoss.OnGetMergeBossFirstJoinAward(curPlayer)
|
| | | # # 悬赏任务积分奖励
|
| | | # elif rewardType == ShareDefine.Def_RewardType_ArrestTaskAward:
|
| | | # PlayerArrestTask.OnGetArrestPointAward(curPlayer, dataEx)
|
| | | |
| | | return
|
| | |
|
| | |
|
| | |
| | | sendMsg = "%s" % str([tagMapID, tagLineID, npcIDList])
|
| | | curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_NPCCnt, 0,
|
| | | 'NPCCnt', sendMsg, len(sendMsg))
|
| | | return
|
| | |
|
| | |
|
| | | ## 跨服赛报名状态
|
| | | # @param index 玩家索引
|
| | | # @param tick 当前时间
|
| | | # @return None
|
| | | def SendRegisterState(curPlayer, state):
|
| | | resultPack = ChPyNetSendPack.tagMergeWarRegisterState()
|
| | | resultPack.Clear()
|
| | | |
| | | resultPack.RegisterState = state
|
| | | NetPackCommon.SendFakePack(curPlayer, resultPack)
|
| | | return
|
| | |
|
| | |
|