From 40f41d737bb9f7df71c6260b766756ba8a2ea1fc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 20 六月 2024 21:14:13 +0800
Subject: [PATCH] Merge branch 'hyyngame' of http://192.168.1.20:10010/r/SnxxServerCode into hyyngame
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
index f51d7d3..fe1d4b5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
@@ -28,6 +28,10 @@
import ItemCommon
import ChItem
import PlayerTJG
+import EventShell
+import PyGameData
+import PlayerLove
+import math
#---------------------------------------------------------------------
@@ -46,7 +50,7 @@
content = sendPack.GetContent()
#通用判断
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcArea):
return
#通用设置
@@ -54,7 +58,7 @@
#如果在普通地图, 就广播, 如果在副本就单个通知
- if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull:
+ if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull and not GameWorld.IsCrossServer():
#广播
extras = GetTalkExtraValue(curPlayer)
curPlayer.ChatArea(content, 0, extras)
@@ -96,7 +100,7 @@
content = sendPack.GetContent()
#通用检测
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False, talkType=IPY_GameWorld.tcWorld):
return
#通用设置
@@ -105,7 +109,9 @@
extras = GetTalkExtraValue(curPlayer)
curPlayer.ChatGong(content, 0, extras)
#世界频道发言成就
- PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkWorld, 1)
+ #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkWorld, 1)
+ PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_TalkWorld, 1)
+ EventShell.EventRespons_Talk(curPlayer, 'talkworld')
return
## 国家频道(封包参数)
@@ -129,7 +135,7 @@
content = sendPack.GetContent()
#通用检测
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False, talkType=IPY_GameWorld.tcCountry):
return
#通用设置
@@ -154,13 +160,17 @@
#玩家聊天内容
content = sendPack.GetContent()
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcFamily):
return
+
+ #通用设置
+ SetTalkTime(curPlayer, content, IPY_GameWorld.tcFamily, tick)
extras = GetTalkExtraValue(curPlayer)
curPlayer.ChatFamily(content, 0, extras)
#仙盟频道发言成就
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkFamily, 1)
+ EventShell.EventRespons_Talk(curPlayer, 'talkfamily')
return
## 队伍频道(封包参数)
@@ -178,7 +188,7 @@
#玩家聊天内容
content = sendPack.GetContent()
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcTeam):
return
#通用设置
@@ -201,7 +211,7 @@
#玩家聊天内容
content = sendPack.GetContent()
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcPrivate):
return
#通用设置
@@ -210,6 +220,14 @@
extras = GetTalkExtraValue(curPlayer)
curPlayer.ChatMiByID(sendPack.GetTalkType(), sendPack.GetPlayerID(), content, 0, extras)
return
+
+def TalkPrivateByID(curPlayer, tagPlayerID, content):
+ #私聊 0为默认 1为1对1聊天
+ talkType = 1
+ extras = GetTalkExtraValue(curPlayer)
+ curPlayer.ChatMiByID(talkType, tagPlayerID, content, 0, extras)
+ return
+
## 私聊频道(封包参数)
@@ -223,7 +241,7 @@
#玩家聊天内容
content = sendPack.GetContent()
- if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick):
+ if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcPrivate):
return
#通用设置
@@ -244,7 +262,7 @@
# @param checkSameMsg 是否检查相同信息
# @return True or False
# @remarks 函数详细说明.
-def __CheckTalk(curPlayer, content, length, tick, checkGMForbidenTalk = True, checkSameMsg = True):
+def __CheckTalk(curPlayer, content, length, tick, checkGMForbidenTalk = True, checkSameMsg = True, talkType=None):
if checkGMForbidenTalk and GetGMToolForbidTalk(curPlayer):
#GeRen_chenxin_921745 对不起,您已被GM禁言,发送信息失败
#PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_921745")
@@ -255,6 +273,17 @@
#PlayerControl.NotifyCode(curPlayer, "CanootTalk02")
return False
+ #频道各自间隔时间
+ if talkType != None:
+ talkCDDict = IpyGameDataPY.GetFuncEvalCfg("TalkCD", 1, {})
+ if str(talkType) in talkCDDict:
+ cdTicks = talkCDDict[str(talkType)] * 1000
+ lastTalkTick = curPlayer.GetTalkTick(talkType)
+ remainTick = cdTicks - (tick - lastTalkTick)
+ if remainTick > 0:
+ PlayerControl.NotifyCode(curPlayer, "CanootTalk01", [int(math.ceil(remainTick/1000.0))])
+ return False
+
#聊天信息太长
if length > ChConfig.Def_PlayerTalkMaxCount :
PlayerControl.NotifyCode(curPlayer, "CanootTalk13")
@@ -291,7 +320,7 @@
#设置当前聊天内容为玩家本次聊天内容
#curPlayer.SetLastChatContent(content)
#设置当前频道时间
- #curPlayer.SetTalkTick(type, tick)
+ curPlayer.SetTalkTick(type, tick)
return
## 信件2B封包
@@ -351,6 +380,7 @@
vipLv = objTalk.GetVIPLv() # 玩家vip等级
GMLevel = objTalk.GetGMLevel()
job = objTalk.GetJob()
+ playerID = objTalk.GetID()
extraValueStr = ""
# vip等级
@@ -365,6 +395,11 @@
extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_ServerGroupID) % PlayerControl.GetPlayerServerGroupID(objTalk)
# 等级
extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_LV) % objTalk.GetLV()
+ # 伴侣信息
+ coupleName = PlayerControl.GetCoupleName(objTalk)
+ coupleJob = PlayerControl.GetCoupleJob(objTalk)
+ bridePriceMaxID = PlayerControl.GetBridePriceMaxID(objTalk)
+ extraValueStr = "%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID)
return extraValueStr
@@ -447,7 +482,6 @@
# @param tick
# @return
def OnPyTalk(index, clientData, tick):
- return
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
#GameWorld.DebugLog("OnPyTalk, Name:%s" % curPlayer.GetPlayerName())
--
Gitblit v1.8.0