From 7b48b6e603e2eeeacdb737210d74212ed77f7943 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 16 三月 2019 17:38:03 +0800 Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(使用拍品数据同步优化) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py | 85 ++++++++++++++++++++++++------------------ 1 files changed, 49 insertions(+), 36 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py index 981b4d0..00d8e46 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py @@ -54,7 +54,7 @@ import PlayerSuccess import CrossPlayerData import PassiveBuffEffMng -import PlayerFamilyRedPacket +import FunctionNPCCommon import FormulaControl import PlayerGoldGift import PlayerFlashSale @@ -137,7 +137,9 @@ if not __DoClientUseSkillEx(curPlayer, useSkillData, tick): SkillShell.AttackFailNotify(curPlayer, useSkillData) GameWorld.DebugLog("----攻击失败 可能是技能CD %s"%skillTypeID) - + # 根据策划需求 以客户端动作为标准,不可攻击状态也进入CD + BaseAttack.Sync_AttackResult(curPlayer, useSkillData) + if useSkillData and useSkillData.GetSkillID() != ChConfig.Def_SkillID_Somersault: # 跟随玩家同频率攻击 PetControl.PetFight(curPlayer, tick) @@ -1077,36 +1079,38 @@ # @return 布尔值 # @remarks 处理耐久计算方式为:现实时间刷新方式的物品 def ProcessTimeEquip(curPlayer, tick): - itemManager = curPlayer.GetItemManager() - hasItemClear = False - - curPack = itemManager.GetPack(IPY_GameWorld.rptEquip) - for i in range(0, curPack.GetCount()): - curItem = curPack.GetAt(i) - - #异常物品 - if not ItemCommon.CheckItemCanUse(curItem): - continue - - if curItem.GetEndureReduceType() not in [ChConfig.Def_EquipReduceType_RTimeItem, - ChConfig.Def_EquipReduceType_Time]: - continue - - #处理现实时间物品逻辑 - if __DoLogic_ProcessTimeEquip(curPlayer, curItem, i): - hasItemClear = True - - - if hasItemClear: - #装备重刷属性 - PlayerWing.CalcWingAttr(curPlayer) - ChEquip.RefreshPlayerEquipAttribute(curPlayer) - - - # 进行更新时效道具刷新时间 - curPlayer.SetDict(ChConfig.Def_PlayerKey_EquipTime, tick) - - return hasItemClear + return +#境界装备修改,暂屏蔽,待优化 +# itemManager = curPlayer.GetItemManager() +# hasItemClear = False +# +# curPack = itemManager.GetPack(IPY_GameWorld.rptEquip) +# for i in range(0, curPack.GetCount()): +# curItem = curPack.GetAt(i) +# +# #异常物品 +# if not ItemCommon.CheckItemCanUse(curItem): +# continue +# +# if curItem.GetEndureReduceType() not in [ChConfig.Def_EquipReduceType_RTimeItem, +# ChConfig.Def_EquipReduceType_Time]: +# continue +# +# #处理现实时间物品逻辑 +# if __DoLogic_ProcessTimeEquip(curPlayer, curItem, i): +# hasItemClear = True +# +# +# if hasItemClear: +# #装备重刷属性 +# PlayerWing.CalcWingAttr(curPlayer) +# ChEquip.RefreshPlayerEquipAttribute(curPlayer) +# +# +# # 进行更新时效道具刷新时间 +# curPlayer.SetDict(ChConfig.Def_PlayerKey_EquipTime, tick) +# +# return hasItemClear #--------------------------------------------------------------------- ## 装备有效时间到了需要脱下,有效时间物品改成不消失,但是无使用效果 可出售和续费 def __DoLogic_ProcessTimeEquip(curPlayer, curItem, equipIndex): @@ -1130,7 +1134,7 @@ return True equipID = result[0] equipPlace = result[1] - if equipPlace == ShareDefine.retGuard: + if equipPlace in [ShareDefine.retGuard1, ShareDefine.retGuard2]: PlayerControl.NotifyCode(curPlayer, 'Guardian_Timeout', [equipID, spaceIndex]) elif equipPlace == ShareDefine.retWing: PlayerControl.NotifyCode(curPlayer, 'WingTiyan_Timeout') @@ -1143,9 +1147,6 @@ PlayerControl.NotifyCode(curPlayer, 'FirstGoldWPOver') PlayerGoldGift.FirstGoldTryItemOutTime(curPlayer) - # 广播卸装 - if equipIndex in ChConfig.Def_SyncEquipStateByIndex: - curPlayer.Sync_UnEquipItem(equipID, equipPlace) return True #--------------------------------------------------------------------- ##全局定时器调用, 刷新玩家状态 @@ -1274,6 +1275,8 @@ PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick) #地图经验 ProcessAreaExp(curPlayer, tick) + #神秘商店刷新 + FunctionNPCCommon.CheckMysticalShopRefresh(curPlayer, tick) #跨服数据同步,放最后 CrossPlayerData.ProcessCrossPlayer(curPlayer, tick) return @@ -1493,6 +1496,14 @@ ProcessProDef(curPlayer, tick) return +def Sync_PKBossState(curPlayer): + psState = 1 if curPlayer.GetDictByKey(ChConfig.Def_PDict_PKStateTick) else 0 + curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PKState, psState, False) + + bossState = 1 if curPlayer.GetDictByKey(ChConfig.Def_PDict_BossStateTick) else 0 + curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_BossState, bossState, False) + return + # 脱离PK战斗 X秒后按比例恢复 def ProcessProDef(curPlayer, tick): if PlayerControl.GetProDefHPPer(curPlayer) == 0: @@ -1547,6 +1558,8 @@ ##给场景经验 if GameWorld.IsCrossServer(): return + if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene): + return crossMapID = PlayerControl.GetCrossMapID(curPlayer) mapID = crossMapID if crossMapID else GameWorld.GetMap().GetMapID() neutralMapExpAwardDict = IpyGameDataPY.GetFuncEvalCfg('NeutralMapExpAward', 1, {}) -- Gitblit v1.8.0