1
This commit is contained in:
@@ -72,7 +72,11 @@ public class UIHome_BY_BackPackPanel : SubUIBase
|
||||
if (DaLaBaPanel != null)
|
||||
DaLaBaPanel.SetActive(false);
|
||||
if (btn_FaSong != null)
|
||||
{
|
||||
// ⭐ 先清再绑:防止面板重复 Show 叠加监听器(点一次发 N 次 = 多扣 N 个大喇叭)
|
||||
btn_FaSong.onClick.RemoveAllListeners();
|
||||
btn_FaSong.onClick.AddListener(OnClickFaSong);
|
||||
}
|
||||
|
||||
// 数量选择面板(默认隐藏)
|
||||
if (useObj != null) useObj.SetActive(false);
|
||||
@@ -147,23 +151,51 @@ public class UIHome_BY_BackPackPanel : SubUIBase
|
||||
_curUseCountAction = null;
|
||||
}
|
||||
|
||||
/// <summary>大喇叭发送中标志:防止回调返回前连点发送按钮导致多发多扣道具</summary>
|
||||
private bool _isSendingFaSong;
|
||||
|
||||
private void OnClickFaSong()
|
||||
{
|
||||
string msg = "广播:"+ tMPText_DaLaBaLabel?.text?.Trim();
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
// ⭐ 防重入:上次请求回调还没回来时连点直接忽略
|
||||
if (_isSendingFaSong) return;
|
||||
// ⭐ 先取文本判空再拼前缀(原"广播:"+text 判空永远不成立,空内容也会发送扣道具)
|
||||
string content = tMPText_DaLaBaLabel?.text?.Trim();
|
||||
if (string.IsNullOrEmpty(content))
|
||||
{
|
||||
UIManager.Instance.ShowBoardError("请输入广播内容");
|
||||
return;
|
||||
}
|
||||
|
||||
APIRequestList.SendBroadcast(msg, (result) =>
|
||||
_isSendingFaSong = true;
|
||||
// ⭐ 显示格式:"<sprite index=0>【小*鱼】:内容"(前面加喇叭图标 TMP 标签;名字打码与游戏内大喇叭同格式)
|
||||
var userName = GameManager.Instance.user?.BaseInfo?.userName;
|
||||
if (string.IsNullOrEmpty(userName)) userName = "玩家";
|
||||
APIRequestList.SendBroadcast($"<sprite index=0>【{MaskBroadcastName(userName)}】:{content}", (result) =>
|
||||
{
|
||||
//UIManager.Instance.ShowBoardGongGao($"广播: {msg}");
|
||||
_isSendingFaSong = false;
|
||||
tMPText_DaLaBaLabel.text = "";
|
||||
DaLaBaPanel.SetActive(false);
|
||||
// ⭐ 发送成功=服务端已扣大喇叭:拉最新用户数据刷新背包数量
|
||||
APIRequestList.GetUser((user) =>
|
||||
{
|
||||
if (user != null)
|
||||
GameManager.Instance.UpdataUserData(user);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 玩家名打码(广播格式):保留首尾字符、中间一个 *("小金鱼"→"小*鱼")。
|
||||
/// 与 GameMainPanel_FishBase.MaskBroadcastName 同格式(背包面板独立副本)。
|
||||
/// </summary>
|
||||
private static string MaskBroadcastName(string name)
|
||||
{
|
||||
if (string.IsNullOrEmpty(name)) return name;
|
||||
name = name.Trim();
|
||||
if (name.Length <= 1) return name;
|
||||
return name[0] + "*" + name[name.Length - 1];
|
||||
}
|
||||
|
||||
private void OnClickConfirmChangeName()
|
||||
{
|
||||
string newName = tMPText_NewName?.text?.Trim();
|
||||
|
||||
Reference in New Issue
Block a user