Example #1
0
 public function executeDemo(sfWebRequest $request)
 {
     $this->map = $this->getRoute()->getObject();
     $this->forward404Unless($this->map);
     $this->demo = MapsTable::getInstance()->createQuery()->select("tv_record_file")->where("id = ?", $request->getParameter("id"))->execute();
     if (file_exists($demo_file = sfConfig::get("app_demo_path") . DIRECTORY_SEPARATOR . $this->demo[0]->getTvRecordFile() . ".dem.zip") && !preg_match('=/=', $this->demo[0]->getTvRecordFile())) {
         $apache_modules = array();
         if (function_exists("apache_get_modules")) {
             $apache_modules = apache_get_modules();
         }
         if (in_array("mod_xsendfile", $apache_modules)) {
             header("X-Sendfile: {$demo_file}");
             header("Content-type: application/octet-stream");
             header("Content-Disposition: attachment; filename=" . $this->demo[0]->getTvRecordFile() . ".dem.zip");
         } else {
             header("Content-Type: application/octet-stream");
             header("Content-Disposition: attachment; filename=" . $this->demo[0]->getTvRecordFile() . ".dem.zip");
             readfile($demo_file);
         }
     }
     return sfView::NONE;
 }
Example #2
0
 public function executeHeatmapDataMaps(sfWebRequest $request)
 {
     $maps = MapsTable::getInstance()->createQuery()->where("map_name = ?", $request->getParameter("maps"))->execute();
     if (class_exists($request->getParameter("maps"))) {
         $map = $request->getParameter("maps");
         $this->class_heatmap = new $map(0);
     } else {
         return $this->renderText(json_encode(array("type" => "heatmap", "points" => array())));
     }
     foreach ($maps as $map) {
         $this->match = $map->getMatch();
         $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)));
 }