From 01e033a79a5ce63e298015d0783560a77ccffea9 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期五, 14 九月 2018 11:46:46 +0800 Subject: [PATCH] fix:3543 【后端】【主干】【1.0.15】开服红包优化 每天赠送次数 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 33 +++++++++++++++++++++++++-------- 1 files changed, 25 insertions(+), 8 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 6c82da8..b9de67e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -86,6 +86,7 @@ import ChNetSendPack import PlayerState import QuestCommon +import PlayerDogz import GMShell import random @@ -1160,8 +1161,12 @@ # 3. 如果没有玩家存在, 副本回收 if GameWorld.GetMap().GetMapFBType() != 0: #离开副本 + fbIndex = GameWorld.GetGameWorld().GetCurGameWorldIndex() + exitFBType = 1 if isDisconnect else 2 + PyGameData.g_lastExitFBType[fbIndex] = [exitFBType, tick] + #GameWorld.DebugLog("玩家离开副本:fbIndex=%s,exitFBType=%s, %s" % (fbIndex, exitFBType, PyGameData.g_lastExitFBType), curPlayer.GetPlayerID()) FBLogic.DoExitFBLogic(curPlayer, tick) - + GameLogic_ManorWar.DoExitFB(curPlayer, tick) #清空所有不属于自己的光环 @@ -2004,7 +2009,7 @@ # @param canLock 是否可以锁定玩家(传送点不可锁定, 因为要跨地图寻路) # @return 返回值无意义 # @remarks 玩家切换地图 -def PlayerResetWorldPos(curPlayer, mapID, posX, posY, takeTruck, lineID= -1, msg='', canLock=True, exData1=0): +def PlayerResetWorldPos(curPlayer, mapID, posX, posY, takeTruck, lineID=-1, msg='', canLock=True, exData1=0): #更改: 死亡允许切换地图, 在副本中被怪打死, 副本时间到, 回收副本 # if curPlayer.GetHP() <= 0 : # GameWorld.Log("死亡无法切换地图") @@ -2077,6 +2082,10 @@ GameWorld.DebugLog("分流boss, bossID=%s,bossShuntLineID=%s" % (bossID, bossShuntLineID), playerID) NPCCommon.AddBossShuntRelatedPlayer(curPlayer, tagMapID, bossShuntLineID, bossID, tick) return bossShuntLineID + return tagLineID + + if curMapID == tagMapID: + GameWorld.DebugLog("同地图切换坐标不处理分流!", playerID) return tagLineID # 可以用来常规分流的线路人数字典信息, 并不是所有线路都可以用来做人数分流的,比如中立地图有多条线用来分流boss,但是只有1条线可用来做常规的人数分流 @@ -2718,8 +2727,8 @@ curBourseMoney = GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney) updBourseMoney = curBourseMoney - #当是交易所扣费时,则必定扣除交易额度 - if costType == ChConfig.Def_Cost_BourseBuy: + #当是交易所扣费、钻石红包时,则必定扣除交易额度 + if costType in ChConfig.UnUseInner_CostType: updBourseMoney = max(0, curBourseMoney - price) #其他如果当前金子比交易额度还少,则强制调整交易额度为当前金子数(这种情况一般是非交易所消费的,需要同步扣除交易所可购买额度) elif updPlayerGold < updBourseMoney: @@ -3390,6 +3399,7 @@ OnlyFinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_OnlyFinalHurt) # 额外输出伤害 PVPAtkBackHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_PVPAtkBackHP) # PVP攻击回血 + NPCHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NPCHurtAddPer) # 对怪物伤害加成 #其他需作为公式参数的系数 AtkSpeedParameter = fpParam.GetCftAtkSpeed() @@ -3950,11 +3960,13 @@ PlayerPet.CalcPetItemAddPlayerAttr(curPlayer) PlayerRune.RefreshRuneAttr(curPlayer) PlayerMagicWeapon.CalcMagicWeaponAttr(curPlayer) + PlayerMagicWeapon.CalcMagicWeaponSoulAttr(curPlayer) PlayerSuccess.CalcSuccessAttr(curPlayer) PlayerVip.CalcVIPAttr(curPlayer) PlayerRefineStove.CalcStoveAttr(curPlayer) PlayerFamilyTech.CalcFamilyTechAttr(curPlayer) PlayerEquipDecompose.RefreshEDAttr(curPlayer) + PlayerDogz.RefreshDogzAttr(curPlayer) self.RefreshAllState(isForce=True) GameWorld.DebugLog("End ReCalcAllState!!!") return @@ -6048,7 +6060,10 @@ ## 对怪物伤害加成 def GetNPCHurtAddPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_NPCHurtAddPer) -def SetNPCHurtAddPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_NPCHurtAddPer, value) +def SetNPCHurtAddPer(curPlayer, value): + curPlayer.SetDict(ChConfig.Def_PlayerKey_NPCHurtAddPer, value) + curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_NPCHurtAddPer, value, False) + #---职业伤害加成--- ## 目标战士伤害加成 def GetJobAHurtAddPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_JobAHurtAddPer) @@ -6109,9 +6124,6 @@ curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_IgnoreDefRateReduce, value, False) #---特殊伤害概率--- -## 富甲一击概率 -def GetFujiaHitRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FujiaHitRate) -def SetFujiaHitRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FujiaHitRate, value) ## 富豪一击概率 def GetFuhaoHitRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FuhaoHitRate) def SetFuhaoHitRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FuhaoHitRate, value) @@ -6122,6 +6134,11 @@ curPlayer.SetDict(ChConfig.Def_PlayerKey_BleedDamage, value) curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_BleedDamage, value, False) +## 最终伤害百分比 +def GetFinalHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurtPer) +def SetFinalHurtPer(curPlayer, value): + curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtPer, value) + curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtPer, value, False) ## 最终固定伤害增加 def GetFinalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurt) def SetFinalHurt(curPlayer, value): -- Gitblit v1.8.0