下载文档

最后更新时间: 2021-02-04 03:12:47 PM

XSDK module


Xsdk provides the function of extracting servers lists and saving game server-role list.

Cautions

The role information acquired by the role SDK is only used to display the player previous roles, server, and level information, and cannot be used for other purposes in the game (for example, the level provided by the role SDK in the game cannot be used to judge whether the player reaches the activity level), the game developer cannot heavily rely on the role SDK. To use the role SDK, you need to fill in the configuration parameters in the packaging tool.

Engineering configuration

Download the XSDK module resource from the official website and import it into the project, then add the system dependency library.

 Foundation.framework
 UIKit.framework
 AdSupport.framework
 SystemConfigration.framework
 libsqlite3.0.tbd

Obtain the district server list

Obtain server list

Interface invoke:

 [SuperSDK invoke:@"xsdk"
                    funcName:@"queryServers"
                  parameters:@{
                               @"yz_game_id"    :@"94",// 游戏开服系统中的游戏编号
                               @"opid"      :@"2107",// 渠道编号
                               @"opgameid"  :@"2021",// 混服编号
                               @"pageSize"  :@"10",// 区服分页,每页数据条数,值必须大于等于1。非必须参数
                               @"pageNo"    :@"1",// 区服分页,第多少页,值必须大于等于1。非必传参数
                               @"backColums"    :@[@"op_sid"]// 可选返回列、详情查看本接口下方的备注
                               }];

Interface callback:

 - (void)handlerCallback:(NSString *)moduleName
               funcName:(NSString *)funcName
             parameters:(NSString *)parameters {
    NSLog(@"****** 收到回调\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]) {// 角色模块回调
        
        if ([funcName isEqualToString:BCORE_FUNC_QUERY_SERVER]) {// 区服查询回调
            NSLog(@"区服查询回调");
            if(code == BCORE_SUCCESS) {
                NSDictionary *serverInfos = data;
                NSLog(@"区服列表信息为:%@", serverInfos);
            }
            else {
                NSLog(@"查询区服列表失败,%@", desc);
            }
        }
    }
 }

Callback log printing:

收到回调
 moduleName : xsdk,
 funcName : queryServers,
 result : {
  "msg" : "查询区服列表成功",
  "data" : {
    "totalCount" : 2,
    "list" : [
      {
        "op_sid" : "1516440002",
        "type" : "44",
        "server_name" : "测试服2",
        "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" : "测试服1",
        "is_recommend" : "1",
        "first_opentime" : "1537372800",
        "server_id" : "1516440001",
        "new_style" : "3",
        "is_active" : "1",
        "server_url" : "s1516440001-sbzh.youzu.com"
      }]
      },
  "code" : 1
 }

Remarks: The parameter is an optional return column parameter, as follows

Return column Description
socket_domain Socket domain name
socket_port Socket port
op_sid Operator server ID
is_active Whether to activate
is_recommend Whether to recommend
server_url service address
recharge_url Recharge address
recharge_opentime Recharge open time
notice_opentime Opening notice time
fcm_time Anti-addiction time

Appendix

Field name Field description Value description
server_id service ID
server_name service name
type District service type 31: formal service, 41: permanent test service, 42: external network test service, 43: internal network test service, 44: QA test service
first_opentime First time
new_style New style 1: Normally open (open for more than 30 days), 3: Hot start (open for 1 week - 30 days), 4: Open soon (arrival notice time or visible in IP whitelist), 5: Stop service, 6 : stop activation, 7: new service (open for 1 week)

Get recent login role information

Get the role information of the last login of the current account

Interface invoke:

 [SuperSDK invoke:@"xsdk"
                    funcName:@"queryLastRole"
                  parameters:@{
                               @"osdk_user_id"  :@"0060015_123",//SuperSDK登录回调的osdk_user_id
                               @"yz_game_id"    :@"94",// 游戏开服系统中的游戏编号
                               @"opid"      :@"2150",// 区服编号
                               @"opgameid"  :@"2055",// 混服编号
                               @"backColums"    :@[@"op_sid"]// 可选返回列、详情查看本获取区服列表下方的备注
                               }];

Interface callback:

 - (void)handlerCallback:(NSString *)moduleName
               funcName:(NSString *)funcName
             parameters:(NSString *)parameters {
    NSLog(@"****** 收到回调\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]) {// 角色模块回调
        
        if ([funcName isEqualToString:@"queryLastRole"]) {// 查询当前账号上次登录的角色信息
            NSLog(@"角色查询回调");
            if(code == BCORE_SUCCESS) {
                NSDictionary *roleInfo = data;
                NSLog(@"上次登录的角色信息是:%@", roleInfo);
            }
            else {
                NSLog(@"拉取数据失败,原因%@", desc);
            }
        }
    }
 }

Callback log printing:

  2018-03-02 11:35:17.653954+0800 youzu[4076:1101447] ****** 收到回调
 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";
}

Get the role list

Get all the role information of the current account.

Interface invoke:

 [SuperSDK invoke:@"xsdk"
                    funcName:@"queryRoles"
                  parameters:@{
                               @"osdk_user_id"  :@"0060015_123",//SuperSDK登录回调的osdk_user_id
                               @"yz_game_id"    :@"94",// 游戏开服系统中的游戏编号
                               @"opid"      :@"2150",// 区服编号
                               @"opgameid"  :@"2055",// 混服编号
                               @"backColums"    :@[@"op_sid"]// 可选返回列、详情查看本获取区服列表下方的备注
                               }];

