miduo_client/Assets/ManagedResources/~Lua/Modules/Message/WidelyCallPanel.lua

206 lines
6.6 KiB
Lua

require("Base/BasePanel")
require "Message/msgCommon_pb";
local MsgParser = require("BadWords/MsgParser")
WidelyCallPanel = Inherit(BasePanel)
local this = WidelyCallPanel
--初始化组件(用于子类重写)
function this:InitComponent()
this.spLoader = SpriteLoader.New()
local transform = self.transform;
this.PulicBtns = Util.GetGameObject(transform, "PulicBtns");
this.CloseBtn = Util.GetGameObject(transform, "CloseBtn");
this.SendMessageBtn = Util.GetGameObject(this.PulicBtns, "SendMessageBtn");
this.gridParent = Util.GetGameObject(transform, "Grid").transform;
this.input = Util.GetGameObject(transform, 'input');
this.ItemObj = Util.GetGameObject(this.gridParent, 'NewsItem01');
this._text = Util.GetGameObject(this.ItemObj, 'Text'):GetComponent('Text')
this._text.text = ''
end
--绑定事件(用于子类重写)
function this:BindEvent()
Util.AddClick(WidelyCallPanel.CloseBtn, this.OnCloseButtonClick);
Util.AddClick(WidelyCallPanel.SendMessageBtn, this.SendMessagerequset);
end
--添加事件监听(用于子类重写)
function this:AddListener()
Network.RegisterMessage(MSGID_Server2Client.MSG_SC_BROADCAST, this.ResWidelyCallInfo);
end
--移除事件监听(用于子类重写)
function this:RemoveListener()
Network.UnRegisterMessage(MSGID_Server2Client.MSG_SC_BROADCAST, this.ResWidelyCallInfo);
end
function this:OnShow()
end
--界面打开时调用(用于子类重写)
function this:OnOpen(...)
end
--界面关闭时调用(用于子类重写)
function this:OnClose()
end
--界面销毁时调用(用于子类重写)
function this:OnDestroy()
this.spLoader:Destroy()
end
--释放掉该面板--
function this.CheckAbleSendMessage()
--[[
local sprite =nil;
if player.diamond~=nil and player.diamond >=50000 then
sprite = this.spLoader:LoadSprite("Button_01", "Normal_asset");
else
sprite = this.spLoader:LoadSprite("Button_03", "Normal_asset");
end
this.SendMessageBtnbg.sprite = sprite;
--]]
end
-- @param strurl 待解取字符串;
-- strchar 指定字符串
-- @return 截取后的字符串
-- end --
function this.getUrlFileName(strurl, strchar)
local param1, param2 = string.find(strurl, strchar)
local m = string.len(strurl) - param2 + 1
print(m .. '-------------------------m')
local result
result = string.sub(strurl, param2 + 1 + 8, string.len(strurl))
-- result = string.sub(strurl, param2+1, string.len(strurl))
return result
end
function this.ResWidelyCallInfo(buffer)
local player = PlayerManager.player;
--local textddd=this.getUrlFileName('fgrethgtruytue$dddqq3wedddrdfdsf657|57867856','|')
-- print(textddd .."---textddd")
local data = buffer:DataByte();
local callInfo = msgCommon_pb.BroadCastSC();
callInfo:ParseFromString(data);
--Util.LogError("发送者名字 ------"..callInfo.name);
--Util.LogError("发送者名字 ------"..callInfo.content);
if this._text.text == '' then
if callInfo.name == '系统' then --FFFFFF00
this._text.text = '<color=#EE1C00>[' ..
'系统' .. ']</color>' .. callInfo.content .. '<color=#FFFFFF00>' .. '|' .. '</color>'
elseif callInfo.name == player.name then
this._text.text = '<color=#15FF1CFF>[' ..
player.name .. '] </color>' .. callInfo.content .. '<color=#FFFFFF00>' .. '|' .. '</color>'
else
this._text.text = '<color=#2FFFEDFF>[' ..
callInfo.name .. '] </color>' .. callInfo.content .. '<color=#FFFFFF00>' .. '|' .. '</color>'
end
else
if callInfo.name == '系统' then
this._text.text = this._text.text ..
'\r\n' .. '<color=#EE1C00>[' .. '系统' .. ']</color>' .. callInfo.content ..
'<color=#FFFFFF00>' .. '|' .. '</color>'
elseif callInfo.name == player.name then
this._text.text = this._text.text ..
'\r\n' ..
'<color=#15FF1CFF>[' .. player.name .. ']</color>' .. callInfo.content ..
'<color=#FFFFFF00>' .. '|' .. '</color>'
else
this._text.text = this._text.text ..
'\r\n' ..
'<color=#2FFFEDFF>[' .. callInfo.name .. ']</color>' ..
callInfo.content .. '<color=#FFFFFF00>' .. '|' .. '</color>'
end
end
if this._text.preferredHeight > 3450 then --3450
--local textd= string.sub(this._text.text,90,string.len(this._text.text))
local textddd = this.getUrlFileName(this._text.text, '|')
print(textddd .. "---textddd")
this._text.text = textddd
end
if this._text.preferredHeight > 282 then
this.gridParent.localPosition = Vector3(271.74, (this._text.preferredHeight - 282), 1);
end
if this.ItemObj.activeSelf == false then
this.ItemObj:SetActive(true)
end
end
--初始化面板--
function this.InitPanel(objs)
--[[
local count = 100;
local parent = WidelyCallPanel.gridParent;
for i = 1, count do
local go = newObject(objs[0]);
go.name = 'Item'..tostring(i);
go.transform:SetParent(parent);
go.transform.localScale = Vector3.one;
go.transform.localPosition = Vector3.zero;
WidelyCall:AddClick(go, this.OnItemClick);
local label = go.transform:Find('Text');
label:GetComponent('Text').text = tostring(i);
end
]]
end
--发送广播消息--
function this.SendMessagerequset(go)
local player = PlayerManager.player;
-- Util.LogError("发送广播消息")
-- 系统颜色码dcc83e
if player.diamond ~= nil and player.diamond >= 50000 then
this.reqSendWidelyCall()
else
MsgPanel.ShowOne(Language[11858])
end
ShareSoundConfig.PlayClickButtonSound()
end
--发送广播
function this.reqSendWidelyCall()
local _test = this.input.transform:Find('Text'):GetComponent('Text').text
local s = MsgParser:getString(_test)
print(s)
if _test ~= '' then
local ReqSend = msgCommon_pb.SendBroadCastCS();
ReqSend.content = s
local msg = ReqSend:SerializeToString();
Network.SendMessage(MSGID_Clinet2Server.MSG_CS_SEND_BROADCAST, msg);
else
print('输入为空....')
-- MessageCtrl.OpenWithCenterBtn("本时间段抽奖次数已用完,请稍候再来!", false, this.MessageClose)
--MessageCtrl.Open();
end
end
--[[ 36
282 0
318 36
354 72
390 108
426 144
]]
--单击事件--
function this.OnCloseButtonClick(go)
this:ClosePanel();
ShareSoundConfig.PlayClickButtonSound()
end
return WidelyCallPanel