From 2470d825e304e982261afd240d06ef03cd5366e8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 06 三月 2026 14:58:18 +0800
Subject: [PATCH] 16 卡牌服务端(后台禁言、封号支持;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 92 +++++++++++----------------------------------
1 files changed, 23 insertions(+), 69 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 4488ab9..0b9de40 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -958,7 +958,7 @@
def OnPlayerLogin(curPlayer):
- DoGMForbidenTalkOnLogin(curPlayer)
+ #DoGMForbidenTalkOnLogin(curPlayer)
curPlayer.SetDict(ChConfig.Def_PDict_DayOnlineCalcTime, int(time.time()))
return
@@ -2676,7 +2676,8 @@
elif type_Price == IPY_GameWorld.TYPE_Price_Silver_Paper:
__PayMoneyAfterBySilverPaper(curPlayer, price)
- if type_Price == ShareDefine.TYPE_Price_Xiantao:
+ # 仅算使用技能的
+ if type_Price == ShareDefine.TYPE_Price_Xiantao and costType == "UseSkill":
# 累加未结算战锤 - 经验
unXiantaoCntExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_UnXiantaoCntExp)
NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_UnXiantaoCntExp, unXiantaoCntExp + price)
@@ -2701,8 +2702,10 @@
TurnAttack.GetMainFightMgr(curPlayer).useZhanchui += price
- #轮回殿
- PlayerActLunhuidian.AddLunhuidianValue(curPlayer, PlayerActLunhuidian.AwardType_PayMoney, type_Price, price)
+ # 除GM扣除的以外
+ if costType != ChConfig.Def_Cost_GM:
+ #轮回殿
+ PlayerActLunhuidian.AddLunhuidianValue(curPlayer, PlayerActLunhuidian.AwardType_PayMoney, type_Price, price)
unitPrice = price if quantity == 1 else int(math.ceil(price * 1.0 / quantity)) # 单价
#reason_name = "Unknown" if not costType else costType
@@ -3956,12 +3959,6 @@
totalExpRate = GetPlayerExpRate(curPlayer)
fightExpRate = curPlayer.GetFightExpRate() # 系统及功能累加
- actExpRateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ExpRate, {})# 多倍经验活动加成
- if 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) # 组队
@@ -4097,20 +4094,21 @@
GameWorld.DebugLog("SetPlayerAccState %s" % (accState), curPlayer.GetPlayerID())
return
-def DoGMForbidenTalkOnLogin(curPlayer):
- ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
- ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
-
- if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
- GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
- __SetGMForbidenTalkValue(curPlayer, 2)
- __SetGMForbidenTalkValue(curPlayer, 1)
- elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
- GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
- __SetGMForbidenTalkValue(curPlayer, 1)
- else:
- SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
- return
+#GM命令支持离线玩家上线后处理,且 PlayerGMOper 也有上线触发逻辑处理,故暂屏蔽
+#def DoGMForbidenTalkOnLogin(curPlayer):
+# ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
+# ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
+#
+# if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
+# GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
+# __SetGMForbidenTalkValue(curPlayer, 2)
+# __SetGMForbidenTalkValue(curPlayer, 1)
+# elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
+# GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
+# __SetGMForbidenTalkValue(curPlayer, 1)
+# else:
+# SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
+# return
def IsMainLevelPass(curPlayer, lvID):
## 判断玩家是否过关某个主线关卡ID
@@ -4152,8 +4150,7 @@
PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_MainLevel)
PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_MainLevel, lvID)
PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_OSAMainLevel, lvID)
- if OpenServerActivity.GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MainLevel) == 1:
- PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MainLevel, lvID)
+ OpenServerActivity.UpdOSA_MainLevelBillboard(curPlayer, lvID)
DataRecordPack.DR_MainLevelPass(curPlayer, lvID)
return value
def GetMainLevelPassInfo(curPlayer):
@@ -4535,17 +4532,6 @@
NetPackCommon.SendFakePack(curPlayer, clientPack)
return
-## 魅力等级
-def GetCharmLV(curPlayer): return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CharmLV)
-def SetCharmLV(curPlayer, charmLV):
- NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CharmLV, charmLV)
- SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_CharmLV, charmLV)
- return
-
-def GetTotalLingGenPoint(curPlayer):
- # 总灵根点数(金木水火土+自由点数)
- return 0
-
# 灵根 - 金木水火土
def GetMetal(curPlayer): return 0
def GetWood(curPlayer): return 0
@@ -4559,9 +4545,6 @@
def GetReduceSkillCDPer(curPlayer): return 0
def SetReduceSkillCDPer(curPlayer, reducePer): return
-# 血瓶恢复效果
-def GetHPCureEnhance(curPlayer): return 0
-
# 仙盟职位,使用 GetReceivedSalary,因为FamilyMemberLV没有入库
def GetFamilyMemberLV(curPlayer): return curPlayer.GetReceivedSalary()
def SetFamilyMemberLV(curPlayer, fmLV):
@@ -4569,35 +4552,6 @@
curPlayer.SetReceivedSalary(fmLV)
curPlayer.SetFamilyMemberLV(fmLV) # 也同步设置该值,防止有些地方直接调用 curPlayer.GetFamilyMemberLV()
return
-
-#---当前防护值,需存DB----
-def GetProDef(curPlayer): return 0
-def SetProDef(curPlayer, value): return
-
-#---最大防护值----
-def GetMaxProDef(curPlayer): return 0
-def SetMaxProDef(curPlayer, value): return
-
-# 每X秒自动消失一个印记, 毫秒记录
-def GetLostYinjiTime(curPlayer): return 0
-def SetLostYinjiTime(curPlayer, value): return
-
-# 当前印记数
-def GetYinjiCnt(curPlayer): return 0
-def SetYinjiCnt(curPlayer, value): return
-
-# 减少指定技能组CD XX%
-def GetTheFBSkillsCD(curPlayer): return 0
-def SetTheFBSkillsCD(curPlayer, value): return
-# 灼烧固定伤害
-def GetBurnValue(curPlayer): return 0
-def SetBurnValue(curPlayer, value): return
-# 延长灼烧时间百分比
-def GetBurnTimePer(curPlayer): return 0
-def SetBurnTimePer(curPlayer, value): return
-# 减移动速度百分比
-def GetSubSpeedPer(curPlayer): return 0
-def SetSubSpeedPer(curPlayer, value): return
#-------------------------------------------------------------------------------
--
Gitblit v1.8.0