Файл: chat/bartender.php
Строк: 84
<?php
class bot_bartender {
public $msg;
public $team;
public $update_balls;
public $update_alcohol;
public $config;
public $drinks = array();
public $food = array();
public $youDrunk = array();
public $userProfile = array();
public $eda;
/*
* $login - Логин юзера
* $alcohol - уровень опьянения юзера
* $balls - Количество бубликов на счету у юзера
* $keyLog - Ключ (ид юзера) для лога его покупок
*/
function __construct($alcohol, $balls, $keyLog) {
$this->alcohol = $alcohol;
$this->balls = $balls;
//Лог файл
$this->logFole = '../bot_bartender/log/'.$keyLog.'.dat';
$this->config = parse_ini_file('../bot_bartender/config.ini');
//Авто Очистка лога
if (!$alcohol && file_exists($this->logFole)) unlink($this->logFole);
}
/*
* Анализ сообщение
* $msg - Сообшение
* Функция возвращает
* 1 - если чел слишком пьян
* 2 - если у чела нет бубликов для оплаты
* 3 - Заказ выполнен
*/
public function analysis($msg) {
global $user;
$this->msg = $msg;
preg_match("#!(.*?)(s|$)#i", $msg, $arr);
if ($this->alcohol > $this->config['font']) {
$this->msg = $this->font($msg);
}
/*Стриптиз*/
$mony_strip = 5; //Цена стриптиза
$strip = array('стрип', 'стриптиз', 'strip', 'striptiz');
if (in_array(mb_strtolower($arr[1], 'UTF-8'), $strip)) {
if ($mony_strip > $this->balls) return 2;
$this->eda = true; //Чтоб тост не говорило
$this->team = 'стриптиз';
$this->setLog();
$this->team .= ' <img src="../resize.php?img='.ltrim($this->randImg(), './').'&width=80&height=0" alt="" />';
$this->update_balls = $this->balls - $mony_strip;
$this->update_alcohol = $user['alcohol'];
return 3;
}
$sql = mysql_query("SELECT * FROM `bot_bartender_product` WHERE `name` = '".mysql_real_escape_string(mb_strtolower($arr[1], 'UTF-8'))."'");
$res = mysql_fetch_assoc($sql);
if (!empty($res['name'])) {
$this->eda = $res['alcohol'] < 0 ? true : false;
$this->update_alcohol = $this->alcohol ? $this->alcohol + $res['alcohol'] : $res['alcohol'];
if (!$this->eda && ($this->update_alcohol > $this->config['youdrunk'])) {
return 1;
} elseif ($res['price'] > $this->balls) {
return 2;
} else {
$this->update_balls = $this->balls - $res['price'];
if ($this->update_alcohol >= 100) {
$this->update_alcohol = 100;
} elseif ($this->update_alcohol < 0) {
$this->update_alcohol = 0;
}
$this->update_alcohol = abs($this->update_alcohol);
$this->team = $res['name'];
$this->setLog();
if (is_file('../upload/bot_bartender/'.$res['id'].'.img')) {
$this->team .= ' <img src="../resize.php?img=upload/bot_bartender/'.$res['id'].'.img&width=55&height=0" alt="" />';
}
return 3;
}
}
}
//Случайный тост
public function toast() {
$data = file('../bot_bartender/toast.dat');
return $data[array_rand($data)];
}
//Случайное оповешение о том что юзер пьян
public function youDrunk() {
$data = file('../bot_bartender/you_drunk.dat');
return $data[array_rand($data)];
}
//Преобразование текста в ПрЫгАюЩиЙ регистр
public function font($msg) {
$msg = iconv('UTF-8', 'windows-1251', $msg);
$count = strlen($msg);
for($i = 0; $i < $count; $i++) {
$r = $r ? 0 : 1;
$txt .= $r ? mb_strtoupper($msg[$i], 'windows-1251') : mb_strtolower($msg[$i], 'windows-1251');
}
return iconv('windows-1251', 'UTF-8', $txt);
}
//Запись в лог покупок
public function setLog() {
$fp = fopen($this->logFole, 'a+');
flock ($fp, LOCK_EX);
if ($this->team != 'стриптиз') fwrite($fp, $this->team . '(' . date("d.m.Y H:i") . ')<br/>');
flock ($fp, LOCK_UN);
fclose($fp);
@chmod($this->logFole, 0666);
}
//Загрузка лога
public function getLog() {
return file_exists($this->logFole) ? file_get_contents($this->logFole) : 'История пока пуста...';
}
//Случайная картинка стриптиза
public function randImg() {
$data = unSerialize(file_get_contents('../bot_bartender/strip.dat'));
return $data[array_rand($data)];
}
}
?>