服务 / AccountService
AccountService Class
用户账号信息管理服务
Table of contents
Methods
addFriend(resp: MGSResponse, userId: string, reason: string): void client |
|---|
| 发起添加好友请求 |
applySharedId(character: Character, id: string, callback: BoolResponse): void client |
| 应用分享Id的角色数据 |
checkVIP(userId: string, gameId: string, callback: (result: string) => void): void client |
| 发起checkVIP并获得回调,查询玩家的vip信息 |
createSharedId(character: Character, callback: StringResponse): void client |
| 生成分享Id |
dataShowToOther(index: number, isOpen: boolean, callback?: BoolResponse): void client |
| 设置数据是否公开给其他用户 |
downloadData(character: Character, callback?: VoidResponse BoolResponse, index?: number): void client |
| 下载角色形象并应用到当前角色身上 |
fillAvatar(img: Image): void client |
| 将头像赋值到Image变量上 |
getNickName(): string client |
| 获取玩家昵称 |
getUserData(userId: string, index: number, callback: StringResponse): void client |
| 获取用户存储在服务器上的角色形象数据 |
getUserId(): string client |
| 获取平台的用户Id,可以用于getUserData接口 |
getUserInfo(userId: string, gameId: string, callback: (nickname: string, gender: number) => void): void client |
| 发起getUserInfo并获得回调,查询玩家的昵称、性别 |
isFriend(resp: MGSResponse, userId: string): void client |
| 若需要检测玩家是否好友关系,可通过调用isFriend接口进行查看 |
setUserData(character: Character, dataString: string, callback?: BoolResponse): void client |
| 将角色形象数据应用至角色 |
uploadData(character: Character, callback?: VoidResponse BoolResponse, index?: number, openStatus?: number): void client |
| 上传角色形象资源到服务器 Character,Hair, UpperCloth, LowerCloth, Gloves, Shoe |
useCacheOrDownloadData(character: Character, callback?: VoidResponse BoolResponse, index?: number): void client |
| 如果本地有缓存,则优先使用缓存,否则下载角色形象并应用到当前角色身上, |
Methods
addFriend
• Static addFriend(resp, userId, reason): void client
发起添加好友请求
Parameters
resp MGSResponse | GameService的回调 |
|---|---|
userId string | 要加的玩家UserId range: 无 |
reason string | 申请理由 range: 无 |
Precautions
- 只在移动端生效
- 查询的目标玩家需要和当前玩家在同一房间。否则返回的数据会是"参数格式不正确"。
applySharedId
• Static applySharedId(character, id, callback): void client
应用分享Id的角色数据
Parameters
character Character | 分享换装数据的角色 |
|---|---|
id string | 分享Id range: 无 |
callback BoolResponse | 回调参数,true:应用成功;false:应用失败 |
checkVIP
• Static checkVIP(userId, gameId, callback): void client
发起checkVIP并获得回调,查询玩家的vip信息
Parameters
userId string | 玩家UserId range: 无 |
|---|---|
gameId string | GameId range: 无 |
callback (result: string) => void | 返回 result,玩家的vip是否正常 |
Precautions
- 只在移动端生效
- 查询的目标玩家需要和当前玩家在同一房间。否则返回的数据会是"参数格式不正确"。
createSharedId
• Static createSharedId(character, callback): void client
生成分享Id
Parameters
character Character | 分享换装数据的角色 |
|---|---|
callback StringResponse | 回调参数,返回生成的Id |
dataShowToOther
• Static dataShowToOther(index, isOpen, callback?): void client
设置数据是否公开给其他用户
Parameters
index number | 角色资源位 default:0(主角资源位) range: [0,5] type: 整形 |
|---|---|
isOpen boolean | 是否公开 |
callback? BoolResponse | 设置是否成功的回调 default:无 |
downloadData
• Static downloadData(character, callback?, index?): void client
下载角色形象并应用到当前角色身上
Parameters
character Character | 要应用换装数据的角色 |
|---|---|
callback? VoidResponse BoolResponse | 设置是否成功的回调 default:默认没有回调 |
index? number | 角色资源位 default:0(主角资源位) range: [0,5] type: 整形 |
fillAvatar
• Static fillAvatar(img): void client
将头像赋值到Image变量上
Parameters
img Image | 需要赋值获得头像的Image变量 |
|---|
Precautions
只在移动端生效
ts
@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let imgUI = new ImageUI();
AccountService.fillAvatar(imgUI.image);
}
}
class ImageUI {
public image: mw.Image;
constructor() {
this.creatUI();
}
private creatUI() {
// 创建一个UI对象
let ui = UserWidget.newObject();
// 将UI添加到屏幕上
ui.addToViewport(1);
// 创建一个画布组件
let rootCanvas = Canvas.newObject();
rootCanvas.size = new Vector2(1920, 1080);
rootCanvas.position = Vector2.zero;
// 将Ui的根画布设置为rootCanvas
ui.rootContent = rootCanvas;
// 创建一个按钮
this.image = mw.Image.newObject(rootCanvas);
this.image.position = new Vector2(1700, 310);
this.image.size = new Vector2(150, 50);
this.image.visibility = SlateVisibility.Visible;
}
}@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let imgUI = new ImageUI();
AccountService.fillAvatar(imgUI.image);
}
}
class ImageUI {
public image: mw.Image;
constructor() {
this.creatUI();
}
private creatUI() {
// 创建一个UI对象
let ui = UserWidget.newObject();
// 将UI添加到屏幕上
ui.addToViewport(1);
// 创建一个画布组件
let rootCanvas = Canvas.newObject();
rootCanvas.size = new Vector2(1920, 1080);
rootCanvas.position = Vector2.zero;
// 将Ui的根画布设置为rootCanvas
ui.rootContent = rootCanvas;
// 创建一个按钮
this.image = mw.Image.newObject(rootCanvas);
this.image.position = new Vector2(1700, 310);
this.image.size = new Vector2(150, 50);
this.image.visibility = SlateVisibility.Visible;
}
}getNickName
• Static getNickName(): string client
获取玩家昵称
Returns
string | 昵称 |
|---|
Precautions
只在移动端生效
ts
@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let name = AccountService.getNickName();
console.log("获取玩家昵称", name);
}
}@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let name = AccountService.getNickName();
console.log("获取玩家昵称", name);
}
}getUserData
• Static getUserData(userId, index, callback): void client
获取用户存储在服务器上的角色形象数据
Parameters
userId string | 用户Id range: 无 |
|---|---|
index number | 角色资源位 default:0(主角资源位) range: [0,5] type: 整形 |
callback StringResponse | 返回获取的数据string. |
ts
@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let player = await Player.asyncGetLocalPlayer();
let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
npc.worldTransform.position = new Vector(0, 0, 200);
AccountService.getUserData(player.userId, 0, async str => {
await TimeUtil.delaySecond(5);
AccountService.setUserData(npc, str, isSuccess => {
player.character.name = isSuccess ? "成功" : "失败";
})
});
}
}@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let player = await Player.asyncGetLocalPlayer();
let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
npc.worldTransform.position = new Vector(0, 0, 200);
AccountService.getUserData(player.userId, 0, async str => {
await TimeUtil.delaySecond(5);
AccountService.setUserData(npc, str, isSuccess => {
player.character.name = isSuccess ? "成功" : "失败";
})
});
}
}getUserId
• Static getUserId(): string client
获取平台的用户Id,可以用于getUserData接口
Returns
string | 用户Id |
|---|
ts
@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let userId = AccountService.getUserId();
console.log("获取平台的用户Id", userId);
}
}@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let userId = AccountService.getUserId();
console.log("获取平台的用户Id", userId);
}
}getUserInfo
• Static getUserInfo(userId, gameId, callback): void client
发起getUserInfo并获得回调,查询玩家的昵称、性别
Parameters
userId string | 玩家UserId range: 无 |
|---|---|
gameId string | GameId range: 无 |
callback (nickname: string, gender: number) => void | 返回 nickname(string) 和 gender(number) |
Precautions
- 只在移动端生效
- 查询的目标玩家需要和当前玩家在同一房间。否则返回的数据会是"参数格式不正确"。
isFriend
• Static isFriend(resp, userId): void client
若需要检测玩家是否好友关系,可通过调用isFriend接口进行查看
Parameters
resp MGSResponse | GameService的回调。在收到结果时会触发该回调,参数含义如下: - isSuccess - 正常获取到了查询结果即为true,并不代表为好友关系。false表示请求出错。 - jsonData - 当userId对应的角色和当前玩家不在同一房间,返回值为"参数格式不正确"; 当userId对应的角色和当前玩家在同一房间,且互为好友,返回值为"true"; 当userId对应的角色和当前玩家在同一房间,不为好友,返回值为"false"; |
|---|---|
userId string | 要确定的玩家UserId range: 无 |
Precautions
- 只在移动端生效
- 查询的目标玩家需要和当前玩家在同一房间。否则返回的数据会是"参数格式不正确"。
setUserData
• Static setUserData(character, dataString, callback?): void client
将角色形象数据应用至角色
Parameters
character Character | 用于换装的角色 |
|---|---|
dataString string | 返回的数据 range: 无 |
callback? BoolResponse | 设置是否成功的回调 default:无回调 |
ts
@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let player = await Player.asyncGetLocalPlayer();
let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
npc.worldTransform.position = new Vector(0, 0, 200);
AccountService.getUserData(player.userId, 0, async str => {
await TimeUtil.delaySecond(5);
AccountService.setUserData(npc, str, isSuccess => {
player.character.name = isSuccess ? "成功" : "失败";
})
});
}
}@Component
export default class AccountExample extends Script {
protected onStart(): void {
if (!SystemUtil.isClient()) return;
this.test();
}
private async test(): Promise<void> {
let player = await Player.asyncGetLocalPlayer();
let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
npc.worldTransform.position = new Vector(0, 0, 200);
AccountService.getUserData(player.userId, 0, async str => {
await TimeUtil.delaySecond(5);
AccountService.setUserData(npc, str, isSuccess => {
player.character.name = isSuccess ? "成功" : "失败";
})
});
}
}uploadData
• Static uploadData(character, callback?, index?, openStatus?): void client
上传角色形象资源到服务器 Character,Hair, UpperCloth, LowerCloth, Gloves, Shoe
Parameters
character Character | 要上传换装数据的角色 |
|---|---|
callback? VoidResponse BoolResponse | 设置是否成功的回调 default:默认没有回调 |
index? number | 角色资源位 default:0(主角资源位) range: [0,5] type: 整形 |
openStatus? number | 开放状态 default:1,默认是开放状态 range: [0,1] type: 整形 |
useCacheOrDownloadData
• Static useCacheOrDownloadData(character, callback?, index?): void client
如果本地有缓存,则优先使用缓存,否则下载角色形象并应用到当前角色身上,
Parameters
character Character | 要应用换装数据的角色 |
|---|---|
callback? VoidResponse BoolResponse | 设置是否成功的回调 default:默认没有回调 |
index? number | 角色资源位 default:0(主角资源位) range: [0,5] type: 整形 |