From c06d47322d2892a440dc11b94f06950da762e5bd Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 21 六月 2019 19:41:43 +0800
Subject: [PATCH] 7413 宗门试炼评级通知
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 70 ++++++++++++++++++++++------------
1 files changed, 45 insertions(+), 25 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 20a96ea..6cb5ca9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -1034,8 +1034,8 @@
#切地图要清除的buff
__CheckClearBuffOnMapChange(curPlayer, tick)
- #上线和切地图加有限无敌Buff
- if curPlayer.GetLV() > 50:
+ if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
+ #副本地图上线切换才加无敌buff
SkillCommon.AddBuffBySkillType_NoRefurbish(curPlayer, ChConfig.Def_SkillID_LimitSuperBuff, tick)
#刷新玩家的视野
@@ -1267,15 +1267,6 @@
#初始化神兽装备背包
curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
curPack.SetCount(ChConfig.Def_PackCnt_DogzEquip)
- curPack.Sync_PackCanUseCount()
-
- #初始化诛仙物品背包
- curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianItem)
- curPack.SetCount(ChConfig.Def_PackCnt_ZhuXianItem)
- curPack.Sync_PackCanUseCount()
- #初始化诛仙装备背包
- curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
- curPack.SetCount(ChConfig.Def_PackCnt_ZhuXianEquip)
curPack.Sync_PackCanUseCount()
#初始化临时交换背包
@@ -1739,13 +1730,37 @@
return
isFree = curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg('LVUPAddPoint', 4)
if not isFree:
- needItemID = IpyGameDataPY.GetFuncCfg('LVUPAddPoint', 5)
+ #优先使用剩余时间最短的时效物品
+ needItemIDList = IpyGameDataPY.GetFuncEvalCfg('LVUPAddPoint', 5)
itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
- hasEnough, itemList = ItemCommon.GetItem_FromPack_ByID(needItemID, itemPack, 1)
- if not hasEnough:
- GameWorld.DebugLog("重置加点 item(%s) isn't enough" % (needItemID))
+ delIndex = -1
+ expireTime = 0
+ for itemID in needItemIDList:
+ hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(itemID, itemPack, 10)
+ if not itemIndexList:
+ #GameWorld.DebugLog("重置加点 item(%s) isn't enough" % (needItemID))
+ continue
+
+ for itemIndex in itemIndexList:
+ curItem = itemPack.GetAt(itemIndex)
+ if not ItemCommon.CheckItemCanUse(curItem):
+ continue
+ isExpireItem, remainingTime = ItemCommon.GetItemRemainingTime(curItem)
+ if isExpireItem:
+ if remainingTime <= 0:
+ #过期
+ continue
+ if not expireTime or remainingTime < expireTime:
+ expireTime = remainingTime
+ delIndex = itemIndex
+ else:
+ delIndex = itemIndex
+ break
+ if delIndex != -1:
+ break
+ if delIndex is -1:
return
- ItemCommon.ReduceItem(curPlayer, itemPack, itemList, 1, False, ChConfig.ItemDel_ResetAttrPoint)
+ ItemCommon.ReduceItem(curPlayer, itemPack, [delIndex], 1, False, ChConfig.ItemDel_ResetAttrPoint)
Item_ResetAttrPoint.DoResetAttrPoint(curPlayer, 0, 0, 0)
@@ -5821,18 +5836,23 @@
NetPackCommon.SendFakePack(curPlayer, sendPack)
return
-#// B4 0E 设置玩家自身血量 #tagCMSetRoleHP
+#// B4 0E 玩家掉血 #tagCMRoleLostHP
#
-#struct tagCMSetRoleHP
+#struct tagCMRoleLostHP
#{
# tagHead Head;
-# DWORD HP;
+# DWORD LostHP;
#};
-def OnSetRoleHP(index, clientData, tick):
+def OnRoleLostHP(index, clientData, tick):
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- if not curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
- GameWorld.DebugLog("玩家当前不是在自定义场景中,不允许设置自身血量!")
- return
- setHP = max(1, min(clientData.HP, curPlayer.GetMaxHP()))
- curPlayer.SetHP(setHP)
+ lostHP = clientData.LostHP
+ curHP = curPlayer.GetHP()
+ updHP = curHP - lostHP
+ if updHP <= 0:
+ #玩家已经死亡
+ playerControl = PlayerControl.PlayerControl(curPlayer)
+ playerControl.SetDead()
+ else:
+ curPlayer.SetHP(updHP)
+
return
--
Gitblit v1.8.0