<?php
class Racing{
static private $instance = NULL;
public $data = array();
static function a(){
if(self::$instance==NULL)self::$instance=new Racing();
return self::$instance;
}
public function __construct(){
$this->data[1]= array("name" =>"Фольксваген","speed" => 10,"uskor" => 1,"price" => 10,"master" => 1,"dohod" => 1);
$this->data[]= array("name" =>"Бмв","speed" => 15,"uskor" => 2,"price" => 250,"master" => 3,"dohod" => 1.5);
$this->data[]= array("name" =>"Ауди","speed" => 20,"uskor" => 2,"price" => 450,"master" => 5,"dohod" => 2);
$this->data[]= array("name" =>"Порше","speed" => 30,"uskor" => 3,"price" => 750,"master" => 10,"dohod" => 2.5);
$this->data[]= array("name" =>"Ламборгини","speed" => 45,"uskor" => 5,"price" => 1100,"master" => 20,"dohod" => 4);
}
public function searchInvite($uid){
$uid = abs(intval($uid));
$invites = DB::a()->d->query("SELECT * FROM `raceInvite` WHERE `user` = '".$uid."' LIMIT 1")->fetch();
if($invites===false)return false;
return true;
}
public function searchActive($uid){
$uid = abs(intval($uid));
$activ = DB::a()->d->query("SELECT * FROM `race` WHERE `user1` = '".$uid."' OR `user2` = '".$uid."' OR `user3` = '".$uid."' OR `user4` = '".$uid."' LIMIT 1")->fetch();
if($activ===false)return false;
return true;
}
public function addInvite($uid,$car){
$uid = abs(intval($uid));
$activ = DB::a()->d->query("INSERT INTO `raceInvite` SET `user` = '".$uid."' , `car` = '".$car."'");
return true;
}
public function delInvite($uid){
$uid = abs(intval($uid));
$activ = DB::a()->d->query("DELETE FROM `raceInvite` WHERE `user` = '".$uid."'");
return true;
}
public function countInvite($car){
$activ = DB::a()->d->query("SELECT * FROM `raceInvite` WHERE `car` = '".$car."'")->fetchAll();
return $activ;
}
public function getRace($id){
$race = DB::a()->d->query("SELECT * FROM `race` WHERE `user1` = '".$id."' OR `user2` = '".$id."' OR `user3` = '".$id."' OR `user4` = '".$id."' ORDER BY `id` DESC LIMIT 1")->fetch();
return $race;
}
public function getRaceList(){
$race = DB::a()->d->query("SELECT * FROM `race` WHERE `time` > '".time()."' ORDER BY `time` DESC")->fetchAll();
if(count($race)>0)return $race;
return false;
}
public function getRaceId($id){
$race = DB::a()->d->query("SELECT * FROM `race` WHERE `id` = '".$id."' AND `time` > '".time()."' LIMIT 1")->fetch();
if($race!==false)return $race;
return false;
}
public function km($rast){
if($rast>1000)return round($rast/1000,2)." км";
return $rast." м";;
}
public function startRace($car){
$activ = $this->countInvite($car);
if(count($activ)>3){
$members = array();
$i=array();
foreach($activ as $value){
$user = DB::a()->d->query("SELECT `car` FROM `users` WHERE `id` = '".$value['user']."' LIMIT 1")->fetch();
$car = json_decode($user['car'],true);
$members[$value['user']] = array('id'=>$car['id'],'speed'=>$car['speed'],'uskor'=>0,'pluskm'=>0);
$i[] = $value['user'];
DB::a()->d->query("UPDATE `users` SET `race` = '1' WHERE `id` = '".$value['user']."' LIMIT 1");
DB::a()->d->query("DELETE FROM `raceInvite` WHERE `user` = '".$value['user']."' LIMIT 1");
}
$data = json_encode($members);
DB::a()->d->query("INSERT INTO `race` SET `time` = '".(time()+180)."' , `data` = '".$data."',`money` = '20000', `user1` = '".$i[0]."',`user2` = '".$i[1]."',`user3` = '".$i[2]."',`user4` = '".$i[3]."'");
header("Location:/Racing/Race/");
die();
}
return count($activ);
}
public function addLog($id,$text){
if(!file_exists('data/racelogs/'.$id))$data = false;
else $data = json_decode(file_get_contents('data/racelogs/'.$id),true);
if($data==false){
$data = array(array('text'=>$text,'time'=>time()));
}else{
$data[] = array('text'=>$text,'time'=>time());
}
$data_mailMe = json_encode($data);
file_put_contents('data/racelogs/'.$id,$data_mailMe);
return true;
}
public function getLog($id,$page=1){
if(!file_exists('data/racelogs/'.$id))$data = false;
else $data = json_decode(file_get_contents('data/racelogs/'.$id),true);
if(count($data)==0 || $data==false)return false;
krsort($data);
$logs = array();
foreach($data as $key=>$value){
$logs[]=$value;
}
if(count($logs)==0)return false;
$total=count($logs);
if(!$page) $page = 1;
$page = abs(intval($page));
if($page == 1)$start = 1;
else $start = 15*($page-1)+1;
$log=array();
for($i=$start;$i<=15*$page;$i++){
if(array_key_exists($i-1,$logs))
{
$log[]=$logs[$i-1];
}
}
if(count($log)==0)return false;
return $log;
}
}