From 5faab9df624b3bf4344d1e116bf80e163aa98b23 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期三, 13 三月 2019 18:00:53 +0800 Subject: [PATCH] 6307 【后端】【2.0】多套装备开发单(外观通知修改) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py | 67 +++++++++++++++++---------------- 1 files changed, 35 insertions(+), 32 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py index 47d0b0a..840054d 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py @@ -108,7 +108,7 @@ changeItemStoneCnt = 0 #curItem.GetUseStoneCount() changeItemHoleCnt = 0 #curItem.GetCanPlaceStoneCount() changeItemUseData = curItem.GetUserData() - itemQuality = curItem.GetItemQuality() + suiteID = curItem.GetSuiteID() endureReduceType = curItem.GetEndureReduceType() #changeItemIsHorse = (curItem.GetType() == ChConfig.Def_Item_Type_Horse) @@ -127,7 +127,10 @@ if equipPackIndex in PlayerControl.GetFaceEquipIndexList(curPlayer) or equipPlace in ChConfig.Def_SyncEquipStateByIndex: #通知客户端交换物品 curPlayer.ChangeEquip(changeItemID, equipPackIndex, changeItemStarLV, changeItemHoleCnt, changeItemStoneCnt, changeItemUseData) - + if suiteID and itemClassLV == GetEquipFacadeClassLV(curPlayer): + #穿当前外观阶的套装 + ChangeEquipfacadeByClassLV(curPlayer, itemClassLV) + if not endureReduceType: EventShell.EventRespons_EquipByPlace(curPlayer, itemClassLV, equipPlace) #记录橙装、红装 @@ -354,7 +357,6 @@ ##特殊装备 , 不需要冲刷属性 if equipPlace in ChConfig.EquipItemNoRefreshState: - curPlayer.Sync_UnEquipItem(equipID, equipPackIndex) return #先刷装备BUFF 再计算属性 @@ -366,9 +368,6 @@ #刷新所有属性 playControl = PlayerControl.PlayerControl(curPlayer) playControl.RefreshPlayerAttrState() - - if equipPackIndex in PlayerControl.GetFaceEquipIndexList(curPlayer) or equipPlace in ChConfig.Def_SyncEquipStateByIndex: - curPlayer.Sync_UnEquipItem(equipID, equipPackIndex) return @@ -856,31 +855,12 @@ #没有到刷新间隔,54外挂,不给提示 # GameWorld.ErrLog('请求装备显隐, 没有到刷新间隔') return - + curPlayer.SetTickByType(ChConfig.TYPE_Player_Tick_RequestEquipShowHide, tick) sendPack = IPY_GameWorld.IPY_CRequestEquipShowHide() - updEquipShowSwitch = sendPack.GetEquipShowSwitch() - oldEquipShowSwitch = curPlayer.GetEquipShowSwitch() - if updEquipShowSwitch == oldEquipShowSwitch: + classLV = sendPack.GetEquipShowSwitch() + if not ChangeEquipfacadeByClassLV(curPlayer, classLV): return - classLV, isSuite = updEquipShowSwitch/10, updEquipShowSwitch%10 - equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip) - #验证套装 - realSuit=True - for place in ChConfig.Def_SuitEquipPlaceList: - ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, place) - if not ipyData: - realSuit = False - break - gridIndex = ipyData.GetGridIndex() - curEquip = equipPack.GetAt(gridIndex) - if not ItemCommon.CheckItemCanUse(curEquip): - realSuit = False - break - if not curEquip.GetSuiteID(): - realSuit = False - break - if realSuit != isSuite: - GameWorld.DebugLog('SetEquipShowSwitch 前端发的isSuite 和实际不一致!') + if curPlayer.GetEquipShowSwitch()/10 == classLV: return #通知外观装备 @@ -895,7 +875,7 @@ updFaceEquipIndex = updFaceEquipIndex * 1000 + gridIndex equipIndexList.append(gridIndex) PlayerControl.SetFaceEquipIndex(curPlayer, updFaceEquipIndex) - + equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip) for equipPackIndex in equipIndexList: curEquip = equipPack.GetAt(equipPackIndex) if not ItemCommon.CheckItemCanUse(curEquip): @@ -907,10 +887,33 @@ changeItemUseData = curEquip.GetUserData() curPlayer.ChangeEquip(changeItemID, equipPackIndex, changeItemStarLV, changeItemHoleCnt, changeItemStoneCnt, changeItemUseData) - curPlayer.SetEquipShowSwitch(updEquipShowSwitch) - curPlayer.SetTickByType(ChConfig.TYPE_Player_Tick_RequestEquipShowHide, tick) return +def ChangeEquipfacadeByClassLV(curPlayer, classLV): + ##变更第X套装备外观 + oldEquipShowSwitch = curPlayer.GetEquipShowSwitch() + realSuit=1 + equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip) + for place in ChConfig.Def_SuitEquipPlaceList: + ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, place) + if not ipyData: + realSuit = 0 + break + gridIndex = ipyData.GetGridIndex() + curEquip = equipPack.GetAt(gridIndex) + if not ItemCommon.CheckItemCanUse(curEquip): + realSuit = 0 + break + if not curEquip.GetSuiteID(): + realSuit = 0 + break + updEquipShowSwitch = classLV*10+realSuit + if oldEquipShowSwitch == updEquipShowSwitch: + return + curPlayer.SetEquipShowSwitch(updEquipShowSwitch) + return True +#获取当前是第几套装备外观 +def GetEquipFacadeClassLV(curPlayer):return curPlayer.GetEquipShowSwitch()/10 ## 获取公共部位强化熟练度 def GetEquipPartProficiency(curPlayer, packType, index): -- Gitblit v1.8.0