diff --git a/sql/select_statements.usql b/sql/select_statements.usql index 3d509ba..eefc7a0 100644 --- a/sql/select_statements.usql +++ b/sql/select_statements.usql @@ -29,9 +29,9 @@ WHERE games.gamenumber IN (SELECT DISTINCT gamenumber FROM OASTAT_KILLS) AND games.mapname = 'dm4ish'; -- Top players on dm4ish -SELECT p.nickname, count(0) AS kills FROM OASTAT_PLAYERS p, OASTAT_KILLS k -WHERE k.attacker = p.guid AND k.gamenumber IN (SELECT gamenumber FROM OASTAT_GAMES WHERE LOWER(mapname) = 'dm4ish') -GROUP BY p.guid,p.nickname ORDER BY kills DESC; +SELECT p.nickname, count(0) AS kills FROM oastat_players p, oastat_kills k +WHERE k.attacker = p.playerid AND k.gamenumber IN (SELECT gamenumber FROM oastat_games WHERE LOWER(mapname) = 'dm4ish') +GROUP BY p.playerid,p.nickname ORDER BY kills DESC; --Top killers on the server SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k diff --git a/sql/somesql.usql b/sql/somesql.usql index 4bc6001..9f511e3 100644 --- a/sql/somesql.usql +++ b/sql/somesql.usql @@ -113,4 +113,23 @@ SELECT MAX(gamenumber) FROM OASTAT_GAMES; INSERT INTO oastat_games(gametype, mapname, basegame) VALUES (0,'dm4ish','baseoa'); -INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4857,14989,'^3^^8/Eli^7te/^3-^3^^8VeRt^7!go^3*',0,'tony/default',-1); \ No newline at end of file +INSERT INTO oastat_userinfo(gamenumber,second,guid,team,model,skill) VALUES (4857,14989,'^3^^8/Eli^7te/^3-^3^^8VeRt^7!go^3*',0,'tony/default',-1); + +( +SELECT s.player, s.second, s.score +FROM oastat_points s +WHERE s.gamenumber =140 +ORDER BY SECOND +) +UNION ALL ( + +SELECT s.player, g.second, s.score +FROM oastat_games g, oastat_points s +WHERE g.gamenumber = s.gamenumber +AND g.gamenumber =140 +AND s.eventnumber = ( +SELECT max( maxs.eventnumber ) +FROM oastat_points maxs +WHERE maxs.player = s.player +AND maxs.gamenumber = g.gamenumber ) +) diff --git a/src/oastat.cpp b/src/oastat.cpp index 5d1fe21..b96c051 100644 --- a/src/oastat.cpp +++ b/src/oastat.cpp @@ -23,6 +23,7 @@ Copyright (C) 2010 Poul Sander (oastat@poulsander.com) #include #include +#include #include #include #include @@ -70,6 +71,7 @@ Database *db; vector commands; + /** * This function adds objects that are inherited from the Struct2Db class * to the vector commands. @@ -103,6 +105,7 @@ int main (int argc, const char* argv[]) string dbargs = ""; string filename = ""; string backend = "DbiXX"; + bool useTail = false; ///////////// dbargs = "mysql dbname oastat username poul"; filename = "/home/poul/.openarena/elimination/games.log"; @@ -117,6 +120,9 @@ int main (int argc, const char* argv[]) i++; filename = string(argv[i]); } + if(string(argv[i]) == "-tail") { + useTail = true; + } if(string(argv[i]) == "-backend" && onemore) { i++; backend = string(argv[i]); @@ -163,8 +169,13 @@ int main (int argc, const char* argv[]) addCommands(); if(filename.length()>0) { - ifstream in(filename.c_str(),ifstream::in); - processStdIn(&in); + if(useTail) { + redi::ipstream in("tail -s 1 -f "+filename); + processStdIn(&in); + } else { + ifstream in(filename.c_str(),ifstream::in); + processStdIn(&in); + } } else processStdIn(&cin);