314 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			314 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
    if ( !defined('IN_UPDATER') )
 | 
						|
    {
 | 
						|
        die('Do not access this file directly.');
 | 
						|
    }
 | 
						|
 | 
						|
    $dbversion = 69;
 | 
						|
    $version = "1.6.16";
 | 
						|
    $tfgames = array();
 | 
						|
    $result = $db->query("SELECT code FROM hlstats_Games WHERE realgame = 'tf'");
 | 
						|
    while ($rowdata = $db->fetch_row($result))
 | 
						|
    { 
 | 
						|
    array_push($tfgames, $db->escape($rowdata[0]));
 | 
						|
    }
 | 
						|
    
 | 
						|
    
 | 
						|
     // Tracker #1546 - Add additional Team Fortress 2 weapons to database.
 | 
						|
    print "Adding new Team Fortress 2 weapons.";
 | 
						|
    // Weapons
 | 
						|
    // Name is the name of the weapon
 | 
						|
    // Verb is the "action" described on the award
 | 
						|
    // Modifier is used to adjust points given for a kill with the weapon
 | 
						|
    // Award name sets the name of the award
 | 
						|
    $weapons = array(
 | 
						|
        array(
 | 
						|
            "weapon_code" => "eureka_effect",
 | 
						|
            "weapon_name" => "Eureka Effect",
 | 
						|
            "award_verb" => "Eureka Effect kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Eureka!"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "holiday_punch",
 | 
						|
            "weapon_name" => "Holiday Punch",
 | 
						|
            "award_verb" => "Holiday Punch kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "The Gift of Punch"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "manmelter",
 | 
						|
            "weapon_name" => "Manmelter",
 | 
						|
            "award_verb" => "Manmelter kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Melted Men"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "phlogistinator",
 | 
						|
            "weapon_name" => "Phlogistinator",
 | 
						|
            "award_verb" => "Phlogistinator kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Phlogged"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "pomson",
 | 
						|
            "weapon_name" => "Pomson 6000",
 | 
						|
            "award_verb" => "Pomson 6000 kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Convenient Radiation"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "spy_cicle",
 | 
						|
            "weapon_name" => "Spy-cicle",
 | 
						|
            "award_verb" => "Spy-cicle kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Cold as ice"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "thirddegree",
 | 
						|
            "weapon_name" => "Third Degree",
 | 
						|
            "award_verb" => "Third Degree kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Ooooh burn!"),
 | 
						|
        array(
 | 
						|
            "weapon_code" => "wrap_assassin",
 | 
						|
            "weapon_name" => "Wrap Assassin",
 | 
						|
            "award_verb" => "Wrap Assassin kills",
 | 
						|
            "modifier" => "2.00",
 | 
						|
            "award_name" => "Wrapping Machine")
 | 
						|
    );
 | 
						|
 | 
						|
    foreach ($tfgames as $game)
 | 
						|
    {
 | 
						|
        // Get list of all Team Fortress 2 servers so we can update weapon counts later.
 | 
						|
        $tfservers = array();
 | 
						|
        $result = $db->query("SELECT serverId FROM hlstats_Servers WHERE game = '$game'");
 | 
						|
        while ($rowdata = $db->fetch_row($result))
 | 
						|
        {
 | 
						|
            array_push($tfservers, $db->escape($rowdata[0]));
 | 
						|
        }
 | 
						|
        if (count($tfservers) > 0)
 | 
						|
        {
 | 
						|
            $serverstring = implode (',', $tfservers);
 | 
						|
        }
 | 
						|
 | 
						|
        // Insert actions
 | 
						|
        print "Adding new actions for game $game.<br />";
 | 
						|
        if (isset($actions) && count($actions) > 0)
 | 
						|
        {
 | 
						|
            $action_query = "INSERT IGNORE INTO `hlstats_Actions` (`game`, `code`, `reward_player`, `reward_team`, `team`, `description`, `for_PlayerActions`, `for_PlayerPlayerActions`, `for_TeamActions`, `for_WorldActions`) VALUES ";
 | 
						|
            $award_query = "INSERT IGNORE INTO `hlstats_Awards` (`awardType`, `game`, `code`, `name`, `verb`) VALUES ";
 | 
						|
            $ribbon_query = "INSERT IGNORE INTO `hlstats_Ribbons` (`awardCode`, `awardCount`, `special`, `game`, `image`, `ribbonName`) VALUES ";
 | 
						|
            // Insert actions
 | 
						|
            foreach ($actions as $key => $action)
 | 
						|
            {
 | 
						|
                // Insert actions into Actions table
 | 
						|
                $action_query .= "(
 | 
						|
                    '$game',
 | 
						|
                    '".$db->escape($action['code'])."',
 | 
						|
                    '".$db->escape($action['reward_player'])."',
 | 
						|
                    '".$db->escape($action['reward_team'])."',
 | 
						|
                    '".$db->escape($action['team'])."',
 | 
						|
                    '".$db->escape($action['description'])."',
 | 
						|
                    '".$db->escape($action['for_PlayerActions'])."',
 | 
						|
                    '".$db->escape($action['for_PlayerPlayerActions'])."',
 | 
						|
                    '".$db->escape($action['for_TeamActions'])."',
 | 
						|
                    '".$db->escape($action['for_WorldActions'])."')" .
 | 
						|
                    // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                    ($key == count($actions)-1 ? ";" : ",");
 | 
						|
                
 | 
						|
                if ($action['award_name'] != "")
 | 
						|
                {
 | 
						|
                    $award_query .= "(
 | 
						|
                        '".$db->escape($action['award_type'])."',
 | 
						|
                        '$game',
 | 
						|
                        '".$db->escape($action['code'])."',
 | 
						|
                        '".$db->escape($action['award_name'])."',
 | 
						|
                        '".$db->escape($action['award_verb'])."')" .
 | 
						|
                        // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                        ($key == count($actions)-1 ? ";" : ",");
 | 
						|
                    
 | 
						|
                        // Insert actions into Ribbons table
 | 
						|
                        for ($ribbon_count = 1; $ribbon_count <= 3; $ribbon_count++)
 | 
						|
                        {
 | 
						|
                            switch ($ribbon_count) {
 | 
						|
                                case 1:
 | 
						|
                                    $color = "Bronze";
 | 
						|
                                    $award_count = 1;
 | 
						|
                                    break;
 | 
						|
                                case 2:
 | 
						|
                                    $color = "Silver";
 | 
						|
                                    $award_count = 5;
 | 
						|
                                    break;
 | 
						|
                                case 3:
 | 
						|
                                    $color = "Gold";
 | 
						|
                                    $award_count = 10;
 | 
						|
                                    break;
 | 
						|
                        }
 | 
						|
                        $ribbon_query .= "(
 | 
						|
                        '".$db->escape($action['code'])."',
 | 
						|
                        $award_count,
 | 
						|
                        0,
 | 
						|
                        '$game',
 | 
						|
                        '".$ribbon_count."_".$db->escape($action['code']).".png',
 | 
						|
                        '$color " .$db->escape($action['description']) . "')" .
 | 
						|
                        // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                        ($key == count($actions)-1 && $ribbon_count == 3 ? ";" : ",");
 | 
						|
                        }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            $db->query($action_query);
 | 
						|
            $db->query($award_query);
 | 
						|
            $db->query($ribbon_query);
 | 
						|
            unset($action_query);
 | 
						|
            unset($award_query);
 | 
						|
            unset($ribbon_query);
 | 
						|
        }
 | 
						|
 | 
						|
        // Insert awards
 | 
						|
        print "Adding new awards for game $game.<br />";
 | 
						|
        if (isset($awards) && count($awards) > 0)
 | 
						|
        {
 | 
						|
            $award_query = "INSERT IGNORE INTO `hlstats_Awards` (`awardType`, `game`, `code`, `name`, `verb`) VALUES ";
 | 
						|
            $ribbon_query = "INSERT IGNORE INTO `hlstats_Ribbons` (`awardCode`, `awardCount`, `special`, `game`, `image`, `ribbonName`) VALUES ";
 | 
						|
            
 | 
						|
            foreach ($awards as $key => $award)
 | 
						|
            {
 | 
						|
                // Insert awards into Awards table
 | 
						|
                $award_query .= "(
 | 
						|
                    '".$db->escape($award['type'])."',
 | 
						|
                    '$game',
 | 
						|
                    '".$db->escape($award['code'])."',
 | 
						|
                    '".$db->escape($award['award_name'])."',
 | 
						|
                    '".$db->escape($award['award_verb'])."')" .
 | 
						|
                    // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                    ($key == count($awards)-1 ? ";" : ",");
 | 
						|
                
 | 
						|
                // Insert awards into Ribbons table
 | 
						|
                for ($ribbon_count = 1; $ribbon_count <= 3; $ribbon_count++)
 | 
						|
                {
 | 
						|
                    switch ($ribbon_count) {
 | 
						|
                            case 1:
 | 
						|
                                $color = "Bronze";
 | 
						|
                                $award_count = 1;
 | 
						|
                                break;
 | 
						|
                            case 2:
 | 
						|
                                $color = "Silver";
 | 
						|
                                $award_count = 5;
 | 
						|
                                break;
 | 
						|
                            case 3:
 | 
						|
                                $color = "Gold";
 | 
						|
                                $award_count = 10;
 | 
						|
                                break;
 | 
						|
                    }
 | 
						|
                    $ribbon_query .= "(
 | 
						|
                    '".$db->escape($award['code'])."',
 | 
						|
                    $award_count,
 | 
						|
                    0,
 | 
						|
                    '$game',
 | 
						|
                    '".$ribbon_count."_".$db->escape($award['code']).".png',
 | 
						|
                    '$color " .$db->escape($award['award_name']) . "')" .
 | 
						|
                    // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                    ($key == count($awards)-1 && $ribbon_count == 3 ? ";" : ",");
 | 
						|
                }
 | 
						|
            }
 | 
						|
            $db->query($award_query);
 | 
						|
            $db->query($ribbon_query);
 | 
						|
            unset($award_query);
 | 
						|
            unset($ribbon_query);
 | 
						|
        }
 | 
						|
 | 
						|
        // Insert weapons
 | 
						|
        print "Adding new weapons for game $game.<br />";
 | 
						|
        if (isset($weapons) && count($weapons) > 0)
 | 
						|
        {
 | 
						|
            $award_query = "INSERT IGNORE INTO `hlstats_Awards` (`awardType`, `game`, `code`, `name`, `verb`) VALUES ";
 | 
						|
            $ribbon_query = "INSERT IGNORE INTO `hlstats_Ribbons` (`awardCode`, `awardCount`, `special`, `game`, `image`, `ribbonName`) VALUES ";
 | 
						|
            $weapon_query = "INSERT IGNORE INTO `hlstats_Weapons` (`game`, `code`, `name`, `modifier`) VALUES ";
 | 
						|
            foreach ($weapons as $key => $weapon)
 | 
						|
            {
 | 
						|
                // Insert weapons into Weapons table
 | 
						|
                $weapon_query .= "(
 | 
						|
                    '$game',
 | 
						|
                    '".$db->escape($weapon['weapon_code'])."',
 | 
						|
                    '".$db->escape($weapon['weapon_name'])."',
 | 
						|
                    '".$db->escape($weapon['modifier'])."')" .
 | 
						|
                    // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                    ($key == count($weapons)-1 ? ";" : ",");
 | 
						|
 | 
						|
                    
 | 
						|
                // Insert weapons into Awards table
 | 
						|
                $award_query .= "(
 | 
						|
                    'W',
 | 
						|
                    '$game',
 | 
						|
                    '".$db->escape($weapon['weapon_code'])."',
 | 
						|
                    '".$db->escape($weapon['weapon_name'])."',
 | 
						|
                    '".$db->escape($weapon['award_verb'])."')" .
 | 
						|
                    // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                    ($key == count($weapons)-1 ? ";" : ",");
 | 
						|
                
 | 
						|
                // Insert weapons into Ribbons table
 | 
						|
                for ($ribbon_count = 1; $ribbon_count <= 3; $ribbon_count++)
 | 
						|
                {
 | 
						|
                    switch ($ribbon_count) {
 | 
						|
                            case 1:
 | 
						|
                                $color = "Bronze";
 | 
						|
                                $award_count = 1;
 | 
						|
                                break;
 | 
						|
                            case 2:
 | 
						|
                                $color = "Silver";
 | 
						|
                                $award_count = 5;
 | 
						|
                                break;
 | 
						|
                            case 3:
 | 
						|
                                $color = "Gold";
 | 
						|
                                $award_count = 10;
 | 
						|
                                break;
 | 
						|
                    }
 | 
						|
                    $ribbon_query .= "(
 | 
						|
                    '".$db->escape($weapon['weapon_code'])."',
 | 
						|
                    $award_count,
 | 
						|
                    0,
 | 
						|
                    '$game',
 | 
						|
                    '".$ribbon_count."_".$db->escape($weapon['weapon_code']).".png',
 | 
						|
                    '$color ".$db->escape($weapon['weapon_name']) . "')" .
 | 
						|
                    // Check to see if we're on the last key -- if so finish the SQL statement, otherwise leave it open to append
 | 
						|
                    ($key == count($weapons)-1 && $ribbon_count == 3 ? ";" : ",");
 | 
						|
                }
 | 
						|
            }
 | 
						|
            $db->query($weapon_query);
 | 
						|
            $db->query($award_query);
 | 
						|
            $db->query($ribbon_query);
 | 
						|
            unset($weapon_query);
 | 
						|
            unset($award_query);
 | 
						|
            unset($ribbon_query);
 | 
						|
 | 
						|
            foreach ($weapons as $key => $weapon)
 | 
						|
            {            
 | 
						|
                // Update kill count for any weapons just added
 | 
						|
                print "Updating weapon count for ".$db->escape($weapon['weapon_code'])." in game $game<br />";
 | 
						|
                if ($serverstring)
 | 
						|
                {
 | 
						|
                    $weapon_count_query = " 
 | 
						|
                        UPDATE IGNORE
 | 
						|
                            hlstats_Weapons
 | 
						|
                        SET
 | 
						|
                            `kills` = `kills` + (
 | 
						|
                                IFNULL((
 | 
						|
                                    SELECT count(weapon)
 | 
						|
                                        FROM
 | 
						|
                                            hlstats_Events_Frags
 | 
						|
                                        WHERE
 | 
						|
                                            `weapon` = '".$db->escape($weapon['weapon_code'])."'
 | 
						|
                                        AND
 | 
						|
                                            `serverId` IN ($serverstring)
 | 
						|
                                    ),0)
 | 
						|
                            )
 | 
						|
                        WHERE
 | 
						|
                            `code` = '".$db->escape($weapon['weapon_code'])."'
 | 
						|
                        AND
 | 
						|
                            `game` = '$game';";
 | 
						|
                    $db->query($weapon_count_query);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }    
 | 
						|
    
 | 
						|
    // Perform database schema update notification
 | 
						|
    print "Updating database and verion schema numbers.<br />";
 | 
						|
    $db->query("UPDATE hlstats_Options SET `value` = '$version' WHERE `keyname` = 'version'");
 | 
						|
    $db->query("UPDATE hlstats_Options SET `value` = '$dbversion' WHERE `keyname` = 'dbversion'");
 | 
						|
?>
 |