From 70a89ab1f96dff5633cf9746167ba7e94e0b0c31 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 25 二月 2019 16:40:02 +0800 Subject: [PATCH] 3028 【BUG】【1.6】【2.0】运营活动合服定制时间转化报错 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py index bb71268..5307f32 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py @@ -517,13 +517,23 @@ def DoLogic_PetInfo_OnLogin(curPlayer, tick): petMgr = curPlayer.GetPetMgr() - - for index in range(0, petMgr.PetList_Cnt()): - rolePet = petMgr.PetList_At(index) - #刷新宠物信息并通知客户端 - __RefreshAndSyncPetInfo(rolePet) - #自动出战宠物 - __AutoSummonPet_OnLogin(curPlayer, rolePet) + if GameWorld.IsCrossServer(): + ''' 0435宠物出现包同步的ID是根据宠物的列表位置来的,比如在第2位发的就是2,而地图的可能是1,会导致ID不一致 + 所以跨服服务器登录时先清除出战宠物列表,确保登录地图成功后都是从1开始的即可 + ''' + petList = [] + for index in range(0, petMgr.PetList_Cnt()): + rolePet = petMgr.PetList_At(index) + petList.append(rolePet) + for rolePet in petList: + petMgr.PetList_SetFree(rolePet.GetRolePet().PetID) + else: + for index in range(0, petMgr.PetList_Cnt()): + rolePet = petMgr.PetList_At(index) + #刷新宠物信息并通知客户端 + __RefreshAndSyncPetInfo(rolePet) + #自动出战宠物 + __AutoSummonPet_OnLogin(curPlayer, rolePet) if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet): GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet, 1) -- Gitblit v1.8.0