From 9ec66731c8a551035958aebe1fa974a140b99cf1 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 02 七月 2025 17:34:10 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(初版战斗,支持基础的三维属性战斗,支持简单的普攻技能、怒气技能、回血技能;主线章节关卡过关支持;阵容保存支持多阵容;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 59 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 38 insertions(+), 21 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 12eae96..dcc0065 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py @@ -175,6 +175,8 @@ import PyMongoMain import PlayerTalk import PlayerHero +import PlayerOnline +import TurnAttack import datetime import time @@ -509,6 +511,8 @@ if PlayerControl.GetCrossMapID(curPlayer): PlayerControl.SetCrossMapID(curPlayer, 0) + PlayerOnline.OnPlayerLogin(curPlayer) + TurnAttack.OnPlayerLogin(curPlayer) SyncGuideState(curPlayer) #上线检查一次装备属性 @@ -924,6 +928,8 @@ EventReport.WriteEvent_Entry(curPlayer, 4) #EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer) + PlayerControl.SetMainLevelNowInfo(curPlayer) # 初始化章节关卡 + #---补满血满魔--- GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer)) curPlayer.SetMP(curPlayer.GetMaxMP()) @@ -1268,17 +1274,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(): @@ -1611,16 +1622,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) @@ -2387,6 +2403,7 @@ #下线了,将存储在字典中的真实XP值,设置给玩家,完成通知和存储 #curPlayer.SetXP(curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_RecordXPValue)) ####################################################################### + PlayerOnline.OnPlayerLogoff(curPlayer) #下线逻辑 PlayerControl.PlayerLeaveServer(curPlayer, tick) @@ -4371,7 +4388,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