From 7ce2afc5904cb5cde834afc018c42234c7e33ca6 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 14 八月 2018 19:45:38 +0800
Subject: [PATCH] fix:2519【优化】坐骑、灵宠、神兵的信息提示优化
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py | 7 +++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 27 +++++++++++++++++++++------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py | 15 ++++++++++-----
PySysDB/PySysDBPY.h | 5 +++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py | 6 ++++--
5 files changed, 45 insertions(+), 15 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 5934a45..b398eff 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -37,6 +37,7 @@
list AttrType; //属性类型
list AttrNum; //属性值
DWORD SkillID; //激活技能ID
+ char SysMark; //系统提示
};
//功能配置表格 #tagFuncConfig
@@ -190,6 +191,7 @@
{
DWORD _ID; //灵兽NPCID
BYTE Quality; //品质
+ char UnlockSys; //解锁广播提示
DWORD UnLockNeedItemID; //解锁灵兽物品ID
BYTE UnLockNeedItemCnt; //解锁所需物品数量
DWORD DecomposeExp; //分解单个解锁物品可获得升阶经验
@@ -198,6 +200,7 @@
WORD UseNeedRank; //多少阶可切换外观
list SkillID; //灵兽技能ID
list SkillUnLock; //灵兽技能解锁需要阶数
+ list SkillUnLockSys; //灵兽技能解锁提示
DWORD InitFightPower; //初始战力
};
@@ -247,6 +250,7 @@
BYTE UseNeedRank; //多少阶可切换外观
BYTE Quality; //坐骑品质
DWORD InitFightPower; //初始战力
+ char UnlockSys; //解锁广播提示
};
@@ -260,6 +264,7 @@
list AttrType; //激活加成属性类型
list AttrValue; //激活加成属性值
list SkillID; //可获得的技能ID
+ char SysMark; //广播提示
};
//玩家等级表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index be30960..25ed73d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -62,6 +62,7 @@
("list", "AttrType", 0),
("list", "AttrNum", 0),
("DWORD", "SkillID", 0),
+ ("char", "SysMark", 0),
),
"FuncConfig":(
@@ -169,6 +170,7 @@
"PetInfo":(
("DWORD", "ID", 1),
("BYTE", "Quality", 0),
+ ("char", "UnlockSys", 0),
("DWORD", "UnLockNeedItemID", 0),
("BYTE", "UnLockNeedItemCnt", 0),
("DWORD", "DecomposeExp", 0),
@@ -177,6 +179,7 @@
("WORD", "UseNeedRank", 0),
("list", "SkillID", 0),
("list", "SkillUnLock", 0),
+ ("list", "SkillUnLockSys", 0),
("DWORD", "InitFightPower", 0),
),
@@ -210,6 +213,7 @@
("BYTE", "UseNeedRank", 0),
("BYTE", "Quality", 0),
("DWORD", "InitFightPower", 0),
+ ("char", "UnlockSys", 0),
),
"HorseUp":(
@@ -219,6 +223,7 @@
("list", "AttrType", 0),
("list", "AttrValue", 0),
("list", "SkillID", 0),
+ ("char", "SysMark", 0),
),
"PlayerLV":(
@@ -987,7 +992,8 @@
self.Exp = 0
self.AttrType = []
self.AttrNum = []
- self.SkillID = 0
+ self.SkillID = 0
+ self.SysMark = ""
return
def GetType(self): return self.Type # 神兵类型
@@ -995,7 +1001,8 @@
def GetExp(self): return self.Exp
def GetAttrType(self): return self.AttrType # 属性类型
def GetAttrNum(self): return self.AttrNum # 属性值
- def GetSkillID(self): return self.SkillID # 激活技能ID
+ def GetSkillID(self): return self.SkillID # 激活技能ID
+ def GetSysMark(self): return self.SysMark # 系统提示
# 功能配置表格
class IPY_FuncConfig():
@@ -1218,6 +1225,7 @@
def __init__(self):
self.ID = 0
self.Quality = 0
+ self.UnlockSys = ""
self.UnLockNeedItemID = 0
self.UnLockNeedItemCnt = 0
self.DecomposeExp = 0
@@ -1226,11 +1234,13 @@
self.UseNeedRank = 0
self.SkillID = []
self.SkillUnLock = []
+ self.SkillUnLockSys = []
self.InitFightPower = 0
return
def GetID(self): return self.ID # 灵兽NPCID
def GetQuality(self): return self.Quality # 品质
+ def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示
def GetUnLockNeedItemID(self): return self.UnLockNeedItemID # 解锁灵兽物品ID
def GetUnLockNeedItemCnt(self): return self.UnLockNeedItemCnt # 解锁所需物品数量
def GetDecomposeExp(self): return self.DecomposeExp # 分解单个解锁物品可获得升阶经验
@@ -1239,6 +1249,7 @@
def GetUseNeedRank(self): return self.UseNeedRank # 多少阶可切换外观
def GetSkillID(self): return self.SkillID # 灵兽技能ID
def GetSkillUnLock(self): return self.SkillUnLock # 灵兽技能解锁需要阶数
+ def GetSkillUnLockSys(self): return self.SkillUnLockSys # 灵兽技能解锁提示
def GetInitFightPower(self): return self.InitFightPower # 初始战力
# 装备分解属性表
@@ -1296,7 +1307,8 @@
self.MaxLV = 0
self.UseNeedRank = 0
self.Quality = 0
- self.InitFightPower = 0
+ self.InitFightPower = 0
+ self.UnlockSys = ""
return
def GetHorseID(self): return self.HorseID # 坐骑编号ID
@@ -1307,7 +1319,8 @@
def GetMaxLV(self): return self.MaxLV # 坐骑最高等级
def GetUseNeedRank(self): return self.UseNeedRank # 多少阶可切换外观
def GetQuality(self): return self.Quality # 坐骑品质
- def GetInitFightPower(self): return self.InitFightPower # 初始战力
+ def GetInitFightPower(self): return self.InitFightPower # 初始战力
+ def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示
# 坐骑升级表
class IPY_HorseUp():
@@ -1318,7 +1331,8 @@
self.NeedExp = 0
self.AttrType = []
self.AttrValue = []
- self.SkillID = []
+ self.SkillID = []
+ self.SysMark = ""
return
def GetHorseID(self): return self.HorseID # 坐骑编号ID
@@ -1326,7 +1340,8 @@
def GetNeedExp(self): return self.NeedExp # 升级所需经验
def GetAttrType(self): return self.AttrType # 激活加成属性类型
def GetAttrValue(self): return self.AttrValue # 激活加成属性值
- def GetSkillID(self): return self.SkillID # 可获得的技能ID
+ def GetSkillID(self): return self.SkillID # 可获得的技能ID
+ def GetSysMark(self): return self.SysMark # 广播提示
# 玩家等级表
class IPY_PlayerLV():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
index 2970f96..7e0f89c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
@@ -163,7 +163,7 @@
curExp = curExp - totalExp
attrLV += 1
isLVUP = True
- GodWeaponLVUP(curPlayer, godWeaponData)
+ GodWeaponLVUP(curPlayer, godWeaponData, attrLV)
totalExp = godWeaponData.GetExp()
if totalExp == 0:
@@ -180,7 +180,8 @@
PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_GodWeapon, attrLV, [weaponType])
if beforeAttrLV == 0:
# 解封通知
- PlayerControl.WorldNotify(0, 'GetGodWeapon', [curPlayer.GetName(), weaponType])
+ sysMark = IpyGameDataPY.GetFuncEvalCfg('GodWeaponSys', 1, {}).get(weaponType, 'GetGodWeapon')
+ PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), weaponType])
#{1:[100,200,300,400],2:[100,200,300,400],3:[100,200,300,400]}
notifyDict = IpyGameDataPY.GetFuncEvalCfg('GodLv', 1, {})
@@ -195,10 +196,14 @@
return
#神兵升级触发其他功能:技能
-def GodWeaponLVUP(curPlayer, godWeaponData):
+def GodWeaponLVUP(curPlayer, godWeaponData, attrLV):
skillID = godWeaponData.GetSkillID()
+
if skillID:
- __GiveGodWeaponSkill(curPlayer, skillID)
+ if __GiveGodWeaponSkill(curPlayer, skillID):
+ sysMark = godWeaponData.GetSysMark()
+ if sysMark:
+ PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), attrLV, skillID])
@@ -266,5 +271,5 @@
# BuffSkill.DoAddBuff(curPlayer, buffType, skillData, GameWorld.GetGameWorld().GetTick(), [], curPlayer)
PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillResId)
PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillResId, 0)
- return
+ return True
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
index c11de89..83dde4e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -631,9 +631,10 @@
skillIDList = upIpyData.GetSkillID()
if skillIDList:
+ sysMark = upIpyData.GetSysMark() or 'MountUpLv'
for skillID in skillIDList:
__GiveSkill(curPlayer, skillID, tick)
- PlayerControl.WorldNotify(0, 'MountUpLv', [playerName, horseID, updClassLV, skillID])
+ PlayerControl.WorldNotify(0, sysMark, [playerName, horseID, updClassLV, skillID])
if not skillIDList and updClassLV == maxLV:
PlayerControl.WorldNotify(0, 'MountUpLvMax', [playerName, horseID])
@@ -850,7 +851,8 @@
# 刷属性,更新排行榜
RefreshHorseAttr(curPlayer)
- PlayerControl.WorldNotify(0, 'GetMount', [curPlayer.GetName(), ipyData.GetItemID()])
+ sysMark = ipyData.GetUnlockSys() or 'GetMount'
+ PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), ipyData.GetItemID()])
#
# HorseSkinNotifyDict = ReadChConfig.GetEvalChConfig("HorseSkinNotify")
# if horseSkinID in HorseSkinNotifyDict:
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 6308b40..e79aeea 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -455,7 +455,8 @@
ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet)
EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID)
- PlayerControl.WorldNotify(0, 'GetPet', [curPlayer.GetName(), petNPCID])
+ sysMark = ipyData.GetUnlockSys() or 'GetPet'
+ PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), petNPCID])
rolePet = curPlayer.GetPetMgr().GetFightPet()
if not rolePet:
petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID)
@@ -653,6 +654,7 @@
petIpyData = GetPetIpydata(petNPCID)
petSkillList = petIpyData.GetSkillID()
petSkillUnLockList = petIpyData.GetSkillUnLock()
+ sysMarkList = petIpyData.GetSkillUnLockSys()
learnSkillList = []
for i, skillid in enumerate(petSkillList):
limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级
@@ -668,7 +670,8 @@
#被动技能不学
learnSkillList.append(skillid)
#广播
- PlayerControl.WorldNotify(0, 'PetUpLv', [playerName, petNPCID, limitPetClassLV, skillid])
+ sysMark = sysMarkList[i] if i < len(sysMarkList) else 'PetUpLv'
+ PlayerControl.WorldNotify(0, sysMark, [playerName, petNPCID, limitPetClassLV, skillid])
if not learnSkillList and updClassLV + 1 == maxClassLV:
PlayerControl.WorldNotify(0, 'PetUpLvMax', [playerName, petNPCID])
--
Gitblit v1.8.0