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/PlayerPet.py | 48 +++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 41 insertions(+), 7 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
index 5e87340..672e994 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -37,9 +37,11 @@
import GameMap
import OpenServerCampaign
import PlayerMagicWeapon
-import PassiveBuffEffMng
+import PlayerWeekParty
import CalcNoLineEffect
+import CrossPlayerData
import CalcLineEffect
+import PlayerActivity
import random
import math
@@ -105,7 +107,6 @@
if not newPetItem:
return
- newPetItem.SetIsBind(True)
newPetItem.SetUserAttr(ShareDefine.Def_IudetPet_NPCID, petNPCID)
newPetItem.SetUserAttr(ShareDefine.Def_IudetPet_State, ShareDefine.Def_PetState_Null)
@@ -266,8 +267,39 @@
# petItem.SetUserAttr(ShareDefine.Def_IudetPet_State, tagState)
# GameWorld.DebugLog("切换宠物状态异常防范! curState=%s,tagState=%s" % (curState, tagState))
+ if not GameWorld.IsCrossServer():
+ dataList = [petNPCID, curClasslv, tagState]
+ CrossPlayerData.SendDataToCrossServer(curPlayer, CrossPlayerData.CrossData_PetState, dataList)
+
return
+def CrossServer_DoChangePetState(curPlayer, dataList):
+ ## 跨服处理 宠物战斗状态变更
+ petNPCID, curClasslv, tagState = dataList
+ petItem = GetPetDataItemByNPCID(curPlayer, petNPCID)
+ if not petItem:
+ newPetItem = GetNewPetDataItem(curPlayer, petNPCID)
+ if not newPetItem:
+ return
+ if not ItemControler.PlayerItemControler(curPlayer).PutInItem(ShareDefine.rptPet, newPetItem):
+ return
+ petItem = GetPetDataItemByNPCID(curPlayer, petNPCID)
+ if not petItem:
+ return
+
+ curItemClasslv = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV)
+ # 处理技能问题,暂不处理
+ if curClasslv > curItemClasslv:
+ pass
+
+ curState = petItem.GetUserAttr(ShareDefine.Def_IudetPet_State) # 当前状态
+ if curState == ShareDefine.Def_PetState_Fight:
+ PetControl.ReCallFightPet(curPlayer)
+
+ if tagState == ShareDefine.Def_PetState_Fight:
+ __DoPetGoOutToFight(curPlayer, petItem)
+
+ return
## 执行宠物出战逻辑
@@ -320,7 +352,7 @@
#---通知客户端---
#rolePet.Sync_PetInfo()
#刷新技能栏
- rolePet.Sync_SkillList()
+ #rolePet.Sync_SkillList()
#---收到"宠物出战"请求---
#检查是否可出战
@@ -339,6 +371,7 @@
#记录出战的宠物索引 默认+1 0则代表没有
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPetIndex, petItemIndex + 1)
+ rolePet.SetSightLevel(curPlayer.GetSightLevel())
return True
def AutoSummonPet(curPlayer):
@@ -453,7 +486,6 @@
if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem):
return
- PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Pet, len(GetActivePetID(curPlayer)))
ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet)
EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID)
@@ -474,6 +506,7 @@
# 开服活动数据
OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_PetLV, GetTotalPetLV(curPlayer))
+ PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pet, petNPCID, False)
return True
@@ -507,7 +540,6 @@
if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem):
return
- PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Pet, len(GetActivePetID(curPlayer)))
SetPetSkillFightPower(curPlayer) # 技能战力重算
petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID)
DoChangePetState(curPlayer, petItemIndex, ShareDefine.Def_PetState_Fight)
@@ -594,7 +626,7 @@
for itemIndex in itemIndexList:
curItem = curItemPack.GetAt(itemIndex)
#检查物品
- if not ItemCommon.CheckItemCanUse(curItem):
+ if not ItemCommon.CheckItemCanUse(curItem) or ItemControler.GetIsAuctionItem(curItem):
continue
itemCnt = curItem.GetCount()
nowCnt += itemCnt
@@ -677,7 +709,9 @@
#广播
sysMark = sysMarkList[i] if i < len(sysMarkList) else 'PetUpLv'
PlayerControl.WorldNotify(0, sysMark, [playerName, petNPCID, limitPetClassLV, skillid])
-
+ #增加升级活跃点效果
+ PlayerActivity.AddActivityByLVOnLearnSkill(curPlayer, skillid)
+
if not learnSkillList and updClassLV + 1 == maxClassLV:
PlayerControl.WorldNotify(0, 'PetUpLvMax', [playerName, petNPCID])
# 如果是当前出战的宠物, 则该宠物学习技能
--
Gitblit v1.8.0