The server module provides functions related to obtaining server list and character list.
Note 1: The server module needs to apply parameters and configure them in the packaging tool. After the connection is complete, check whether the connection is successful.
Note 2: The information acquired by the server module only displays the player’s historical character, server, and level information.
Note 3: The information provided by the server module cannot be used as a basis for game events.
Interface description:Get server list.
Interface Call:
[SuperSDK invoke:@"xsdk"
funcName:@"queryServers"
parameters:@{
@"yz_game_id":@"94", // Game ID in game server opening system
@"opid" :@"2107", // Channel ID
@"opgameid" :@"2021", // Server cluster ID
@"packageId" :@"28", // Package ID
@"pageSize" :@"10", // Separate server page, number of data items per page. The value must be greater than or equal to 1. Non-mandatory parameter
@"pageNo" :@"1", // Separate server page, page number, the value must be greater than or equal to 1. Non-mandatory parameter
@"backColums":@[@"op_sid"] // Optional return list, for details, check the remarks at the bottom of this interface
}];
Interface Callback:
- (void)handlerCallback:(NSString *)moduleName
funcName:(NSString *)funcName
parameters:(NSString *)parameters {
NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
if ([funcName isEqualToString:BCORE_FUNC_QUERY_SERVER]) {// Server query callback
NSLog(@"Server query callback");
if(code == BCORE_SUCCESS) {
NSDictionary *serverInfos = data;
NSLog(@"Server list info is:%@", serverInfos);
}
else {
NSLog(@"Server list query failed, %@", desc);
}
}
}
}
Log Print:
Received Callback
moduleName : xsdk,
funcName : queryServers,
result : {
"msg" : "Server list query successful",
"data" : {
"totalCount" : 2,
"list" : [
{
"op_sid" : "1516440002",
"type" : "44",
"server_name" : "Test Server2",
"is_recommend" : "1",
"first_opentime" : "1537372800",
"server_id" : "1516440002",
"new_style" : "3",
"is_active" : "1",
"server_url" : "s1516440002-sbzh.youzu.com"
},
{
"op_sid" : "1516440001",
"type" : "44",
"server_name" : "Test Server1",
"is_recommend" : "1",
"first_opentime" : "1537372800",
"server_id" : "1516440001",
"new_style" : "3",
"is_active" : "1",
"server_url" : "s1516440001-sbzh.youzu.com"
}]
},
"code" : 1
}
Interface description:Get recommended server list.
Interface Call:
[SuperSDK invoke:@"xsdk"
funcName:@"queryRecoServers"
parameters:@{
@"yz_game_id":@"94", // Game ID in game server opening system
@"opid" :@"2107",// Channel ID
@"opgameid" :@"2021",// Server cluster ID
@"packageId" :@"28", // Package ID
@"pageSize" :@"10", // Separate server page, number of data items per page. The value must be greater than or equal to 1. Non-mandatory parameter
@"pageNo" :@"1", // Separate server page, page number, the value must be greater than or equal to 1. Non-mandatory parameter
@"backColums":@[@"cover_style"] // Optional return list, for details, see appendix below this interface. Cover_style is a mandatory field for this interface
@"isCache" :@"1" //Whether to use cache data, 1: Yes, 0, No, non-mandatory parameter, cache is used by default
}];
Interface Callback:
- (void)handlerCallback:(NSString *)moduleName
funcName:(NSString *)funcName
parameters:(NSString *)parameters {
NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
if ([funcName isEqualToString:@"queryRecoServers"]) {// Server query callback
NSLog(@"Server query callback");
if(code == BCORE_SUCCESS) {
NSDictionary *serverInfos = data;
NSLog(@"Server list info:%@", serverInfos);
}
else {
NSLog(@"Server list query failed, %@", desc);
}
}
}
}
Log Print:
Received Callback
moduleName : xsdk,
funcName : queryRecoServers,
result : {
"msg" : "Recommended server list query successful",
"data" : {
"list" : [
{
"op_sid" : "1516440002",
"type" : "44",
"server_name" : "Test Server2",
"is_recommend" : "1",
"first_opentime" : "1537372800",
"server_id" : "1516440002",
"new_style" : "3",
"is_active" : "1",
"server_url" : "s1516440002-sbzh.youzu.com",
"cover_style":"1"
},
{
"op_sid" : "1516440001",
"type" : "44",
"server_name" : "Test Server1",
"is_recommend" : "1",
"first_opentime" : "1537372800",
"server_id" : "1516440001",
"new_style" : "3",
"is_active" : "1",
"server_url" : "s1516440001-sbzh.youzu.com",
"cover_style":"1"
}]
},
"code" : 1
}
Interface description:Get recent last login character info.
Interface Call:
[SuperSDK invoke:@"xsdk"
funcName:@"queryLastRole"
parameters:@{
@"osdk_user_id":@"0060015_123",//SuperSDK log in callback's osdk_user_id
@"yz_game_id" :@"94",// Game ID in game server opening system
@"opid" :@"2150",// Server ID
@"opgameid" :@"2055",// Server cluster ID
@"packageId" :@"28", // Package ID
@"backColums" :@[@"op_sid"]// Optional return list, for details, see remarks below retrieved server list
}];
Interface Callback:
- (void)handlerCallback:(NSString *)moduleName
funcName:(NSString *)funcName
parameters:(NSString *)parameters {
NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
if ([funcName isEqualToString:@"queryLastRole"]) {// Query current account's last login character info
NSLog(@"Character query callback");
if(code == BCORE_SUCCESS) {
NSDictionary *roleInfo = data;
NSLog(@"Last login character info:%@", roleInfo);
}
else {
NSLog(@"Failed to pull data, reason %@", desc);
}
}
}
}
Log Print:
2018-03-02 11:35:17.653954+0800 youzu[4076:1101447] ****** Received Callback
moduleName : xsdk,
funcName : queryLastRole,
parameters : {
code = 1;
data = {
level = 1;
opid = 2107;
"osdk_user_id" = "0060015_123";
roleCreateTime = 1519959398;
"role_id" = AUfegpIF;
"role_name" = "\U54e5\U6765\U4e86";
serverInfo = {
"first_opentime" = 1546185600;
"is_active" = 1;
"is_recommend" = 1;
"new_style" = 4;
"server_id" = 2021311322;
"server_name" = "\U63a8\U8bda\U76f8\U4fe1(S1322)";
"server_url" = "10.3.99.72";
type = 31;
};
"server_id" = 2021311322;
"vip_grade" = 0;
"yz_game_id" = 94;
};
msg = "\U67e5\U8be2\U5f53\U524d\U8d26\U53f7\U6700\U8fd1\U767b\U5f55\U7684\U89d2\U8272\U4fe1\U606f\U6210\U529f";
}
Interface description:Get character list.
Interface Call:
[SuperSDK invoke:@"xsdk"
funcName:@"queryRoles"
parameters:@{
@"osdk_user_id":@"0060015_123",//SuperSDK log in callback's osdk_user_id
@"yz_game_id" :@"94", // Game ID in game server opening system
@"opid" :@"2150", // Server ID
@"opgameid" :@"2055", // Server cluster ID
@"packageId" :@"28", // Package ID
@"backColums" :@[@"op_sid"] // Optional return list, for details, see remarks below retrieved server list
}];
Interface Callback:
- (void)handlerCallback:(NSString *)moduleName
funcName:(NSString *)funcName
parameters:(NSString *)parameters {
NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
if ([funcName isEqualToString:BCORE_FUNC_QUERY_ROLES]) {// Character query callback
NSLog(@"Character query callback");
if(code == BCORE_SUCCESS) {
NSArray *roleList = [retParam objectForKey:@"data"];
NSLog(@"Queried character info:%@", roleList);
}
else {
NSLog(@"Failed to pull data, reason %@", desc);
}
}
}
}
Log Print:
****** Received Callback
2018-03-02 11:35:53.913583+0800 youzu[4076:1101447] ****** Received Callback
moduleName : xsdk,
funcName : queryRoles,
parameters : {
code = 1;
data = (
{
level = 1;
opid = 2107;
"osdk_user_id" = "0060015_123";
roleCreateTime = 1519959398;
"role_id" = AUfegpIF;
"role_name" = "\U54e5\U6765\U4e86";
serverInfo = {
"first_opentime" = 1546185600;
"is_active" = 1;
"is_recommend" = 1;
"new_style" = 4;
"server_id" = 2021311322;
"server_name" = "\U63a8\U8bda\U76f8\U4fe1(S1322)";
"server_url" = "10.3.99.72";
type = 31;
};
"server_id" = 2021311322;
"vip_grade" = 0;
"yz_game_id" = 94;
},
{
level = 1;
opid = 2107;
"osdk_user_id" = "0060015_123";
roleCreateTime = 1519959421;
"role_id" = oEKQXDCU;
"role_name" = "\U5e26\U4f60\U8d70";
serverInfo = {
"first_opentime" = 1546185600;
"is_active" = 1;
"is_recommend" = 1;
"new_style" = 4;
"server_id" = 2021311320;
"server_name" = "\U522b\U4f5c\U826f\U56fe(S1320)";
"server_url" = "10.3.99.72";
type = 31;
};
"server_id" = 2021311320;
"vip_grade" = 0;
"yz_game_id" = 94;
}
);
msg = "\U67e5\U8be2\U89d2\U8272\U4fe1\U606f\U6210\U529f";
}
Interface description:Enter Game event, compiles every character’s game login time, used to get the sort order during listing, and upload game login time.
Interface Call:
NSDictionary *gameRole = @{
@"osdk_user_id": @"0060015_124",
@"yz_game_id": @"94",
@"server_id" : @"2021311106",
@"opid" : @"2107",
@"role_id" : @"KLMWElPwP",
@"role_name" : @"CoolGuy99",
@"level" : @"1",
@"vip_grade" : @"0",
@"roleCreateTime":@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
};
[SuperSDK invoke:@"xsdk" funcName:@"enterGame" parameters:gameRole];
Interface description:Call after user creates character.
Interface Call:
NSDictionary *gameRole = @{
@"osdk_user_id": @"0060015_124",
@"yz_game_id": @"94",
@"server_id" : @"2021311106",
@"opid" : @"2107",
@"role_id" : @"KLMWElPwP",
@"role_name" : @"CoolGuy99",
@"level" : @"1",
@"vip_grade" : @"0",
// @"extend" : @"", //Optional
@"roleCreateTime":@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
};
[SuperSDK invoke:@"xsdk" funcName:@"createRole" parameters:gameRole];
Interface description:Call after user levels up character
Interface Call:
NSDictionary *gameRole = @{
@"osdk_user_id": @"0060015_124",
@"yz_game_id": @"94",
@"server_id" : @"2021311106",
@"opid" : @"2107",
@"role_id" : @"KLMWElPwP",
@"role_name" : @"CoolGuy99",
@"level" : @"10",
@"vip_grade" : @"0",
@"roleCreateTime" :@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
};
[SuperSDK invoke:@"xsdk" funcName:@"updateRole" parameters:gameRole];
Interface description:Delete a created character.
Interface Call:
NSDictionary *gameRole = @{
@"osdk_user_id": @"0060015_124",
@"yz_game_id": @"94",
@"server_id" : @"2021311106",
@"opid" : @"2107",
@"role_id" : @"KLMWElPwP",
@"role_name" : @"CoolGuy99",
@"level" : @"10",
@"vip_grade" : @"0",
@"roleCreateTime":@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
};
[SuperSDK invoke:@"xsdk" funcName:@"deleteRoleNew" parameters:gameRole];
Interface Callback:
- (void)handlerCallback:(NSString *)moduleName
funcName:(NSString *)funcName
parameters:(NSString *)parameters {
NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
if ([funcName isEqualToString: BCORE_FUNC_DELETE_ROLE]) {// Character query callback
if(code == BCORE_SUCCESS) {
NSLog(@"Character deleted");
}
else {
NSLog(@"Failed to delete data, reason %@.", desc);
}
}
}
}
Return data format:
****** Received Callback
moduleName : gserver,
funcName : deleteRoleNew,
parameters : {
"msg" : "Character deleted",
"code" : 1
}
Interface description:Set interval for updating character information. The default interval is 60 seconds. 0 means each update must be reported.
Interface Call:
[SuperSDK invoke:@"xsdk" funcName:@"setUpdateInterval" parameters:@{@"seconds":@(60)}];
Parameters are optional return list parameter, as follows
Return List | Description |
---|---|
socket_domain | socket domain name |
socket_port | socket port |
op_sid | Operations server ID |
is_active | Activated or not |
is_recommend | Recommended or not |
server_url | Server address |
recharge_url | Recharge address |
recharge_opentime | Recharge start time |
notice_opentime | Server opening notice time |
fcm_time | Anti-addiction time |
cover_style | Covers server status or not |
Special Field Description
Field name | Field description | Value description |
---|---|---|
type | server type | 31:Normal Server, 41:Permanent Test Server, 42:Online Test Server, 43:Internal Test Server, 44:QATest Server |
new_style | New Style | 1:Normal start (online more than 30 days), 3:Hot start (online 7-30 days), 4:Opening Soon (can appear at preview period or within IP whitelist), 5:Stop for maintenance, 6:Stop activation, 7:New Server (online for 1 week, 100:Recommended, 101:, 102:Crowded |
cover_style | Cover server status? | 0 Dont cover, 1 Cover |
Q:The interface returned no data.
A:Access the request link from the browser, if no data is returned, requires operations to configuring the backend of the server opening system
Q:Data accessed from the browser is inconsistent with the data returned by the game interface.
A:Check if parameters such as opID and opGameID are correct, then check whether the backend configuration has enabled Intranet restrictions.