| | |
| | | public static void Init()
|
| | | {
|
| | | // 登记相应的数据体及对应的数据转逻辑类
|
| | | Register(typeof(H0208_tagTalkCountry), typeof(DTC0208_tagTalkCountry));
|
| | | Register(typeof(HB102_tagMCClothesCoatSkinState), typeof(DTCB102_tagMCClothesCoatSkinState));
|
| | | Register(typeof(HA112_tagMCDBPlayer), typeof(DTCA112_tagMCDBPlayer));
|
| | | Register(typeof(HC106_tagMCEnterCrossServerError), typeof(DTCC106_tagMCEnterCrossServerError));
|
| New file |
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | //02 08 国家频道#tagCTalkCountry
|
| | |
|
| | | public class C0208_tagCTalkCountry : GameNetPackBasic {
|
| | | public ushort Len;
|
| | | public string Content; //size = Len
|
| | |
|
| | | public C0208_tagCTalkCountry () {
|
| | | combineCmd = (ushort)0x03FE;
|
| | | _cmd = (ushort)0x0208;
|
| | | }
|
| | |
|
| | | public override void WriteToBytes () {
|
| | | WriteBytes (Len, NetDataType.WORD);
|
| | | WriteBytes (Content, NetDataType.Chars, Len);
|
| | | }
|
| | |
|
| | | }
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 03f61f4e99938614b95491aa293c0004 |
| | | timeCreated: 1547533853 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Tuesday, January 15, 2019
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | |
|
| | | public class DTC0208_tagTalkCountry : DtcBasic {
|
| | |
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | | base.Done(vNetPack);
|
| | | var package = vNetPack as H0208_tagTalkCountry;
|
| | | ChatCtrl.Inst.RevChatInfo(package);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 666535edec1bc7445aa050bbcc71a4d2 |
| | | timeCreated: 1547533935 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | /** 国家频道 */ |
| | | public class H0208_tagTalkCountry : GameNetPackBasic { |
| | | |
| | | public ushort NameLen; |
| | | public string Name; //size = NameLen |
| | | public int PlayerID; |
| | | public ushort Len; |
| | | public string Content; //size = Len |
| | | public int ExtraValue; //附加值 |
| | | |
| | | public H0208_tagTalkCountry () { |
| | | _cmd = (ushort)0x0208; |
| | | } |
| | | |
| | | /** 从字节包中解析信息 */ |
| | | public override void ReadFromBytes (byte[] vBytes) { |
| | | TransBytes (out NameLen, vBytes, NetDataType.BYTE); |
| | | TransBytes (out Name, vBytes, NetDataType.Chars, NameLen); |
| | | TransBytes (out PlayerID, vBytes, NetDataType.DWORD); |
| | | TransBytes (out Len, vBytes, NetDataType.WORD); |
| | | TransBytes (out Content, vBytes, NetDataType.Chars, Len); |
| | | TransBytes (out ExtraValue, vBytes, NetDataType.DWORD); |
| | | } |
| | | } |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | //02 08 国家频道#tagTalkCountry
|
| | |
|
| | | public class H0208_tagTalkCountry : GameNetPackBasic {
|
| | | public byte NameLen;
|
| | | public string Name; //size = NameLen
|
| | | public uint PlayerID;
|
| | | public ushort Len;
|
| | | public string Content; //size = Len
|
| | | public uint ExtraValue; //附加值
|
| | | public string Extras; //附加值列表
|
| | |
|
| | | public H0208_tagTalkCountry () {
|
| | | _cmd = (ushort)0x0208;
|
| | | }
|
| | |
|
| | | public override void ReadFromBytes (byte[] vBytes) {
|
| | | TransBytes (out NameLen, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out Name, vBytes, NetDataType.Chars, NameLen);
|
| | | TransBytes (out PlayerID, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out Len, vBytes, NetDataType.WORD);
|
| | | TransBytes (out Content, vBytes, NetDataType.Chars, Len);
|
| | | TransBytes (out ExtraValue, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out Extras, vBytes, NetDataType.Chars, 256);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | //A7 05 查询玩家详细信息结果#tagSCQueryPlayerCacheResult
|
| | |
|
| | | public class HA705_tagSCQueryPlayerCacheResult : GameNetPackBasic
|
| | | {
|
| | | public uint PlayerID; //玩家ID
|
| | | public uint PropDataSize;
|
| | | public string PropData; //属性记录
|
| | | public uint ItemDataSize;
|
| | | public string ItemData; //物品记录
|
| | | public uint PlusDataSize;
|
| | | public string PlusData; //扩展记录 |
| | | public byte CrossPlayer; //是否跨服玩家
|
| | |
|
| | | public HA705_tagSCQueryPlayerCacheResult()
|
| | | {
|
| | | _cmd = (ushort)0xA705;
|
| | | }
|
| | |
|
| | | public override void ReadFromBytes(byte[] vBytes)
|
| | | {
|
| | | TransBytes(out PlayerID, vBytes, NetDataType.DWORD);
|
| | | TransBytes(out PropDataSize, vBytes, NetDataType.DWORD);
|
| | | TransBytes(out PropData, vBytes, NetDataType.Chars, PropDataSize);
|
| | | TransBytes(out ItemDataSize, vBytes, NetDataType.DWORD);
|
| | | TransBytes(out ItemData, vBytes, NetDataType.Chars, ItemDataSize);
|
| | | TransBytes(out PlusDataSize, vBytes, NetDataType.DWORD);
|
| | | TransBytes(out PlusData, vBytes, NetDataType.Chars, PlusDataSize);
|
| | | TransBytes(out CrossPlayer, vBytes, NetDataType.BYTE);
|
| | | }
|
| | |
|
| | | } |
| | | //A7 05 查询玩家详细信息结果#tagSCQueryPlayerCacheResult
|
| | |
|
| | | public class HA705_tagSCQueryPlayerCacheResult : GameNetPackBasic {
|
| | | public uint PlayerID; //玩家ID
|
| | | public uint PropDataSize;
|
| | | public string PropData; //属性记录
|
| | | public uint ItemDataSize;
|
| | | public string ItemData; //物品记录
|
| | | public uint PlusDataSize;
|
| | | public string PlusData; //扩展记录 |
| | |
|
| | | public HA705_tagSCQueryPlayerCacheResult () {
|
| | | _cmd = (ushort)0xA705;
|
| | | }
|
| | |
|
| | | public override void ReadFromBytes (byte[] vBytes) {
|
| | | TransBytes (out PlayerID, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out PropDataSize, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out PropData, vBytes, NetDataType.Chars, PropDataSize);
|
| | | TransBytes (out ItemDataSize, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out ItemData, vBytes, NetDataType.Chars, ItemDataSize);
|
| | | TransBytes (out PlusDataSize, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out PlusData, vBytes, NetDataType.Chars, PlusDataSize);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | //B3 09 回复玩家简短信息 #tagGCAnswerPlayerShortInfo |
| | | |
| | | public class HB309_tagGCAnswerPlayerShortInfo : GameNetPackBasic |
| | | { |
| | | public uint PlayerID; |
| | | public string PlayerName; |
| | | public byte Job; |
| | | public ushort LV; //等级 |
| | | public ushort RealmLV; //境界 |
| | | public byte OnlineType; //在线状态, 0 不在线 1在线 |
| | | public byte IsInTeam; //是否有队伍 |
| | | |
| | | public HB309_tagGCAnswerPlayerShortInfo() |
| | | { |
| | | _cmd = (ushort)0xB309; |
| | | } |
| | | |
| | | public override void ReadFromBytes(byte[] vBytes) |
| | | { |
| | | TransBytes(out PlayerID, vBytes, NetDataType.DWORD); |
| | | TransBytes(out PlayerName, vBytes, NetDataType.Chars, 33); |
| | | TransBytes(out Job, vBytes, NetDataType.BYTE); |
| | | TransBytes(out LV, vBytes, NetDataType.WORD); |
| | | TransBytes(out RealmLV, vBytes, NetDataType.WORD); |
| | | TransBytes(out OnlineType, vBytes, NetDataType.BYTE); |
| | | TransBytes(out IsInTeam, vBytes, NetDataType.BYTE); |
| | | } |
| | | |
| | | } |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | //B3 09 回复玩家简短信息 #tagGCAnswerPlayerShortInfo
|
| | |
|
| | | public class HB309_tagGCAnswerPlayerShortInfo : GameNetPackBasic {
|
| | | public uint PlayerID;
|
| | | public string PlayerName;
|
| | | public byte Job;
|
| | | public ushort LV; //等级
|
| | | public ushort RealmLV; //境界
|
| | | public byte OnlineType; //在线状态, 0 不在线 1在线
|
| | | public byte IsInTeam; //是否有队伍
|
| | | public uint ServerGroupID; //服务器组ID
|
| | |
|
| | | public HB309_tagGCAnswerPlayerShortInfo () {
|
| | | _cmd = (ushort)0xB309;
|
| | | }
|
| | |
|
| | | public override void ReadFromBytes (byte[] vBytes) {
|
| | | TransBytes (out PlayerID, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out PlayerName, vBytes, NetDataType.Chars, 33);
|
| | | TransBytes (out Job, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out LV, vBytes, NetDataType.WORD);
|
| | | TransBytes (out RealmLV, vBytes, NetDataType.WORD);
|
| | | TransBytes (out OnlineType, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out IsInTeam, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out ServerGroupID, vBytes, NetDataType.DWORD);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | chatChannels = new List<ChatInfoType>();
|
| | | chatChannels.Add(ChatInfoType.System);
|
| | | chatChannels.Add(ChatInfoType.World);
|
| | | chatChannels.Add(ChatInfoType.CrossServer);
|
| | | chatChannels.Add(ChatInfoType.Area);
|
| | | chatChannels.Add(ChatInfoType.Team);
|
| | | chatChannels.Add(ChatInfoType.Invite);
|
| | |
| | | }
|
| | | if (_chat.chatType != ChatInfoType.World && _chat.chatType != ChatInfoType.Area
|
| | | && _chat.chatType != ChatInfoType.Fairy && _chat.chatType != ChatInfoType.Friend
|
| | | && _chat.chatType != ChatInfoType.Team)
|
| | | && _chat.chatType != ChatInfoType.Team && _chat.chatType != ChatInfoType.CrossServer)
|
| | | {
|
| | | m_VoiceChatDict.Remove(_instance);
|
| | | return;
|
| | |
| | | public string voiceID;
|
| | | public string playerID;
|
| | | public string content;
|
| | | }
|
| | |
|
| | | byte GetPakChannelType(ChatInfoType _type)
|
| | | {
|
| | | switch (_type)
|
| | | {
|
| | | case ChatInfoType.World:
|
| | | return 1;
|
| | | case ChatInfoType.Area:
|
| | | return 5;
|
| | | case ChatInfoType.Team:
|
| | | return 4;
|
| | | case ChatInfoType.Fairy:
|
| | | return 2;
|
| | | case ChatInfoType.Friend:
|
| | | return 3;
|
| | | }
|
| | | return 1;
|
| | | }
|
| | |
|
| | | ChatInfoType GetPakChannelType(byte _type)
|
| | | {
|
| | | switch (_type)
|
| | | {
|
| | | case 5:
|
| | | return ChatInfoType.Area;
|
| | | case 1:
|
| | | return ChatInfoType.World;
|
| | | case 2:
|
| | | return ChatInfoType.Fairy;
|
| | | case 3:
|
| | | return ChatInfoType.Friend;
|
| | | case 4:
|
| | | return ChatInfoType.Team;
|
| | | }
|
| | | return ChatInfoType.World;
|
| | | }
|
| | |
|
| | | private void OnNetStatusChanged(NetworkReachability _state)
|
| | |
| | | var vipLevel = PlayerDatas.Instance.baseData.VIPLv;
|
| | | var job = PlayerDatas.Instance.baseData.Job;
|
| | | var bubbleId = PlayerDatas.Instance.baseData.bubbleId;
|
| | | return StringUtility.Contact(vipLevel.ToString().PadLeft(2, '0'), 0, job, bubbleId.ToString().PadLeft(2, '0'));
|
| | | var serverGroupId = PlayerDatas.Instance.baseData.ServerGroupId;
|
| | | return StringUtility.Contact(vipLevel.ToString().PadLeft(2, '0'), 0, job,
|
| | | bubbleId.ToString().PadLeft(2, '0'), serverGroupId.ToString().PadLeft(7, '0'));
|
| | | }
|
| | |
|
| | | public void HandleChatBanned(ChatInfoType channel, string message, int toPlayer)
|
| | |
| | | SrcName = playerName,
|
| | | });
|
| | | break;
|
| | | case ChatInfoType.CrossServer:
|
| | | ChatCtrl.Inst.RevChatInfo(new H0208_tagTalkCountry()
|
| | | {
|
| | | Content = message,
|
| | | Extras = SetChatExtra(),
|
| | | PlayerID = playerId,
|
| | | Name = playerName,
|
| | | });
|
| | | break;
|
| | | case ChatInfoType.Team:
|
| | | ChatCtrl.Inst.RevChatInfo(new H0205_tagTalkDui()
|
| | | {
|
| | |
| | | {
|
| | | case ChatInfoType.World:
|
| | | case ChatInfoType.Area:
|
| | | case ChatInfoType.CrossServer:
|
| | | case ChatInfoType.Team:
|
| | | case ChatInfoType.Trumpet:
|
| | | case ChatInfoType.Fairy:
|
| | |
| | | {
|
| | | chatOpenDics.Add(ChatInfoType.System, true);
|
| | | chatOpenDics.Add(ChatInfoType.World, true);
|
| | | chatOpenDics.Add(ChatInfoType.CrossServer, true);
|
| | | chatOpenDics.Add(ChatInfoType.Area, true);
|
| | | chatOpenDics.Add(ChatInfoType.Team, true);
|
| | | chatOpenDics.Add(ChatInfoType.Invite, true);
|
| | |
| | | break;
|
| | | case ChatInfoType.Area:
|
| | | channelName = Language.Get("ChatType_Area");
|
| | | break;
|
| | | case ChatInfoType.CrossServer:
|
| | | channelName = Language.Get("ChatType_CrossServer");
|
| | | break;
|
| | | case ChatInfoType.Team:
|
| | | channelName = Language.Get("ChatType_Team");
|
| | |
| | | case ChatInfoType.Area:
|
| | | {
|
| | | C0207_tagCTalkArea chatPack = new C0207_tagCTalkArea();
|
| | | chatPack.Len = (ushort)GetUTF8InfoLen(msg);
|
| | | chatPack.Content = msg;
|
| | | if (CrossServerUtility.IsCrossServer())
|
| | | {
|
| | | GameNetSystem.Instance.SendToCrossServer(chatPack);
|
| | | }
|
| | | else
|
| | | {
|
| | | GameNetSystem.Instance.SendInfo(chatPack);
|
| | | }
|
| | | }
|
| | | break;
|
| | | case ChatInfoType.CrossServer:
|
| | | {
|
| | | C0208_tagCTalkCountry chatPack = new C0208_tagCTalkCountry();
|
| | | chatPack.Len = (ushort)GetUTF8InfoLen(msg);
|
| | | chatPack.Content = msg;
|
| | | GameNetSystem.Instance.SendInfo(chatPack);
|
| | |
| | | LocalChatHistory.Save(chatData as ChatUeseData);
|
| | | KeepChatInfo(chatData);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 跨服聊天
|
| | | /// </summary>
|
| | | /// <param name="package"></param>
|
| | | public void RevChatInfo(H0208_tagTalkCountry package)
|
| | | {
|
| | | if (friendModel.GetFirendInfo(package.PlayerID, (byte)GroupType.Balcklist) != null)//黑名单拦截
|
| | | {
|
| | | return;
|
| | | }
|
| | | ChatData chatData = new ChatCrossServerData(package.Content, (int)package.PlayerID, package.Name, package.Extras);
|
| | | LocalChatHistory.Save(chatData as ChatUeseData);
|
| | | KeepChatInfo(chatData);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 喇叭喊话
|
| | | /// </summary>
|
| | |
| | | chatOpenDics[ChatInfoType.System] = ChatSetting.Instance.GetBool(ChatBoolType.ChannelSystem);
|
| | | chatOpenDics[ChatInfoType.Team] = ChatSetting.Instance.GetBool(ChatBoolType.ChannelTeam);
|
| | | chatOpenDics[ChatInfoType.Trumpet] = ChatSetting.Instance.GetBool(ChatBoolType.ChannelBugle);
|
| | | chatOpenDics[ChatInfoType.CrossServer] = true;
|
| | | }
|
| | | #endregion
|
| | |
|
| | |
| | | Trumpet,//喇叭
|
| | | Fairy,//仙盟
|
| | | Friend,//私聊
|
| | | CrossServer,//跨服
|
| | | FairyQuestion,
|
| | | FairyTip,
|
| | | TeamTip,
|
| | |
| | | {
|
| | | bubbleId = int.Parse(extra.Substring(4, extraLength > 5 ? 2 : 1));
|
| | | }
|
| | | if (extraLength > 12)
|
| | | {
|
| | | serverGroupId = int.Parse(extra.Substring(6, 7));
|
| | | }
|
| | | if (extraLength > 16)
|
| | | {
|
| | | level = int.Parse(extra.Substring(13, 4));
|
| | | }
|
| | | if (ChatCenter.s_VoiceRegex.IsMatch(_content))
|
| | | {
|
| | | var _match = ChatCenter.s_VoiceRegex.Match(_content);
|
| | |
| | | public long soundTick { get; private set; }
|
| | | public bool IsSound { get; private set; }
|
| | | public float soundLength { get; private set; }
|
| | | public int serverGroupId { get; private set; }
|
| | | public int level { get; private set; }
|
| | | }
|
| | |
|
| | | public class ChatSystemData : ChatData
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public class ChatCrossServerData : ChatUeseData
|
| | | {
|
| | | public ChatCrossServerData(string content, int player, string name, string extra) : base(content, player, name, extra)
|
| | | {
|
| | | type = ChatInfoType.CrossServer;
|
| | | }
|
| | | }
|
| | |
|
| | | public class ChatTeamData : ChatUeseData
|
| | | {
|
| | | public ChatTeamData(string content, int player, string name, string extra, ChatInfoType detailType = ChatInfoType.Team) : base(content, player, name, extra)
|
| | |
| | | }
|
| | | case ChatInfoType.Area:
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_Area", (data as ChatUeseData).name);
|
| | | case ChatInfoType.CrossServer:
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_CrossServer", (data as ChatUeseData).name);
|
| | | case ChatInfoType.Team:
|
| | | {
|
| | | string playerName = (data as ChatUeseData).name;
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | | HrefAnalysis.Inst.ExcuteHrefEvent(string.Format("showplayer={0}", user.player));
|
| | | if (user.serverGroupId == PlayerDatas.Instance.baseData.ServerGroupId)
|
| | | {
|
| | | PlayerDetails.ShowPlayerDetails(user.player, null);
|
| | | }
|
| | | else
|
| | | {
|
| | | PlayerDetails.ShowCrossServerChatPlayer(user);
|
| | | }
|
| | | }
|
| | |
|
| | | public float GetHeight(string content, ArrayList list)
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | | HrefAnalysis.Inst.ExcuteHrefEvent(string.Format("showplayer={0}", user.player));
|
| | | if (user.serverGroupId == PlayerDatas.Instance.baseData.ServerGroupId)
|
| | | {
|
| | | PlayerDetails.ShowPlayerDetails(user.player, null);
|
| | | }
|
| | | else
|
| | | {
|
| | | PlayerDetails.ShowCrossServerChatPlayer(user);
|
| | | }
|
| | | }
|
| | |
|
| | | public float GetHeight(string content, ArrayList list)
|
| | |
| | | }
|
| | | break;
|
| | | }
|
| | | case ChatInfoType.CrossServer:
|
| | | {
|
| | | chatIcon = "ChatIcon_CrossServer";
|
| | | chatName = chatUserData.name;
|
| | | if (chatUserData.vipLv > 0)
|
| | | {
|
| | | vipLv = "VIP";// StringUtility.Contact("V", chatUserData.vipLv);
|
| | | }
|
| | | break;
|
| | | }
|
| | | case ChatInfoType.Team:
|
| | | {
|
| | | chatIcon = "ChatIcon_Team";
|
| | |
| | | break;
|
| | | case ChatInfoType.World:
|
| | | case ChatInfoType.Area:
|
| | | case ChatInfoType.CrossServer:
|
| | | m_ChatRecently.gameObject.SetActive(false);
|
| | | m_ChatTip.gameObject.SetActive(false);
|
| | | m_ChatSend.gameObject.SetActive(true);
|
| | |
| | | switch (chat.type)
|
| | | {
|
| | | case ChatInfoType.World:
|
| | | case ChatInfoType.CrossServer:
|
| | | case ChatInfoType.Area:
|
| | | case ChatInfoType.Trumpet:
|
| | | case ChatInfoType.Fairy:
|
| | |
| | | {
|
| | | case ChatInfoType.World:
|
| | | case ChatInfoType.Area:
|
| | | case ChatInfoType.CrossServer:
|
| | | case ChatInfoType.Team:
|
| | | case ChatInfoType.Fairy:
|
| | | {
|
| | |
| | | {
|
| | | case ChatInfoType.World:
|
| | | case ChatInfoType.Area:
|
| | | case ChatInfoType.CrossServer:
|
| | | case ChatInfoType.Team:
|
| | | case ChatInfoType.Fairy:
|
| | | {
|
| | |
| | | {
|
| | | chat = new ChatFamilyData(localChat.content, localChat.player, localChat.name, localChat.extra);
|
| | | }
|
| | | else if (type == ChatInfoType.CrossServer)
|
| | | {
|
| | | chat = new ChatCrossServerData(localChat.content, localChat.player, localChat.name, localChat.extra);
|
| | | }
|
| | | chat.createTime = localChat.time;
|
| | | }
|
| | | break;
|
| | |
| | | ViewRoleParticulars(_playerId);
|
| | | }
|
| | |
|
| | | public void ViewCrossServerPlayerEquip(int _playerId)
|
| | | {
|
| | | viewPlayerType = CrossServerUtility.IsCrossServer() ? 5 : 4;
|
| | | ViewRoleParticulars(_playerId);
|
| | | }
|
| | |
|
| | | public void ViewCrossPlayerFightPower(int _playerId)
|
| | | {
|
| | | viewPlayerType = CrossServerUtility.IsCrossServer() ? 6 : 7;
|
| | | ViewRoleParticulars(_playerId);
|
| | | }
|
| | |
|
| | | private void ViewRoleParticulars(int playerID)
|
| | | {
|
| | | if (viewPlayerType != 2)
|
| | |
| | | switch (viewPlayerType)
|
| | | {
|
| | | case 4:
|
| | | CC002_tagCGViewCrossPlayerInfo c002 = new CC002_tagCGViewCrossPlayerInfo();
|
| | | c002.PlayerID = (uint)playerID;
|
| | | GameNetSystem.Instance.SendInfo(c002);
|
| | | case 7:
|
| | | {
|
| | | CC002_tagCGViewCrossPlayerInfo c002 = new CC002_tagCGViewCrossPlayerInfo();
|
| | | c002.PlayerID = (uint)playerID;
|
| | | GameNetSystem.Instance.SendInfo(c002);
|
| | | }
|
| | | break;
|
| | | case 5:
|
| | | case 6:
|
| | | {
|
| | | CA212_tagCMViewPlayerInfo pak = new CA212_tagCMViewPlayerInfo();
|
| | | pak.PlayerID = (uint)playerID;
|
| | | GameNetSystem.Instance.SendToCrossServer(pak);
|
| | | }
|
| | | break;
|
| | | default:
|
| | | CA212_tagCMViewPlayerInfo pak = new CA212_tagCMViewPlayerInfo();
|
| | | pak.PlayerID = (uint)playerID;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | {
|
| | | CA212_tagCMViewPlayerInfo pak = new CA212_tagCMViewPlayerInfo();
|
| | | pak.PlayerID = (uint)playerID;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | viewPlayerDataDic.Add((int)package.PlayerID, viewPlayerData);
|
| | | }
|
| | |
|
| | | viewPlayerData.CrossPlayer = package.CrossPlayer;
|
| | | viewPlayerData.getTime = DateTime.Now;
|
| | | viewPlayerData.roleEquipDataDic.Clear();
|
| | | viewPlayerData.itemDatas = JsonMapper.ToObject<ItemData[]>(package.ItemData);
|
| | |
| | | {
|
| | | case 0:
|
| | | case 4:
|
| | | case 5:
|
| | | if (!WindowCenter.Instance.IsOpen<RoleParticularsWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<RoleParticularsWin>();
|
| | | }
|
| | | break;
|
| | | case 1:
|
| | | case 6:
|
| | | case 7:
|
| | | if (!WindowCenter.Instance.IsOpen<ViewFuncPowerWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<ViewFuncPowerWin>();
|
| | |
| | | public ItemData[] itemDatas;
|
| | | public RolePropData rolePropData;
|
| | | public RolePlusData rolePlusData;
|
| | | public int CrossPlayer=0;
|
| | |
|
| | | public Dictionary<RoleEquipType, ItemData> roleEquipDataDic = new Dictionary<RoleEquipType, ItemData>();
|
| | |
|
| | |
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | | public bool IsCrossServerPlayer()
|
| | | {
|
| | | return rolePropData.ServerGroupID != PlayerDatas.Instance.baseData.ServerGroupId;
|
| | | }
|
| | | }
|
| | |
|
| | | [Serializable]
|
| | |
| | | public int FamilyID;
|
| | | public ulong FightPower;
|
| | | public uint EquipShowSwitch;
|
| | | public int ServerGroupID;
|
| | | }
|
| | |
|
| | | public class RolePlusData
|
| | |
| | | }
|
| | |
|
| | | var viewPlayerData = model.GetViewPlayerData(model.viewPlayer);
|
| | | addFriendBtn.gameObject.SetActive(viewPlayerData.CrossPlayer == 0
|
| | | addFriendBtn.gameObject.SetActive(!viewPlayerData.IsCrossServerPlayer()
|
| | | && friendsModel.GetFirendInfo((uint)model.viewPlayer, (byte)GroupType.Friend) == null);
|
| | |
|
| | | if (viewPlayerData != null)
|
| | |
| | | {
|
| | | return GetBool(ChatBoolType.PrivatChatVoice4G);
|
| | | }
|
| | | case ChatInfoType.CrossServer:
|
| | | return false;
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
| | | |
| | | private float ratio = 1.0f; |
| | | |
| | | public bool IsCrossServerPlayer
|
| | | {
|
| | | get
|
| | | {
|
| | | return PlayerDetails.ServerGroupId != PlayerDatas.Instance.baseData.ServerGroupId;
|
| | | }
|
| | | } |
| | | |
| | | #region Built-in |
| | | protected override void BindController() |
| | | { |
| | |
| | | public void CheckDetailType() |
| | | { |
| | | funcTypes.Clear(); |
| | | funcTypes.Add(PlayerDetails.IsInTeam == 1 ? |
| | | PlayerDetails.DetailType.ApplyTeam : PlayerDetails.DetailType.InviteTeam); |
| | | funcTypes.Add(PlayerDetails.DetailType.ViewEquip); |
| | | funcTypes.Add(PlayerDetails.DetailType.LookFight); |
| | | bool _isFriend = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 2) != null; |
| | | bool _isBlack = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 4) != null; |
| | | funcTypes.Add(_isFriend ? PlayerDetails.DetailType.DeleteFriend : PlayerDetails.DetailType.AddFriend); |
| | | funcTypes.Add(_isBlack ? PlayerDetails.DetailType.RemoveBlack : PlayerDetails.DetailType.AddBlack); |
| | | if (!_isBlack) |
| | | { |
| | | funcTypes.Add(PlayerDetails.DetailType.PrivateChat); |
| | | } |
| | | switch (PlayerDetails.openType) |
| | | { |
| | | case PlayerDetails.OpenType.Default: |
| | | if (PlayerDatas.Instance.fairyData.HasFairy) |
| | | { |
| | | if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall) && |
| | | PlayerDatas.Instance.fairyData.GetMember(PlayerDetails.PlayerID) == null) |
| | | { |
| | | funcTypes.Add(PlayerDetails.DetailType.InviteFairy); |
| | | } |
| | | } |
| | | break; |
| | | case PlayerDetails.OpenType.Fairy: |
| | | PlayerFairyData.FairyMember _mine = PlayerDatas.Instance.fairyData.mine; |
| | | PlayerFairyData.FairyMember _fairyMember = |
| | | PlayerDatas.Instance.fairyData.GetMember(m_FairyModel.presentChangeMember); |
| | | if (_fairyMember != null) |
| | | { |
| | | if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanJobTitle) |
| | | && _mine.FamilyLV > _fairyMember.FamilyLV) |
| | | { |
| | | funcTypes.Add(PlayerDetails.DetailType.FairyLv); |
| | | } |
| | | if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanKick)
|
| | | && _mine.FamilyLV > _fairyMember.FamilyLV)
|
| | | if (!IsCrossServerPlayer)
|
| | | {
|
| | | funcTypes.Add(PlayerDetails.IsInTeam == 1 ? |
| | | PlayerDetails.DetailType.ApplyTeam : PlayerDetails.DetailType.InviteTeam);
|
| | | bool _isFriend = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 2) != null;
|
| | | bool _isBlack = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 4) != null;
|
| | | funcTypes.Add(_isFriend ? PlayerDetails.DetailType.DeleteFriend : PlayerDetails.DetailType.AddFriend);
|
| | | funcTypes.Add(_isBlack ? PlayerDetails.DetailType.RemoveBlack : PlayerDetails.DetailType.AddBlack);
|
| | | if (!_isBlack)
|
| | | {
|
| | | funcTypes.Add(PlayerDetails.DetailType.PrivateChat);
|
| | | }
|
| | | switch (PlayerDetails.openType)
|
| | | {
|
| | | case PlayerDetails.OpenType.Default:
|
| | | if (PlayerDatas.Instance.fairyData.HasFairy)
|
| | | {
|
| | | funcTypes.Add(PlayerDetails.DetailType.KickFairy); |
| | | } |
| | | } |
| | | break; |
| | | case PlayerDetails.OpenType.Friend: |
| | | funcTypes.Remove(PlayerDetails.DetailType.PrivateChat); |
| | | break; |
| | | if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall) &&
|
| | | PlayerDatas.Instance.fairyData.GetMember(PlayerDetails.PlayerID) == null)
|
| | | {
|
| | | funcTypes.Add(PlayerDetails.DetailType.InviteFairy);
|
| | | }
|
| | | }
|
| | | break;
|
| | | case PlayerDetails.OpenType.Fairy:
|
| | | PlayerFairyData.FairyMember _mine = PlayerDatas.Instance.fairyData.mine;
|
| | | PlayerFairyData.FairyMember _fairyMember =
|
| | | PlayerDatas.Instance.fairyData.GetMember(m_FairyModel.presentChangeMember);
|
| | | if (_fairyMember != null)
|
| | | {
|
| | | if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanJobTitle)
|
| | | && _mine.FamilyLV > _fairyMember.FamilyLV)
|
| | | {
|
| | | funcTypes.Add(PlayerDetails.DetailType.FairyLv);
|
| | | }
|
| | | if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanKick)
|
| | | && _mine.FamilyLV > _fairyMember.FamilyLV)
|
| | | {
|
| | | funcTypes.Add(PlayerDetails.DetailType.KickFairy);
|
| | | }
|
| | | }
|
| | | break;
|
| | | case PlayerDetails.OpenType.Friend:
|
| | | funcTypes.Remove(PlayerDetails.DetailType.PrivateChat);
|
| | | break;
|
| | | }
|
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | break; |
| | | case PlayerDetails.DetailType.ViewEquip: |
| | | m_RoleParticularModel.ViewRoleEquip(PlayerDetails.PlayerID); |
| | | if (!IsCrossServerPlayer)
|
| | | {
|
| | | m_RoleParticularModel.ViewRoleEquip(PlayerDetails.PlayerID); |
| | | } |
| | | else
|
| | | {
|
| | | m_RoleParticularModel.ViewCrossServerPlayerEquip(PlayerDetails.PlayerID); |
| | | } |
| | | break; |
| | | case PlayerDetails.DetailType.AddFriend: |
| | | m_FriendModel.OnClickAddFriend((uint)PlayerDetails.PlayerID); |
| | |
| | | m_FriendModel.OnClickRemoveBlack((uint)PlayerDetails.PlayerID); |
| | | break; |
| | | case PlayerDetails.DetailType.LookFight: |
| | | m_RoleParticularModel.ViewRoleFightPower(PlayerDetails.PlayerID); |
| | | if (!IsCrossServerPlayer)
|
| | | {
|
| | | m_RoleParticularModel.ViewRoleFightPower(PlayerDetails.PlayerID); |
| | | } |
| | | else
|
| | | {
|
| | | m_RoleParticularModel.ViewCrossPlayerFightPower(PlayerDetails.PlayerID);
|
| | | } |
| | | break; |
| | | case PlayerDetails.DetailType.InviteFairy: |
| | | m_FairyModel.SendInviteFairy(PlayerDetails.PlayerID, PlayerDetails.PlayerName); |
| | |
| | | RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); |
| | | } |
| | | |
| | | public static void ShowCrossServerChatPlayer(ChatUeseData data)
|
| | | {
|
| | | openType = OpenType.CrossPlayer;
|
| | | PlayerID = (int)data.player; |
| | | LV = data.level; |
| | | Job = data.job; |
| | | RealmLV = 0; |
| | | PlayerName = data.name; |
| | | OnlineType = 0; |
| | | IsInTeam = 0; |
| | | ServerGroupId = data.serverGroupId; |
| | | |
| | | if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>()) |
| | | { |
| | | WindowCenter.Instance.Open<PlayerDetailWin>(); |
| | | } |
| | | } |
| | | |
| | | public static void ShowAreaPlayer(int _playerId)
|
| | | {
|
| | | openType = OpenType.Default; |
| | | onClickFuncEvent = null; |
| | | DTCB309_tagGCAnswerPlayerShortInfo.OnPlayerShortInfoEvent -= OnPlayerShortInfoEvent; |
| | | DTCB309_tagGCAnswerPlayerShortInfo.OnPlayerShortInfoEvent += OnPlayerShortInfoEvent; |
| | | CB306_tagCGViewPlayerShortInfo _pak = new CB306_tagCGViewPlayerShortInfo(); |
| | | _pak.PlayerID = (uint)_playerId; |
| | | if (CrossServerUtility.IsCrossServer())
|
| | | {
|
| | | GameNetSystem.Instance.SendToCrossServer(_pak);
|
| | | } |
| | | else
|
| | | {
|
| | | GameNetSystem.Instance.SendInfo(_pak); |
| | | } |
| | | RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
|
| | | } |
| | | |
| | | private static void OnPlayerShortInfoEvent(HB309_tagGCAnswerPlayerShortInfo _package) |
| | | { |
| | | PlayerID = (int)_package.PlayerID; |
| | |
| | | RealmLV = _package.RealmLV; |
| | | PlayerName = _package.PlayerName; |
| | | IsInTeam = _package.IsInTeam; |
| | | ServerGroupId = (int)_package.ServerGroupID; |
| | | |
| | | if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>()) |
| | | { |
| | |
| | | LookFight = 11,//查看战力 |
| | | InviteFairy = 12,//邀请入盟 |
| | | } |
| | | |
| | | public enum OpenType |
| | | { |
| | | Default, |
| | | Fairy, |
| | | Friend |
| | | Friend, |
| | | CrossPlayer, |
| | | } |
| | | |
| | | public static int PlayerID = 0; |
| | |
| | | public static int RealmLV = 0; //境界 |
| | | public static int OnlineType = 0; //在线状态, 0 不在线 1在线 |
| | | public static int IsInTeam = 0; |
| | | public static int ServerGroupId = 0;//玩家所在服务器id |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | private void ViewPlayer() |
| | | { |
| | | PlayerDetails.ShowPlayerDetails(playerId, null); |
| | | PlayerDetails.ShowAreaPlayer(playerId); |
| | | } |
| | | } |
| | | |
| | |
| | | switch (type)
|
| | | {
|
| | | case ChatInfoType.World:
|
| | | case ChatInfoType.CrossServer:
|
| | | channel = 0;
|
| | | break;
|
| | | case ChatInfoType.Team:
|