From c3bb4072a13fc6e9541c971dec3f2865184136cd Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 10 六月 2019 17:41:59 +0800 Subject: [PATCH] 3987 【BUG】【2.0】满级,传功,显示获得36446亿的修为 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py | 76 +++++++++----------------------------- 1 files changed, 18 insertions(+), 58 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py index cccdde8..29b3bfb 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py @@ -67,6 +67,7 @@ #注意2: #玩家移动的时候, 如果玩家有马匹 , 则允许玩家移动 ################################################ +Def_HorseEquipIndex = 5 ## 玩家骑马脚本(封包参数) # @param index 玩家索引 @@ -187,11 +188,18 @@ # 未加载成功骑乘会导致模型加载失败报错 if not curPlayer.GetInitOK(): return False - - #地图不允许骑马 RideLimit_lhs_0 - if not GameWorld.GetMap().GetMapCanRide(): - PlayerControl.NotifyCode(curPlayer, "RideLimit_lhs_0") - return False + + customMapID = PlayerControl.GetCustomMapID(curPlayer) + if customMapID: + ipyMapData = IpyGameDataPY.GetIpyGameData("ChinMap", customMapID) + if not ipyMapData or not ipyMapData.GetCanRide(): + PlayerControl.NotifyCode(curPlayer, "RideLimit_lhs_0") + return False + else: + #地图不允许骑马 RideLimit_lhs_0 + if not GameWorld.GetMap().GetMapCanRide(): + PlayerControl.NotifyCode(curPlayer, "RideLimit_lhs_0") + return False #检查玩家状态,只有在空闲状态才能上马 if curPlayer.GetPlayerVehicle() != IPY_GameWorld.pvNull : @@ -200,7 +208,7 @@ #检查是否装备指定ID物品 playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip) - itemRideHorse = playerEquip.GetAt(ShareDefine.retHorse) + itemRideHorse = playerEquip.GetAt(Def_HorseEquipIndex) #无指定道具 if itemRideHorse.IsEmpty(): #PlayerControl.NotifyCode(curPlayer, "NotPrepareSteed") @@ -402,7 +410,7 @@ # # #---执行玩家换装逻辑--- # tick = GameWorld.GetGameWorld().GetTick() -# ChEquip.DoPlayerEquipItem(curPlayer, curHorse, ShareDefine.retHorse, tick) +# ChEquip.DoPlayerEquipItem(curPlayer, curHorse, Def_HorseEquipIndex, tick) # # __HorseLearnSkill(curPlayer, 0) # # 计算属性 防止给第一只坐骑后,客户端坐骑战斗力为0 @@ -622,7 +630,7 @@ curItem = curItemPack.GetAt(itemIndex) #检查物品 - if not ItemCommon.CheckItemCanUse(curItem): + if not ItemCommon.CheckItemCanUse(curItem) or ItemControler.GetIsAuctionItem(curItem): continue itemCnt = curItem.GetCount() @@ -735,7 +743,6 @@ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Horser_LV%horseID, updateClassLV, ChConfig.Def_PDictType_Horse) #EventReport.WriteEvent_custom_mission_log(curPlayer, ChConfig.CME_Class_Horse, ChConfig.CME_Log_End, 1, cmeInfoEx=str(updateClassLV)) sumLV = GetHorseSumLV(curPlayer) - PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Horse, sumLV) # 刷属性,更新排行榜 RefreshHorseAttr(curPlayer) @@ -789,52 +796,6 @@ # @param curPlayer 玩家 # @return None def PlayerHorseLogin(curPlayer): - if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Horse): - GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Horse, 1) - #等级不能超上限,技能删了重新学 - skillManager = curPlayer.GetSkillManager() - delCnt = 0 - for i in xrange(skillManager.GetSkillCount()): - dataIndex = i-delCnt - skill = skillManager.GetSkillByIndex(dataIndex) - if skill == None: - continue - if skill.GetFuncType() != ChConfig.Def_SkillFuncType_HorseSkill: - continue - skillTypeID = skill.GetSkillTypeID() - skillManager.DeleteSkillBySkillTypeID(skillTypeID) - delCnt += 1 - - tick = GameWorld.GetGameWorld().GetTick() - ipyDataMgr = IpyGameDataPY.IPY_Data() - for i in xrange(ipyDataMgr.GetHorseCount()): - ipyData = ipyDataMgr.GetHorseByIndex(i) - horseID = ipyData.GetHorseID() - curlv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Horser_LV % horseID, 0, ChConfig.Def_PDictType_Horse) - if not curlv: - continue - maxLV = ipyData.GetMaxLV() - if curlv > maxLV: - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Horser_LV % horseID, maxLV, ChConfig.Def_PDictType_Horse) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Horser_Exp % horseID, 0, ChConfig.Def_PDictType_Horse) - GameWorld.Log(' 老号坐骑等级超过上限,坐骑ID=%s,原LV=%s,重置为=%s'%(horseID, curlv, maxLV)) - curlv = maxLV - - for lv in xrange(1, curlv + 1): - upIpyData = IpyGameDataPY.GetIpyGameData("HorseUp", horseID, lv) - if not upIpyData: - break - skillIDList = upIpyData.GetSkillID() - if not skillIDList: - continue - for skillID in skillIDList: - __GiveSkill(curPlayer, skillID, tick) - # 重刷战力 - curControl = PlayerControl.PlayerControl(curPlayer) - curControl.RefreshAllSkill() - RefreshHorseAttr(curPlayer) - - Sync_HorseClassData(curPlayer) return @@ -926,11 +887,10 @@ # 记录开服活动马匹阶级 sumLV = GetHorseSumLV(curPlayer) OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_HorseLV, sumLV) - PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Horse, sumLV) PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Horse, horseID, False) playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip) - itemRideHorse = playerEquip.GetAt(ShareDefine.retHorse) + itemRideHorse = playerEquip.GetAt(Def_HorseEquipIndex) #无指定道具 if itemRideHorse.IsEmpty(): DoChangeHorse(curPlayer, horseID, tick) @@ -943,7 +903,7 @@ # tick = GameWorld.GetGameWorld().GetTick() # PlayerRideHorseDown(curPlayer, False) # # 执行玩家换装逻辑 -# if ChEquip.DoPlayerEquipItem(curPlayer, curHorseSkin, ShareDefine.retHorse, tick): +# if ChEquip.DoPlayerEquipItem(curPlayer, curHorseSkin, Def_HorseEquipIndex, tick): # PlayerRideHorseUp(curPlayer, False) -- Gitblit v1.8.0