| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- #import <Foundation/Foundation.h>
- #import <SPHSDK_DZ/SPSDK.h>
- static NSString* UnityListenerGoName;
- void SendMsgToUnity(NSString* messageName,NSString* parameters)
- {
- if (!UnityListenerGoName) {
- NSLog(@"U3D not set listener");
- return;
- }
- if ([parameters isKindOfClass:NSString.class] && [parameters length]) {
- UnitySendMessage([UnityListenerGoName UTF8String], [messageName UTF8String], [parameters UTF8String]);
- }
- else{
- UnitySendMessage([UnityListenerGoName UTF8String], [messageName UTF8String], "");
- }
- }
- NSString* QsdkCreateNSString (const char* string)
- {
- if (string)
- return [NSString stringWithUTF8String: string];
- else
- return [NSString stringWithUTF8String: ""];
- }
- //=============================回调函数=============================================
- //=============================回调函数=============================================
- //=============================回调函数=============================================
- //
- void SDK_observer_CallBack(SPSDKEvent event, NSDictionary *data)
- {
- switch(event)
- {
- case SPSDKEventLogout:
- {
- //
- NSLog(@"退出登录成功");
- SendMsgToUnity(@"onLogoutSuccess",@"");
- }
- break;
- default:
- break;
- }
- }
- void SDK_Init_Callback(BOOL success, id data)
- {
- if(success)
- {
- SendMsgToUnity(@"onInitSuccess",@"Init:Init Success");
- }
- else
- {
- SendMsgToUnity(@"onInitSuccess",@"Fail");
- }
- }
- void SDK_Logout_Callback(BOOL success, id data)
- {
- }
- void SDK_Login_Callback(BOOL success, SPUserData *data)
- {
- if (success)
- {
- //[self log:[NSString stringWithFormat:@"登录成功:%@",data.username]];
- int code = 0;
- SendMsgToUnity(@"onLoginSuccess",[NSString stringWithFormat:@"%d[]%@[]%@[]%@[]%@",code,@"success", data.token, data.username, data.timestamp]);
- }else
- {
- //[self log:[NSString stringWithFormat:@"登录失败❌:%@",data]];
- SendMsgToUnity(@"onLoginFail",[NSString stringWithFormat:@"登录失败:%@",data]);
- }
- }
- void SDK_Pay_Callback(BOOL success, id data)
- {
- if(success)
- {
- SendMsgToUnity(@"onPaySuccess",@"支付Suc");
- }
- else
- {
- SendMsgToUnity(@"onPayFail",@"");
- }
- }
- void SDK_UpdateRoleInfo_Callback(BOOL success, id data)
- {
- }
- //=============================回调函数=============================================
- //=============================回调函数=============================================
- extern "C"
- {
-
- void QSDK_SetListener(const char *gameObjectName){
- UnityListenerGoName = QsdkCreateNSString(gameObjectName);
- }
-
- void QSDK_Init() {
- //SendMsgToUnity(@"onInitSuccess",@"Init:Init Success");
- //SendMsgToUnity(@"onInitSuccess",@"Fail");
- //SDK初始化 code: 0:成功, 1:失败
- NSString *gameId = @"127";
- NSDictionary<NSString *, id> *infoDictionary = [NSBundle mainBundle].infoDictionary;
- id value = [infoDictionary objectForKey:@"xuanyou_GameId"];
- if (value != NULL && [value isKindOfClass:[NSString class]]) {
- gameId = (NSString *)value;
- }
- NSDictionary *game = @{
- // @"timestamp":@"XXXX",///设置此值来切换线上域名
- // @"tempDomain":@"",///设置此值来切换线上域名
- @"gameId":gameId,///替换为实际游戏id
- };
- [SPSDK.instance registerGame:game callback:^(BOOL success, id data)
- {
- SDK_Init_Callback(success,data);
- }];
- SPSDK.instance.observer = ^(SPSDKEvent event, NSDictionary *data)
- {
- SDK_observer_CallBack(event,data);
- };
- }
- void QSDK_login()
- {
- //使用SDK登录界面登录
- [SPSDK.instance login:^(BOOL success, SPUserData *data)
- {
- SDK_Login_Callback(success,data);
- }];
- }
- void QSDK_Pay(const char *productId,const char *productName,const char * amount,const char *orderNo,
- const char *callBackUrl,const char *extrasParams,
- const char * gameName,const char * serverName,
- const char* productDesc,
- const char* serverID,const char* accountID,const char* roleID,const char* roleLv) {
-
- NSDictionary *ext = @{
- @"extra":QsdkCreateNSString(extrasParams),
- };
- //支付
- SPProductData *product = [SPProductData new];
- product.productId = QsdkCreateNSString(productId);
- product.productName = QsdkCreateNSString(productName);
- product.amount =QsdkCreateNSString(amount);
- product.extra = ext;
- [SPSDK.instance pay:product callback:^(BOOL success, id data)
- {
- SDK_Pay_Callback(success,data);
- }];
-
- }
- void QSDK_logout() {
-
- //退出登录
- NSLog(@"U3D call SDK logout");
- [SPSDK.instance logout:^(BOOL success, id data)
- {
- SDK_Logout_Callback(success,data);
- }];
- }
- extern NSDictionary* GetParameters(NSArray* arr);
- void QSDK_UpdateRoleInfo(int type,const char * roleName,const char * roleId,
- const char * roleLv, const char * serverName,
- const char * serverId,const char * extra)
- {
- SPRoleData *roleData = [SPRoleData new];
- roleData.roleName =QsdkCreateNSString(roleName);
- roleData.roleLevel = QsdkCreateNSString(roleLv);
- roleData.roleId = QsdkCreateNSString(roleId);
- roleData.serverId = QsdkCreateNSString(serverId);
- roleData.serverName = QsdkCreateNSString(serverName);
- SPSDKReportType RType = SPSDKReportTypeOnlinePeriod;
- if(type == 0)
- {
- RType = SPSDKReportTypeCreateRole;
- }
- else if(type == 1)
- {
- RType = SPSDKReportTypeEnterGame;
- }
- else if(type == 4)
- {
- RType = SPSDKReportTypeOther;
- NSString* exStr = QsdkCreateNSString(extra);
-
- NSArray* dataArr = [exStr componentsSeparatedByString: @","];
- if(dataArr != nullptr && dataArr.count >= 4)
- {
-
- /*for(int i =4;i> dataArr.count;i+=2)
- {
- [NSDictionary dictionaryWithObject:dataArr[i+1] forKey:dataArr[i]];
- }*/
- if(dataArr.count==4)
- {
- roleData.extra = @{
- @"firEventName":dataArr[1],
- @"adjEventToken":dataArr[3],
- };
- }
- else
- {
- roleData.extra = @{
- @"firEventName":dataArr[1],
- @"adjEventToken":dataArr[3],
- @"firEventParameters":GetParameters(dataArr),
- };
- }
-
- }
-
- }
-
- [SPSDK.instance reportRole:roleData type:RType callback:^(BOOL success, id data)
- {
-
- }];
- }
- }
- NSDictionary* GetParameters(NSArray* arr)
- {
- int count = ((int)arr.count/2) - 2;
- int start = 4;
- if(count ==1){return @{arr[start]:arr[start+1],};}
- else if(count ==2){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],}; }
- else if(count ==3){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],};}
- else if(count ==4){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],};}
- else if(count ==5){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],arr[start+8]:arr[start+9],};}
- else if(count ==6){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],arr[start+8]:arr[start+9],arr[start+10]:arr[start+11],};}
- else if(count ==7){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],arr[start+8]:arr[start+9],arr[start+10]:arr[start+11],arr[start+12]:arr[start+13],};}
- else if(count ==8){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],arr[start+8]:arr[start+9],arr[start+10]:arr[start+11],arr[start+12]:arr[start+13],arr[start+14]:arr[start+15],};}
- else if(count ==9){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],arr[start+8]:arr[start+9],arr[start+10]:arr[start+11],arr[start+12]:arr[start+13],arr[start+14]:arr[start+15],arr[start+16]:arr[start+17],};}
- else if(count >=10){return @{arr[start]:arr[start+1],arr[start+2]:arr[start+3],arr[start+4]:arr[start+5],arr[start+6]:arr[start+7],arr[start+8]:arr[start+9],arr[start+10]:arr[start+11],arr[start+12]:arr[start+13],arr[start+14]:arr[start+15],arr[start+16]:arr[start+17],arr[start+18]:arr[start+19],};}
- return [NSDictionary dictionary];
- }
|