Guest User

Untitled

a guest
Mar 5th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.99 KB | None | 0 0
  1. <?php
  2. include_once("/var/www/html/stats/DigitalPaintServer.php");
  3. $textcleaner = new DigitalPaintServer("127.0.0.1");
  4. $filename = '/home/guvnr/pball/normal/paintball2/pub.log';
  5. $db_user = "root"; // Username
  6. $db_pass = "password"; // Password
  7. $db_database = "dpstats"; // Database Name
  8. $db_host = "localhost"; // Server Hostname
  9. $guns = array('PGP','Trracer','Stingray','VM-68','Spyder SE','Carbine','Automag','Autococker','Grenade');
  10. $scores = array (
  11. 'total PGP' => array ( '1' => 15, '2' => 10, '3' => 5 ),
  12. 'total Trracer kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  13. 'total Stingray kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  14. 'total VM-68 kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  15. 'total Spyder SE kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  16. 'total Carbine kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  17. 'total Automag kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  18. 'total Autococker kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  19. 'total Grenade kills' => array ( '1' => 5, '2' => 2, '3' => 1 ),
  20. 'total suicides' => array ( '1' => -10, '2' => -7, '3' => -4 ),
  21. 'total kills' => array ( '1' => 10, '2' => 7, '3' => 4 ),
  22. 'kill:death ratio' => array ( '1' => 10, '2' => 7, '3' => 4 ),
  23. 'Killstreak' => array ( '1' => 10, '2' => 7, '3' => 4 ),
  24. 'Deathstreak' => array ( '1' => -25, '2' => -15, '3' => -7 ),
  25. );
  26.  
  27. /*############ My SQL Functions ###############*/
  28.  
  29. function _dbconnect()
  30. {
  31. global $db_user;
  32. global $db_pass;
  33. global $db_database;
  34. global $db_host;
  35. $link = mysql_connect($db_host, $db_user, $db_pass);
  36. if (!$link) { die('Not connected : ' . mysql_error()); }
  37. $db_selected = mysql_select_db($db_database, $link);
  38. if (!$db_selected) { die ('Can\'t use '.$db_database.' : ' . mysql_error()); }
  39. }
  40.  
  41. //_dbupdate executes a SQL statement, i.e for UPDATE, DROP etc statements.
  42. function _dbupdate ($sql)
  43. {
  44. _dbconnect();
  45. $result = mysql_query($sql);
  46. if (!$result) {
  47. die("\n ".'<br><font color="red"><b>Invalid query:</b></font> ' . mysql_error());
  48. }
  49. mysql_close();
  50. }
  51.  
  52. // _dbquery returns an array from a SELECT statement (OLD NON ZEND)
  53. function _isitindb ($sql)
  54. {
  55. // Connect to the database
  56. _dbconnect();
  57. $result = mysql_query($sql);
  58. $num_rows = mysql_num_rows($result);
  59. if ($num_rows > 0) {
  60. return true; } else {
  61. return false;
  62. }
  63.  
  64. }
  65.  
  66. function _dbquery ($sql,$type=MYSQL_ASSOC,$print=false) // type MYSQL_ASSOC , MYSQL_NUM , MYSQL_BOTH
  67. {
  68. _dbconnect();
  69. echo mysql_error();
  70. $query = mysql_query($sql);
  71. $i=0;
  72. while ($results = mysql_fetch_array($query,$type))
  73. {
  74. $output[$i]=$results;
  75. $i++;
  76. }
  77.  
  78. if ($print == true)
  79. {
  80. echo '<pre>';
  81. print_r($output);
  82. echo '</pre>';
  83. }
  84. return $output;
  85. if ($_GET['debug'] =='true') { echo '<span class="debug">Debug! '.$sql.'</span>'; };
  86. mysql_close();
  87. }
  88. /*############ End of MYSQL Functions ###############*/
  89.  
  90. $handle = fopen($filename, "r");
  91. $lines = file($filename);
  92. fclose($handle);
  93. $i=0;$gameid=0;$added=0;
  94. _dbupdate ("TRUNCATE TABLE `log`");
  95. foreach ($lines as $line => $item)
  96. {
  97. $line++;
  98. $lineitem=explode("\\t",preg_replace("/\t/","\\t",$item)); // Explode on Tab!
  99. //print_r($lineitem);echo '<br>';
  100. switch ($lineitem[2]){
  101. case "Map":
  102. $game['Map']=trim($lineitem[3]);
  103. break;
  104. case "LogDate":
  105. $game['LogDate']=trim($lineitem[3]);
  106. break;
  107. case "LogTime":
  108. $game['LogTime']=trim($lineitem[3]);
  109. break;
  110. case "Kill":
  111. $databaseline[$i]=array('gamedate' => $game['LogTime'],
  112. 'gametime' => $game['LogTime'],
  113. 'map' => $game['Map'],
  114. 'timeindex'=> $lineitem[5],
  115. 'action' => 'Kill',
  116. 'who' => $textcleaner->clean_funname($lineitem[0],true),
  117. 'target' => $textcleaner->clean_funname($lineitem[1],true),
  118. 'weapon' => $lineitem[3],
  119. );
  120.  
  121. $checksql="SELECT `id` FROM `log` WHERE `gamedate` = '".mysql_escape_string($databaseline[$i]['gamedate'])."' AND `gametime` = '".mysql_escape_string($databaseline[$i]['gametime'])."' AND `map` = '".mysql_escape_string($databaseline[$i]['map'])."' AND `target` = '".mysql_escape_string($databaseline[$i]['target'])."' AND `who` = '".mysql_escape_string($databaseline[$i]['who'])."' AND `timeindex` = '".mysql_escape_string($databaseline[$i]['timeindex'])."';";
  122. if (!_isitindb($checksql))
  123. {
  124. $addsql="INSERT INTO `".$db_database."`.`log` ( `id` , `gamedate` , `gametime` , `map` , `timeindex` , `action` , `who` , `target` , `weapon` )
  125. VALUES ( NULL , '".mysql_escape_string($databaseline[$i]['gamedate'])."', '".mysql_escape_string($databaseline[$i]['gametime'])."', '".mysql_escape_string($databaseline[$i]['map'])."', '".mysql_escape_string($databaseline[$i]['timeindex'])."', '".$databaseline[$i]['action']."', '".mysql_escape_string($databaseline[$i]['who'])."', '".mysql_escape_string($databaseline[$i]['target'])."', '".mysql_escape_string($databaseline[$i]['weapon'])."'); ";
  126. _dbupdate ($addsql);
  127. $killstreak[$databaseline[$i]['who']]['name'] = $databaseline[$i]['who'];
  128. $killstreak[$databaseline[$i]['who']]['current']++; // add one to the current kill streak;
  129. $killstreak[$databaseline[$i]['target']]['current']=0; // reset the targets kill streak;
  130. $deathstreak[$databaseline[$i]['target']]['name'] = $databaseline[$i]['target'];
  131. $deathstreak[$databaseline[$i]['target']]['current']++; // add one to the current death streak;
  132. $deathstreak[$databaseline[$i]['who']]['current']=0; // reset the targets death streak;
  133. if ($killstreak[$databaseline[$i]['who']]['current'] > $killstreak[$databaseline[$i]['who']]['highest'])
  134. {
  135. $killstreak[$databaseline[$i]['who']]['highest'] = $killstreak[$databaseline[$i]['who']]['current'];
  136. }
  137. if ($deathstreak[$databaseline[$i]['target']]['current'] > $deathstreak[$databaseline[$i]['target']]['highest'])
  138. {
  139. $deathstreak[$databaseline[$i]['target']]['highest'] = $deathstreak[$databaseline[$i]['target']]['current'];
  140. }
  141. $added++;
  142. }
  143. break;
  144. case "Suicide":
  145. $databaseline[$i]=array('gamedate' => $game['LogTime'],
  146. 'gametime' => $game['LogTime'],
  147. 'map' => $game['Map'],
  148. 'timeindex'=> $lineitem[5],
  149. 'action' => 'Suicide',
  150. 'who' => $textcleaner->clean_funname($lineitem[0],true),
  151. 'target' => 'Self',
  152. 'weapon' => $lineitem[3],
  153. );
  154.  
  155. $checksql="SELECT `id` FROM `log` WHERE `gamedate` = '".mysql_escape_string($databaseline[$i]['gamedate'])."' AND `gametime` = '".mysql_escape_string($databaseline[$i]['gametime'])."' AND `map` = '".mysql_escape_string($databaseline[$i]['map'])."' AND `target` = '".mysql_escape_string($databaseline[$i]['target'])."' AND `who` = '".mysql_escape_string($databaseline[$i]['who'])."' AND `timeindex` = '".mysql_escape_string($databaseline[$i]['timeindex'])."';";
  156. if (!_isitindb($checksql))
  157. {
  158. $addsql="INSERT INTO `".$db_database."`.`log` ( `id` , `gamedate` , `gametime` , `map` , `timeindex` , `action` , `who` , `target` , `weapon` )
  159. VALUES ( NULL , '".mysql_escape_string($databaseline[$i]['gamedate'])."', '".mysql_escape_string($databaseline[$i]['gametime'])."', '".mysql_escape_string($databaseline[$i]['map'])."', '".mysql_escape_string($databaseline[$i]['timeindex'])."', '".$databaseline[$i]['action']."', '".mysql_escape_string($databaseline[$i]['who'])."', '".mysql_escape_string($databaseline[$i]['target'])."', '".mysql_escape_string($databaseline[$i]['weapon'])."'); ";
  160. _dbupdate ($addsql);
  161. $killstreak[$databaseline[$i]['who']]['current']=0; // reset kill streak for suicides
  162. $added++;
  163. }
  164.  
  165. break;
  166.  
  167. }
  168. $i++;
  169. }
  170.  
  171. // deprecated include ('awardsupdate.php');
  172. ?>
  173. Added <?php echo $added ?>
  174. <?php
  175. //stats table update
  176. $statsallplayers = _dbquery("SELECT DISTINCT who FROM log",MYSQL_ASSOC);
  177. _dbupdate("DELETE FROM `stats`");
  178. foreach ($statsallplayers as $player)
  179. {
  180. //run through and get each players total kills etc.
  181.  
  182. $escapedPlayerName = mysql_escape_string($player['who']);
  183. $kills = _dbquery("SELECT action, COUNT(*) FROM log WHERE who = '".$escapedPlayerName."' AND action = 'Kill' GROUP BY action ORDER BY COUNT(*) DESC",MYSQL_ASSOC);
  184. $kills = $kills[0]['COUNT(*)']+1;
  185. $kills = $kills -1; // stupid thing to make null entries 0 not null
  186. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`,`good`) VALUES ( '".$escapedPlayerName."','total kills','".$kills."',1);");
  187. $killsforscore[$player['who']] = $kills;
  188. $suicides = _dbquery("SELECT action, COUNT(*) FROM log WHERE who = '".$player['who']."' AND action = 'Suicide' GROUP BY action ORDER BY COUNT(*) DESC",MYSQL_ASSOC);
  189. $suicides = $suicides[0]['COUNT(*)']+1;
  190. $suicides = $suicides -1;
  191. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`,`good`) VALUES ( '".$escapedPlayerName."','total suicides','".$suicides."',0);");
  192. $suicidesforscore[$player['who']]= $suicides;
  193.  
  194.  
  195. $deaths = _dbquery("SELECT action, COUNT(*) FROM log WHERE target = '".$player['who']."' GROUP BY action",MYSQL_ASSOC);
  196. $deaths = $deaths[0]['COUNT(*)']+1;
  197. $deaths = $deaths -1;
  198. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`) VALUES ( '".$escapedPlayerName."','total deaths','".$deaths."');");
  199. if ($deaths > 0) { $k2d = round($kills/$deaths,1)*10; } else { $k2d = 0; }
  200. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`,`good`) VALUES ( '".$escapedPlayerName."','kill:death ratio','".$k2d."',1);");
  201.  
  202. foreach ($guns as $gun)
  203. {
  204. $gunkills = _dbquery("SELECT action, COUNT(*) FROM log WHERE who = '".$escapedPlayerName."' AND action = 'Kill' AND weapon = '".$gun."' GROUP BY action",MYSQL_ASSOC);
  205. $gunkills = $gunkills[0]['COUNT(*)']+1;
  206. $gunkills = $gunkills-1;
  207. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`, `good`) VALUES ( '".$escapedPlayerName."','total ".$gun." kills','".$gunkills."', 1);");
  208. }
  209. }
  210. // Kill streak
  211. foreach ($killstreak as $streak)
  212. {
  213. if ($streak['highest']) {
  214. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`, `good`) VALUES ( '".$escapedPlayerName."','Killstreak','".$streak['highest']."', 1);");
  215. }
  216. }
  217. foreach ($deathstreak as $streak)
  218. {
  219. if ($streak['highest']) {
  220. _dbupdate("INSERT INTO `".$db_database."`.`stats` (`playername`, `stat`, `figure`, `good`) VALUES ( '".$escapedPlayerName."','Deathstreak','".$streak['highest']."', 0);");
  221. }
  222. }
  223. // Go through stats and apply ranks and bonus points
  224. $alltypesofstat = _dbquery("SELECT DISTINCT stat from stats",MYSQL_ASSOC);
  225. foreach ($alltypesofstat as $thing)
  226. {
  227. //echo $thing['stat'].'<br>';
  228. $ranks = _dbquery("SELECT * from stats WHERE stat = '".$thing['stat']."' ORDER by figure DESC",MYSQL_ASSOC);
  229. $i=1;
  230. foreach ($ranks as $rank)
  231. {
  232. if (isset($scores[$thing['stat']][$i]) && $rank['figure'] > 5 ) { $points = $scores[$thing['stat']][$i]; } else { $points = 0; }
  233. _dbupdate("UPDATE `".$db_database."`.`stats` SET `rank` = '".$i."', `points` = '".$points."' WHERE CONVERT( `stats`.`playername` USING utf8 ) = '".$rank['playername']."' AND CONVERT( `stats`.`stat` USING utf8 ) = '".$thing['stat']."' AND `stats`.`figure` =".$rank['figure']." AND `stats`.`rank` =".$rank['rank']." LIMIT 1 ;");
  234. $i++;
  235. }
  236. }
  237.  
  238. // Lets total the scores up, oh yes lets!
  239. foreach ($statsallplayers as $player)
  240. {
  241. $totalawardscores = _dbquery("SELECT sum(points) FROM stats WHERE playername = '".$player['who']."' AND points != 0",MYSQL_ASSOC);
  242. $totalscore = $totalawardscores[0]['sum(points)'];
  243. $totalscore = $totalscore + ($suicidesforscore[$player['who']] - ($suicidesforscore[$player['who']]*2)) + $killsforscore[$player['who']];
  244. _dbupdate ("INSERT INTO `".$db_database."`.`stats` (`playername` ,`stat` ,`figure` ,`rank` ,`points`) VALUES ('".$escapedPlayerName."', 'total score', '".$totalscore."', 0, 0);");
  245. }
  246.  
  247. ?>Stats updated
  248.  
  249. <?php // add scores into db show you can show what gets scored what
  250. /*_dbupdate("DELETE FROM `scores`"); // remove previous scores
  251. foreach ($scores as $score)
  252. {
  253. _dbupdate ("INSERT INTO `".$db_database."`.`scores` (`award` ,`place` ,`points`) VALUES ('".key($score)."', '".key($point)."', '".$point."');");
  254.  
  255.  
  256.  
  257. }*/
  258. ?>
  259. <pre>
  260. <?php print_r($killstreak);
  261. print_r($deathstreak);
  262. ?></pre>
Add Comment
Please, Sign In to add comment