summaryrefslogtreecommitdiff
path: root/html/import/import_weapons.php
diff options
context:
space:
mode:
Diffstat (limited to 'html/import/import_weapons.php')
-rwxr-xr-xhtml/import/import_weapons.php209
1 files changed, 209 insertions, 0 deletions
diff --git a/html/import/import_weapons.php b/html/import/import_weapons.php
new file mode 100755
index 0000000..5d59a3f
--- /dev/null
+++ b/html/import/import_weapons.php
@@ -0,0 +1,209 @@
+<?php
+
+// Read all available weapons, we'll need them later
+if (!isset($weaponnames)) {
+ $sql_weaponnames = "SELECT id, name FROM uts_weapons";
+ $q_weaponnames = mysql_query($sql_weaponnames);
+ while ($r_weaponnames = mysql_fetch_array($q_weaponnames)) {
+ $weaponnames[$r_weaponnames['name']] = $r_weaponnames['id'];
+ }
+}
+
+
+// Get all kills by weapon
+$sql_weapons = " SELECT col2 AS player,
+ col3 AS weaponname,
+ COUNT(*) AS kills
+ FROM uts_temp_$uid
+ WHERE col1 = 'kill'
+ OR col1 = 'teamkill'
+ GROUP BY weaponname, player";
+
+$q_weapons = mysql_query($sql_weapons) or die(mysql_error());
+$weapons = array();
+while ($r_weapons = mysql_fetch_array($q_weapons)) {
+
+ // Get the wepon's id or assign a new one
+ if (empty($r_weapons['weaponname'])) continue;
+ if (isset($weaponnames[$r_weapons['weaponname']])) {
+ $weaponid = $weaponnames[$r_weapons['weaponname']];
+ } else {
+ mysql_query("INSERT INTO uts_weapons SET name = '". addslashes($r_weapons['weaponname']) ."'") or die(mysql_error());
+ $weaponid = mysql_insert_id();
+ $weaponnames[$r_weapons['weaponname']] = $weaponid;
+ }
+
+ // Get the unique pid of this player
+ if (!isset($playerid2pid[$r_weapons['player']])) {
+ continue;
+ } else {
+ $pid = $playerid2pid[$r_weapons['player']];
+ }
+
+ $weapons[$pid][$weaponid] = array(
+ 'weap_kills' => $r_weapons['kills'],
+ 'weap_shotcount' => 0,
+ 'weap_hitcount' => 0,
+ 'weap_damagegiven' => 0,
+ 'weap_accuracy' => 0
+ );
+
+
+}
+
+
+// Get the weapon statistics
+$sql_weapons = " SELECT col1 AS type,
+ col2 AS weaponname,
+ col3 AS player,
+ col4 AS value
+ FROM uts_temp_$uid
+ WHERE col1 LIKE 'weap_%'";
+
+$q_weapons = mysql_query($sql_weapons) or die(mysql_error());
+while ($r_weapons = mysql_fetch_array($q_weapons)) {
+ // Get the wepon's id or assign a new one
+ if (empty($r_weapons['weaponname'])) continue;
+ if (isset($weaponnames[$r_weapons['weaponname']])) {
+ $weaponid = $weaponnames[$r_weapons['weaponname']];
+ } else {
+ mysql_query("INSERT INTO uts_weapons SET name = '". addslashes($r_weapons['weaponname']) ."'") or die(mysql_error());
+ $weaponid = mysql_insert_id();
+ $weaponnames[$r_weapons['weaponname']] = $weaponid;
+ }
+
+ // Get the unique pid of this player
+ if (!isset($playerid2pid[$r_weapons['player']])) {
+// Happens if we're ignoring bots or banned players
+ continue;
+ } else {
+ $pid = $playerid2pid[$r_weapons['player']];
+ }
+
+ if (!isset($weapons[$pid][$weaponid]['weap_kills'])) {
+ $weapons[$pid][$weaponid] = array(
+ 'weap_kills' => 0,
+ 'weap_shotcount' => 0,
+ 'weap_hitcount' => 0,
+ 'weap_damagegiven' => 0,
+ 'weap_accuracy' => 0
+ );
+ }
+
+ $weapons[$pid][$weaponid][$r_weapons['type']] = $r_weapons['value'];
+}
+
+
+// Finally write the weapon statistics for this match
+$s_weapons = array();
+foreach($weapons as $playerid => $weapon) {
+ foreach($weapon as $weaponid => $infos) {
+ if ($infos['weap_kills'] == 0 and $infos['weap_shotcount'] == 0) continue;
+ mysql_query(" INSERT
+ INTO uts_weaponstats
+ SET matchid = '$matchid',
+ pid = '$playerid',
+ weapon = '$weaponid',
+ kills = '${infos['weap_kills']}',
+ shots = '${infos['weap_shotcount']}',
+ hits= '${infos['weap_hitcount']}',
+ damage = '${infos['weap_damagegiven']}',
+ acc = '". round($infos['weap_accuracy'], 2) ."';") or die(mysql_error());
+
+ // Summarize totals for this match
+ if (!isset($s_weapons[$weaponid]['weap_kills'])) {
+ $s_weapons[$weaponid]['weap_kills'] = $infos['weap_kills'];
+ $s_weapons[$weaponid]['weap_shotcount'] = $infos['weap_shotcount'];
+ $s_weapons[$weaponid]['weap_hitcount'] = $infos['weap_hitcount'];
+ $s_weapons[$weaponid]['weap_damagegiven'] = $infos['weap_damagegiven'];
+ $s_weapons[$weaponid]['weap_accuracy'] = $infos['weap_accuracy'];
+ } else {
+ $s_weapons[$weaponid]['weap_kills'] += $infos['weap_kills'];
+ $s_weapons[$weaponid]['weap_shotcount'] += $infos['weap_shotcount'];
+ $s_weapons[$weaponid]['weap_hitcount'] += $infos['weap_hitcount'];
+ $s_weapons[$weaponid]['weap_damagegiven'] += $infos['weap_damagegiven'];
+ $s_weapons[$weaponid]['weap_accuracy'] = ($s_weapons[$weaponid]['weap_accuracy'] + $infos['weap_accuracy']) / 2;
+ }
+ }
+}
+
+
+// Update the player's weapon statistics (matchid 0);
+foreach($weapons as $playerid => $weapon) {
+ foreach($weapon as $weaponid => $infos) {
+ if ($infos['weap_kills'] == 0 and $infos['weap_shotcount'] == 0) continue;
+ // Check whether a record for this player and weapon already
+ // exists
+ $r_pstat = small_query(" SELECT pid
+ FROM uts_weaponstats
+ WHERE matchid = '0'
+ AND pid = '$playerid'
+ AND weapon = '$weaponid'");
+ // No -> create
+ if (!$r_pstat) {
+ mysql_query(" INSERT
+ INTO uts_weaponstats
+ SET matchid = '0',
+ pid = '$playerid',
+ weapon = '$weaponid',
+ kills = '${infos['weap_kills']}',
+ shots = '${infos['weap_shotcount']}',
+ hits= '${infos['weap_hitcount']}',
+ damage = '${infos['weap_damagegiven']}',
+ acc = '". round($infos['weap_accuracy'], 2) ."';") or die(mysql_error());
+ // Yes -> update
+ } else {
+ mysql_query(" UPDATE uts_weaponstats
+ SET weapon = '$weaponid',
+ kills = kills + '${infos['weap_kills']}',
+ shots = shots + '${infos['weap_shotcount']}',
+ hits = hits + '${infos['weap_hitcount']}',
+ damage = damage + '${infos['weap_damagegiven']}',
+ acc = (acc + '". round($infos['weap_accuracy'], 2) ."') / 2
+ WHERE matchid = '0'
+ AND pid = '$playerid'
+ AND weapon = '$weaponid';") or die(mysql_error());
+ }
+ }
+}
+
+// Update the global weapon statistics (matchid 0, playerid 0 );
+foreach($s_weapons as $weaponid => $infos) {
+ if ($infos['weap_kills'] == 0 and $infos['weap_shotcount'] == 0) continue;
+ // Check whether the global record for this weapon already exists
+ $r_pstat = small_query(" SELECT pid
+ FROM uts_weaponstats
+ WHERE matchid = '0'
+ AND pid = '0'
+ AND weapon = '$weaponid'");
+ // No -> create
+ if (!$r_pstat) {
+ mysql_query(" INSERT
+ INTO uts_weaponstats
+ SET matchid = '0',
+ pid = '0',
+ weapon = '$weaponid',
+ kills = '${infos['weap_kills']}',
+ shots = '${infos['weap_shotcount']}',
+ hits= '${infos['weap_hitcount']}',
+ damage = '${infos['weap_damagegiven']}',
+ acc = '". round($infos['weap_accuracy'], 2) ."';") or die(mysql_error());
+ // Yes -> update
+ } else {
+ mysql_query(" UPDATE uts_weaponstats
+ SET weapon = '$weaponid',
+ kills = kills + '${infos['weap_kills']}',
+ shots = shots + '${infos['weap_shotcount']}',
+ hits = hits + '${infos['weap_hitcount']}',
+ damage = damage + '${infos['weap_damagegiven']}',
+ acc = (acc + '". round($infos['weap_accuracy'], 2) ."') / 2
+ WHERE matchid = '0'
+ AND pid = '0'
+ AND weapon = '$weaponid';") or die(mysql_error());
+ }
+}
+
+
+
+
+?> \ No newline at end of file