角色 - PlayerService
角色模型
sgtcloud为各种类型的游戏设计了一个通用的结构化(schema)角色模型Player,这个对象中抽象了角色名称,等级,头像,金钱等属性,可以供开发者存储,更新,查询(暂不提供删除),并且保留了一些可以复用的冗余字段,例如装备。适合轻量级的休闲或者解谜等游戏直接使用。 如果是重度游戏,例如角色扮演,策略等类型,角色信息中包含较多自定义结构和属性的,类似于背包,技能等,应该考虑使用角色扩展来存储,更新和查询。如果您的游戏使用的角色数据信息是二进制的,可以使用content字段来保存,但是该字段无法查询,读写性能也较差,不建存储超过1KB的数据。
- 角色等价于一个游戏内的游戏角色,一个用户在一个游戏内可以创建并且维护多个角色,拥有不同的id,并且可以维护其对应的在线存档。
- 物理上,角色信息存储在分服以后的那台服务器上,所以当你变更过路由策略以后(例如修改渠道),可能会导致服务器上的角色信息找不到。
- 目前角色实体是一个模版,一些字段可以灵活的重用,如果有更多地自定义数据,暂时可以考虑用在线存档在维护。
SgtApi.PlayerService.create(player, callback)
创建一个角色
var player = SgtApi.entityFactory('Player');
player.name = '测试玩家AAA';
player.level = 1;
player.money = 999;
var playerId = null;
SgtApi.PlayerService.create(player, function(result, data) {
if (result) { //创建成功
playerId = data.id; //把角色对象的值赋给playerId
}
});
SgtApi.PlayerService.getPlayerById(playerId, callback)
通过角色id获取角色信息
SgtApi.PlayerService.getPlayerById(playerId, function(result, data) {
if (result) {
data;
}
});
SgtApi.PlayerService.update(player, callback)
更新角色信息
player.name = '测试玩家BBB';
player.level = 2;
player.money = 1000;
SgtApi.PlayerService.update(player, function(result, data){
if (result) {
data;
}
});
SgtApi.PlayerService.deletePlayerByPlayerId(playerId, callback)
通过playerId删除角色及相关信息
SgtApi.PlayerService.downloadSave(playerId, callback)
下载存档
SgtApi.PlayerService.getByLastLoginTime(lastLoginTime, start, limit, callback);
根据最后登陆时间查找角色
SgtApi.PlayerService.getByName(playerName, start, limit, callback);
根据角色名查找角色
SgtApi.PlayerService.getByUserId(userId, callback);
根据用户ID查找角色
SgtApi.PlayerService.getFriendsMaxNumber(playerId, callback);
获取指定角色的好友上限
SgtApi.PlayerService.getOneByUserId(userId, callback);
通过用户ID查找其中的一个角色
SgtApi.PlayerService.getPlayerByCustomId(customId, callback);
通过自定义ID获取角色信息
SgtApi.PlayerService.searchPlayerByLastLogin(limit, callback);
随机返回若干个最近登录的player
SgtApi.PlayerService.searchPlayersByLastLoginCondition(lastLoginTime, limit, excludePlayerIds, callback);
根据条件过滤并随机查询若干个最近登录的player
SgtApi.PlayerService.setFriendsMaxNumber(playerId, number, callback);
设置指定角色的好友上限
SgtApi.PlayerService.uploadSave(save, callback);
上传存档
Class: Player
- id 主键 非自增,不能为空
- serverId 服务器
- customId自定义ID
- userId 用户ID (opensocial中)
- name 名字
- gender 性别 [1 男 0 女]
- lastLoginTime 最后登录时间
- level 等级
- vip VIP等级
- money 金钱
Class: PlayerExtra
角色扩展信息公共父类,所有开发者扩展的角色信息要么继承这个类,要么在自己的扩展类中添加playerId字段
- playerId 角色ID
Class: Save
- id 主键
- playerId 角色ID
- lastUploadTime 最后上传时间
- content 存档内容
- downFlag 是否可下载存档标识