From 4087d18ce7cbd1578a6e287962bd902386984048 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 14 七月 2025 10:55:57 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_ServerCode --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 136 ++++++++++++++++++++++++++------------------- 1 files changed, 79 insertions(+), 57 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py index 61daa51..9c84d58 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py @@ -55,7 +55,6 @@ import PlayerGoldInvest import PlayerActivity import FBCommon -import PlayerBindJadeWheel import BossHurtMng import PlayerWishingWell import PlayerAttrFruit @@ -95,7 +94,6 @@ import PlayerVip import PlayerRefineStove import PassiveBuffEffMng -import PlayerDiceEx import GameLogic_XMZZ import PlayerFlashSale import PlayerFlashGiftbag @@ -174,7 +172,11 @@ import IPY_ServerDefine import CommFunc from PyMongoDB import RecvPackToMapDB +import PyMongoMain import PlayerTalk +import PlayerHero +import PlayerOnline +import TurnAttack import datetime import time @@ -481,8 +483,6 @@ curPlayer.SetLoginTime(GameWorld.GetCurrentDataTimeStr()) #初始化玩家背包 InitPlayerPack(curPlayer) - #通知玩家物品信息 - __Sync_PackDetel(curPlayer) if GameWorld.IsCrossServer(): SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick) @@ -509,6 +509,8 @@ if PlayerControl.GetCrossMapID(curPlayer): PlayerControl.SetCrossMapID(curPlayer, 0) + PlayerOnline.OnPlayerLogin(curPlayer) + TurnAttack.OnPlayerLogin(curPlayer) SyncGuideState(curPlayer) #上线检查一次装备属性 @@ -524,8 +526,6 @@ #通知玩家技能信息 __Sync_ClientSkill(curPlayer) - #清除国家答题Buff - #PlayerExam.DoLogic_ExitExam(curPlayer, tick, needRefresh = False) #清除VIPbuff #BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_VIPExp_SkillTypeID, tick) @@ -738,8 +738,6 @@ FunctionNPCCommon.ShopItemOnLogin(curPlayer) # 通知设置的被动功法 #PassiveBuffEffMng.OnLoginGFPassive(curPlayer) - #我要太极 - PlayerDiceEx.DiceExOnLogin(curPlayer) #仙魔之争 GameLogic_XMZZ.OnXMZZLogin(curPlayer) PlayerOnlinePrize.OnPlayerLogin(curPlayer) @@ -809,8 +807,6 @@ PlayerDogz.OnPlayerLogin(curPlayer) # 骑宠 FamilyRobBoss.OnPlayerLogin(curPlayer) - # 绑玉转盘 - PlayerBindJadeWheel.OnLogin(curPlayer) # 许愿池 PlayerWishingWell.OnLogin(curPlayer) #幸运鉴宝 @@ -880,6 +876,8 @@ pass else: + PyMongoMain.GetUserCtrlDB().OnPlayerLogin(curPlayer) + PlayerHero.OnPlayerLogin(curPlayer) PlayerMail.OnPlayerLogin(curPlayer) PlayerChatBox.OnPlayerLogin(curPlayer) PlayerFace.OnPlayerLogin(curPlayer) @@ -1272,17 +1270,22 @@ 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(): @@ -1477,53 +1480,66 @@ #@remarks 初始化玩家背包 def InitPlayerPack(curPlayer) : itemManager = curPlayer.GetItemManager() + + #设置装备实际个数,默认最大个数 + curPack = itemManager.GetPack(IPY_GameWorld.rptEquip) + curPack.SetCount(curPack.GetMaxCount()) #初始化玩家背包 PlayerControl.Init_ItemPack(curPlayer) #初始化玩家仓库 - PlayerControl.Init_Warehouse(curPlayer) + #PlayerControl.Init_Warehouse(curPlayer) + + #初始化鉴定背包,默认最大个数用于存放主线掉落 + curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptIdentify) + curPack.SetCount(curPack.GetMaxCount()) + curPack.Sync_PackCanUseCount() + + #初始化英雄背包 + PlayerControl.Init_HeroPack(curPlayer) + + #初始化临时交换背包,默认最大个数 + curPack = itemManager.GetPack(ShareDefine.rptTempSwap) + curPack.SetCount(curPack.GetMaxCount()) + + #初始化临时存放背包,默认最大个数 + curPack = itemManager.GetPack(ShareDefine.rptTempItem) + curPack.SetCount(curPack.GetMaxCount()) #初始化寻宝背包 PlayerControl.Init_TreasurePack(curPlayer) #初始化神兽物品背包 - 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() + + #通知玩家物品信息 + __Sync_PackDetel(curPlayer) + + ItemControler.CheckGiveBindMoneyTypeItem(curPlayer) return #--------------------------------------------------------------------- @@ -1612,16 +1628,21 @@ #将玩家放置在这个地图上 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) @@ -2388,6 +2409,7 @@ #下线了,将存储在字典中的真实XP值,设置给玩家,完成通知和存储 #curPlayer.SetXP(curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_RecordXPValue)) ####################################################################### + PlayerOnline.OnPlayerLogoff(curPlayer) #下线逻辑 PlayerControl.PlayerLeaveServer(curPlayer, tick) @@ -4372,7 +4394,7 @@ # 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 -- Gitblit v1.8.0