2009-11-17 20 views
0

我只想讓它更新server_record。不要發送任何messgaes。我可以刪除什麼,所以它不會說「在線新玩家記錄是:2839」。我可以刪除query.str下的所有內容(「」);?我不知道什麼字符緩衝區[50];做。我不想把任何東西搞亂。你怎麼能得到在C + +目前的時間?我想在表格中插入當前時間。當記錄被設置時。幫我用一些C++代碼

void Game::checkPlayersRecord() 
{ 
if(getPlayersOnline() > lastPlayersRecord){ 
    Database* db = Database::instance(); 
    DBQuery query; 

    lastPlayersRecord = getPlayersOnline(); 
    query << "UPDATE `server_record` SET `record` = " << lastPlayersRecord << ";"; 
    db->executeQuery(query.str()); 
    query.str(""); 

    char buffer[50]; 
    sprintf(buffer, "New record of players online is: %d", lastPlayersRecord); 
    AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); 
    while(it != Player::listPlayer.list.end()){ 
     (*it).second->sendTextMessage(MSG_EVENT_ADVANCE, buffer); 
     ++it; 
    } 
} 
} 
+2

如果你不明白C++,請不要觸摸它......你有可能毀了別的東西 – Toad 2009-11-17 14:03:18

+1

這段代碼已經是可疑了。例如,爲什麼「檢查」函數是非const的並且正在進行更新? – MSalters 2009-11-17 14:08:08

+0

比不一致的常量更好。 一致認爲,這個功能絕對是離奇的。 – 2009-11-17 14:09:38

回答

4

更好地得到一個誰知道這個東西的人。你所要求的並不完全是火箭科學,但如果沒有經驗的人完成,仍然很容易出錯。

0

經抽檢,是的,刪除其下的一切(但不包括)query.str("");希望你有推動這一變化的生活,打破了之前的應用程序測試它的一種方式。 :)

0

這些塊的功能很明顯,除非他們有一些隱藏的東西,這是用記錄值更新數據庫的部分。

void Game::checkPlayersRecord() 
{ 
    if(getPlayersOnline() > lastPlayersRecord){ 
     Database* db = Database::instance(); 
     DBQuery query; 

     lastPlayersRecord = getPlayersOnline(); 
     query << "UPDATE `server_record` SET `record` = " << lastPlayersRecord << ";"; 
     db->executeQuery(query.str()); 
     query.str(""); 
    } 
}