| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- local Log = require("common.Log")
- local Lang = require("common.Lang")
- local Json = require("common.Json")
- local Msg = require("core.Msg")
- local Timer = require("core.Timer")
- local Util = require("common.Util")
- local ChatBan = require("chat.ChatBan")
- local ChatRecord = require("chat.ChatRecord")
- local Broadcast = require("broadcast.Broadcast")
- local ChatLogic = require("chat.ChatLogic")
- local CombatVideo = require("combat.CombatVideo")
- local Define = require("platform.Define")
- local HeroExcel = require("excel.hero")
- local RoleLogic = require("role.RoleLogic")
- local CharRecord = require("chat.ChatRecord")
- local MiddleCommonLogic = require("middle.MiddleCommonLogic")
- local Config = require("Config")
- -- 聊天频道
- CHAT_TYPE_WORLD = 1 --世界
- CHAT_TYPE_SYSTEM = 2 --系统
- CHAT_TYPE_UNION = 3 --工会
- CHAT_TYPE_FRIEND = 4 --好友私聊
- CHAT_TYPE_MIDDLE = 5 --跨服
- CHAT_TYPE_WARZONE = 6 --战区
- CHAT_TYPE_CNT = 6 --聊天频道数
- -- isJson值
- CHAT_NORMAL = 0 -- 普通聊天
- CHAT_UNION_FIGHT = 1 -- 公会战
- CHAT_UNION_ECTYPE = 2 -- 公会副本
- CHAT_UNION_RED_BAG = 3 -- 公会红包
- CHAT_UNION_ZHAOMU = 4 -- 公会招募
- CHAT_HERO_SHARE = 5 -- 英雄聊天分享
- CHAT_FIGHT_SHARE = 6 -- 战斗记录聊天分享
- CHAT_ITEM_SHARE = 7 -- 道具聊天分享
-
- CHAT_SHARE_TYPE = 1 -- 战报分享
- CHAT_LV_NEED_WORLD = 20 -- 开放聊天等级
- CHAT_LV_NEED_MIDDLE = 70 -- 开放聊天等级
- CHAT_LV_NEED_FRIEND = 30 -- 开放聊天等级
- CHAT_LV_NEED_WARZONE = 50 -- 开放聊天等级-战区
- CHAT_OPEN_DAY_WARZONE = 7 -- 开放聊天服务器天数-战区
- CHAT_OPEN_DAY_MIDDLE = 15 -- 开放聊天服务器天数-跨服
- CHAT_CD = 10000 -- 聊天cd时间
- CHAT_MSG_LEN = 90
- function chatReport(human, content)
- s2aParam = {}
- s2aParam.role_name = human.db.name
- s2aParam.account_name = human.db.account
- s2aParam.content = content or ""
- s2aParam.ip = human.db.ip
-
- _G.thread_http.send(Define.CHAT_REPORT,Json.Encode(s2aParam))
- Log.write(Log.LOGID_DEBUG, "chatReportSuccrss"..Define.CHAT_REPORT)
- end
- function CG_CHAT_REPORT(human, msg)
- chatReport(human, msg.content)
- end
- function CG_CHAT(human, msg)
- local strLen = string.len(msg.msg)
- -- 普通聊天限制字数
- if CHAT_MSG_LEN < strLen and msg.isJson == CHAT_NORMAL then
- return Broadcast.sendErr(human, Lang.CHAT_MSG_LEN_ERR)
- end
- ChatLogic.chat(human, msg, msg.isJson)
- end
- function onLogin(human)
- ChatRecord.initHumanChatRead(human)
- ChatBan.sendBanList(human)
- end
- function CG_CHAT_BAN(human, msg)
- ChatBan.setBan(human, msg.uuid, msg.op)
- end
- function CG_CHAT_PLAYER_INFO(human, msg)
- local nServerIndex = msg.nServerIndex
- print("[CG_CHAT_PLAYER_INFO] uuid = "..msg.uuid.." nServerIndex = "..nServerIndex)
- if -1 >= nServerIndex or nServerIndex == Config.SVR_INDEX then
- local msgRet = Msg.gc.GC_CHAT_PLAYER_INFO
- if not RoleLogic.makePlayInfo(msgRet.data, msg.uuid) then
- return
- end
- Msg.send(msgRet, human.fd)
- else
- MiddleCommonLogic.MiddleCommonLogic_GetChatPlayInfo_LW(human, msg)
- end
- end
- function CG_CHAT_HERO_SHARE(human,msg)
- local bagIndex = msg.bagIndex
- local heroGrid = human.db.heroBag[bagIndex]
- if not heroGrid then
- return
- end
-
- local heroConfig = HeroExcel.hero[heroGrid.id]
- if heroConfig == nil then
- return
- end
- msg.videoUuid = ""
- local flag = ChatLogic.chat(human, msg,CHAT_HERO_SHARE)
- if flag == true then
- Broadcast.sendErr(human, Lang.SHARE_SUCCESS)
- else
- Broadcast.sendErr(human, Lang.SHARE_ERROR)
- end
- end
- --战斗界面 战斗记录分享
- function CG_CHAT_COMBAT_SHARE(human, msg)
- if msg.msgType ~= CHAT_TYPE_WORLD and
- msg.msgType ~= CHAT_TYPE_UNION and
- msg.msgType ~= CHAT_TYPE_MIDDLE and msg.msgType ~= CHAT_TYPE_WARZONE then
- return
- end
-
- -- 如果是分享在世界上检测是否在聊天CD 中
- if msg.msgType == CHAT_TYPE_WORLD and human.worldChatTime and human.worldChatTime + CHAT_CD > Timer.now then
- local cdLeftSec = math.ceil((CHAT_CD - (Timer.now - human.worldChatTime))/1000)
- Broadcast.sendDown(human, Util.format(Lang.CHAT_TIME_SHORT, cdLeftSec))
- return
- end
-
- if msg.msgType == CHAT_TYPE_UNION and human.db.unionUuid == nil then
- return Broadcast.sendErr(human, Lang.UNION_PLAYER_IN_NO)
- end
- local content = {}
- content.msg = msg.msg
- content.msgType = msg.msgType
- if msg.shareType ~= CHAT_SHARE_TYPE then
- local combatInfo = Util.copyTable(human.combat)
- if combatInfo == nil then
- return
- end
-
- local videoUuid = human.combat.videoUuid
- if not videoUuid then
- videoUuid = CombatVideo.saveCombatVideo(human, true)
- end
- if not videoUuid then
- return Broadcast.sendErr(human, Lang.SHARE_ERROR)
- end
-
- content.videoUuid = videoUuid
- end
- local flag = ChatLogic.chat(human,content,CHAT_FIGHT_SHARE)
- if flag == true then
- Broadcast.sendErr(human, Lang.SHARE_SUCCESS)
- else
- Broadcast.sendErr(human, Lang.SHARE_ERROR)
- end
- end
- function CG_CHAT_COMPLAIN_PLAYER(human,msg)
- ChatBan.jubaoChat(human,msg)
- end
- -- 获取聊天记录
- function CG_CHAT_RECORD_QUERY(human,msg)
- CharRecord.getChatRecord(human,msg.msgType)
- end
- -- 获取私聊列表
- function CG_CHAT_FRIEND_RECORD_QUERY(human)
- CharRecord.getChatFriendList(human)
- end
- --根据uuid获取私聊记录
- function CG_CHAT_FRIEND_RECORD_BY_FRIEND(human,msg)
- CharRecord.getChatFriendRecord(human,msg.uuid)
- end
- -- 新增私聊
- function CG_CHAT_FRIEND_RECORD_ADD(human,msg)
- CharRecord.addFriendChat(human,msg.uuid)
- end
- -- 删除玩家私聊数据
- function CG_CHAT_FRIEND_RECORD_DEL(human,msg)
- CharRecord.delFriendChatRecord(human,msg.uuid)
- end
|