diff --git a/libs/game_common/src/main/java/com/game/data/Player.java b/libs/game_common/src/main/java/com/game/data/Player.java index 9a21ef2..e3379b0 100644 --- a/libs/game_common/src/main/java/com/game/data/Player.java +++ b/libs/game_common/src/main/java/com/game/data/Player.java @@ -163,6 +163,9 @@ public class Player { */ public int xi_pai_total = 0; + //赢了的玩家 + public int winer_playerid = 0; + public Player(int playerid, Room table, String session_id) { this.room = table; this.playerid = playerid; diff --git a/libs/game_common/src/main/java/com/game/data/Room.java b/libs/game_common/src/main/java/com/game/data/Room.java index b479e1f..db9f37b 100644 --- a/libs/game_common/src/main/java/com/game/data/Room.java +++ b/libs/game_common/src/main/java/com/game/data/Room.java @@ -624,6 +624,7 @@ public class Room implements Runnable { this.saveMilitaryTotal(true); } else { roomResult(); +// this.saveMilitaryTotal(true); } Global.logger.info("total: "+total); for (Entry entry : this.playerMapById.entrySet()) { @@ -1056,17 +1057,17 @@ public class Room implements Runnable { pdata.putInt("accId", player.playerid); plist.addTObject(pdata); } - + // 人头制-是否需要奖励 // 以大赢家为标准 -2019.12.23 if (this.hpData != null ) { - + int type = this.hpData.containsKey("type") ? this.hpData.getInt("type") : 2; if (type == 1) { - + int lowerThanValue = 0; if(hpData.containsKey("UpperLimitReward") && hpData.getInt("UpperLimitReward") > 0) { - + if (hpData.containsKey("UpperLimit")) { lowerThanValue = hpData.getInt("UpperLimit"); roomMoney = hpData.getInt("UpperLimitReward"); @@ -1076,14 +1077,14 @@ public class Room implements Runnable { // 新浮动抽水数据 ITArray rewards_list = this.hpData.getTArray("rewards_list"); if (rewards_list.size() > 0) { - + lowerThanValue = rewards_list.getTObject(0).getInt("UpperLimit"); if(rewards_list.getTObject(0).containsKey("UpperLimitReward")) { roomMoney = rewards_list.getTObject(0).getInt("UpperLimitReward"); - } + } } } - + if(scoreDesc().size()>0 && scoreDesc().get(0).hpPumpValue() < lowerThanValue && roomMoney > 0 ) { aHeadReward = false; }else { @@ -1117,7 +1118,7 @@ public class Room implements Runnable { if (this.agent && this.groupId > 0) { Global.eventCtr.redisGroupRound(this, groupId, groupPid, hpPump ? 1 : 0); - + for (Entry entry : this.playerMapBySeat.entrySet()) { Player player = entry.getValue(); if (player.already_round == 0) diff --git a/libs/game_common/src/main/java/com/game/room/state/RoomEndState.java b/libs/game_common/src/main/java/com/game/room/state/RoomEndState.java index e9176f4..600f85c 100644 --- a/libs/game_common/src/main/java/com/game/room/state/RoomEndState.java +++ b/libs/game_common/src/main/java/com/game/room/state/RoomEndState.java @@ -13,14 +13,24 @@ import com.game.state.StateBase; public class RoomEndState extends StateBase{ + /** + * 当玩家进入房间时调用此方法,以处理进入房间后的相关操作 + * + * @param owner 房间的拥有者对象,用于访问和操作房间的相关数据 + */ @Override public void enter(Room owner) { - owner.saveSocre(); - - for (Entry entry : owner.playerMapBySeat.entrySet()) { - Player player = entry.getValue(); - player.stateMachine.changeState( Global.getState(PlayerEndState.class)); - } + // 保存房间拥有者的分数,以便在进入房间后更新分数信息 + owner.saveSocre(); + // 遍历房间中所有座位上的玩家,为每个玩家更新状态 + for (Entry entry : owner.playerMapBySeat.entrySet()) { + // 获取当前遍历到的玩家对象 + Player player = entry.getValue(); + // 为玩家切换到结束状态,表示玩家已准备好开始游戏或观战 + player.stateMachine.changeState( Global.getState(PlayerEndState.class)); + } + + } public void execute(Room owner, String cmd, int gid, Object param) { diff --git a/libs/game_common/target/classes/com/game/data/Player$1.class b/libs/game_common/target/classes/com/game/data/Player$1.class index 6c8bfb5..5abfd75 100644 Binary files a/libs/game_common/target/classes/com/game/data/Player$1.class and b/libs/game_common/target/classes/com/game/data/Player$1.class differ diff --git a/libs/game_common/target/classes/com/game/data/Player$2.class b/libs/game_common/target/classes/com/game/data/Player$2.class index cd42b8f..8fcf115 100644 Binary files a/libs/game_common/target/classes/com/game/data/Player$2.class and b/libs/game_common/target/classes/com/game/data/Player$2.class differ diff --git a/libs/game_common/target/classes/com/game/data/Player.class b/libs/game_common/target/classes/com/game/data/Player.class index 9c50001..474924e 100644 Binary files a/libs/game_common/target/classes/com/game/data/Player.class and b/libs/game_common/target/classes/com/game/data/Player.class differ diff --git a/libs/game_common/target/classes/com/game/data/Room.class b/libs/game_common/target/classes/com/game/data/Room.class index 056c76e..0e66fd0 100644 Binary files a/libs/game_common/target/classes/com/game/data/Room.class and b/libs/game_common/target/classes/com/game/data/Room.class differ diff --git a/libs/game_common/target/classes/com/game/room/state/RoomEndState.class b/libs/game_common/target/classes/com/game/room/state/RoomEndState.class index 3eb7673..56276ab 100644 Binary files a/libs/game_common/target/classes/com/game/room/state/RoomEndState.class and b/libs/game_common/target/classes/com/game/room/state/RoomEndState.class differ diff --git a/puke/suoha/game_pk_suoha/src/main/java/extend/pk/EXPlayBack.java b/puke/suoha/game_pk_suoha/src/main/java/extend/pk/EXPlayBack.java index a097f99..df7c38b 100644 --- a/puke/suoha/game_pk_suoha/src/main/java/extend/pk/EXPlayBack.java +++ b/puke/suoha/game_pk_suoha/src/main/java/extend/pk/EXPlayBack.java @@ -39,7 +39,15 @@ public class EXPlayBack extends BasePlayBack{ addCommand("newindex", 0, cmdData); } + /** + * 添加结果命令 + * 该方法用于向特定座位的玩家添加一个结果命令,结果命令包含了一些数据,用于表示游戏结果或其他重要信息 + * + * @param seat 座位号,表示命令是为哪个座位的玩家添加的,必须是有效的座位号 + * @param cmdData 命令数据,是一个ITObject对象,包含要添加的命令的具体数据,不能为空 + */ public void addResultCommand(int seat,ITObject cmdData) { + // 调用addCommand方法,将命令类型设置为"result",将特定座位号和命令数据作为参数传递 addCommand("result", seat, cmdData); } } diff --git a/puke/suoha/game_pk_suoha/src/main/java/extend/pk/player/state/EXPlayerBetState.java b/puke/suoha/game_pk_suoha/src/main/java/extend/pk/player/state/EXPlayerBetState.java index 902c90f..55ff1db 100644 --- a/puke/suoha/game_pk_suoha/src/main/java/extend/pk/player/state/EXPlayerBetState.java +++ b/puke/suoha/game_pk_suoha/src/main/java/extend/pk/player/state/EXPlayerBetState.java @@ -135,6 +135,9 @@ public class EXPlayerBetState extends StateBase { } + System.out.println("当前用户 :"+owner.playerid); + System.out.println("当前用户的总下注分数:"+owner.totalLostScore); + owner.totalLostScore += owner.betScore; // 扣除下注分数 owner.lostScore =owner.betScore; @@ -150,8 +153,8 @@ public class EXPlayerBetState extends StateBase { for (Entry entry : room.playerMapBySeat.entrySet()) { EXPlayer player = (EXPlayer) entry.getValue(); + System.out.println("基础分数:"+player.baseScore); param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore); - } room.broadCastToClient(0, Config.GAME_EVT_RESULT, param); diff --git a/puke/suoha/game_pk_suoha/target/classes/extend/pk/EXPlayBack.class b/puke/suoha/game_pk_suoha/target/classes/extend/pk/EXPlayBack.class index 40dffa3..ef1de01 100644 Binary files a/puke/suoha/game_pk_suoha/target/classes/extend/pk/EXPlayBack.class and b/puke/suoha/game_pk_suoha/target/classes/extend/pk/EXPlayBack.class differ diff --git a/puke/suoha/game_pk_suoha/target/classes/extend/pk/player/state/EXPlayerBetState.class b/puke/suoha/game_pk_suoha/target/classes/extend/pk/player/state/EXPlayerBetState.class index 04193c1..09ad184 100644 Binary files a/puke/suoha/game_pk_suoha/target/classes/extend/pk/player/state/EXPlayerBetState.class and b/puke/suoha/game_pk_suoha/target/classes/extend/pk/player/state/EXPlayerBetState.class differ