| | |
| | | import PlayerSuccess
|
| | | import CrossPlayerData
|
| | | import PassiveBuffEffMng
|
| | | import PlayerFamilyRedPacket
|
| | | import FunctionNPCCommon
|
| | | import FormulaControl
|
| | | import PlayerGoldGift
|
| | | import PlayerFlashSale
|
| | |
| | | # @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):
|
| | |
| | | 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')
|
| | |
| | | PlayerControl.NotifyCode(curPlayer, 'FirstGoldWPOver')
|
| | | PlayerGoldGift.FirstGoldTryItemOutTime(curPlayer)
|
| | |
|
| | | # 广播卸装
|
| | | if equipIndex in ChConfig.Def_SyncEquipStateByIndex:
|
| | | curPlayer.Sync_UnEquipItem(equipID, equipPlace)
|
| | | return True
|
| | | #---------------------------------------------------------------------
|
| | | ##全局定时器调用, 刷新玩家状态
|
| | |
| | | PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick)
|
| | | #地图经验
|
| | | ProcessAreaExp(curPlayer, tick)
|
| | | #神秘商店刷新
|
| | | FunctionNPCCommon.CheckMysticalShopRefresh(curPlayer, tick)
|
| | | #跨服数据同步,放最后
|
| | | CrossPlayerData.ProcessCrossPlayer(curPlayer, tick)
|
| | | return
|
| | |
| | | ##给场景经验
|
| | | 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, {})
|