| Core/GameEngine/DataToCtl/PackageRegedit.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB206_tagMCHelpBattleCallResult.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HB3_PlayerSocial/DTCB311_tagGCTalkCache.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HB3_PlayerSocial/DTCB311_tagGCTalkCache.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ServerPack/PlayerSocial/HB311_tagGCTalkCache.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ServerPack/PlayerSocial/HB311_tagGCTalkCache.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Chat/ChatCtrl.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Chat/LocalChatHistory.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Common/UI3DModelExhibition.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,6 +25,7 @@ public static void Init() { // 登记相应的数据体及对应的数据转逻辑类 Register(typeof(HB311_tagGCTalkCache), typeof(DTCB311_tagGCTalkCache)); Register(typeof(HAC01_tagGCFamilyWarInfo), typeof(DTCAC01_tagGCFamilyWarInfo)); Register(typeof(HA40D_tagGCServerCreatFamilyTimes), typeof(DTCA40D_tagGCServerCreatFamilyTimes)); Register(typeof(HAC07_tagGCHorsePetBossInfo), typeof(DTCAC07_tagGCHorsePetBossInfo)); Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB206_tagMCHelpBattleCallResult.cs
@@ -41,6 +41,11 @@ _zzPlayer.SyncHelpBattle((int)vNetData.PlayerID); } } if (DTC0403_tagPlayerLoginLoadOK.finishedLogin && vNetData.PlayerID > 100) { ChatCtrl.Inst.SendThank2AssistPlayer((int)vNetData.PlayerID); } } } Core/NetworkPackage/DTCFile/ServerPack/HB3_PlayerSocial/DTCB311_tagGCTalkCache.cs
New file @@ -0,0 +1,23 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, July 16, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; public class DTCB311_tagGCTalkCache : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var package = vNetPack as HB311_tagGCTalkCache; ChatCtrl.Inst.RevChatInfo(package); } } Core/NetworkPackage/DTCFile/ServerPack/HB3_PlayerSocial/DTCB311_tagGCTalkCache.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 9836b24a3ccd40e46b9ce6d1b2a221ec timeCreated: 1563267425 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/PlayerSocial/HB311_tagGCTalkCache.cs
New file @@ -0,0 +1,41 @@ using UnityEngine; using System.Collections; // B3 11 聊天缓存通知 #tagGCTalkCache public class HB311_tagGCTalkCache : GameNetPackBasic { public ushort Count; public tagGCTalkCacheInfo[] InfoList; //size = Count public HB311_tagGCTalkCache () { _cmd = (ushort)0xB311; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out Count, vBytes, NetDataType.WORD); InfoList = new tagGCTalkCacheInfo[Count]; for (int i = 0; i < Count; i ++) { InfoList[i] = new tagGCTalkCacheInfo(); TransBytes (out InfoList[i].ChannelType, vBytes, NetDataType.BYTE); TransBytes (out InfoList[i].NameLen, vBytes, NetDataType.BYTE); TransBytes (out InfoList[i].Name, vBytes, NetDataType.Chars, InfoList[i].NameLen); TransBytes (out InfoList[i].PlayerID, vBytes, NetDataType.DWORD); TransBytes (out InfoList[i].Time, vBytes, NetDataType.DWORD); TransBytes (out InfoList[i].Len, vBytes, NetDataType.WORD); TransBytes (out InfoList[i].Content, vBytes, NetDataType.Chars, InfoList[i].Len); TransBytes (out InfoList[i].Extras, vBytes, NetDataType.Chars, 256); } } public struct tagGCTalkCacheInfo { public byte ChannelType; // 1 世界 2 仙盟 public byte NameLen; public string Name; //size = SrcNameLen public uint PlayerID; public uint Time; public ushort Len; public string Content; //size = Len public string Extras; //附加值列表 } } Core/NetworkPackage/ServerPack/PlayerSocial/HB311_tagGCTalkCache.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 96f83e8de58e613499a6713611e5997d timeCreated: 1563267391 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Chat/ChatCtrl.cs
@@ -25,6 +25,7 @@ } #endregion public int CHAT_INFO_CNT = 50; public const int CHAT_TIP_CNT = 4; public const int CHAT_CELL_CNT = 6; public const int CHAT_INFO_LIMIT = 50; @@ -157,6 +158,7 @@ PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } public Dictionary<ChatInfoType, List<string>> achievementRandoms = new Dictionary<ChatInfoType, List<string>>(); List<string> assistThankLanguages = new List<string>(); private ChatCtrl() { @@ -192,6 +194,7 @@ var type = int.Parse(key); m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson()))); } assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4)); } catch (Exception e) { @@ -436,7 +439,7 @@ /// 世界频道 /// </summary> /// <param name="vNetData"></param> public void RevChatInfo(H0201_tagTalkGong vNetData) public void RevChatInfo(H0201_tagTalkGong vNetData, uint time = 0) { if (friendModel.GetFirendInfo(vNetData.PlayerID, (byte)GroupType.Balcklist) != null)//黑名单拦截 { @@ -464,6 +467,10 @@ content = StringUtility.Contact(content, Language.Get("InviteTeam", vNetData.PlayerID)); } chatData = new ChatWorldData(content, (int)vNetData.PlayerID, vNetData.Name, vNetData.Extras); if (time != 0) { chatData.createTime = TimeUtility.GetTime(time); } LocalChatHistory.Save(chatData as ChatUeseData); KeepChatInfo(chatData); } @@ -516,7 +523,7 @@ /// 家族频道 /// </summary> /// <param name="vNetData"></param> public void RevChatInfo(H0203_tagTalkBang vNetData) public void RevChatInfo(H0203_tagTalkBang vNetData, uint time = 0) { var content = vNetData.Content; if (IsAssitChat(content, true) == 1 && vNetData.PlayerID != PlayerDatas.Instance.baseData.PlayerID) @@ -524,10 +531,55 @@ content = StringUtility.Contact(content, Language.Get("InviteTeam", vNetData.PlayerID)); } ChatData chatData = new ChatFamilyData(content, (int)vNetData.PlayerID, vNetData.Name, vNetData.Extras); if (time != 0) { chatData.createTime = TimeUtility.GetTime(time); } LocalChatHistory.Save(chatData as ChatUeseData); KeepChatInfo(chatData); ReceiveNewChat(ChatInfoType.Fairy); } /// <summary> /// 后端缓存 /// </summary> /// <param name="vNetData"></param> public void RevChatInfo(HB311_tagGCTalkCache package) { for (int i = 0; i < package.Count; i++) { var data = package.InfoList[i]; if (data.ChannelType == 1) { RevChatInfo(new H0201_tagTalkGong() { socketType = package.socketType, Content = data.Content, Extras = data.Extras, ExtraValue = 0, Name = data.Name, NameLen = data.NameLen, Len = data.Len, PlayerID = data.PlayerID, }, data.Time); } else if (data.ChannelType == 2) { RevChatInfo(new H0203_tagTalkBang() { socketType = package.socketType, Content = data.Content, Extras = data.Extras, ExtraValue = 0, Len = data.Len, Name = data.Name, NameLen = data.NameLen, PlayerID = data.PlayerID, }); } } } /// <summary> /// 好友私聊 /// </summary> @@ -1300,6 +1352,17 @@ return RedPointState.None; } #endregion #region 协助感谢 public void SendThank2AssistPlayer(int playerId) { var languageKeyIndex = UnityEngine.Random.Range(0, assistThankLanguages.Count); if (assistThankLanguages.Count > 0) { SendFriendChat(Language.Get(assistThankLanguages[languageKeyIndex]), playerId); } } #endregion } public struct ChatExtraData { System/Chat/LocalChatHistory.cs
@@ -67,11 +67,11 @@ } switch (chat.type) { case ChatInfoType.World: //case ChatInfoType.World: case ChatInfoType.CrossServer: case ChatInfoType.Area: case ChatInfoType.Trumpet: case ChatInfoType.Fairy: //case ChatInfoType.Fairy: case ChatInfoType.Friend: if (chat.IsSound && string.IsNullOrEmpty(chat.content)) { @@ -119,11 +119,11 @@ { switch (chat.type) { case ChatInfoType.World: //case ChatInfoType.World: case ChatInfoType.Area: case ChatInfoType.CrossServer: case ChatInfoType.Team: case ChatInfoType.Fairy: //case ChatInfoType.Fairy: { LocalChat localChat = new LocalChat(); localChat.type = chat.type; @@ -199,11 +199,11 @@ ChatData chat = null; switch (type) { case ChatInfoType.World: //case ChatInfoType.World: case ChatInfoType.Area: case ChatInfoType.CrossServer: case ChatInfoType.Team: case ChatInfoType.Fairy: //case ChatInfoType.Fairy: { LocalChat localChat = LitJson.JsonMapper.ToObject<LocalChat>(line); var ts = DateTime.Now - localChat.time; @@ -282,8 +282,8 @@ if (chatHistory.ContainsKey(type)) { chatHistory.Remove(type); Save(); } Save(); } public static void Clear() UI/Common/UI3DModelExhibition.cs
@@ -545,7 +545,6 @@ if (horsePetEffect != null) { horsePetEffect.duration = 0f; horsePetEffect.SetParticleEmissionRateOverTime(2f); } } } @@ -601,6 +600,18 @@ } } } } if (horsePetEffect != null) { if (horseModel != null) { horsePetEffect.SetParticleEmissionRateOverTime(0f); } SFXPlayUtility.Instance.Release(horsePetEffect); horsePetEffect = null; } if (npcModel != null) @@ -663,13 +674,6 @@ { SFXPlayUtility.Instance.Release(godWeaponEffect); godWeaponEffect = null; } if (horsePetEffect != null) { horsePetEffect.SetParticleEmissionRateOverTime(0f); SFXPlayUtility.Instance.Release(horsePetEffect); horsePetEffect = null; } UI3DModelShowSpecialNPC.Dispose();