Archived
1
0
This repository has been archived on 2020-12-10. You can view files and clone it, but cannot push or open issues or pull requests.
old/application/controllers/Tools/Csgo.php
2018-10-16 18:28:42 +02:00

219 lines
12 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Csgo extends MY_Controller
{
public function __construct()
{
parent::__construct('tools');
}
public function index($user = 'kingofdog')
{
if (isset($_GET['q']) && !empty($_GET['q'])) redirect(base_url('tools/csgo/' . $_GET['q']));
$this->load->view('header', ['active' => 'csgo', 'title' => 'CS:GO Tools', 'additionalStyles' => ['csgo.css']]);
$this->load->view('tools/csgo', ['user' => $user]);
$this->load->view('footer', ['additionalScripts' => ['lib/nanobar.min.js', 'csgo.js']]);
}
public function data($user)
{
$data = simplexml_load_string(file_get_contents('http://steamcommunity.com/id/' . $user . '/?xml=1'));
$a['player_exists'] = true;
$a['player_owns_game'] = true;
$a['id64'] = (string)$data->steamID64;
$a['id'] = (string)$data->steamID;
$a['name'] = (string)$data->realname;
$a['location'] = (string)$data->location;
$a['onStat'] = (string)$data->onlineState;
$a['statusMes'] = (string)$data->stateMessage;
$a['avatar'] = (string)$data->avatarFull;
$a['vacban'] = (string)$data->vacBanned;
$a['tradeban'] = (string)$data->tradeBanState;
if($a['id'] == "") {
$a['player_exists'] = false;
$a['player_owns_game'] = false;
echo json_encode($a);
exit;
}
$status = ['in-game' => 'In Game', 'online' => 'Online', 'offline' => 'Offline', 'busy' => 'Busy', 'away' => 'Away'];
$a['status'] = $status[$a['onStat']];
$successful = file_get_contents('http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=79E0709F4D4157636A833312C91639FC&steamid=' . $a['id64'], true);
if($successful == false) {
goto go_on;
}
$data = json_decode($successful, true)['playerstats'];
$stats = $data['stats'];
$kills = [];
foreach ($stats as $stat) {
$a[$stat['name']] = $stat['value'];
if (strpos($stat['name'], 'total_kills_') !== false && !in_array($stat['name'], ['total_kills_headshot', 'total_kills_enemy_weapon', 'total_kills_enemy_blinded', 'total_kills_knife_fight', 'total_kills_against_zoomed_sniper'])) {
$kills[] = $stat['value'] . '_' . explode('_', $stat['name'])[2];
}
}
natsort($kills);
$a['kills'] = array_reverse($kills);
if ($a['last_match_wins'] > $a['last_match_rounds'] / 2) {
$a['last_match_end_status'] = 2;
} elseif ($a['last_match_wins'] < $a['last_match_rounds'] / 2) {
$a['last_match_end_status'] = 0;
} else {
$a['last_match_end_status'] = 1;
}
if(isset($data['achievements'])) {
$ach = $data['achievements'];
foreach ($ach as $entry) {
$a[$entry['name']] = $entry['achieved'];
}
$a['total_time_played'] = round($a['total_time_played'] / 60 / 60);
} else {
$a['player_owns_game'] = false;
}
go_on:
$data = json_decode(file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=79E0709F4D4157636A833312C91639FC&steamids=' . $a['id64']), true)['response'];
$data = $data['players'];
$data = $data[0];
$a['lastseen'] = $data['lastlogoff'];
$a['url'] = $data['profileurl'];
$a['created'] = $data['timecreated'];
$a['country'] = $data['loccountrycode'];
$a['weapon_list'] = [
1 => ["Desert Eagle", "deagle"],
2 => ["Dual Berettas", "elite"],
3 => ["Five-SeveN", "fiveseven"],
4 => ["Glock-18", "glock"],
7 => ["AK-47", "ak47"],
8 => ["AUG", "aug"],
9 => ["AWP", "awp"],
10 => ["FAMAS", "famas"],
11 => ["G3SG1", "g3sg1"],
13 => ["Galil AR", "galilar"],
14 => ["M249", "m249"],
16 => ["M4A4", "m4a4"],
17 => ["MAC-10", "mac10"],
19 => ["P90", "p90"],
24 => ["UMP-45", "ump45"],
25 => ["XM1014", "xm1014"],
26 => ["PP-Bizon", "bizon"],
27 => ["MAG-7", "mag7"],
28 => ["Negev", "negev"],
29 => ["Sawed-Off", "sawedoff"],
30 => ["Tec-9", "tec9"],
31 => ["Zeus x27", "taser"],
32 => ["P2000", "hkp2000"],
33 => ["MP7", "m79"],
34 => ["MP9", "mp9"],
35 => ["Nova", "nova"],
36 => ["P250", "p250"],
38 => ["SCAR-20", "scar20"],
39 => ["SG 553", "sg556"],
40 => ["SSG 08", "ssg08"],
42 => ["Knife", "knife_ct"],
43 => ["Flashbang", "flashbang"],
44 => ["High Explosive Grenade", "hegrenade"],
45 => ["Smoke Grenade", "smokegrenade"],
46 => ["Molotov", "molotov"],
47 => ["Decoy Grenade", "decoy"],
48 => ["Incendiary Grenade", "incgrenade"],
59 => ["Knife", "knife"],
60 => ["M4A1-S", "m4a1"],
61 => ["USP-S", "usp"],
63 => ["CZ75-Auto", "cz75"],
64 => ["R8 Revolver", "deagle"],
];
if(isset($a['total_kills_headshot'])) {
$a['total_headshot_rate'] = number_format(
$a['total_kills_headshot'] / $a['total_kills'] * 100,
1,
lang('csgo_comma'),
lang('csgo_point')) . " %";
$a['total_kills'] = number_format($a['total_kills'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_time_played'] = number_format($a['total_time_played'], 0, lang('csgo_comma'), lang('csgo_point')) . " h";
$a['total_accuracy'] = number_format($a['total_shots_hit'] / $a['total_shots_fired'] * 100, 1, lang('csgo_comma'), lang('csgo_point')) . " %";
$a['total_mvps'] = number_format($a['total_mvps'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_win_rate'] = number_format($a['total_wins'] / $a['total_rounds_played'] * 100, 1, lang('csgo_comma'), lang('csgo_point')) . " %";
$a['total_planted_bombs'] = number_format($a['total_planted_bombs'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_rescued_hostages'] = number_format($a['total_rescued_hostages'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_result'] = $a['last_match_end_status'] == 2 ? 'win' : '';
$a['last_match_outcome'] = lang('csgo_' . $a['last_match_end_status']);
$a['last_match_favweapon_accuracy'] = number_format($a['last_match_favweapon_hits'] / $a['last_match_favweapon_shots'] * 100, 1, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_kd'] = number_format($a['last_match_kills'] / $a['last_match_deaths'], 2, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_kills'] = number_format($a['last_match_kills'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_deaths'] = number_format($a['last_match_deaths'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_mvps'] = number_format($a['last_match_mvps'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_damage'] = number_format($a['last_match_damage'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_money_spent'] = number_format($a['last_match_money_spent'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_dominations'] = number_format($a['last_match_dominations'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_revenges'] = number_format($a['last_match_revenges'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_contribution_score'] = number_format($a['last_match_contribution_score'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['favweapons'] = '';
for ($i = 0;
$i < 5;
$i++) {
$weapon = $a['kills'][$i];
$killCount = explode('_', $weapon)[0];
$weaponName = explode('_', $weapon)[1];
$a['favweapons'] .= '<li class="item ' . $weaponName . ' ';
$a['favweapons'] .= $i == 0 ? 'card">' : 'line">';
$a['favweapons'] .= '<h3 class="title"><span class="number">' . ($i + 1);
if ($i > 0) {
$a['favweapons'] .= '. ';
}
$a['favweapons'] .= '</span> ' . $weaponName . '</h3>';
if ($i == 0) {
$a['favweapons'] .= '<img src="' . base_url('file/csgo/weapon/' . $weaponName) . '" class="photo" alt="" />';
} else {
$a['favweapons'] .= ' <svg class="icon"><use xlink:href="#i-' . $weaponName . '"></use></svg>';
}
$a['favweapons'] .= '<p class="stat kills">' . $killCount . '<svg><use xlink:href="#i-kills"></use></svg></p></li>';
}
$a['total_deaths'] = number_format($a['total_deaths'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kd'] = number_format($a['total_kills'] / $a['total_deaths'], 2, lang('csgo_comma'), lang('csgo_point'));
$a['total_contribution_score'] = number_format($a['total_contribution_score'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_damage_done'] = number_format($a['total_damage_done'], 0, lang('csgo_comma'), lang('csgo_point')) . ' HP';
$a['total_shots_fired'] = number_format($a['total_shots_fired'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_shots_hit'] = number_format($a['total_shots_hit'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_headshot'] = number_format($a['total_kills_headshot'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_dominations'] = number_format($a['total_dominations'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_revenges'] = number_format($a['total_revenges'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_matches_played'] = number_format($a['total_matches_played'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_matches_won'] = number_format($a['total_matches_won'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_matches_won_percent'] = number_format($a['total_matches_won'] / $a['total_matches_played'] * 100, 2, lang('csgo_comma'), lang('csgo_point')) . ' %';
$a['total_rounds_played'] = number_format($a['total_rounds_played'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_wins'] = number_format($a['total_wins'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_wins_pistolround'] = number_format($a['total_wins_pistolround'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_defused_bombs'] = number_format($a['total_defused_bombs'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_rescued_hostages'] = number_format($a['total_rescued_hostages'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_enemy_blinded'] = number_format($a['total_kills_enemy_blinded'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_knife_fight'] = number_format($a['total_kills_knife_fight'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_against_zoomed_sniper'] = number_format($a['total_kills_against_zoomed_sniper'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_taser'] = number_format($a['total_kills_taser'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_enemy_weapon'] = number_format($a['total_kills_enemy_weapon'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_money_earned'] = number_format($a['total_money_earned'], 0, lang('csgo_comma'), lang('csgo_point')) . ' $';
$a['total_weapons_donated'] = number_format($a['total_weapons_donated'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_broken_windows'] = number_format($a['total_broken_windows'], 0, lang('csgo_comma'), lang('csgo_point'));
} else {
$a['player_owns_game'] = false;
}
header('Content-Type: application/json');
echo json_encode($a);
}
public function getDefaultPage($user) {
$this->load->view('csgo-tools', ['user' => $user]);
}
}