void CTopLayer::updateActionTime(float dt) { UserData *data = DataCenter::sharedData()->getUser()->getUserData(); if (data->getRoleAction() < data->getActionLimit()) { data->setRoleAction(data->getRoleAction()+1); CLabel *action = (CLabel*)(m_ui->findWidgetById("action")); action->setString(CCString::createWithFormat("%d/%d",data->getRoleAction(),data->getActionLimit())->getCString()); data->setActionTime(data->getActionTime() + data->getInterval()*60*60); } else { this->unschedule(schedule_selector(CTopLayer::updateActionTime)); } }
//连接网关服务器成功后,服务器自动推送消息,返回网关服务器列表 bool LoginLayerUC::ProcessMsg(int type, google::protobuf::Message *msg) { m_iCurrentType = type; switch (type) { case ServerListMsg: { unschedule(schedule_selector(LoginLayerUC::scheduleForConnectGateServer)); CCLOG("ServerListMsg"); ServerList* serverInfo = (ServerList*)msg; m_serverInfo = *serverInfo; m_pLoading->setVisible(false); //没有服务器列表弹框提示 if(m_serverInfo.server_list().size()<=0) { ShowPopTextTip(GETLANGSTR(207)); return false; } //读取上一次登录选择的服务器 std::string sServerGame = CCUserDefault::sharedUserDefault()->getStringForKey(SERVER_FOR_GAME); m_iSelectServerIndex = getServerIndex(sServerGame); //读取更新服务器列表 std::string sUpdateServer = serverInfo->update_server(); if(sUpdateServer.compare("") != 0) { CCUserDefault::sharedUserDefault()->setStringForKey(SERVER_FOR_UPDATE, sUpdateServer); CCUserDefault::sharedUserDefault()->flush(); } //版本更新 bool bUpdate = GamePlatformMgr->VersionUpdateWithPlatform( serverInfo->game_version() ); if(!bUpdate) { initLogin(); } } break; case LoginResponseMsg: { LoginResponse *loginResponse = (LoginResponse *)msg; printf("%d,%d,",loginResponse->authrecode(),loginResponse->hasrole()); printf("\n name = %s ,...", loginResponse->GetDescriptor()->name().c_str()); int res =loginResponse->authrecode(); //登录成功, if (res==0) { if (loginResponse->hasrole()) { for (int i=0; i<loginResponse->rolelist_size();i++) { protos::common::Role role = loginResponse->rolelist(i); printf("role id:%d rolename:%s, rolelv: %d", role.roleid(), U8(role.rolename().c_str()),role.rolelv()); CNetClient::getShareInstance()->sendInGameReq(role.roleid()); break; } } else { m_armature->getAnimation()->play("enter"); this->runAction(CCSequence::createWithTwoActions(CCDelayTime::create(0.7f), CCCallFunc::create(this, callfunc_selector(LoginLayerUC::callbackForSound)))); removeLogin(); } } //0x01服务器人数上限,0x02账号禁止登录,0x03账号验证错误) else if (res==1) { ShowTexttip(GETLANGSTR(227),RGB_RED,0,ccp(VCENTER.x,VCENTER.y+150),0.0f,2.0f,0.0f,20.0f); } else if (res==2) { ShowTexttip(GETLANGSTR(228),RGB_RED,0,ccp(VCENTER.x,VCENTER.y+150),0.0f,2.0f,0.0f,20.0f); } else if (res==3) { ShowTexttip(GETLANGSTR(165),RGB_RED,0,ccp(VCENTER.x,VCENTER.y+150),0.0f,2.0f,0.0f,20.0f); } else if(res==4) { ShowTexttip(GETLANGSTR(1155),RGB_RED,0,ccp(VCENTER.x,VCENTER.y+150),0.0f,2.0f,0.0f,20.0f); } return true; } break; //进入游戏 case InGameResponseMsg: { InGameResponse *inRespon = (InGameResponse*)msg; protos::common::Role role = inRespon->myrole(); printf("role id:%d rolename:%s, rolelv: %d", role.roleid(), U8(role.rolename().c_str()),role.rolelv()); UserData* userData = DataCenter::sharedData()->getUser()->getUserData(); userData->setRaceType(role.rolenation()); userData->setAliveID(role.roleid()); userData->setRoleID(role.roleid()); userData->setLevel(role.rolelv()); userData->setName(role.rolename().c_str()); userData->setCoin(role.rolecoin()); userData->setExp(role.roleexp()); userData->setNextExp(role.nextexp()); userData->setRoleAction(role.roleaction()); userData->setRoleGold(role.rolegold()); userData->read(role); m_armature->getAnimation()->play("enter"); this->runAction(CCSequence::createWithTwoActions(CCDelayTime::create(0.7f), CCCallFunc::create(this, callfunc_selector(LoginLayerUC::callbackForSound)))); removeLogin(); return true; } break; default: break; } return false; }