From d8747a9d1ccce1f60f79c14c3ef1217b223c9ce3 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 25 十二月 2018 09:56:22 +0800 Subject: [PATCH] 5505 王者法宝初版、聚魂副本设置阵营 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 41 +++++++++++++++++++++++++++++------------ 1 files changed, 29 insertions(+), 12 deletions(-) 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 e0a2d48..16775d0 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -64,7 +64,7 @@ import PlayerGameEvent import EventReport import PlayerTeHui -import GameLogic_XMZZ +import PlayerGatherSoul import PlayerSuccess import PlayerPet import PlayerGreatMaster @@ -84,6 +84,7 @@ import PlayerCostRebate import PlayerFairyCeremony import FunctionNPCCommon +import CrossRealmPlayer import ChNetSendPack import PlayerState import QuestCommon @@ -162,7 +163,7 @@ # notifyCnt 代表广播周围玩家的数量,0为全部广播 -1为指定列表随机, 其他数字为指定指 def PyNotifyAll(curPlayer, sendPack, notifySelf=True, notifyCnt=0): if notifyCnt == -1: - notifyCnt = random.choice((10, 10, 15, 15, 20, 25, 30, 50)) + notifyCnt = 8 #GameWorld.DebugLog("PyNotifyAll %s"%notifyCnt) curPlayer.NotifyAll(sendPack.GetBuffer(), sendPack.GetLength(), notifySelf, notifyCnt) @@ -1426,7 +1427,8 @@ FBLogic.DoPlayerChangeMapLogic(curPlayer, tick) #summonList = list() - + #召回宠物 + PetControl.ReCallFightPet(curPlayer) #1. 删除自己不需要的召唤兽(火焰之灵等) #必须用while, 因为在循环中要删除 # 召唤兽切地图不带过去 @@ -1497,6 +1499,11 @@ if not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_RouteServerInitOK): #RouteServer未初始化不允许切换地图, 缓存处理 GameServerRefresh.Set_PlayerRouteServerInitOK_OnLeaveFB(curPlayer, 1) + return + + GameWorld.Log("PlayerLeaveFB...", curPlayer.GetPlayerID()) + if GameWorld.IsCrossServer(): + CrossRealmPlayer.PlayerExitCrossServer(curPlayer) return #中立地图回到上一次非中立常规地图 @@ -3851,6 +3858,7 @@ # 记录玩家升级 DataRecordPack.DR_PlayerUpgrade(curPlayer, curPlayer.GetLV(), GetPlayerTotalExp(curPlayer), lvUpNeedExp) + DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_LVUP, {'lv':curLV}) self.__DoLVUPAddPoint() # 升级加点 #self.__DoLvUpAddSkill() # 升级加技能 @@ -4087,6 +4095,7 @@ PlayerFamilyTech.CalcFamilyTechAttr(curPlayer) PlayerEquipDecompose.RefreshEDAttr(curPlayer) PlayerDogz.RefreshDogzAttr(curPlayer) + PlayerGatherSoul.RefreshGatherSoulAttr(curPlayer) self.RefreshAllState(isForce=True) GameWorld.DebugLog("End ReCalcAllState!!!") return @@ -4739,14 +4748,16 @@ mfpInfo.MFPCnt = len(mfpDataList) mfpInfo.MFPList = mfpDataList NetPackCommon.SendFakePack(curPlayer, mfpInfo) - + beforeFightPower = curPlayer.GetFightPower() curPlayer.SetFightPower(totalFightPower, False) + if totalFightPower < beforeFightPower: + DataRecordPack.DR_FightPowerChangeInfo(curPlayer, beforeFightPower) highestFightPower = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FightPower_Highest, 0, ChConfig.Def_PDictType_FightPower) if totalFightPower > highestFightPower: NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_Highest, totalFightPower, ChConfig.Def_PDictType_FightPower) - GameWorld.DebugLog("总战力: %s, 历史最高战力: %s" % (totalFightPower, highestFightPower)) + GameWorld.DebugLog("总战力: %s, 历史最高战力: %s, beforeFightPower=%s" % (totalFightPower, highestFightPower, beforeFightPower)) PlayerBillboard.UpdatePlayerFPTotalBillboard(curPlayer) # 记录开服活动数据 OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_FightPower, totalFightPower) @@ -4909,7 +4920,7 @@ } for i in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX): - if i in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP]: + if i in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]: continue value = 0 if i not in initAttrDict else initAttrDict[i] EffGetSet.SetValueByEffIndex(curPlayer, i, value) @@ -5703,6 +5714,10 @@ def SetFBFuncLineID(curPlayer, funcLineID): return curPlayer.SetExAttr3(funcLineID, False, False) def GetFBFuncLineID(curPlayer): return curPlayer.GetExAttr3() +## 跨服状态: 0-非跨服状态,1-跨服状态 +def GetCrossRealmState(curPlayer): return curPlayer.GetExAttr5() +def SetCrossRealmState(curPlayer, value): curPlayer.SetExAttr5(value, False, True) + ## 铜钱点, 支持铜钱超20亿 def GetSilver(curPlayer): return curPlayer.GetExAttr6() * ChConfig.Def_PerPointValue + curPlayer.GetSilver() def SetSilver(curPlayer, totalSilver): @@ -5716,7 +5731,7 @@ ## 玩家今日已获得仙缘币 def GetTodayXianyuanCoin(curPlayer): return curPlayer.GetExAttr11() -def SetTodayXianyuanCoin(curPlayer, value): return curPlayer.SetExAttr11(value) +def SetTodayXianyuanCoin(curPlayer, value): return curPlayer.SetExAttr11(value, False, True) def AddTodayXianyuanCoin(curPlayer, addValue): return curPlayer.SetExAttr11(curPlayer.GetExAttr11() + addValue, False, True) ##VIP到期时间, 需要同步GameServer @@ -6538,11 +6553,13 @@ def GetPetMaxAtk(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetMaxAtk) def SetPetMaxAtk(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetMaxAtk, value) -#---宠物伤害百分比提升---- -def GetPetDamPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer) -def SetPetDamPer(curPlayer, value): - curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value) - curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False) +#---宠物伤害百分比提升----移到GameObj下 +#=============================================================================== +# def GetPetDamPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer) +# def SetPetDamPer(curPlayer, value): +# curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value) +# curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False) +#=============================================================================== #---宠物技能伤害百分比提升---- def GetPetSkillAtkRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PetSkillAtkRate) def SetPetSkillAtkRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_PetSkillAtkRate, value) -- Gitblit v1.8.0