服务 / RouteService
RouteService Class
游戏管理器
Table of contents
Accessors
onReceiveTeamData(): MulticastDelegate <(teamId : string , data : Record <string , unknown >) => void > |
---|
收到队伍数据时会触发的委托 |
onTeamMatchFailure(): MulticastDelegate <(failureInfo : TeamMatchFailureInfo ) => void > |
组队请求失败时会触发的委托 |
onViewLayoutSwitched(): MulticastDelegate <OnViewLayoutSwitched > client |
获取角色展示/编辑游戏的显示模式切换的委托 |
onViewRefreshed(): MulticastDelegate <OnViewRefreshed > client |
注册View刷新的委托 |
Methods
addJumpGameCallback(callback : (jumpFromGameId : string , carryingData : string ) => void ): void client |
---|
注册游戏跳转的回调,当跨进程从其他游戏跳转到当前游戏时触发。可以被动获取来源游戏Id和携带的数据 |
clearTeamCarryingData(teamId : string ): void server |
删除指定Team在组队跳转时带入游戏的数据 |
enterDressUpGame(carryingData? : string ): void client |
退出当前游戏进程,回到主线程的角色编辑游戏。 |
enterLocalGame(targetGameId : string , gamePath : string , carryingData? : string ): void client |
跳转本地游戏(可编辑的UGC工程) ,同进程跳转 |
enterNewGame(targetGameId : string , carryingData? : string ): void client |
跳转到新游戏,同进程跳转 |
enterNewGameByTeam(targetGameId : string , teammatePlayerIds : string [], carryingData? : Record <string , unknown >[]): Promise <void > server |
组队跳游戏,可以携带数据 |
enterSquareGame(squareMgsGameId? : string , carryingData? : string ): void client |
将当前游戏进程恢复小窗,拉起新进程进入广场游戏。与默认的跳游戏模式不同。 |
getGameCarryingData(): Promise <string > client |
获取拉起游戏时传入的数据 |
getGameId(): string client |
获取游戏Id |
getGameVersion(): string client |
获取游戏版本 |
getJumpFromMGSGameId(): Promise <string > client |
获取游戏来源信息 |
getMGSGameId(): string client |
获取短游戏ID |
getTeamCarryingData(teamId : string ): Record <string , unknown > server |
获取指定Team在组队跳转时带入游戏的数据 |
isInDressUpGame(): boolean client |
判断当前游戏是不是角色展示/编辑游戏 |
notifyCharacterLoaded(): void client |
通知233/Playza角色形象加载完毕 |
notifyGameLoadingState(newState : number ): void client |
通知 233/Playza 当前游戏加载状态(收到这个协议,233 停止下载,清除 Temp 文件) |
requestGameId(targetMgsGameId : string ): Promise <string > |
用内容库 MGSGameId 来换取 gameId |
requestMGSGameId(targetGameId : string ): Promise <string > |
用gameId来换取内容库MGSGameId |
requestRefreshView(): void client |
TS请求233刷新View |
requestSwitchViewLayout(newState : number ): void client |
切换角色展示/编辑游戏的显示模式。 |
Accessors
onReceiveTeamData
• | ||
---|---|---|
收到队伍数据时会触发的委托 Returns
|
onTeamMatchFailure
• | ||
---|---|---|
组队请求失败时会触发的委托 Returns
|
onViewLayoutSwitched
• | ||
---|---|---|
获取角色展示/编辑游戏的显示模式切换的委托 Precautions 只在233内使用时生效 Returns
|
onViewRefreshed
• |
---|
注册View刷新的委托 Precautions 只在233内使用时生效 Returns |
MulticastDelegate <OnViewRefreshed > | View刷新的委托 |
---|
Methods
addJumpGameCallback
• Static
addJumpGameCallback(callback
): void
client
注册游戏跳转的回调,当跨进程从其他游戏跳转到当前游戏时触发。可以被动获取来源游戏Id和携带的数据
Parameters
callback (jumpFromGameId : string , carryingData : string ) => void | 要注册的回调,在接收到跳转信息时触发 |
---|
ts
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
RouteService.addJumpGameCallback((id: string, data: string) => {
player.character.displayName = "JumpGame :" + data + "from " + id;
})
}
}
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
RouteService.addJumpGameCallback((id: string, data: string) => {
player.character.displayName = "JumpGame :" + data + "from " + id;
})
}
}
clearTeamCarryingData
• Static
clearTeamCarryingData(teamId
): void
server
删除指定Team在组队跳转时带入游戏的数据
Parameters
teamId string | 目标 teamId range: 字符串长度依据 teamId 长度而定 |
---|
enterDressUpGame
• Static
enterDressUpGame(carryingData?
): void
client
退出当前游戏进程,回到主线程的角色编辑游戏。
Parameters
carryingData? string | 跳游戏携带的数据 default: undefined range:不做限制 |
---|
Precautions
只在233内使用时生效
ts
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
await TimeUtil.delaySecond(10);
RouteService.enterDressUpGame();
}
}
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
await TimeUtil.delaySecond(10);
RouteService.enterDressUpGame();
}
}
enterLocalGame
• Static
enterLocalGame(targetGameId
, gamePath
, carryingData?
): void
client
跳转本地游戏(可编辑的UGC工程) ,同进程跳转
Parameters
targetGameId string | 目标游戏的GameId,一般来说,这里会是模板游戏的gameId range:依据 targetGameId 长度而定 |
---|---|
gamePath string | 本地游戏工程的路径 range:依据 gamePath 路径长度而定 |
carryingData? string | 跳游戏携带的数据 default: undefined range:不做限制 |
Precautions
需要用创建本地工程时所对应模板游戏的gameId
enterNewGame
• Static
enterNewGame(targetGameId
, carryingData?
): void
client
跳转到新游戏,同进程跳转
Parameters
targetGameId string | 要跳转的目标游戏 ID,GameId range:依据 targetGameId 长度而定 |
---|---|
carryingData? string | 跳游戏携带的数据 default: undefined range:不做限制 |
ts
// 更多游戏跳游戏的实例请前往论坛看帖子 https://forum.ark.online/forum.php?mod=viewthread&tid=1145
// 这个gameid可以在这里获取: 创作者中心→我的游戏→游戏名下方一个p_开头的就是gameid,点旁边的复制就可以复制过来
// 这里的 P_21def1ac9e0a4e73500d90bb2b5d53bfd1d9cf40 是游戏《只因哥大战小黑子》的gameid
// 跳游戏的话,默认会跳往 现行的、目前处在上线状态的、过了审的那个版本
// 没有过审的话,将无法跳进去哦
mw.RouteService.enterNewGame("P_21def1ac9e0a4e73500d90bb2b5d53bfd1d9cf40");
// 更多游戏跳游戏的实例请前往论坛看帖子 https://forum.ark.online/forum.php?mod=viewthread&tid=1145
// 这个gameid可以在这里获取: 创作者中心→我的游戏→游戏名下方一个p_开头的就是gameid,点旁边的复制就可以复制过来
// 这里的 P_21def1ac9e0a4e73500d90bb2b5d53bfd1d9cf40 是游戏《只因哥大战小黑子》的gameid
// 跳游戏的话,默认会跳往 现行的、目前处在上线状态的、过了审的那个版本
// 没有过审的话,将无法跳进去哦
mw.RouteService.enterNewGame("P_21def1ac9e0a4e73500d90bb2b5d53bfd1d9cf40");
enterNewGameByTeam
• Static
enterNewGameByTeam(targetGameId
, teammatePlayerIds
, carryingData?
): Promise
<void
> server
组队跳游戏,可以携带数据
Parameters
targetGameId string | 要跳转的游戏的 GameId range: 依据 targetGameId 长度而定 |
---|---|
teammatePlayerIds string [] | 队友的playerId数组 |
carryingData? Record <string , unknown >[] | 要带入新游戏的数据 default: undefined range:不做限制 |
Returns
Promise <void > | 组队跳转请求回调 |
---|
enterSquareGame
• Static
enterSquareGame(squareMgsGameId?
, carryingData?
): void
client
将当前游戏进程恢复小窗,拉起新进程进入广场游戏。与默认的跳游戏模式不同。
Parameters
squareMgsGameId? string | 新的广场游戏 GameId,如果为空,则使用各环境默认的广场游戏 Id default: null range:字符串长度依据 squareMgsGameId 而定 |
---|---|
carryingData? string | 跳游戏携带的数据 default: undefined range:不做限制 |
Precautions
只在233内使用时生效
ts
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
await TimeUtil.delaySecond(10);
RouteService.enterSquareGame();
}
}
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
await TimeUtil.delaySecond(10);
RouteService.enterSquareGame();
}
}
getGameCarryingData
• Static
getGameCarryingData(): Promise
<string
> client
获取拉起游戏时传入的数据
Returns
Promise <string > | 拉起游戏时传入的数据 |
---|
Precautions
如果是组队跳游戏,请使用getTeamCarryingData在服务端获取数据。
getGameId
• Static
getGameId(): string
client
获取游戏Id
Returns
string | GameId |
---|
Precautions
只在由233拉起生效
ts
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
player.character.displayName = "gameId:" + RouteService.getGameId();
}
}
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
player.character.displayName = "gameId:" + RouteService.getGameId();
}
}
getGameVersion
• Static
getGameVersion(): string
client
获取游戏版本
Returns
string | GameVersion |
---|
Precautions
只在由233拉起生效
ts
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
player.character.displayName = "游戏版本:" + RouteService.getGameVersion();
}
}
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
player.character.displayName = "游戏版本:" + RouteService.getGameVersion();
}
}
getJumpFromMGSGameId
• Static
getJumpFromMGSGameId(): Promise
<string
> client
获取游戏来源信息
Returns
Promise <string > | 当前游戏是从哪个游戏跳转过来的,为空则不是游戏跳转 |
---|
getMGSGameId
• Static
getMGSGameId(): string
client
获取短游戏ID
Returns
string | 短游戏ID |
---|
Precautions
只在由233拉起生效
ts
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
player.character.displayName = "短游戏ID:" + RouteService.getMGSGameId();
}
}
@Component
export default class RouteExample extends mw.Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): `Promise`<`void`\> {
let player = Player.localPlayer;
player.character.displayName = "短游戏ID:" + RouteService.getMGSGameId();
}
}
getTeamCarryingData
• Static
getTeamCarryingData(teamId
): Record
<string
, unknown
> server
获取指定Team在组队跳转时带入游戏的数据
Parameters
teamId string | 要查询的 teamId range: 字符串长度依据 teamId 长度而定 |
---|
Returns
Record <string , unknown > | 指定队伍的数据 |
---|
isInDressUpGame
• Static
isInDressUpGame(): boolean
client
判断当前游戏是不是角色展示/编辑游戏
Returns
boolean | true-当前游戏是角色展示/编辑游戏,false-不是 |
---|
Precautions
在PIE或者服务端调用则固定返回false
notifyCharacterLoaded
• Static
notifyCharacterLoaded(): void
client
通知233/Playza角色形象加载完毕
Precautions
只在233/Playza内使用时生效
notifyGameLoadingState
• Static
notifyGameLoadingState(newState
): void
client
通知 233/Playza 当前游戏加载状态(收到这个协议,233 停止下载,清除 Temp 文件)
Parameters
newState number | 状态 Id。newState = 1 : 游戏加载成功,newState = 2 :游戏加载失败 range:1,2 type: 整数 |
---|
Precautions
只在233/Playza内使用时生效
requestGameId
• Static
requestGameId(targetMgsGameId
): Promise
<string
>
用内容库 MGSGameId 来换取 gameId
Parameters
targetMgsGameId string | 目标游戏的内容库gameId range:依据 targetMgsGameId 长度而定 |
---|
Returns
Promise <string > | 对应的gameId |
---|
requestMGSGameId
• Static
requestMGSGameId(targetGameId
): Promise
<string
>
用gameId来换取内容库MGSGameId
Parameters
targetGameId string | 目标游戏的 gameId range:依据 targetGameId 长度决定 |
---|
Returns
Promise <string > | 对应的MGSGameId |
---|
requestRefreshView
• Static
requestRefreshView(): void
client
TS请求233刷新View
Precautions
只在233内使用时生效
requestSwitchViewLayout
• Static
requestSwitchViewLayout(newState
): void
client
切换角色展示/编辑游戏的显示模式。
Parameters
newState number | 新模式。newState = 1 为“角色展示模式”,newState = 2 为“角色编辑模式” range:1,2 type:整数 |
---|
Precautions
只在 233/Playza 内使用时生效