From d3dd7b36e8b7bc96d0c6134cfa4773a020621bcd Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 20 九月 2018 14:04:41 +0800
Subject: [PATCH] fix:语音app修改
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 53 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 34 insertions(+), 19 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index a9219ee..6a74f27 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -308,34 +308,38 @@
return
#---------------------------------------------------------------------
-def SendMailBatch(mailTypeKey, batchPlayerIDList, batchAddItemList=[], batchParamList=[], batchGold=[], batchGoldPaper=[], batchSilver=[]):
+def SendMailBatch(mailTypeKey, batchPlayerIDList, batchAddItemList=[], batchParamList=[], batchGold=[], batchGoldPaper=[], batchSilver=[], batchDetail=[]):
'''批量发送邮件, 用于瞬间需要发送多封(大量)邮件的,比如一些公共副本活动等结算时
@param mailTypeKey: 邮件模板key
@param batchPlayerIDList: [playerIDList, playerIDList, ...]
@param batchAddItemList: [addItemList, addItemList, ...]
@param batchParamList: [paramList, paramList, ...]
@param batchGold: [batchGold, batchGold, ...]
- @param batchGold: [batchGoldPaper, batchGoldPaper, ...]
- @param batchGold: [batchSilver, batchSilver, ...]
+ @param batchGoldPaper: [batchGoldPaper, batchGoldPaper, ...]
+ @param batchSilver: [batchSilver, batchSilver, ...]
+ @param batchDetail: [记录邮件流向用, ...]
'''
- msgInfo = str([mailTypeKey, batchPlayerIDList, batchAddItemList, batchParamList, batchGold, batchGoldPaper, batchSilver])
+ msgInfo = str([mailTypeKey, batchPlayerIDList, batchAddItemList, batchParamList, batchGold, batchGoldPaper, batchSilver, batchDetail])
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "SendMailBatch", msgInfo, len(msgInfo))
GameWorld.Log("SendMailBatch %s, batchPlayerIDList=%s, batchAddItemList=%s, batchParamList=%s, batchGold=%s, batchGoldPaper=%s, batchSilver=%s"
% (mailTypeKey, batchPlayerIDList, batchAddItemList, batchParamList, batchGold, batchGoldPaper, batchSilver))
return
-def SendMailByKey(mailTypeKey, playerIDList, addItemList, paramList=[], gold=0, goldPaper=0, silver=0):
+def SendMailByKey(mailTypeKey, playerIDList, addItemList, paramList=[], gold=0, goldPaper=0, silver=0, detail=""):
+ '''
+ @param detail: 记录邮件流向用
+ '''
if not mailTypeKey:
mailTypeKey = ShareDefine.DefaultLackSpaceMailType
content = "<MailTemplate>%s</MailTemplate>%s" % (mailTypeKey, json.dumps(paramList, ensure_ascii=False))
- SendMail("", content, 30, playerIDList, addItemList, gold, goldPaper, silver)
+ SendMail("", content, 30, playerIDList, addItemList, gold, goldPaper, silver, detail)
return
## 功能发放物品补偿/奖励邮件
# @param addItemList [(itemID, itemCnt, isBind), {或物品信息字典}, ...]
# @return
-def SendMail(title, content, getDays, playerIDList, addItemList, gold=0, goldPaper=0, silver=0):
+def SendMail(title, content, getDays, playerIDList, addItemList, gold=0, goldPaper=0, silver=0, detail=""):
if not playerIDList:
return
@@ -377,7 +381,7 @@
for key, itemCnt in itemCountDict.items():
itemID, isBind = key
combineItemList.append((itemID, itemCnt, isBind))
- cmdList = [title, content, getDays, playerIDList, combineItemList, gold, goldPaper, silver]
+ cmdList = [title, content, getDays, playerIDList, combineItemList, gold, goldPaper, silver, detail]
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "SendMail", '%s' % (cmdList), len(str(cmdList)))
return True
@@ -2009,7 +2013,7 @@
# @param canLock 是否可以锁定玩家(传送点不可锁定, 因为要跨地图寻路)
# @return 返回值无意义
# @remarks 玩家切换地图
-def PlayerResetWorldPos(curPlayer, mapID, posX, posY, takeTruck, lineID= -1, msg='', canLock=True, exData1=0):
+def PlayerResetWorldPos(curPlayer, mapID, posX, posY, takeTruck, lineID=-1, msg='', canLock=True, exData1=0):
#更改: 死亡允许切换地图, 在副本中被怪打死, 副本时间到, 回收副本
# if curPlayer.GetHP() <= 0 :
# GameWorld.Log("死亡无法切换地图")
@@ -2082,6 +2086,10 @@
GameWorld.DebugLog("分流boss, bossID=%s,bossShuntLineID=%s" % (bossID, bossShuntLineID), playerID)
NPCCommon.AddBossShuntRelatedPlayer(curPlayer, tagMapID, bossShuntLineID, bossID, tick)
return bossShuntLineID
+ return tagLineID
+
+ if curMapID == tagMapID:
+ GameWorld.DebugLog("同地图切换坐标不处理分流!", playerID)
return tagLineID
# 可以用来常规分流的线路人数字典信息, 并不是所有线路都可以用来做人数分流的,比如中立地图有多条线用来分流boss,但是只有1条线可用来做常规的人数分流
@@ -2723,8 +2731,8 @@
curBourseMoney = GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
updBourseMoney = curBourseMoney
- #当是交易所扣费时,则必定扣除交易额度
- if costType == ChConfig.Def_Cost_BourseBuy:
+ #当是交易所扣费、钻石红包时,则必定扣除交易额度
+ if costType in ChConfig.UnUseInner_CostType:
updBourseMoney = max(0, curBourseMoney - price)
#其他如果当前金子比交易额度还少,则强制调整交易额度为当前金子数(这种情况一般是非交易所消费的,需要同步扣除交易所可购买额度)
elif updPlayerGold < updBourseMoney:
@@ -3395,6 +3403,7 @@
OnlyFinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_OnlyFinalHurt) # 额外输出伤害
PVPAtkBackHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_PVPAtkBackHP) # PVP攻击回血
+ NPCHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NPCHurtAddPer) # 对怪物伤害加成
#其他需作为公式参数的系数
AtkSpeedParameter = fpParam.GetCftAtkSpeed()
@@ -5394,10 +5403,11 @@
fightExpRate += PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_FightExpRate) # VIP加成
actExpRateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ExpRate, {})# 多倍经验活动加成
- if not PlayerTJG.GetIsTJG(curPlayer) and actExpRateInfo.get(ShareDefine.ActKey_State) \
- and curPlayer.GetLV() >= actExpRateInfo.get(ShareDefine.ActKey_LVLimit, 0):
- fightExpRate += actExpRateInfo.get(ShareDefine.ActKey_AddExpRate, 0)
-
+ if not PlayerTJG.GetIsTJG(curPlayer) and actExpRateInfo.get(ShareDefine.ActKey_State):
+ actExpIpyData = IpyGameDataPY.GetIpyGameData("ActExpRate", actExpRateInfo.get(ShareDefine.ActKey_CfgID))
+ if actExpIpyData and curPlayer.GetLV() >= actExpIpyData.GetLVLimit():
+ fightExpRate += actExpIpyData.GetAddExpRate()
+
if curPlayer.GetMapID() not in [ChConfig.Def_FBMapID_FamilyInvade]: #守卫人皇不加组队加成
fightExpRate += curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_TeamExpRate) # 组队
@@ -6055,7 +6065,10 @@
## 对怪物伤害加成
def GetNPCHurtAddPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_NPCHurtAddPer)
-def SetNPCHurtAddPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_NPCHurtAddPer, value)
+def SetNPCHurtAddPer(curPlayer, value):
+ curPlayer.SetDict(ChConfig.Def_PlayerKey_NPCHurtAddPer, value)
+ curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_NPCHurtAddPer, value, False)
+
#---职业伤害加成---
## 目标战士伤害加成
def GetJobAHurtAddPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_JobAHurtAddPer)
@@ -6116,9 +6129,6 @@
curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_IgnoreDefRateReduce, value, False)
#---特殊伤害概率---
-## 富甲一击概率
-def GetFujiaHitRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FujiaHitRate)
-def SetFujiaHitRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FujiaHitRate, value)
## 富豪一击概率
def GetFuhaoHitRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FuhaoHitRate)
def SetFuhaoHitRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FuhaoHitRate, value)
@@ -6129,6 +6139,11 @@
curPlayer.SetDict(ChConfig.Def_PlayerKey_BleedDamage, value)
curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_BleedDamage, value, False)
+## 最终伤害百分比
+def GetFinalHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurtPer)
+def SetFinalHurtPer(curPlayer, value):
+ curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtPer, value)
+ curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtPer, value, False)
## 最终固定伤害增加
def GetFinalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurt)
def SetFinalHurt(curPlayer, value):
--
Gitblit v1.8.0