130 lines
4.0 KiB
C#
130 lines
4.0 KiB
C#
|
using UnityEngine;
|
|||
|
using System.Collections;
|
|||
|
using Games.ChatHistory;
|
|||
|
using GCGame;
|
|||
|
using GCGame.Table;
|
|||
|
using Module.Log;
|
|||
|
|
|||
|
public class RedPacket
|
|||
|
{
|
|||
|
#region
|
|||
|
|
|||
|
private static RedPacket _Instance;
|
|||
|
public static RedPacket Instance
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
if (_Instance == null)
|
|||
|
{
|
|||
|
_Instance = new RedPacket();
|
|||
|
}
|
|||
|
return _Instance;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private RedPacket() { }
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
public void PickRedPacket(int packetID, int packetType)
|
|||
|
{
|
|||
|
CG_REQ_RED_PACKET_DETAIL_INFO packet = (CG_REQ_RED_PACKET_DETAIL_INFO)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_RED_PACKET_DETAIL_INFO);
|
|||
|
packet.Id = packetID;
|
|||
|
packet.Type = packetType;
|
|||
|
packet.SendPacket();
|
|||
|
|
|||
|
LogModule.DebugLog("pick red pack:" + packetID + "," + packetType);
|
|||
|
|
|||
|
if (RedPacketRecvRoot.Instance())
|
|||
|
{
|
|||
|
RedPacketRecvRoot.Instance().OnBtnRefresh();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void RecvRedPacket(GC_GIVE_RED_PACKET_RET packet)
|
|||
|
{
|
|||
|
if (ActiveBtns.Instance())
|
|||
|
{
|
|||
|
ActiveBtns.Instance().ShowRedPacket(packet);
|
|||
|
}
|
|||
|
var history = GetRedPacketChatHistory(packet);
|
|||
|
GameManager.gameManager.PlayerDataPool.ChatHistory.AddHistory(history);
|
|||
|
if (ChatFrameLogic.Instance() != null)
|
|||
|
{
|
|||
|
ChatFrameLogic.Instance().OnReceiveChat(null);
|
|||
|
}
|
|||
|
if (ChatInfoLogic.Instance() != null)
|
|||
|
{
|
|||
|
ChatInfoLogic.Instance().OnReceiveChat();
|
|||
|
ChatInfoLogic.Instance().ShowRedPacketEffect();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ChatInfoLogic.ShowRedPacket(true);
|
|||
|
}
|
|||
|
|
|||
|
LogModule.DebugLog("RecvRedPacket");
|
|||
|
HornPanelCtr.PopHornMessage(history);
|
|||
|
|
|||
|
if (RedPacketRecvRoot.Instance())
|
|||
|
{
|
|||
|
RedPacketRecvRoot.Instance().OnBtnRefresh();
|
|||
|
}
|
|||
|
|
|||
|
if (packet.HasRedPacketRain == (int)GC_GIVE_RED_PACKET_RET.ERedPacketRain.ETypeHasRedPacketRain)
|
|||
|
{
|
|||
|
GlobalEffectMgr.PlayRedPacketRain();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private ChatHistoryItem GetRedPacketChatHistory(GC_GIVE_RED_PACKET_RET packet)
|
|||
|
{
|
|||
|
|
|||
|
// 记录聊天历史
|
|||
|
ChatHistoryItem history = new ChatHistoryItem();
|
|||
|
history.CleanUp();
|
|||
|
history.SenderGuid = packet.SenderGuid;
|
|||
|
history.SenderName = packet.SenderName;
|
|||
|
history.SenderIcon = Utils.GetProfessionSpriteName(packet.SenderProfession);
|
|||
|
history.SenderPro = packet.SenderProfession;
|
|||
|
history.SenderVIPLevel = packet.VipLevel;
|
|||
|
history.SenderPrivilegeVIP = packet.PrivilegeVIP;
|
|||
|
history.SenderLevel = packet.SenderLevel;
|
|||
|
if(packet.HasHeadBGType)
|
|||
|
history.HeadBGType = packet.HeadBGType;
|
|||
|
if(packet.HasChatPopType)
|
|||
|
history.ChatPopType = packet.ChatPopType;
|
|||
|
|
|||
|
if (packet.Type != (int)GC_GIVE_RED_PACKET_RET.ERedPacketType.ETypeWorld && packet.Type != (int)GC_GIVE_RED_PACKET_RET.ERedPacketType.ETypeGuild)
|
|||
|
{
|
|||
|
char firstChar = packet.RedPacketStr[0];
|
|||
|
if (firstChar != '#')
|
|||
|
{
|
|||
|
history.ChatInfo = packet.RedPacketStr;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
history.ChatInfo = StrDictionary.GetServerDictionaryFormatString(packet.RedPacketStr);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
history.ChatInfo = Utils.StrFilter_Chat(packet.RedPacketStr);
|
|||
|
}
|
|||
|
|
|||
|
history.ChatInfo = history.ChatInfo.Replace(" ", " ");
|
|||
|
history.EChannel = packet.Type == (int)GC_GIVE_RED_PACKET_RET.ERedPacketType.ETypeGuild ? GC_CHAT.CHATTYPE.CHAT_TYPE_GUILD : GC_CHAT.CHATTYPE.CHAT_TYPE_WORLD;
|
|||
|
history.SenderVIPLevel = packet.VipLevel;
|
|||
|
history.SetRecMsgTime();
|
|||
|
history._RedPacketID = packet.RedPacketId;
|
|||
|
history._RedPacketType = packet.Type;
|
|||
|
if (packet.Type == (int)GC_GIVE_RED_PACKET_RET.ERedPacketType.ETypeSystem)
|
|||
|
{
|
|||
|
history.SenderName = StrDictionary.GetClientDictionaryString("#{4336}");
|
|||
|
}
|
|||
|
|
|||
|
return history;
|
|||
|
|
|||
|
}
|
|||
|
}
|