97 lines
3.4 KiB
C#
97 lines
3.4 KiB
C#
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using System.Collections;
|
|||
|
using Games.Item;
|
|||
|
using GCGame;
|
|||
|
using GCGame.Table;
|
|||
|
using Games.ChatHistory;
|
|||
|
|
|||
|
public class ChatLinkSelfPos : ChatLinkItem
|
|||
|
{
|
|||
|
private int _SceneID;
|
|||
|
private int _CannelID;
|
|||
|
private Vector3 _SelfPos;
|
|||
|
private ulong _SenderGuid;
|
|||
|
private string _GuildName = "-1";
|
|||
|
private ulong _GuildUID = Games.GlobeDefine.GlobeVar.INVALID_GUID;
|
|||
|
|
|||
|
public void SetLinkSelfPos(int sceneID, int cannelID, Vector3 selfPos)
|
|||
|
{
|
|||
|
_SceneID = sceneID;
|
|||
|
_CannelID = cannelID;
|
|||
|
_SelfPos = selfPos;
|
|||
|
|
|||
|
|
|||
|
//帮派地图的处理
|
|||
|
Tab_GuildOther guildOther = TableManager.GetGuildOtherByID(0, 0);
|
|||
|
if(guildOther!=null && guildOther.SceneId == sceneID)
|
|||
|
{
|
|||
|
if(SceneData.sceneGuildName == "" && GameManager.gameManager.PlayerDataPool.IsHaveGuild())
|
|||
|
{
|
|||
|
_GuildName = GameManager.gameManager.PlayerDataPool.GuildInfo.GuildName;
|
|||
|
_GuildUID = GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid;
|
|||
|
}
|
|||
|
|
|||
|
if (SceneData.sceneGuildName != "")
|
|||
|
{
|
|||
|
_GuildName = SceneData.sceneGuildName;
|
|||
|
_GuildUID = SceneData.sceneGuildGuid;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
StrInput = StrDictionary.GetClientDictionaryString("#{86709}");
|
|||
|
StrSend = StrSendStart + ((int)ChatLinkType.SelfPos).ToString() + StrSplit + sceneID + StrSplit + cannelID
|
|||
|
+ StrSplit + (int)_SelfPos.x + StrSplit + (int)_SelfPos.y + StrSplit + (int)_SelfPos.z +StrSplit + _GuildName +StrSplit +_GuildUID+ StrSendEnd;
|
|||
|
}
|
|||
|
|
|||
|
public override void SetLinkBySendStr(Text text, ChatHistoryItem chatHistory, string linkStr, string[] linkParams)
|
|||
|
{
|
|||
|
StrSend = linkStr;
|
|||
|
StrInput = linkStr;
|
|||
|
|
|||
|
if (linkParams.Length != 8)
|
|||
|
return;
|
|||
|
|
|||
|
_SceneID = int.Parse(linkParams[1]);
|
|||
|
_CannelID = int.Parse(linkParams[2]);
|
|||
|
_SelfPos = new Vector3(int.Parse(linkParams[3]), int.Parse(linkParams[4]), int.Parse(linkParams[5]));
|
|||
|
_GuildName = linkParams[6];
|
|||
|
_GuildUID = ulong.Parse(linkParams[7]);
|
|||
|
_SenderGuid = chatHistory.SenderGuid;
|
|||
|
|
|||
|
var sceneClass = TableManager.GetSceneClassByID(_SceneID, 0);
|
|||
|
if (sceneClass != null)
|
|||
|
{
|
|||
|
if (_GuildName != "-1")
|
|||
|
{
|
|||
|
StrShow = string.Format("[{0},<color=#798185>{1},{2}</color>,<color=#80F08E>{3}</color>]", sceneClass.Name, _SelfPos.x, _SelfPos.z, _GuildName);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
StrShow = StrDictionary.GetClientDictionaryString("#{4900}", sceneClass.Name, _SelfPos.x, _SelfPos.z, _CannelID);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
StrShow = StrDictionary.GetClientDictionaryString("#{86709}");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void LinkClick(int linkindex)
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
var sceneClass = TableManager.GetSceneClassByID(_SceneID, 0);
|
|||
|
if (_GuildName == "-1" && (sceneClass.Type == 2 || sceneClass.Type == 3))
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{4908}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
AutoSearchPoint point = new AutoSearchPoint(_SceneID, _SelfPos.x, _SelfPos.z, _CannelID-1,AutoSearchPoint.ChangeMap_Type.WORLDMAP,_GuildUID);
|
|||
|
if (GameManager.gameManager && GameManager.gameManager.AutoSearch)
|
|||
|
{
|
|||
|
GameManager.gameManager.AutoSearch.BuildPath(point);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|