uc sdk 对接封装_objctive-c++(二)

2014-11-24 08:09:02 · 作者: · 浏览: 4
n/cs/data/si/";
[userDefault setValue:hostUrl forKey:@"UCG_SDK_URL_HOST_DEBUG"];
[userDefault setValue:siUrl forKey:@"UCG_SDK_URL_SI_DEBUG"];
UCGameSdk *sdk = [UCGameSdk defaultSDK];
sdk.cpId = 4;
sdk.gameId = 4;
sdk.serverId = 11;
sdk.isDebug = YES;
sdk.logLevel = UCLOG_LEVEL_DEBUG;
sdk.allowGameUserLogin = YES;
sdk.gameUserName = @"上古世界官方帐号";
ExInfo *exInfo = [[[ExInfo alloc] init] autorelease];
exInfo.cpServiceContact = @"上古世界\n客服电话:021-50183061";//self.feedbackCPTxtTextView.text;
sdk.exInfo = exInfo;
[sdk initSDK];
}
return self;
}
- (void)onUnloginExit //登陆失败
{
if(NULL != call_backs[Login_fail] )
{
call_backs[Login_fail](NULL);
call_backs[Login_fail] = NULL;
}
}
- (void) onSdkInitFin: (NSNotification *) notification
{
NSDictionary *res = notification.userInfo;
NSNumber *code = (NSNumber *)[res objectForKey:@"code"];
if ([code intValue] == 1)
return;
[[NSNotificationCenter defaultCenter] removeObserver:self name:UCG_SDK_MSG_LOGIN_FIN object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UCG_SDK_MSG_EXIT_WITHOUT_LOGIN object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onLoginFin:) name:UCG_SDK_MSG_LOGIN_FIN object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onUnloginExit) name:UCG_SDK_MSG_EXIT_WITHOUT_LOGIN object:nil];
[[UCGameSdk defaultSDK] loginWithDelegate:self];
}
- (void) onLoginFin: (NSNotification *) notification //UC帐号登陆
{
NSDictionary *res = notification.userInfo;
NSNumber *code = (NSNumber *)[res objectForKey:@"code"];
if (code.intValue == 0)
{
if(NULL != call_backs[Login_success] )
{
call_backs[Login_success](NULL);
call_backs[Login_success] = NULL;
}
}else{
if(NULL != call_backs[Login_fail] )
{
call_backs[Login_fail](NULL);
call_backs[Login_fail] = NULL;
}
}
}
- (NSDictionary*)verifyGameUser:(NSString *)gameUser gamePassword:(NSString *)gamePassword
{
NSString *sid;
int resultCode = 0;
NSMutableDictionary *resultDict = [[[NSMutableDictionary alloc] init] autorelease];
//开线程,并且阻塞当前线持
pthread_cond_init(&thread_cond, NULL);
pthread_mutex_init(&thread_lock, NULL);
// 发用户名和和密码给我们的服务器
pthread_mutex_lock(&thread_lock);
game_user = gameUser.UTF8String;
game_passwd = gamePassword.UTF8String;
if(NULL != call_backs[Connect_send]){
call_backs[Connect_send](NULL);
call_backs[Connect_send] = NULL;
}
//func
pthread_create(&connect_to_our_server, NULL, wait_for_cour_server_replay,NULL);
pthread_cond_wait(&thread_cond,&thread_lock);
pthread_mutex_unlock(&thread_lock);
//下面继续跑,回收等待线程和其他的变量等
pthread_join(connect_to_our_server, NULL);
pthread_mutex_destroy(&thread_lock);
pthread_cond_destroy(&thread_cond);
sid = [NSString stringWithUTF8String:ucsid.c_str()];
[resultDict setV