|
@@ -68,6 +68,121 @@ var OptionInfo = { option: 0, odds: 1, totalBet: 0 }
|
|
|
|
|
|
var betInfoMap = new Map();
|
|
|
|
|
|
+var totalProfit = 0;
|
|
|
+
|
|
|
+function dealMsg(msgType,data) {
|
|
|
+ switch(msgType){
|
|
|
+ case "GameDataSynNotify"://进房间后同步已下注信息
|
|
|
+ betInfoMap.clear();
|
|
|
+ // console.log("====>>>>啦啦啦啦",data.optionInfo);
|
|
|
+ data.optionInfo.forEach((info) => {
|
|
|
+ if (betInfoMap.has(info.option)) {
|
|
|
+ // console.log("====>>>>有这个option",info.option);
|
|
|
+ // 如果 option 已存在,累加 totalBet
|
|
|
+ let existingInfo = betInfoMap.get(info.option);
|
|
|
+ existingInfo.totalBet += info.totalBet;
|
|
|
+ existingInfo.option = info.option;
|
|
|
+ existingInfo.odds = info.odds;
|
|
|
+
|
|
|
+ betInfoMap.set(info.option, existingInfo);
|
|
|
+ } else {
|
|
|
+ // console.log("====>>>>没有这个option",info.option);
|
|
|
+ // 如果 option 不存在,直接添加
|
|
|
+ betInfoMap.set(info.option, {
|
|
|
+ odds: info.odds,
|
|
|
+ totalBet: info.totalBet,
|
|
|
+ option: info.option
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ console.log("====>>>>同步后自己的数据",[...betInfoMap]);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "BetNotify"://局中下注信息
|
|
|
+ var detail = data.detail;
|
|
|
+ var option = detail.option;
|
|
|
+ var betAmount = detail.betAmount;
|
|
|
+ if (betInfoMap.has(option)) {
|
|
|
+ // 如果 option 已存在,累加 betAmount 到 totalBet
|
|
|
+ let existingInfo = betInfoMap.get(option);
|
|
|
+ existingInfo.totalBet += betAmount; // 累加投注金额
|
|
|
+ existingInfo.option = info.option;
|
|
|
+ existingInfo.odds = info.odds;
|
|
|
+ betInfoMap.set(option, existingInfo);
|
|
|
+ } else {
|
|
|
+ // 如果 option 不存在,创建新记录
|
|
|
+ betInfoMap.set(option, {
|
|
|
+ odds: detail.odds, // 初始赔率
|
|
|
+ totalBet: betAmount, // 初始投注金额
|
|
|
+ limitRed: 0 // 示例中未提及,这里假设为 0
|
|
|
+ });
|
|
|
+ };
|
|
|
+ // console.log("====>>>>同步 下注后的数据",[...betInfoMap]);
|
|
|
+
|
|
|
+ break;
|
|
|
+ case "StopBetNotify"://开牌信息,后面打印用
|
|
|
+ break;
|
|
|
+ case "StartSettlementNotify"://估计只是执行开奖动画?
|
|
|
+ break;
|
|
|
+ case "GameRoundEndNotify"://本轮游戏结束,结算玩家和盈利信息
|
|
|
+ // 初始化总赢取金额为 0
|
|
|
+ let totalPayAmount = 0;
|
|
|
+
|
|
|
+ // 遍历每个玩家的结算信息
|
|
|
+ data.playerSettle.forEach(player => {
|
|
|
+ // 遍历每个玩家的 settle 数组
|
|
|
+ player.settle.forEach(settleItem => {
|
|
|
+ // 累加 winAmount 到总赢取金额
|
|
|
+ totalPayAmount += settleItem.winAmount;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ // 遍历 otherPlayers 中的 settle 数组(如果存在)
|
|
|
+ if (data.otherPlayers && data.otherPlayers.settle) {
|
|
|
+ data.otherPlayers.settle.forEach(settleItem => {
|
|
|
+ // 累加 winAmount 到总赢取金额
|
|
|
+ totalPayAmount += settleItem.winAmount;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 初始化一个变量来存储 totalBet 的累计值
|
|
|
+ let totalBetSum = 0;
|
|
|
+
|
|
|
+ // 使用 forEach 遍历 map 中的每一个元素
|
|
|
+ betInfoMap.forEach((value, key) => {
|
|
|
+ // 累加每一个 totalBet 值
|
|
|
+ totalBetSum += value.totalBet;
|
|
|
+ });
|
|
|
+ var curentRoundProfit = totalBetSum-totalPayAmount;
|
|
|
+ totalProfit += curentRoundProfit;
|
|
|
+ // 打印总赢取金额
|
|
|
+ console.log(`====>>>>同步后:总盈亏:${totalProfit/100}¥,\t本局总收入是:${totalBetSum/100}¥,\t庄家总付出金额: ${totalPayAmount/100}¥,\t本局利润是:${(curentRoundProfit)/100}¥`);
|
|
|
+ betInfoMap.clear();
|
|
|
+ break;
|
|
|
+ case "ReadyGameNotify"://新一轮开始,时间还有剩余秒速 {"nextRoundEndStamp":1711691423,"leftSeconds":3}
|
|
|
+ break;
|
|
|
+ case "DealNotify"://更新座位上的玩家信息、前几轮大师和鲨鱼的胜负结果、鲨鱼和大师的手牌信息
|
|
|
+ break;
|
|
|
+ case "ShowOddsNotify"://更新本轮赔率、几秒后开始
|
|
|
+ break;
|
|
|
+ case "StartBetNotify"://可以开始下注通知、可下注时长 JS: {"nextRoundEndStamp":1711691443,"leftSeconds":15}
|
|
|
+ break;
|
|
|
+ case "MergeAutoBetNotify"://同步自动下注的玩家信息?还是后台电脑人?
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ //
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//下注对象
|
|
|
+var OptionInfo = { option: 0, odds: 1, totalBet: 0 }
|
|
|
+
|
|
|
+var betInfoMap = new Map();
|
|
|
+
|
|
|
+var totalProfit = 0;
|
|
|
+
|
|
|
function dealMsg(msgType,data) {
|
|
|
switch(msgType){
|
|
|
case "GameDataSynNotify"://进房间后同步已下注信息
|
|
@@ -151,8 +266,10 @@ function dealMsg(msgType,data) {
|
|
|
// 累加每一个 totalBet 值
|
|
|
totalBetSum += value.totalBet;
|
|
|
});
|
|
|
+ var curentRoundProfit = totalBetSum-totalPayAmount;
|
|
|
+ totalProfit += curentRoundProfit;
|
|
|
// 打印总赢取金额
|
|
|
- console.log(`====>>>>同步后:本局总收入是:${totalBetSum/100}¥ ,庄家总付出金额: ${totalPayAmount/100}¥,利润是:${(totalBetSum-totalPayAmount)/100}¥`);
|
|
|
+ console.log(`====>>>>同步后:总盈亏:${totalProfit/100}¥,\t本局总收入是:${totalBetSum/100}¥,\t庄家总付出金额: ${totalPayAmount/100}¥,\t本局利润是:${(curentRoundProfit)/100}¥`);
|
|
|
betInfoMap.clear();
|
|
|
break;
|
|
|
case "ReadyGameNotify"://新一轮开始,时间还有剩余秒速 {"nextRoundEndStamp":1711691423,"leftSeconds":3}
|