1
This commit is contained in:
@@ -1650,7 +1650,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
}
|
||||
|
||||
bossCtrl.v3 = sitData.transform.position;
|
||||
bossCtrl.JiaFen = onScoreAdd; // 先设置 JiaFen,DieFish 的 lambda 才能捕获到
|
||||
bossCtrl.JiaFen = WrapJiaFenWithBaoJiangEnd(onScoreAdd, killFish, sitData, isSelfKill_Boss);
|
||||
bossCtrl.isLocalCoin = sitData.user == GameManager.Instance.user.id; // ⭐ 金/银区分
|
||||
bossCtrl.killerSitPos = sitData.posID; // ⭐ 爆奖杀小鱼用击杀者座位(含人机)
|
||||
monster.DieFish(killFish); // Boss 重写 action_effect_DieAward,捕获上面的 JiaFen
|
||||
@@ -1671,14 +1671,6 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
}
|
||||
bossCtrl.action_effect_DieAward?.Invoke(bossCtrl.currEffect_DieAward);
|
||||
|
||||
// ⭐ self 流程:设置 bjFishId,供 OnScoreEnd 发送 baoJiangEnd 帧同步给其他客户端
|
||||
if (GameManager.Instance.useNotSelfBaoJiangMode
|
||||
&& isSelfKill_Boss
|
||||
&& bossCtrl.currEffect_DieAward != null)
|
||||
{
|
||||
var bjEvt = bossCtrl.currEffect_DieAward.GetComponent<BJEventBase>();
|
||||
if (bjEvt != null) bjEvt.bjFishId = killFish.fishId;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -1852,7 +1844,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
}
|
||||
|
||||
bossCtrl.v3 = sitData.transform.position;
|
||||
bossCtrl.JiaFen = onScoreAdd; // 先设置 JiaFen
|
||||
bossCtrl.JiaFen = WrapJiaFenWithBaoJiangEnd(onScoreAdd, killFish, sitData, isSelfKill_TBoss);
|
||||
bossCtrl.isLocalCoin = sitData.user == GameManager.Instance.user.id; // ⭐ 金/银区分
|
||||
bossCtrl.killerSitPos = sitData.posID; // ⭐ 爆奖杀小鱼用击杀者座位(含人机)
|
||||
monster.DieFish(killFish); // Boss 重写 action_effect_DieAward
|
||||
@@ -1873,14 +1865,6 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
}
|
||||
bossCtrl.action_effect_DieAward?.Invoke(bossCtrl.currEffect_DieAward);
|
||||
|
||||
// ⭐ self 流程:设置 bjFishId,供 OnScoreEnd 发送 baoJiangEnd 帧同步给其他客户端
|
||||
if (GameManager.Instance.useNotSelfBaoJiangMode
|
||||
&& isSelfKill_TBoss
|
||||
&& bossCtrl.currEffect_DieAward != null)
|
||||
{
|
||||
var bjEvt = bossCtrl.currEffect_DieAward.GetComponent<BJEventBase>();
|
||||
if (bjEvt != null) bjEvt.bjFishId = killFish.fishId;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -1911,6 +1895,38 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
|
||||
|
||||
|
||||
// ================================================================
|
||||
// 工具:包装 JiaFen 回调,self 流程加分完成后发送 baoJiangEnd 帧同步
|
||||
// ================================================================
|
||||
|
||||
/// <summary>
|
||||
/// 包装 onScoreAdd:先执行原加分,再在 self+not-self 模式开启时发送 baoJiangEnd 帧同步。
|
||||
/// 这样无论子类走 OnScoreEnd(雷龙)还是直接调 JiaFen(金龙),都能触发帧同步。
|
||||
/// BJEventBase.Init 会把这个包装再包一层 `(p) => action?.Invoke(p)`,调用链不变。
|
||||
/// </summary>
|
||||
private System.Action<int> WrapJiaFenWithBaoJiangEnd(System.Action<int> onScoreAdd, RoomKillNotice killFish, SitPosData sitData, bool isSelfKill)
|
||||
{
|
||||
return (p) =>
|
||||
{
|
||||
// 1. 执行原加分逻辑
|
||||
onScoreAdd?.Invoke(p);
|
||||
|
||||
// 2. self 流程:本地玩家击杀且开启 not-self 模式时,发送 baoJiangEnd 帧同步
|
||||
// (机器人击杀由房主延迟代发,不在这里发)
|
||||
if (isSelfKill
|
||||
&& GameManager.Instance != null
|
||||
&& GameManager.Instance.useNotSelfBaoJiangMode)
|
||||
{
|
||||
BaoJiangNotSelfHandler.SendBaoJiangEnd(
|
||||
killFish.userId,
|
||||
killFish.fishId,
|
||||
killFish.beishu,
|
||||
killFish.gold,
|
||||
sitData.posID);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// 工具:获取当前面板座位列表
|
||||
// ================================================================
|
||||
|
||||
@@ -19,14 +19,13 @@ namespace Assets.MyGame.Scripts.Net
|
||||
#if ENABLE_LOG_FILE
|
||||
public const string baseURL = "http://47.109.132.12";
|
||||
|
||||
#elif UNITY_EDITOR
|
||||
//public const string baseURL = "http://8.137.163.153";
|
||||
public const string baseURL = "http://47.109.132.12";
|
||||
#elif NewIP
|
||||
public const string baseURL = "http://47.109.34.50";
|
||||
|
||||
#else
|
||||
//public const string baseURL = "http://47.109.132.12";
|
||||
public const string baseURL = "http://47.109.132.12";
|
||||
|
||||
public const string baseURL = "http://47.109.34.50";
|
||||
//public const string baseURL = "http://47.109.34.50";
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -38,14 +38,14 @@ namespace Assets.MyGame.Scripts.Net
|
||||
private const string baseUrl = "ws://47.109.132.12";
|
||||
|
||||
//private const string baseUrl = "ws://game5241.wzaxr.top";
|
||||
#elif UNITY_EDITOR
|
||||
//private const string baseUrl = "ws://8.137.163.153";
|
||||
private const string baseUrl = "ws://47.109.132.12";
|
||||
#elif NewIP
|
||||
private const string baseUrl = "ws://47.109.34.50";
|
||||
//private const string baseUrl = "ws://47.109.132.12";
|
||||
|
||||
#else
|
||||
//private const string baseUrl = "ws://47.109.132.12";
|
||||
private const string baseUrl = "ws://47.109.132.12";
|
||||
|
||||
private const string baseUrl = "ws://47.109.34.50";
|
||||
//private const string baseUrl = "ws://47.109.34.50";
|
||||
|
||||
#endif
|
||||
public bool isGame = false;
|
||||
|
||||
@@ -36,8 +36,6 @@ public class BJEventBase : MonoBehaviour
|
||||
public int paoBei; // 炮倍
|
||||
public int fishScore; // 底分
|
||||
public int bJbeishu;
|
||||
/// <summary>爆奖关联的鱼ID(self 流程结束时用于发送 baoJiangEnd 帧同步,供其他客户端 Finalize)</summary>
|
||||
public string bjFishId;
|
||||
|
||||
[Header("移动")]
|
||||
public float showDelay = 3f; // 报完奖后停留时间(让玩家看清爆奖效果)
|
||||
@@ -410,18 +408,6 @@ public class BJEventBase : MonoBehaviour
|
||||
// 回加金币到玩家
|
||||
JiaFen?.Invoke();
|
||||
|
||||
// ⭐ self 流程结束:本地玩家击杀且开启 not-self 模式时,
|
||||
// 发送 baoJiangEnd 帧同步给服务端,其他客户端收到后 Finalize not-self BJEndUI。
|
||||
// (机器人击杀时由房主延迟代发,不在这里发)
|
||||
if (isSelf
|
||||
&& GameManager.Instance != null
|
||||
&& GameManager.Instance.useNotSelfBaoJiangMode
|
||||
&& _targetSit != null
|
||||
&& !string.IsNullOrEmpty(bjFishId))
|
||||
{
|
||||
BaoJiangNotSelfHandler.SendBaoJiangEnd(_targetSit.user, bjFishId, bJbeishu, maxScore, posID);
|
||||
}
|
||||
|
||||
// BJEndUI:无论是否开启分数面板都显示
|
||||
if (bjEndUI != null)
|
||||
{
|
||||
|
||||
@@ -54,6 +54,10 @@ public class LeiLongEvent : BJEventBase
|
||||
maxScore = goldCount;
|
||||
this.posID = posID;
|
||||
paoBei = paobei;
|
||||
// ⭐ 补回遗漏的 fishScore/beishu 赋值,
|
||||
// 否则 OnScoreEnd 发送 baoJiangEnd 帧同步时 bJbeishu=0 导致 not-self 倍数显示错误
|
||||
this.fishScore = fishScore;
|
||||
bJbeishu = beishu;
|
||||
action1?.Invoke();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user