//解析从cdkey Server返回的消息 void acceptCdkeySrv(char *buffer) { if (sock_fd != cdKeySrvFd) { return; } cout<<"the sizeof buff:"<<strlen(buffer)<<endl; char *userName; char *cdKeyId; char *heroId; char failReason[100] = {0}; char *flag; MSG_BEGIN(buffer,g_msg_len); // MSG_CHAR(userName); MSG_CHAR(heroId); // MSG_CHAR(cdKeyId); // MSG_CHAR_END(flag); Hero *myHero = heroid_to_hero(heroId); if(myHero == NULL) { cout<<"the hero is NUll:"<<heroId<<endl; return; } cout<<"userName:"******"heroId:"<<heroId<<endl; cout<<"cdKeyId:"<<cdKeyId<<endl; cout<<"flag:"<<flag<<endl; if(strncmp(flag,"0",1) == 0) { /*激活码错误*/ snprintf(failReason,sizeof(failReason),"%d,%d,0",28,3); send_msg(myHero->getFd(),failReason); cout<<"the activeCodeId is error:"<<cdKeyId<<endl; } else if(strncmp(flag,"1",1) == 0) { /*激活码已被使用*/ snprintf(failReason,sizeof(failReason),"%d,%d,1",28,3); send_msg(myHero->getFd(),failReason); cout<<"the activeCodeId is used by other:"<<cdKeyId<<endl; } //已使用激活码 else if(strncmp(flag,"2",1) == 0) { snprintf(failReason,sizeof(failReason),"%d,%d,2",28,3); send_msg(myHero->getFd(),failReason); } }
//解析从cdkey Server返回的消息 void acceptCdkeySrvSuccess(char *buffer) { if (sock_fd != cdKeySrvFd) { return; } cout<<"the sizeof buff:"<<strlen(buffer)<<endl; char *userName; char *cdKeyId; char *heroId; char *goodsId; char *type; char failReason[100] = {0}; int flag = 0; MSG_BEGIN(buffer,g_msg_len); MSG_CHAR(userName); MSG_CHAR(heroId); MSG_CHAR(cdKeyId); MSG_CHAR(goodsId); MSG_CHAR_END(type); Hero *myHero = heroid_to_hero(heroId); if(myHero == NULL) { cout<<"the hero is NUll:"<<heroId<<endl; return; } if(type[0] == '0') { myHero->useActiveCode(cdKeyId,0); } else { myHero->useActiveCode(cdKeyId,1); } /*成功激活验证码*/ snprintf(failReason,sizeof(failReason),"%d,%d,3",28,3); send_msg(myHero->getFd(),failReason); saveGoodsInBag(myHero,goodsId,1); char account_msg[1024]={'\0'}; snprintf(account_msg,sizeof(account_msg),"%d,%d,%s,%d,%s,%s,%s,%s",20,0,server_name,(int)myTime.tv_sec,myHero->getIdentity(),myHero->getNickName(),pg_role->getUserName(),cdKeyId); write_log(account_msg); }