diff --git a/JisolGameCocos/assets/script/Main.ts b/JisolGameCocos/assets/script/Main.ts index e8db13fd..e775dfff 100644 --- a/JisolGameCocos/assets/script/Main.ts +++ b/JisolGameCocos/assets/script/Main.ts @@ -1,9 +1,10 @@ import { _decorator, Component, director, instantiate, Node, Prefab } from 'cc'; import { app } from './App'; -import { Env, JNGame } from '../../extensions/ngame/assets/ngame/JNGame'; +import { JNGame } from '../../extensions/ngame/assets/ngame/JNGame'; import { JNSyncAction } from '../../extensions/ngame/assets/ngame/sync/JNSyncAction'; import { GOnHookPets } from '../../extensions/ngame/assets/ngame/message/proto'; -import { EnvCurrent } from './Env'; +import { Env, EnvCurrent } from './Env'; +import { GAction } from './consts/GAction'; const { ccclass, property } = _decorator; window['GUser'] = "100000"; @@ -34,6 +35,11 @@ export class Main extends Component { // 创建世界 director.getScene().addChild(instantiate(this.WorldPrefab)); + if(EnvCurrent == Env.Server){ + //发送就绪 + app.socket.Send(GAction.CR_REFEREE_READY); + } + } } diff --git a/JisolGameCocos/assets/script/consts/GAction.ts b/JisolGameCocos/assets/script/consts/GAction.ts index 1ac77d20..9ed3bcdd 100644 --- a/JisolGameCocos/assets/script/consts/GAction.ts +++ b/JisolGameCocos/assets/script/consts/GAction.ts @@ -19,6 +19,7 @@ export enum GAction { /*************** 裁决 *********************/ + CR_REFEREE_READY = 4000, //裁决就绪 CR_REFEREE_PVP_MODE = 4001, //裁决PVP模式 CR_REFEREE_PVP_END = 4002, //裁决PVP结束 diff --git a/JisolGameCocos/assets/script/ui/Home/MainView.ts b/JisolGameCocos/assets/script/ui/Home/MainView.ts index 1aab2c58..6ff74fbd 100644 --- a/JisolGameCocos/assets/script/ui/Home/MainView.ts +++ b/JisolGameCocos/assets/script/ui/Home/MainView.ts @@ -27,7 +27,7 @@ export class MainView extends JNGLayerBase { //更新UI界面 onUpdateView(){ - this.playerNameLabel.string = PlayerData.getIns().getInfo().playerName; + this.playerNameLabel.string = `${PlayerData.getIns().getInfo().playerId}`; } //打开Demo页面 diff --git a/JisolGameServer/JNGame b/JisolGameServer/JNGame index 9e2487e3..0795f18e 160000 --- a/JisolGameServer/JNGame +++ b/JisolGameServer/JNGame @@ -1 +1 @@ -Subproject commit 9e2487e3e4ab43fe9c1f4e736bc7f75244f2f21b +Subproject commit 0795f18e7e61b8f8f5bcef1b11fe388e290d031a diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEnum.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEnum.java index 625ca28f..0378c5f0 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEnum.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEnum.java @@ -20,6 +20,7 @@ public interface GActionEnum { /*************** 裁决 *********************/ + int CR_REFEREE_READY = 4000; //裁决就绪 int CR_REFEREE_PVP_MODE = 4001; //裁决PVP模式 int CR_REFEREE_PVP_END = 4002; //裁决PVP结束 diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEvent.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEvent.java new file mode 100644 index 00000000..69b7f072 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GActionEvent.java @@ -0,0 +1,8 @@ +package cn.jisol.game.actions; + +public interface GActionEvent { + + //裁决员空闲 + static final String REFEREE_FREE = "GActionEvent_REFEREE_FREE"; + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GRefereeAction.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GRefereeAction.java index 819dfe7d..23cd9c74 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GRefereeAction.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/GRefereeAction.java @@ -6,6 +6,7 @@ import cn.jisol.game.network.client.GRefereeClient; import cn.jisol.game.proto.GPVPMessage; import cn.jisol.ngame.actions.core.NAction; import cn.jisol.ngame.actions.core.NActionMethod; +import cn.jisol.ngame.util.EventDispatcher; import cn.jisol.ngame.util.JLoggerUtil; import org.slf4j.LoggerFactory; @@ -35,8 +36,8 @@ public class GRefereeAction { public static GRefereeClient getFreeReferee(){ for (String key : REFEREES.keySet()) { - if (!(REFEREES.get(key).isReferee)) { - REFEREES.get(key).isReferee = true; + if (REFEREES.get(key).isReady) { + REFEREES.get(key).isReady = false; return REFEREES.get(key); } } @@ -49,8 +50,10 @@ public class GRefereeAction { } //放回一个空闲裁决员 + @NActionMethod(GActionEnum.CR_REFEREE_READY) public static void addFreeReferee(GRefereeClient referee){ - referee.isReferee = false; + referee.isReady = true; + EventDispatcher.getInstance().dispatchEvent(GActionEvent.REFEREE_FREE); } //自动回收裁决 diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/onhook/GPVPAction.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/onhook/GPVPAction.java index 2e730a22..7e185901 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/onhook/GPVPAction.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/actions/onhook/GPVPAction.java @@ -3,6 +3,7 @@ package cn.jisol.game.actions.onhook; import cn.hutool.json.JSON; import cn.hutool.json.JSONUtil; import cn.jisol.game.actions.GActionEnum; +import cn.jisol.game.actions.GActionEvent; import cn.jisol.game.actions.GRefereeAction; import cn.jisol.game.controller.game.GPlayerPetController; import cn.jisol.game.controller.game.GPlayerTacticalController; @@ -13,6 +14,7 @@ import cn.jisol.game.proto.GPVPMessage; import cn.jisol.game.service.PlayerTacticalService; import cn.jisol.ngame.actions.core.NAction; import cn.jisol.ngame.actions.core.NActionMethod; +import cn.jisol.ngame.util.EventDispatcher; import cn.jisol.ngame.util.spring.SpringBeanUtils; import java.util.*; @@ -37,6 +39,10 @@ public class GPVPAction { } },0,1000); + EventDispatcher.getInstance().addListener(GActionEvent.REFEREE_FREE,(EventDispatcher.Event event) -> { + onUpdateMatchGame(); //刷新匹配 + }); + } //加入PVP @@ -175,7 +181,7 @@ public class GPVPAction { System.out.println("获胜的玩家是:"+info.getWinnerId()); //裁决结束 等待下次裁决 - referee.isReferee = false; + GRefereeAction.addFreeReferee(referee); } diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GRefereeClient.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GRefereeClient.java index 6e7fcc5e..ee4255f9 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GRefereeClient.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GRefereeClient.java @@ -7,8 +7,8 @@ import javax.websocket.Session; //裁决员客户端 public class GRefereeClient extends GClient { - //是否正在裁决 - public boolean isReferee = false; + //是否就绪 + public boolean isReady = false; public GRefereeClient(String token, Session session) { super(token, session);