From dbf4ab83f90d9119141d5a80bebe25fedec4384f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 25 五月 2019 17:18:24 +0800
Subject: [PATCH] 6942 【后端】视野层级设计
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py | 13 ++-----------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py | 1 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 4 ++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 2 +-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 14 ++++++++++++++
5 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index 879137c..6b0d69c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -7293,9 +7293,9 @@
def DoType_Visible(curPlayer, curMission, curActionNode):
visible = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
if visible:
- curPlayer.SetSightLevel(0)
+ PlayerControl.SetPlayerSightLevel(curPlayer, 0)
else:
- curPlayer.SetSightLevel(curPlayer.GetID())
+ PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
return
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 e289f6c..898b782 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -1035,7 +1035,7 @@
#刷新玩家的视野
if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene)):
GameWorld.DebugLog("===登录本服地图时,处于跨服或自定义场景状态,不刷新视野!", curPlayer.GetPlayerID())
- curPlayer.SetSightLevel(curPlayer.GetID())
+ PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
if curPlayer.GetLV() > 1:
PlayerState.ChangePlayerSigh(curPlayer, tick)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index c4fff7e..18abd92 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -6918,3 +6918,17 @@
NetPackCommon.SendFakePack(curPlayer, sendPack)
return
+#同步设置 玩家和宠物及已召唤的召唤兽 视野层
+def SetPlayerSightLevel(curPlayer, sightLevel):
+ curPlayer.SetSightLevel(sightLevel)
+ rolePet = curPlayer.GetPetMgr().GetFightPet()
+ #无出战宠物
+ if rolePet:
+ rolePet.SetSightLevel(sightLevel)
+
+ for i in range(curPlayer.GetSummonCount()):
+ curSummon = curPlayer.GetSummonNPCAt(i)
+ if not curSummon:
+ continue
+ curSummon.SetSightLevel(sightLevel)
+ return
\ No newline at end of file
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
index 1ec3245..751177c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
@@ -496,10 +496,7 @@
PlayerControl.SetCustomMap(curPlayer, 0, 0)
return
- curPlayer.SetSightLevel(curPlayer.GetID())
- curPet = curPlayer.GetPetMgr().GetFightPet()
- if curPet:
- curPet.SetVisible(False)
+ PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
curPlayer.SetDict(ChConfig.Def_PlayerKey_ClientCustomScene, 1) # 由于前端不一定有发mapID,所以这里额外记录这个状态,不能直接用mapID判断
PlayerControl.SetCustomMap(curPlayer, mapID, lineID)
@@ -514,13 +511,7 @@
def DoExitCustomScene(curPlayer):
## 退出自定义场景状态
- curPlayer.SetSightLevel(curPlayer.GetID())
- curPlayer.RefreshView()
- curPlayer.SetSightLevel(0)
- curPlayer.RefreshView()
- curPet = curPlayer.GetPetMgr().GetFightPet()
- if curPet:
- curPet.SetVisible(True)
+ PlayerControl.SetPlayerSightLevel(curPlayer, 0)
mapID = PlayerControl.GetCustomMapID(curPlayer)
lineID = PlayerControl.GetCustomLineID(curPlayer)
curPlayer.SetDict(ChConfig.Def_PlayerKey_ClientCustomScene, 0)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
index 9636f84..7d496a0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -370,6 +370,7 @@
#记录出战的宠物索引 默认+1 0则代表没有
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPetIndex, petItemIndex + 1)
+ rolePet.SetSightLevel(curPlayer.GetSightLevel())
return True
def AutoSummonPet(curPlayer):
--
Gitblit v1.8.0