Interface callback:

 - (void)handlerCallback:(NSString *)moduleName
               funcName:(NSString *)funcName
             parameters:(NSString *)parameters {
    NSLog(@"****** 收到回调\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]) {// 角色模块回调
        
        if ([funcName isEqualToString:BCORE_FUNC_QUERY_ROLES]) {// 角色查询回调
            NSLog(@"角色查询回调");
            if(code == BCORE_SUCCESS) {
                NSArray *roleList = [retParam objectForKey:@"data"];
                NSLog(@"查询的角色信息为:%@", roleList);
            }
            else {
                NSLog(@"拉取数据失败,原因%@", desc);
            }
        }
    }
 }

Callback log printing:

 ****** 收到回调
 2018-03-02 11:35:53.913583+0800 youzu[4076:1101447] ****** 收到回调
 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";
}

enterGame

Interface Description: entergame event, recording the time of when each character enters the game, use it to sort the list and upload those times.

Interface invoke:

 NSDictionary *gameRole = @{
                                       @"osdk_user_id"    : @"0060015_124",
                                       @"yz_game_id": @"94",
                                       @"server_id" : @"2021311106",
                                       @"opid"      : @"2107",
                                       @"role_id"   : @"KLMWElPwP",
                                       @"role_name" : @"傲气的决战天",
                                       @"level"     : @"1",
                                       @"vip_grade" : @"0",
                                       @"roleCreateTime"  :@([[NSDate date] timeIntervalSince1970]) //创角必传,游戏客户端可取服务端的时间戳,作为创角时间, 10位
                                       };
            
 [SuperSDK invoke:@"xsdk" funcName:@"enterGame" parameters:gameRole];

Createrole

Interface description: invoking after the user creates a role.

Interface invoke:

 NSDictionary *gameRole = @{
                                       @"osdk_user_id"    : @"0060015_124",
                                       @"yz_game_id": @"94",
                                       @"server_id" : @"2021311106",
                                       @"opid"      : @"2107",
                                       @"role_id"   : @"KLMWElPwP",
                                       @"role_name" : @"傲气的决战天",
                                       @"level"     : @"1",
                                       @"vip_grade" : @"0",
                                       // @"extend" : @"",   //可选
                                       @"roleCreateTime"  :@([[NSDate date] timeIntervalSince1970]) //创角必传,游戏客户端可取服务端的时间戳,作为创角时间, 10位
                                       };
            
 [SuperSDK invoke:@"xsdk" funcName:@"createRole" parameters:gameRole];

Update role

Interface description: invoking when the user role is updated.

Interface invoke:

 NSDictionary *gameRole = @{
                                       @"osdk_user_id"    : @"0060015_124",
                                       @"yz_game_id": @"94",
                                       @"server_id" : @"2021311106",
                                       @"opid"      : @"2107",
                                       @"role_id"   : @"KLMWElPwP",
                                       @"role_name" : @"傲气的决战天",
                                       @"level"     : @"10",
                                       @"vip_grade" : @"0",
                                       @"roleCreateTime"  :@([[NSDate date] timeIntervalSince1970]) //创角必传,游戏客户端可取服务端的时间戳,作为创角时间, 10位
                                       };
 [SuperSDK invoke:@"xsdk" funcName:@"updateRole" parameters:gameRole];

Delete role

Interface Description: invoking when a created role is deleted.

Interface invoke:

 NSDictionary *gameRole = @{
                                       @"osdk_user_id"    : @"0060015_124",
                                       @"yz_game_id": @"94",
                                       @"server_id" : @"2021311106",
                                       @"opid"      : @"2107",
                                       @"role_id"   : @"KLMWElPwP",
                                       @"role_name" : @"傲气的决战天",
                                       @"level"     : @"10",
                                       @"vip_grade" : @"0",
                                       @"roleCreateTime"  :@([[NSDate date] timeIntervalSince1970]) //创角必传,游戏客户端可取服务端的时间戳,作为创角时间, 10位
                                       };
            
 [SuperSDK invoke:@"xsdk" funcName:@"deleteRole" parameters:gameRole];

Interface callback:

 - (void)handlerCallback:(NSString *)moduleName
               funcName:(NSString *)funcName
             parameters:(NSString *)parameters {
    NSLog(@"****** 收到回调\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]) {// 角色模块回调
        
        if ([funcName isEqualToString: BCORE_FUNC_DELETE_ROLE]) {// 角色查询回调
            if(code == BCORE_SUCCESS) {
               NSLog(@"角色删除成功");
            }
            else {
                NSLog(@"删除数据失败, 原因为%@.", desc);
            }
        }
    }
 }

返回数据格式:

 ****** 收到回调
 moduleName : gserver,
 funcName : deleteRole,
 parameters : {
  "msg" : "删除角色成功",
  "code" : 1
 }

Set the update interval (optional)

Sets the interval for updating the reported role information. Minimum 0 second, maximum 600 seconds, the default value is 60 seconds.

Interface invoke:

 [SuperSDK invoke:@"xsdk" funcName:@"setUpdateInterval" parameters:@{@"seconds":@(60)}];