Exemplo n.º 1
0
 public function executeHeatmapData(sfWebRequest $request)
 {
     $this->match = $this->getRoute()->getObject();
     $this->heatmap = PlayersHeatmapTable::getInstance()->createQuery()->where("match_id = ?", $this->match->getId())->count() > 0;
     if ($this->heatmap) {
         if (class_exists($this->match->getMap()->getMapName())) {
             $map = $this->match->getMap()->getMapName();
             $this->class_heatmap = new $map($this->match->getId());
         } else {
             $this->heatmap = false;
         }
     }
     $map = $this->class_heatmap;
     foreach ($this->match->getPlayersHeatmap() as $event) {
         $map->addInformation($event->getId(), $event->getEventName(), $event->getEventX(), $event->getEventY(), $event->getPlayerId(), $event->getPlayerTeam() == "CT" ? 1 : 2, $event->getRoundId(), $event->getRoundTime(), 0, 1, $event->getAttackerX(), $event->getAttackerY(), $event->getAttackerName(), $event->getAttackerTeam());
     }
     $type = $request->getPostParameter("type", "kill");
     $points = array();
     if ($type == "allstuff") {
         $points = array_merge($map->buildHeatMap("hegrenade"), $map->buildHeatMap("flashbang"), $map->buildHeatMap("smokegrenade"), $map->buildHeatMap("decoy"), $map->buildHeatMap("molotov"));
     } else {
         $side = $request->getPostParameter("sides", -1);
         if ($side == "all") {
             $side = -1;
         } elseif ($side == "ct") {
             $side = 1;
         } elseif ($side == "t") {
             $side = 2;
         } else {
             $side = -1;
         }
         $points = $map->buildHeatMap($type, $request->getPostParameter("rounds", array()), $side, $request->getPostParameter("players", array()));
     }
     return $this->renderText(json_encode(array("type" => "heatmap", "points" => $points)));
 }
Exemplo n.º 2
0
 public function executeExportEstats(sfWebRequest $request)
 {
     $mO = $this->getRoute()->getObject();
     $stats = array();
     $match = $mO->toArray();
     unset($match['id'], $match['config_password'], $match['season_id'], $match['server_id'], $match['rules'], $match['team_a'], $match['team_b'], $match['config_authkey'], $match['current_map']);
     $stats['match'] = $match;
     foreach ($mO->getMaps() as $mapO) {
         $map = $mapO->toArray();
         unset($map['match_id'], $map['id']);
         $stats['map'] = $map;
         foreach ($mapO->getMapsScore() as $sO) {
             $score = $sO->toArray();
             unset($score['id'], $score['map_id']);
             $stats['scores'][] = $score;
         }
     }
     foreach ($mO->getPlayers() as $pO) {
         $player = $pO->toArray();
         unset($player['map_id'], $player['match_id'], $player['ip']);
         $stats['players'][] = $player;
     }
     $heatmap = PlayersHeatmapTable::getInstance()->createQuery()->where("match_id = ?", $mO->getId())->orderBy("created_at ASC")->execute();
     foreach ($heatmap as $hO) {
         $data = $hO->toArray();
         unset($data['id'], $data['match_id'], $data['map_id']);
         $stats['heatmap'][] = $data;
     }
     $kills = PlayerKillTable::getInstance()->createQuery()->where("match_id = ?", $mO->getId())->orderBy("created_at ASC")->execute();
     foreach ($kills as $hO) {
         $data = $hO->toArray();
         unset($data['match_id'], $data['map_id']);
         $stats['kills'][] = $data;
     }
     $kills = RoundTable::getInstance()->createQuery()->where("match_id = ?", $mO->getId())->orderBy("created_at ASC")->execute();
     foreach ($kills as $hO) {
         $data = $hO->toArray();
         unset($data['id'], $data['match_id'], $data['map_id']);
         $stats['rounds'][] = $data;
     }
     $kills = RoundSummaryTable::getInstance()->createQuery()->where("match_id = ?", $mO->getId())->orderBy("created_at ASC")->execute();
     foreach ($kills as $hO) {
         $data = $hO->toArray();
         unset($data['id'], $data['match_id'], $data['map_id']);
         $stats['summary'][] = $data;
     }
     return $this->renderText(json_encode($stats));
 }
Exemplo n.º 3
0
<?php

function roundTimeToSec($sec)
{
    $s = 105 - $sec;
    if ($s > 60) {
        return "1m" . sprintf("%02d", $s % 60);
    } else {
        return sprintf("%02d", $s) . " sec";
    }
}
$kills = \PlayersHeatmapTable::getInstance()->createQuery()->where("match_id = ?", $match->getId())->andWhere("event_name = ?", "kill")->andWhere("created_at <= ?", date('Y-m-d H:i:s', time() - 15))->orderBy("created_at DESC")->execute();
?>
<script src="http://code.jquery.com/jquery.js"></script>
<script>
    function doIt() {
        $("#kills").load(document.URL+" #kills");
    }
    
    setInterval("doIt()", 5000);
</script>
<div style="float: right"><?php 
echo $match->getTeamA();
?>
 vs <?php 
echo $match->getTeamB();
?>
</div>
<div id="kills">
    <?php 
$lastRound = 0;