Browse Source

断线重连

master
cristianoxin 8 months ago
parent
commit
870b18e57f
  1. 14
      assets/10001/src/game/TeenPattieGameEntity.ts
  2. 52
      assets/10001/src/game/logic/TeenPattieGameBottomLogic.ts
  3. 1
      assets/10001/src/game/system/TeenpattieGameProxySystem.ts
  4. 36
      assets/test/GameDebug.ts
  5. 3
      assets/test/main.scene

14
assets/10001/src/game/TeenPattieGameEntity.ts

@ -1,7 +1,7 @@
import { Component, _decorator } from "cc";
import { TeenPattieGameComponent } from "./component/TeenPattieGameComponent";
import { GameConst, Message, Network, SystemParams, UILayerIndex, UIManager } from "../sdk/API";
import { GameConst, Message, Network, SocketConst, SystemParams, UILayerIndex, UIManager } from "../sdk/API";
import { TeenPattieEventType } from "../tool/TeenPattieEventType";
import { UserData } from "../sdk/GameVO";
import { TeenPattieCommData } from "./TeenPattieCommData";
@ -19,15 +19,19 @@ export class TeenPattieGameEntity extends Component{
Message.add(TeenPattieEventType.GameExit,this.OnGameExit,this)
Message.add(GameConst.PLAYER_LOGIN_OUT,this.OnGameExit,this)
Message.add('Game_Authority_Success', this.init, this)
Message.add(SocketConst.CONNECTED,this.init, this)
this.isJoin = true;
this.init(UserData.gameID,UserData.roomID)
this.init()
}
protected onDestroy(): void {
Message.remove(TeenPattieEventType.GameExit,this.OnGameExit,this)
Message.remove(GameConst.PLAYER_LOGIN_OUT,this.OnGameExit,this)
Message.remove('Game_Authority_Success', this.init, this)
Message.remove(SocketConst.CONNECTED,this.init, this)
}
private OnGameExit(): void {
@ -37,10 +41,10 @@ export class TeenPattieGameEntity extends Component{
Message.send(GameConst.EXIT_SUB_GAME);
}
private init(gameId: number, roomId: string|number) {
private init() {
Network.getInstance().send(GameNetCode.Join_Game, {
gameId: gameId,
roomId: roomId,
gameId: UserData.gameID,
roomId: UserData.roomID,
agentID: parseInt(localStorage.getItem("agentID"))
}, (value: any) => {
if (!this.isJoin) return;

52
assets/10001/src/game/logic/TeenPattieGameBottomLogic.ts

@ -278,7 +278,7 @@ export class TeenPattieGameBottomLogic extends Component {
}
/**玩家自己的是否看牌信息 */
private selfPlayerSeeCard: any;
/**所有玩家的是否看牌信息 */
/**所有玩家的是否看牌信息ID */
private allPlayerSeeCard: any;
/**是否可以比牌 */
private isShowBiPai(): boolean {
@ -449,30 +449,38 @@ export class TeenPattieGameBottomLogic extends Component {
//下注额
const bet: number = TeenPattieCommTool.RideThousand(value.betNum);
if(this.betData > value.betNum) return;
this.betData = value.betNum;
this.allPlayerSeeCard = TeenPattieCommData.getInstance().allKanPlayerCard || [];
if (this.allPlayerSeeCard && this.allPlayerSeeCard.length > 0) {
const self = this.isSelfPlayer(playerSeftSeatId, this.allPlayerSeeCard);
const player = this.isSelfPlayer(value.seatId, this.allPlayerSeeCard);
if (self && player) {
if (player.isSeeCard && self.isSeeCard) {
this.genpaiBtnNum.string = `${bet}`;
this.jiazhuBtnNum.string = `${bet * 2}`;
} else if (!player.isSeeCard && !self.isSeeCard) {
this.genpaiBtnNum.string = `${bet}`;
this.jiazhuBtnNum.string = `${bet * 2}`;
}
}
}else{
this.genpaiBtnNum.string = `${bet}`;
this.jiazhuBtnNum.string = `${bet * 2}`;
if(this.betData > bet) return;
if(value.isAdd){
this.betData = this.betData * 2;
}
if(this.betData == 0){
this.betData = bet;
}
// this.allPlayerSeeCard = TeenPattieCommData.getInstance().allSeePlayerID || [];
// if (this.allPlayerSeeCard && this.allPlayerSeeCard.length > 0) {
// const self = this.allPlayerSeeCard.indexOf(playerSeftSeatId);
// const player = this.allPlayerSeeCard.indexOf(value.seatId);
// // const self = this.isSelfPlayer(playerSeftSeatId, this.allPlayerSeeCard);
// // const player = this.isSelfPlayer(value.seatId, this.allPlayerSeeCard);
// if (player >= 0 && self >= 0) {
// this.genpaiBtnNum.string = `${bet}`;
// this.jiazhuBtnNum.string = `${bet * 2}`;
// } else if (player < 0 && self < 0) {
// this.genpaiBtnNum.string = `${bet}`;
// this.jiazhuBtnNum.string = `${bet * 2}`;
// }
// }else{
// this.genpaiBtnNum.string = `${bet}`;
// this.jiazhuBtnNum.string = `${bet * 2}`;
// }
this.genpaiBtnNum.string = `${this.betData}`;
this.jiazhuBtnNum.string = `${this.betData * 2}`;
this.betData = bet;
if (value.seatId != playerSeftSeatId) return;
this.genpaiBtnNum.string = `${bet}`;
this.jiazhuBtnNum.string = `${bet * 2}`;
const playerBet = TeenPattieCommTool.RideThousand(value.betTotal);
this.rollNum.setRollNum(this.currLabel, playerBet, () => {
this.currLabel = playerBet;

1
assets/10001/src/game/system/TeenpattieGameProxySystem.ts

@ -88,6 +88,7 @@ export class TeenpattieGameProxySystem extends Component {
//玩家加入游戏
private async onPlayerJoinGame(value: any) {
if(value.code != 0) return;
if(!TeenpattieGameProxySystem.gameSystem){
TeenpattieGameProxySystem.gameSystem = find("content",this.node)?.getComponent(TeenPattieGameSystem);
}

36
assets/test/GameDebug.ts

@ -1,4 +1,5 @@
import { _decorator, AssetManager, assetManager, Component, director, instantiate, JsonAsset, Node, Prefab, Scene, sys } from "cc";
import { _decorator, AssetManager, assetManager, Component, director, instantiate, JsonAsset, Node, Prefab, Scene } from "cc";
import { sys } from "cc";
import { AudioManager, GameUtils, Httpwork, I18Manager, IsNullOrEmpty, LoaderBundle, LoaderManager, Logger, Message, Network, toLocalStorage } from "../10001/src/sdk/API";
import { LoginData, UserData } from "../10001/src/sdk/GameVO";
const { ccclass, property } = _decorator;
@ -8,19 +9,21 @@ export class GameDebug extends Component {
@property
ipAddress: string = "35.154.10.209"
@property
account: string = "911111111113"
account: string = "911331647896"
@property
pwd: string = "123456"
@property
agentID: string = "1"
@property
PKG: string = "Q637767348"
@property
bundleName: string = "10001"
private sdkPath: String = `http://35.154.10.209/rummy/web/dependent/sdk/sdk.json`
private serverInfoURL: string = `http://${this.ipAddress}:8089/server-info`
private _account: string;
private _pwd: string;
private static new_acc:string
private static new_pwd:string
paraseLocationParams() {
if (sys.isBrowser && window.location.search) {
@ -35,6 +38,8 @@ export class GameDebug extends Component {
}
protected onLoad(): void {
GameDebug.new_acc=this.account
GameDebug.new_pwd=this.pwd
localStorage.setItem("gate", `ws://${this.ipAddress}:3553`)
this.paraseLocationParams()
this.LoadSDK()
@ -43,13 +48,7 @@ export class GameDebug extends Component {
}
private initEvent() {
Message.add("connected", this.onConnectServerSucc, this)
Network.getInstance().registhandle(100, this.aaa.bind(this))
}
aaa(data: any) {
UserData.gold = data.asset;
UserData.onChanaged();
}
private init() {
Httpwork.getInstance().post(this.serverInfoURL, { Code: this.PKG }, (value) => {
if (value && value.code == 0) {
@ -60,13 +59,14 @@ export class GameDebug extends Component {
}
private onConnectServerSucc() {
//每次断线后都会重新走这里
// if (localStorage.getItem(`acc`) != '') {
// if (localStorage.getItem(`acc`) != null) {
// this.account = '91' + localStorage.getItem(`acc`)
// }
// if (localStorage.getItem(`pwd`) != '') {
// if (localStorage.getItem(`pwd`) != null) {
// this.pwd = localStorage.getItem(`pwd`)
// }
this.accountLogin(this.account, this.pwd)
let acc:string="91"+GameDebug.new_acc
this.accountLogin(acc, GameDebug.new_pwd)
}
/**
@ -159,7 +159,7 @@ export class GameDebug extends Component {
loginType: 1,
account: account,
password: password,
agentId: this.agentID,//代理ID
agentId: Number(this.agentID),//代理ID
channelId: this.PKG,//渠道包ID
}
Network.getInstance().send(999, param, (data) => {
@ -168,6 +168,8 @@ export class GameDebug extends Component {
// Toast.getInstance().showToast(I18Manager.getInstance().getString(`net.code.status.${data.code}`)+" - > "+data.code);
Logger.warn("账号登录错误 .... ")
} else {
localStorage.setItem("acc",this.account)
localStorage.setItem("pwd",this.pwd)
const arrdata = data.data;
Object.assign(LoginData, arrdata)
this.checkToken(LoginData.token);
@ -207,14 +209,14 @@ export class GameDebug extends Component {
} else {
//可以用API里提供的 Message 做消息的传递,相当于事件
// Message.send(GameConst.GAME_SUB_MESSAGE, route, value) //GameConst 在API里 网络会传递2个参数回来路由和数据
LoaderManager.getInstance().loadBundle("10001", null, null, async (loader: LoaderBundle) => {
LoaderManager.getInstance().loadBundle(this.bundleName, null, null, async (loader: LoaderBundle) => {
if (loader) {
this.isenterGame = true
let langStr:string =`language/${I18Manager.getInstance().getLanguage()}/language`
let langJson:any = await LoaderManager.getInstance().getType("10001",langStr,JsonAsset)
if(langJson && langJson.json)I18Manager.getInstance().setJSON(langJson.json)
AudioManager.getInstance().setBundle(loader)
director.loadScene("10001", (error: null | Error, scene?: Scene) => {
director.loadScene(this.bundleName, (error: null | Error, scene?: Scene) => {
// if(!error)director.runScene(scene)
console.log("==========load scene complete=========")
})

3
assets/test/main.scene

@ -262,10 +262,11 @@
"_enabled": true,
"__prefab": null,
"ipAddress": "192.168.0.5",
"account": "911111111113",
"account": "1111111113",
"pwd": "123456",
"agentID": "1",
"PKG": "Q637767348",
"bundleName": "10001",
"_id": "deqZw+D0FGLbUt7cyW2zhP"
},
{

Loading…
Cancel
Save