Init.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
deny from all
|
||||
@@ -0,0 +1 @@
|
||||
deny from all
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
|
||||
class Chat {
|
||||
|
||||
//Ñèñòåìíîå ñîîáùåíèå
|
||||
public static function send_system( $uid , $text ) {
|
||||
if( !is_string($uid) ) {
|
||||
$uid = \Core\Database::query( 'SELECT `login` FROM `users` WHERE `uid` = :uid ORDER BY `id` ASC LIMIT 1000' , array(
|
||||
'uid' => $uid
|
||||
));
|
||||
$uid = $uid['login'];
|
||||
}
|
||||
\Core\Database::query( 'INSERT INTO `chat` (`to`,`time`,`type`,`text`,`color`,`typeTime`,`new`) VALUES (
|
||||
:to , :time , :type , :text , :color , :typeTime , :new
|
||||
)', array(
|
||||
'to' => $uid,
|
||||
'time' => OK,
|
||||
'type' => 6,
|
||||
'text' => $text,
|
||||
'color' => 'Black',
|
||||
'typeTime' => 0,
|
||||
'new' => 1
|
||||
) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
class Database {
|
||||
|
||||
public static $connection = NULL;
|
||||
|
||||
public static function connect() {
|
||||
if ( self::$connection == NULL ) {
|
||||
try {
|
||||
$connection = new \PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
|
||||
$connection->exec('SET NAMES CP1251;');
|
||||
$connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
|
||||
self::$connection = $connection;
|
||||
} catch ( \PDOException $e ) {
|
||||
new GeneralException($e->getMessage(), 10001);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function query($q, $p = array(), $fetch_object = false, $fetch_all = false, $count = false) {
|
||||
try {
|
||||
if ( self::$connection == NULL ) {
|
||||
throw new \PDOException('[Internal Error] Could not establish DB connection');
|
||||
}
|
||||
$stmt = self::$connection->prepare($q);
|
||||
if ( $count !== false ) {
|
||||
$stmt->execute($p);
|
||||
return $stmt->fetchColumn();
|
||||
} elseif ( $fetch_object !== false ) {
|
||||
$stmt->execute($p);
|
||||
return ($fetch_all !== false ? $stmt->fetchAll(\PDO::FETCH_ASSOC) : $stmt->fetch(\PDO::FETCH_ASSOC));
|
||||
} else {
|
||||
return $stmt->execute($p);
|
||||
}
|
||||
} catch ( \PDOException $e ) {
|
||||
new GeneralException($e->getMessage(), 10002);
|
||||
}
|
||||
}
|
||||
|
||||
public static function lastID () {
|
||||
return self::$connection->lastInsertId();
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
class GeneralException extends \Exception {
|
||||
|
||||
public function __construct($message, $code = 0) {
|
||||
$s = '';
|
||||
$s .= 'Server date & time: ' . date('d.m.Y H:i:s') . "\n";
|
||||
$s .= 'Error code: ' . $code . "\n";
|
||||
$s .= 'Error message: ' . $message . "\n";
|
||||
$s .= 'In file: ' . $this->getFile() . "\n";
|
||||
$s .= 'In line: ' . $this->getLine() . "\n";
|
||||
$s .= 'Client IP: ' . $_SERVER['REMOTE_ADDR'] . "\n";
|
||||
$s .= 'GET Data: ' . serialize($_GET) . "\n";
|
||||
$s .= 'POST Data: ' . serialize($_POST) . "\n";
|
||||
$s .= 'Call Stack Trace: ' . "\n";
|
||||
foreach ( debug_backtrace() as $stack ) {
|
||||
$s .= "\tFILE: '" . $stack['file'] . "', LINE: '" . $stack['line'] . "';\n";
|
||||
}
|
||||
file_put_contents(PROJECT_PATH . DS . 'log/error.log', $s . "\n", FILE_APPEND);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
|
||||
class Item {
|
||||
|
||||
public static function lookStats($m) {
|
||||
$ist = array();
|
||||
$di = explode('|',$m);
|
||||
$i = 0; $de = false;
|
||||
while($i<count($di)) {
|
||||
$de = explode('=',$di[$i]);
|
||||
if(isset($de[0],$de[1])) {
|
||||
if(!isset($ist[$de[0]])) {
|
||||
$ist[$de[0]] = 0;
|
||||
}
|
||||
$ist[$de[0]] = $de[1];
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
return $ist;
|
||||
}
|
||||
|
||||
public static function getItem( $id ) {
|
||||
$itm = \Core\Database::query( 'SELECT `a`.*,`b`.* FROM `items_main` AS `a` LEFT JOIN `items_main_data` AS `b` ON `b`.`items_id` = `a`.`id` WHERE `a`.`id` = :item_id LIMIT 1' , array(
|
||||
'item_id' => $id
|
||||
) , true );
|
||||
return $itm;
|
||||
}
|
||||
|
||||
public static function getItemUser( $id ) {
|
||||
//uiid - id ïðåäìåòà â items_users
|
||||
$itm = \Core\Database::query( 'SELECT `a`.*,`b`.*,`a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `b`.`id` = `a`.`item_id` WHERE `a`.`id` = :item_id LIMIT 1' , array(
|
||||
'item_id' => $id
|
||||
) , true );
|
||||
return $itm;
|
||||
}
|
||||
|
||||
public static function infoItem( $itm ) {
|
||||
//$po = self::lookStats( $itm['data'] );
|
||||
//
|
||||
$r = array(
|
||||
//items_main
|
||||
$itm['id'],
|
||||
$itm['name'],
|
||||
$itm['img'],
|
||||
$itm['2h'],
|
||||
$itm['2too'],
|
||||
$itm['iznosMAXi'],
|
||||
$itm['price1'], //6
|
||||
$itm['price2'],
|
||||
$itm['magic_chance'],
|
||||
$itm['info'],
|
||||
$itm['massa'],
|
||||
$itm['geni'],
|
||||
//items_users 12
|
||||
$itm['1price'], //12
|
||||
$itm['2price'],
|
||||
$itm['use_text'],
|
||||
$itm['iznosNOW'],
|
||||
$itm['iznosMAX'],
|
||||
$itm['gift'],
|
||||
$itm['magic_inc'],
|
||||
$itm['maidin'],
|
||||
//data 20
|
||||
$itm['data'],
|
||||
//group items_user
|
||||
$itm['inGroup'], //21
|
||||
$itm['uiid'],
|
||||
//
|
||||
OK
|
||||
|
||||
);
|
||||
return $r;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
|
||||
class Route {
|
||||
|
||||
public static $json_return = false, $device = 'PC', $device_type = 'PC', $device_id = 0;
|
||||
|
||||
public static function begin() {
|
||||
|
||||
if ( isset($_SERVER['HTTP_ACCEPT']) && in_array('application/json', explode(',', $_SERVER['HTTP_ACCEPT'])) ) {
|
||||
self::$json_return = true;
|
||||
}
|
||||
|
||||
$url_data = parse_url($_SERVER['REQUEST_URI']);
|
||||
$uri = urldecode($url_data['path']);
|
||||
|
||||
$urls = array(
|
||||
//Ëîêàöèè
|
||||
DP . '/comission' => 'comission',
|
||||
DP . '/auction' => 'auction',
|
||||
DP . '/debuger' => 'debuger',
|
||||
DP . '/admin' => 'admin'
|
||||
);
|
||||
|
||||
$found_module = false;
|
||||
|
||||
foreach ( $urls as $url => $handler ) {
|
||||
if ( preg_match("#^" . $url . "/*$#", $uri) ) {
|
||||
$class_name = "Logic\\$handler";
|
||||
if(class_exists($class_name)) {
|
||||
$controller = new $class_name;
|
||||
$controller->defaultAction();
|
||||
$found_module = true;
|
||||
}else{
|
||||
self::ErrorClass404($class_name);
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !$found_module ) {
|
||||
self::ErrorPage404();
|
||||
}
|
||||
}
|
||||
|
||||
public static function redirect($url) {
|
||||
header('Location: ' . $url);
|
||||
}
|
||||
|
||||
public static function ErrorPage404() {
|
||||
die('Ñòðàíèöà íå íàéäåíà');
|
||||
}
|
||||
|
||||
public static function ErrorClass404($name) {
|
||||
die('Ðàñøèðåíèå '. $name .' íå íàéäåíî');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
|
||||
class User {
|
||||
|
||||
public static $data = false , $stats = false , $room = false;
|
||||
|
||||
public static $is = array(
|
||||
'exp' => 'Получаемый опыт (%)', 'align_bs' => 'Служитель закона',
|
||||
'nopryh' => 'Прямое поподание', 'puti'=>'Запрет перемещения','align'=>'Склонность','hpAll'=>'Уровень жизни (HP)','mpAll'=>'Уровень маны','enAll'=>'Уровень энергии','sex'=>'Пол','lvl'=>'Уровень','s1'=>'Сила','s2'=>'Ловкость','s3'=>'Интуиция','s4'=>'Выносливость','s5'=>'Интеллект','s6'=>'Мудрость','s7'=>'Духовность','s8'=>'Воля','s9'=>'Свобода духа','s10'=>'Божественность','s11'=>'Энергия','m1'=>'Мф. критического удара (%)','m2'=>'Мф. против критического удара (%)','m3'=>'Мф. мощности крит. удара (%)','m4'=>'Мф. увертывания (%)','m5'=>'Мф. против увертывания (%)','m6'=>'Мф. контрудара (%)','m7'=>'Мф. парирования (%)','m8'=>'Мф. блока щитом (%)','m9'=>'Мф. удара сквозь броню (%)','m14'=>'Мф. абс. критического удара (%)','m15'=>'Мф. абс. увертывания (%)','m16'=>'Мф. абс. парирования (%)','m17'=>'Мф. абс. контрудара (%)','m18'=>'Мф. абс. блока щитом (%)','m19'=>'Мф. абс. магический промах (%)','m20'=>'Мф. удача (%)','a1'=>'Мастерство владения ножами, кинжалами','a2'=>'Мастерство владения топорами, секирами','a3'=>'Мастерство владения дубинами, молотами','a4'=>'Мастерство владения мечами','a5'=>'Мастерство владения магическими посохами','a6'=>'Мастерство владения луками','a7'=>'Мастерство владения арбалетами','aall'=>'Мастерство владения оружием','mall'=>'Мастерство владения магией стихий','m2all'=>'Мастерство владения магией','mg1'=>'Мастерство владения магией огня','mg2'=>'Мастерство владения магией воздуха','mg3'=>'Мастерство владения магией воды','mg4'=>'Мастерство владения магией земли','mg5'=>'Мастерство владения магией Света','mg6'=>'Мастерство владения магией Тьмы','mg7'=>'Мастерство владения серой магией','tj'=>'Тяжелая броня','lh'=>'Легкая броня','minAtack'=>'Минимальный урон','maxAtack'=>'Максимальный урон','m10'=>'Мф. мощности урона','m11'=>'Мф. мощности магии стихий','m11a'=>'Мф. мощности магии','pa1'=>'Мф. мощности колющего урона','pa2'=>'Мф. мощности рубящего урона','pa3'=>'Мф. мощности дробящий урона','pa4'=>'Мф. мощности режущий урона','pm1'=>'Мф. мощности магии огня','pm2'=>'Мф. мощности магии воздуха','pm3'=>'Мф. мощности магии воды','pm4'=>'Мф. мощности магии земли','pm5'=>'Мф. мощности магии Света','pm6'=>'Мф. мощности магии Тьмы','pm7'=>'Мф. мощности серой магии','za'=>'Защита от урона','zm'=>'Защита от магии стихий','zma'=>'Защита от магии','za1'=>'Защита от колющего урона','za2'=>'Защита от рубящего урона','za3'=>'Защита от дробящего урона','za4'=>'Защита от режущего урона','zm1'=>'Защита от магии огня','zm2'=>'Защита от магии воздуха','zm3'=>'Защита от магии воды','zm4'=>'Защита от магии земли','zm5'=>'Защита от магии Света','zm6'=>'Защита от магии Тьмы','zm7'=>'Защита от серой магии','magic_cast'=>'Дополнительный каст за ход','pza'=>'Понижение защиты от урона','pzm'=>'Понижение защиты от магии','pza1'=>'Понижение защиты от колющего урона','min_heal_proc'=>'Эффект лечения (%)','notravma'=>'Защита от травм','yron_min'=>'Минимальный урон','yron_max'=>'Максимальный урон','zaproc'=>'Защита от урона (%)','zmproc'=>'Защита от магии стихий (%)','zm2proc'=>'Защита от магии Воздуха (%)','pza2'=>'Понижение защиты от рубящего урона','pza3'=>'Понижение защиты от дробящего урона','pza4'=>'Понижение защиты от режущего урона','pzm1'=>'Понижение защиты от магии огня','pzm2'=>'Понижение защиты от магии воздуха','pzm3'=>'Понижение защиты от магии воды','pzm4'=>'Понижение защиты от магии земли','pzm5'=>'Понижение защиты от магии Света','pzm6'=>'Понижение защиты от магии Тьмы','pzm7'=>'Понижение защиты от серой магии','speedhp'=>'Регенерация здоровья (%)','speedmp'=>'Регенерация маны (%)','tya1'=>'Колющие атаки','tya2'=>'Рубящие атаки','tya3'=>'Дробящие атаки','tya4'=>'Режущие атаки','tym1'=>'Огненные атаки','mg2static_points'=>'Уровень заряда (Воздух)','tym2'=>'Электрические атаки','tym3'=>'Ледяные атаки','tym4'=>'Земляные атаки','hpProc'=>'Уровень жизни (%)','mpProc'=>'Уровень маны (%)','tym5'=>'Атаки Света','tym6'=>'Атаки Тьмы','tym7'=>'Серые атаки','min_use_mp'=>'Уменьшает расход маны','pog'=>'Поглощение урона','pog2'=>'Поглощение урона','pog2p'=>'Процент поглощение урона','pog2mp'=>'Цена поглощение урона','maxves'=>'Увеличивает рюкзак','bonusexp'=>'Увеличивает получаемый опыт','speeden'=>'Регенерация энергии (%)',
|
||||
'yza' => 'Уязвимость физическому урона (%)','yzm' => 'Уязвимость магии стихий (%)','yzma' => 'Уязвимость магии (%)'
|
||||
,'yza1' => 'Уязвимость колющему урона (%)','yza2' => 'Уязвимость рубящему урона (%)','yza3' => 'Уязвимость дробящему урона (%)','yza4' => 'Уязвимость режущему урона (%)'
|
||||
,'yzm1' => 'Уязвимость магии огня (%)','yzm2' => 'Уязвимость магии воздуха (%)','yzm3' => 'Уязвимость магии воды (%)','yzm4' => 'Уязвимость магии земли (%)','yzm5' => 'Уязвимость магии (%)','yzm6' => 'Уязвимость магии (%)','yzm7' => 'Уязвимость магии (%)','rep'=> 'Репутация Рыцаря'
|
||||
);
|
||||
public static $items = array(
|
||||
'tr' => array('sex','align','lvl','s1','s2','s3','s4','s5','s6','s7','s8','s9','s10','s11','a1','a2','a3','a4','a5','a6','a7','mg1','mg2','mg3','mg4','mg5','mg6','mg7','mall','m2all','aall','rep', 'align_bs'),
|
||||
'add' => array(
|
||||
'exp','enemy_am1','hod_minmana','yhod','noshock_voda',
|
||||
'yza','yzm','yzma','yza1','yza2','yza3','yza4','yzm1','yzm2','yzm3','yzm4','yzm5','yzm6','yzm7',
|
||||
'notuse_last_pr','yrn_mg_first','antishock','nopryh','speed_dungeon','naemnik','mg2static_points','yrnhealmpprocmg3','nousepriem','notactic','seeAllEff','100proboi1','pog2','pog2p','magic_cast','min_heal_proc','no_yv1','no_krit1','no_krit2','no_contr1','no_contr2','no_bl1','no_pr1','no_yv2','no_bl2','no_pr2','silver','pza','pza1','pza2','pza3','pza4','pzm','pzm1','pzm2','pzm3','pzm4','pzm5','pzm6','pzm7','yron_min','yron_max','notravma','min_zonb','min_zona','nokrit','pog','min_use_mp','za1proc','za2proc','za3proc','za4proc','zaproc','zmproc','zm1proc','zm2proc','zm3proc','zm4proc','shopSale','s1','s2','s3','s4','s5','s6','s7','s8','s9','s10','s11','aall','a1','a2','a3','a4','a5','a6','a7','m2all','mall','mg1','mg2','mg3','mg4','mg5','mg6','mg7','hpAll','hpVinos','mpVinos','mpAll','enAll','hpProc','mpProc','m1','m2','m3','m4','m5','m6','m7','m8','m9','m14','m15','m16','m17','m18','m19','m20','pa1','pa2','pa3','pa4','pm1','pm2','pm3','pm4','pm5','pm6','pm7','za','za1','za2','za3','za4','zma','zm','zm1','zm2','zm3','zm4','zm5','zm6','zm7','mib1','mab1','mib2','mab2','mib3','mab3','mib4','mab4','speedhp','speedmp','m10','m11','m11a','zona','zonb','maxves','minAtack','maxAtack','bonusexp','speeden'),
|
||||
'sv' => array('pza','pza1','pza2','pza3','pza4','pzm','pzm1','pzm2','pzm3','pzm4','pzm5','pzm6','pzm7','notravma','min_zonb','min_zona','nokrit','pog','min_use_mp','za1proc','za2proc','za3proc','za4proc','zaproc','zmproc','zm1proc','zm2proc','zm3proc','zm4proc','shopSale','s1','s2','s3','s4','s5','s6','s7','s8','s9','s10','s11','aall','a1','a2','a3','a4','a5','a6','a7','m2all','mall','mg1','mg2','mg3','mg4','mg5','mg6','mg7','hpAll','mpAll','enAll','m1','m2','m3','m4','m5','m6','m7','m8','m9','m14','m15','m16','m17','m18','m19','m20','pa1','pa2','pa3','pa4','pm1','pm2','pm3','pm4','pm5','pm6','pm7','min_use_mp','za','za1','za2','za3','za4','zma','zm','zm1','zm2','zm3','zm4','zm5','zm6','zm7','mib1','mab1','mib2','mab2','mib3','mab3','mib4','mab4','speedhp','speedmp','m10','m11','zona','zonb','maxves','minAtack','maxAtack','speeden')
|
||||
);
|
||||
|
||||
//Подключаем пользователя
|
||||
public static function connect() {
|
||||
//
|
||||
self::$data = \Core\Database::query( 'SELECT * FROM `users` WHERE `login` = :login ORDER BY `id` ASC LIMIT 1' , array(
|
||||
'login' => \Core\Utils::cookie('login')
|
||||
) , true );
|
||||
//Неверный пароль
|
||||
if( self::$data['pass'] != \Core\Utils::cookie('pass') ) {
|
||||
self::$data = false;
|
||||
}
|
||||
//Персонаж заблокирован
|
||||
if( self::$data['banned'] > 0 ) {
|
||||
self::$data = false;
|
||||
}
|
||||
//Подключаем статы
|
||||
if( isset( self::$data['id'] ) ) {
|
||||
self::$stats = \Core\Database::query( 'SELECT * FROM `stats` WHERE `id` = :uid LIMIT 1' , array(
|
||||
'uid' => self::$data['id']
|
||||
) , true );
|
||||
}
|
||||
}
|
||||
|
||||
//Считаем вес персонажа
|
||||
public static function ves( $uid ) {
|
||||
$r = array('now' => 0,'max' => 0);
|
||||
//Масса рюкзака
|
||||
$r['now'] = \Core\Database::query( 'SELECT SUM(`b`.`massa`) AS `m` FROM `items_users` AS `a` LEFT JOIN `items_main`AS `b` ON `b`.`id` = `a`.`item_id` WHERE `a`.`uid` = :uid AND `a`.`delete` = 0 AND `a`.`inShop` = 0 AND `inOdet` = 0' , array(
|
||||
'uid' => $uid
|
||||
) , true );
|
||||
$r['now'] = 0 + $r['now']['m'];
|
||||
//
|
||||
$r['max'] = 0;
|
||||
//
|
||||
return $r;
|
||||
}
|
||||
|
||||
//Смотрим характеристики
|
||||
public static function getStats( $uid ) {
|
||||
$r = array(
|
||||
'st' => array( ), //Характеристики
|
||||
'sl' => array( ), //Заполненные слоты ( 0 id предмета , 1 тип предмета )
|
||||
'ms' => array( 'now' => 0 , 'max ' => 0 , 'itm' => 0 ) //Масса
|
||||
);
|
||||
//
|
||||
$user = \Core\Database::query( 'SELECT * FROM `users` WHERE `id` = :uid LIMIT 1' , array(
|
||||
'uid' => $uid
|
||||
), true );
|
||||
//
|
||||
if( isset($user['id']) ) {
|
||||
//
|
||||
$stats = \Core\Database::query( 'SELECT * FROM `stats` WHERE `id` = :uid LIMIT 1' , array(
|
||||
'uid' => $uid
|
||||
), true );
|
||||
//
|
||||
//Базовые добавления
|
||||
$r['st']['hpNow'] = $stats['hpNow'];
|
||||
$r['st']['mpNow'] = $stats['mpNow'];
|
||||
//
|
||||
//Характеристики от предметов
|
||||
$pl = \Core\Database::query( 'SELECT * FROM `items_users` WHERE `uid` = :uid AND `inOdet` > 0 AND `delete` = 0' , array(
|
||||
'uid' => $user['id']
|
||||
), true, true);
|
||||
$i = 0;
|
||||
while( $i < count($pl) ) {
|
||||
$r['st'] = self::plusStatsData( $r['st'] , $pl[$i]['data'] );
|
||||
$i++;
|
||||
}
|
||||
unset($pl,$i);
|
||||
//
|
||||
//Характеристики от эффектов
|
||||
$pl = \Core\Database::query( 'SELECT * FROM `eff_users` WHERE `uid` = :uid AND `delete` = 0' , array(
|
||||
'uid' => $user['id']
|
||||
), true, true);
|
||||
$i = 0;
|
||||
while( $i < count($pl) ) {
|
||||
$r['st'] = self::plusStatsData( $r['st'] , $pl[$i]['data'] );
|
||||
$i++;
|
||||
}
|
||||
unset($pl,$i);
|
||||
//
|
||||
//Характеристики от статов
|
||||
$r['st']['hpAll'] += $r['st']['s4'] * 6; //Здоровье от выносливости
|
||||
$r['st']['mpAll'] += $r['st']['s6'] * 12; //Мана от мудрости
|
||||
$r['st']['m1'] += $r['st']['s3'] * 5; //Интуиция дает мф. крита
|
||||
$r['st']['m2'] += $r['st']['s3'] * 5; //Интуиция дает мф. против крита
|
||||
$r['st']['m4'] += $r['st']['s2'] * 7; //Интуиция дает мф. уворота
|
||||
$r['st']['m5'] += $r['st']['s2'] * 7; //Интуиция дает мф. против уворота
|
||||
$r['st']['za'] += $r['st']['s4'] * 1.5; //Выносливость дает защиту от урона
|
||||
$r['st']['zm'] += $r['st']['s4'] * 1.5; //Выносливость дает защиту от магии
|
||||
//
|
||||
//Бонусы комплектов
|
||||
|
||||
//
|
||||
//Бонусы статов
|
||||
|
||||
//
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
//Добавление статов
|
||||
public static function plusStatsData( $st , $data ) {
|
||||
$data = \Core\Utils::lookStats( $data );
|
||||
$i = 0;
|
||||
while( $i < count(self::$items['add']) ) {
|
||||
if( $data['add_' . self::$items['add'][$i]] != 0 ) {
|
||||
$st[self::$items['add'][$i]] += $data['add_' . self::$items['add'][$i]];
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
return $st;
|
||||
}
|
||||
|
||||
//Подключаем локацию в которой находится пользователь
|
||||
public static function room() {
|
||||
if( isset(self::$data['id']) ) {
|
||||
self::$room = \Core\Database::query( 'SELECT * FROM `room` WHERE `id` = :id LIMIT 1' , array(
|
||||
'id' => self::$data['room']
|
||||
) , true );
|
||||
}
|
||||
}
|
||||
|
||||
public static function redirect($url) {
|
||||
header('Location: ' . $url);
|
||||
}
|
||||
|
||||
public static function ErrorPage404() {
|
||||
die('Страница не найдена');
|
||||
}
|
||||
|
||||
public static function ErrorClass404($name) {
|
||||
die('Расширение '. $name .' не найдено');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,376 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
class Utils {
|
||||
|
||||
/*
|
||||
@ Ìåòîä ðåäèðåêòà íà äðóãóþ ñòðàíèöó
|
||||
*/
|
||||
public function redirect( $url ) {
|
||||
header( 'location: ' . $url );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ðàçäåëåíèÿ ïàðàìåòðîâ
|
||||
@
|
||||
*/
|
||||
public static function lookStats($m) {
|
||||
$ist = array();
|
||||
$di = explode('|',$m);
|
||||
$i = 0; $de = false;
|
||||
while($i<count($di))
|
||||
{
|
||||
$de = explode('=',$di[$i]);
|
||||
if(isset($de[0],$de[1]))
|
||||
{
|
||||
if(!isset($ist[$de[0]])) {
|
||||
$ist[$de[0]] = 0;
|
||||
}
|
||||
$ist[$de[0]] = $de[1];
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
return $ist;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäà öåëûõ ÷èñåë
|
||||
@ TYPE: 0 - ëþáîå ÷èñëî
|
||||
*/
|
||||
public function num( $val, $type ) {
|
||||
if( $type == 0 ) {
|
||||
$val = floor((int)$val);
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä îïðåäåëåíèÿ ïóñòîå çíà÷åíèå èëè íåò
|
||||
@ TYPE: 0 - ÷èñëî, 1 - òåêñò
|
||||
*/
|
||||
public function emptyVal( $val, $type ) {
|
||||
$r = true;
|
||||
if( !isset($val) ) {
|
||||
$r = false;
|
||||
}elseif( $type == 0 ) {
|
||||
if( $val == 0 ) {
|
||||
$r = false;
|
||||
}
|
||||
}elseif( $type == 1 ) {
|
||||
$val = str_replace( ' ', '', str_replace( ' ', '', $val ) );
|
||||
if( $val == '' ) {
|
||||
$r = false;
|
||||
}
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ôèëüòðàöèè ñòðîêè (äëÿ POST èëè GET)
|
||||
*/
|
||||
public function fs( $val ) {
|
||||
$val = htmlspecialchars( $val ) ;
|
||||
return $val;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ñîçäàíèÿ êóêè è óäàëåíèÿ
|
||||
*/
|
||||
public function cookie( $name , $value = NULL , $time = NULL ) {
|
||||
if( $value == NULL ) {
|
||||
return $_COOKIE[$name];
|
||||
}elseif( $value != false ) {
|
||||
if( $time == NULL ) {
|
||||
$time = 86400;
|
||||
}
|
||||
return setcookie( $name , $value , OK + $time , '/' );
|
||||
}else{
|
||||
return setcookie( $name , '' , OK - 86400 , '/' );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä íà÷àëà ñåññèè
|
||||
*/
|
||||
public function ses_start() {
|
||||
if ( session_id() ) return true;
|
||||
else return session_start();
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîäïðîâåðêè òåêñòà
|
||||
*/
|
||||
public function testVal( $val , $min , $max , $sym , $nosym , $nostart , $noend , $data ) {
|
||||
$r = true;
|
||||
if( mb_strlen($val,'UTF-8') < $min || mb_strlen($val,'UTF-8') > $max ) {
|
||||
$r = false;
|
||||
}else{
|
||||
//Äîïóñòèìûå ñèìâîëû
|
||||
if( $sym != false ) {
|
||||
$i = 0;
|
||||
$new_val = mb_strtolower($val,'UTF-8');
|
||||
while( $i < mb_strlen($val,'UTF-8') ) {
|
||||
$j = 0;
|
||||
$k = 0;
|
||||
$k2 = 0;
|
||||
while( $j < mb_strlen($sym,'UTF-8') ) {
|
||||
if( mb_strtolower($val[$i],'UTF-8') == mb_strtolower($sym[$j],'UTF-8') ) {
|
||||
$k++;
|
||||
}else{
|
||||
if( isset($data['noXsym']) ) {
|
||||
//Íåëüçÿ èñïîëüçîâàòü áîëåå X ñèìâîëîâ ïîäðÿä
|
||||
$l = 0;
|
||||
$notxt = '';
|
||||
while( $l < $data['noXsym'] ) {
|
||||
$notxt .= mb_strtolower($sym[$j],'UTF-8');
|
||||
$l++;
|
||||
}
|
||||
if( mb_strpos($new_val,$notxt,NULL,'UTF-8') !== false ) {
|
||||
$k2++;
|
||||
}
|
||||
}
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
if( $k == 0 || $k2 > 0 ) {
|
||||
$i = mb_strlen($val,'UTF-8');
|
||||
$r = false;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
//Íå äîïóñòèìûå ñèìâîëû
|
||||
if( $nosym != false ) {
|
||||
$i = 0;
|
||||
$new_val = '';
|
||||
while( $i < count($nosym) ) {
|
||||
if( mb_strpos(mb_strtolower($val,'UTF-8'),mb_strtolower($nosym[$i],'UTF-8'),NULL,'UTF-8') !== false ) {
|
||||
$i = count($nosym);
|
||||
$r = false;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
//íå äîïóñòèìîå íà÷àëî
|
||||
if( $nostart != false ) {
|
||||
$i = 0;
|
||||
$new_val = '';
|
||||
while( $i < count($nostart) ) {
|
||||
if( mb_substr( $val, 0, mb_strlen($nostart[$i],'UTF-8'),'UTF-8') == $nostart[$i] ) {
|
||||
$i = count($nostart);
|
||||
$r = false;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
//íå äîïóñòèìûé êîíåö
|
||||
if( $noend != false ) {
|
||||
$i = 0;
|
||||
$new_val = '';
|
||||
while( $i < count($noend) ) {
|
||||
if( mb_substr( $val, ( mb_strlen($val,'UTF-8') - mb_strlen($noend[$i],'UTF-8') ) , 0 , 'UTF-8') == $noend[$i] ) {
|
||||
$i = count($noend);
|
||||
$r = false;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä "çàâåðøåíèÿ" ñåññèè
|
||||
*/
|
||||
public function ses_end() {
|
||||
if ( session_id() ) {
|
||||
// Åñëè åñòü àêòèâíàÿ ñåññèÿ, óäàëÿåì êóêè ñåññèè,
|
||||
setcookie(session_name(), session_id(), time()-60*60*24);
|
||||
// è óíè÷òîæàåì ñåññèþ
|
||||
session_unset();
|
||||
session_destroy();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä îïðåäåëåíèÿ òèïà ñòðîêà, öèôðû, ýë.ïî÷òà
|
||||
*/
|
||||
public function takeType( $val ) {
|
||||
|
||||
if( preg_match( "|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $val ) ) {
|
||||
//Ýë.ïî÷òà
|
||||
return 2;
|
||||
}else{
|
||||
preg_match_all( '([0-9])', $val, $matches );
|
||||
$res = implode( NULL, $matches[0] );
|
||||
if( mb_strlen( $val, 'UTF-8' ) > mb_strlen( $res, 'UTF-8' ) ) {
|
||||
//Ñòðîêà
|
||||
return 1;
|
||||
}else{
|
||||
//×èñëî
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ïðîâåðêè ïðàâèëüíîñòè ïàðîëåé
|
||||
*/
|
||||
public function testPass( $psw1, $psw2 ) {
|
||||
if( $psw1 == $psw2 ) {
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ãåíèðàöèè êëþ÷à àâòîðèçàöèè
|
||||
*/
|
||||
public function createAuth( $par ) {
|
||||
if( !isset( $par['rand'] ) ) {
|
||||
$par['rand'] = rand(10000000,90000000);
|
||||
}
|
||||
$r = $par['rand'] . md5( $par['ip'] . '+' . $par['id'] . '+' . $par['pass'] . '+' . $par['rand'] );
|
||||
return $r;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ïðîâåðêè êëþ÷à àâòîðèçàöèè
|
||||
*/
|
||||
public function testAuth( $auth, $par ) {
|
||||
$par['rand'] = substr( $auth, 0, 8 );
|
||||
if( $auth == self::createAuth( $par ) ) {
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäà JSON äàííûõ
|
||||
*/
|
||||
public function JSON_Headers() {
|
||||
header('Expires: Mon, 26 Jul 1970 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ïðèîáðàçîâàíèÿ îáüåêòà â JSON
|
||||
*/
|
||||
public function jsonencode( $val ) {
|
||||
array_walk_recursive( $val, function( &$value, $key ) {
|
||||
$value = iconv( "CP1251", "UTF-8", $value );
|
||||
});
|
||||
return json_encode( $val );
|
||||
//return json_encode( $val );
|
||||
//return self::json_fix_cyr( json_encode( $val ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ïðèîáðàçîâàíèÿ JSON â îáüåêò
|
||||
*/
|
||||
public function jsondecode( $val ) {
|
||||
return json_decode( $val );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä ôèêñà êèðèëëè÷åñêèõ ñèìâîëîâ
|
||||
*/
|
||||
public function json_fix_cyr($json_str) {
|
||||
$cyr_chars = array (
|
||||
'\u0430' => 'à', '\u0410' => 'À',
|
||||
'\u0431' => 'á', '\u0411' => 'Á',
|
||||
'\u0432' => 'â', '\u0412' => 'Â',
|
||||
'\u0433' => 'ã', '\u0413' => 'Ã',
|
||||
'\u0434' => 'ä', '\u0414' => 'Ä',
|
||||
'\u0435' => 'å', '\u0415' => 'Å',
|
||||
'\u0451' => '¸', '\u0401' => '¨',
|
||||
'\u0436' => 'æ', '\u0416' => 'Æ',
|
||||
'\u0437' => 'ç', '\u0417' => 'Ç',
|
||||
'\u0438' => 'è', '\u0418' => 'È',
|
||||
'\u0439' => 'é', '\u0419' => 'É',
|
||||
'\u043a' => 'ê', '\u041a' => 'Ê',
|
||||
'\u043b' => 'ë', '\u041b' => 'Ë',
|
||||
'\u043c' => 'ì', '\u041c' => 'Ì',
|
||||
'\u043d' => 'í', '\u041d' => 'Í',
|
||||
'\u043e' => 'î', '\u041e' => 'Î',
|
||||
'\u043f' => 'ï', '\u041f' => 'Ï',
|
||||
'\u0440' => 'ð', '\u0420' => 'Ð',
|
||||
'\u0441' => 'ñ', '\u0421' => 'Ñ',
|
||||
'\u0442' => 'ò', '\u0422' => 'Ò',
|
||||
'\u0443' => 'ó', '\u0423' => 'Ó',
|
||||
'\u0444' => 'ô', '\u0424' => 'Ô',
|
||||
'\u0445' => 'õ', '\u0425' => 'Õ',
|
||||
'\u0446' => 'ö', '\u0426' => 'Ö',
|
||||
'\u0447' => '÷', '\u0427' => '×',
|
||||
'\u0448' => 'ø', '\u0428' => 'Ø',
|
||||
'\u0449' => 'ù', '\u0429' => 'Ù',
|
||||
'\u044a' => 'ú', '\u042a' => 'Ú',
|
||||
'\u044b' => 'û', '\u042b' => 'Û',
|
||||
'\u044c' => 'ü', '\u042c' => 'Ü',
|
||||
'\u044d' => 'ý', '\u042d' => 'Ý',
|
||||
'\u044e' => 'þ', '\u042e' => 'Þ',
|
||||
'\u044f' => 'ÿ', '\u042f' => 'ß',
|
||||
|
||||
'\r' => '',
|
||||
'\n' => '<br />',
|
||||
'\t' => ''
|
||||
);
|
||||
foreach ($cyr_chars as $cyr_char_key => $cyr_char) {
|
||||
$json_str = str_replace($cyr_char_key, $cyr_char, $json_str);
|
||||
}
|
||||
return $json_str;
|
||||
}
|
||||
|
||||
public static function timeOut($ttm)
|
||||
{
|
||||
$out = '';
|
||||
$time_still = $ttm;
|
||||
$tmp = floor($time_still/2592000);
|
||||
$id=0;
|
||||
if ($tmp > 0)
|
||||
{
|
||||
$id++;
|
||||
if ($id<3) {$out .= $tmp." ìåñ. ";}
|
||||
$time_still = $time_still-$tmp*2592000;
|
||||
}
|
||||
$tmp = floor($time_still/86400);
|
||||
if ($tmp > 0)
|
||||
{
|
||||
$id++;
|
||||
if ($id<3) {$out .= $tmp." äí. ";}
|
||||
$time_still = $time_still-$tmp*86400;
|
||||
}
|
||||
$tmp = floor($time_still/3600);
|
||||
if ($tmp > 0)
|
||||
{
|
||||
$id++;
|
||||
if ($id<3) {$out .= $tmp." ÷. ";}
|
||||
$time_still = $time_still-$tmp*3600;
|
||||
}
|
||||
$tmp = floor($time_still/60);
|
||||
if ($tmp > 0)
|
||||
{
|
||||
$id++;
|
||||
if ($id<3) {$out .= $tmp." ìèí. ";}
|
||||
}
|
||||
if($out=='')
|
||||
{
|
||||
if($time_still<0)
|
||||
{
|
||||
$time_still = 0;
|
||||
}
|
||||
$out = $time_still.' ñåê.';
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace Core;
|
||||
|
||||
class View {
|
||||
|
||||
public function generateTpl($template, $data ) {
|
||||
$twig = new \Twig_Environment(new \Twig_Loader_Filesystem(APP_PATH . DS . 'html'), array('autoescape' => false));
|
||||
$template = $template . '.html';
|
||||
$template = $twig->loadTemplate($template);
|
||||
return $template->render($data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
deny from all
|
||||
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="https://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
|
||||
<link href="https://img.new-combats.com/css/main.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location/comission.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location.line.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/location/admin.js?v={{ ver }}"></script>
|
||||
<script>
|
||||
|
||||
</script>
|
||||
<!--
|
||||
Ñåãîäíÿ ìû ïðîâåðèì êòî ñëàáàê, à êòî âîèí |
|
||||
Ëó÷øàÿ áðàóçåðíàÿ îíëàéí èãðà!
|
||||
-->
|
||||
<title>{{ title }}</title>
|
||||
</head>
|
||||
<body onLoad="bug.start();" style="padding-top:0px; margin-top:7px; height:100%; background-color:#E2E0E0;">
|
||||
{% if user.admin > 0 %}
|
||||
<!-- -->
|
||||
Ïåðñîíàæ: <b>{{ user.login }} (<font color="red">Âëàäåëåö ðåñóðñà</font>)</b><hr>
|
||||
<div id="mainblock">
|
||||
|
||||
</div>
|
||||
<!-- -->
|
||||
{% else %}
|
||||
Äîñòóï ðàçðåøåí òîëüêî âëàäåëüöàì ðåñóðñà.
|
||||
{% endif %}
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="https://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
|
||||
<link href="https://img.new-combats.com/css/main.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location/auction.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location.line.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/location/auction.js?v={{ ver }}"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/location.line.js?v={{ ver }}"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/item.js?v={{ ver }}"></script>
|
||||
<script>
|
||||
locjs.data.user = {
|
||||
'id':{{ (0+user.id) }},
|
||||
'login':'{{ user.login }}',
|
||||
'align':{{ (0+user.align) }},
|
||||
'level':{{ (0+user.level) }},
|
||||
'money':{{ (0+user.money) }},
|
||||
'massaNow':{{ (0+user.massaNow) }},
|
||||
'massaMax':{{ (0+user.massaMax) }},
|
||||
|
||||
'silver':{{ (0+stats.st.silver) }},
|
||||
|
||||
'timeGo':{{ (0+stats.timeGo) }},
|
||||
'timeGoL':{{ (0+stats.timeGoL) }},
|
||||
'timeNow':{{ OK }}
|
||||
};
|
||||
|
||||
locjs.data.locations = [
|
||||
{% if user.city == 'capitalcity' %}['1.180.0.226' , 226 , 'Ïî÷òîâîå îòäåëåíèå' , 0]{% endif %}
|
||||
{% if user.city == 'angelscity' %}['2.180.0.262' , 262 , 'Ïî÷òîâîå îòäåëåíèå' , 0]{% endif %}
|
||||
];
|
||||
</script>
|
||||
<!--
|
||||
Ñåãîäíÿ ìû ïðîâåðèì êòî ñëàáàê, à êòî âîèí |
|
||||
Ëó÷øàÿ áðàóçåðíàÿ îíëàéí èãðà!
|
||||
-->
|
||||
<title>{{ title }}</title>
|
||||
</head>
|
||||
<body onLoad="locjs.start();" style="padding-top:0px; margin-top:7px; height:100%; background-color:#E2E0E0;">
|
||||
<!-- -->
|
||||
<div id="error"></div>
|
||||
<div id="auction_body" class="middle">
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<!-- -->
|
||||
<div id="error"></div>
|
||||
<div id="auction_main">
|
||||
<div id="auction_title"></div>
|
||||
<div id="auction_content"></div>
|
||||
</div>
|
||||
<!-- -->
|
||||
</div>
|
||||
</div>
|
||||
<div id="auction_menu" class="right-sidebar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="https://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
|
||||
<link href="https://img.new-combats.com/css/main.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location/comission.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location.line.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/location/comission.js?v={{ ver }}"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/location.line.js?v={{ ver }}"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/item.js?v={{ ver }}"></script>
|
||||
<script>
|
||||
locjs.data.user = {
|
||||
'id':{{ (0+user.id) }},
|
||||
'login':'{{ user.login }}',
|
||||
'align':{{ (0+user.align) }},
|
||||
'level':{{ (0+user.level) }},
|
||||
'money':{{ (0+user.money) }},
|
||||
'massaNow':{{ (0+user.massaNow) }},
|
||||
'massaMax':{{ (0+user.massaMax) }},
|
||||
|
||||
'timeGo':{{ (0+stats.timeGo) }},
|
||||
'timeGoL':{{ (0+stats.timeGoL) }},
|
||||
'timeNow':{{ OK }}
|
||||
};
|
||||
locjs.data.menu = [
|
||||
["Îðóæèå: êàñòåòû,íîæè",1,0],
|
||||
["òîïîðû",2,1],
|
||||
["äóáèíû,áóëàâû",3,1],
|
||||
["ìå÷è",4,1],
|
||||
["ìàãè÷åñêèå ïîñîõè",5,1],
|
||||
["Îäåæäà: ñàïîãè",6,0],
|
||||
["ïåð÷àòêè",7,1],
|
||||
["ðóáàõè",8,1],
|
||||
["ëåãêàÿ áðîíÿ",9,1],
|
||||
["òÿæåëàÿ áðîíÿ",10,1],
|
||||
["øëåìû",11,1],
|
||||
["íàðó÷è",12,1],
|
||||
["ïîÿñà",13,1],
|
||||
["ïîíîæè",14,1],
|
||||
["Ùèòû",15,1],
|
||||
["Þâåëèðíûå òîâàðû: ñåðüãè",16,0],
|
||||
["îæåðåëüÿ",17,1],
|
||||
["êîëüöà",18,1],
|
||||
["Ïðî÷åå: Çàêëèíàíèÿ",19,0],
|
||||
["Ýëèêñèðû",20,1],
|
||||
["×àðêè",21,1],
|
||||
["Ðóíû",22,1],
|
||||
["Ðåñóðñû",23,1],
|
||||
["Êîðì äëÿ çâåðåé",24,1],
|
||||
["Îñòàëüíîå",25,0]
|
||||
];
|
||||
|
||||
locjs.data.locations = [
|
||||
{% if user.city == 'capitalcity' %}['1.180.0.9' , 9 , 'Öåíòðàëüíàÿ ïëîùàäü' , 0]{% endif %}
|
||||
{% if user.city == 'angelscity' %}['2.180.0.234' , 234 , 'Öåíòðàëüíàÿ ïëîùàäü' , 0]{% endif %}
|
||||
];
|
||||
</script>
|
||||
<!--
|
||||
Ñåãîäíÿ ìû ïðîâåðèì êòî ñëàáàê, à êòî âîèí |
|
||||
Ëó÷øàÿ áðàóçåðíàÿ îíëàéí èãðà!
|
||||
-->
|
||||
<title>{{ title }}</title>
|
||||
</head>
|
||||
<body onLoad="locjs.start();" style="padding-top:0px; margin-top:7px; height:100%; background-color:#E2E0E0;">
|
||||
<!-- -->
|
||||
<div id="comission_body" class="middle">
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<!-- -->
|
||||
<div id="error"></div>
|
||||
<div id="comission_main">
|
||||
<div id="comission_title"></div>
|
||||
<div id="comission_content" class="borderandpadding0px"></div>
|
||||
</div>
|
||||
<!-- -->
|
||||
</div>
|
||||
</div>
|
||||
<div id="comission_menu" class="right-sidebar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="https://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
|
||||
<link href="https://img.new-combats.com/css/main.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location/comission.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<link href="/core/static/styles/location.line.css?v={{ ver }}" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="/core/static/scripts/location/debuger.js?v={{ ver }}"></script>
|
||||
<script>
|
||||
bug.skills = [ {{skills}} ];
|
||||
</script>
|
||||
<!--
|
||||
Ñåãîäíÿ ìû ïðîâåðèì êòî ñëàáàê, à êòî âîèí |
|
||||
Ëó÷øàÿ áðàóçåðíàÿ îíëàéí èãðà!
|
||||
-->
|
||||
<title>{{ title }}</title>
|
||||
</head>
|
||||
<body onLoad="bug.start();" style="padding-top:0px; margin-top:7px; height:100%; background-color:#E2E0E0;">
|
||||
<!-- -->
|
||||
Ïåðñîíàæ: <b>{{ user.login }}</b><hr>
|
||||
<div id="mainblock"></div>
|
||||
<!-- -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
set_include_path(APP_PATH);
|
||||
spl_autoload_extensions('.php');
|
||||
spl_autoload_register();
|
||||
|
||||
require PROJECT_PATH . DS . 'lib' . DS . 'Twig' . DS . 'Autoloader.php';
|
||||
|
||||
Twig_Autoloader::register();
|
||||
|
||||
Core\Database::connect();
|
||||
Core\Route::begin();
|
||||
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
deny from all
|
||||
@@ -0,0 +1,66 @@
|
||||
<?
|
||||
|
||||
namespace Logic;
|
||||
|
||||
use \Core\View as view;
|
||||
|
||||
class Admin {
|
||||
|
||||
/*
|
||||
@ Áàçîâûé ìåòîä íà÷àë ãåíèðàöèè ìîäóëÿ
|
||||
@ Çäåñü ïðîèñõîäèò îïðåäåëåíèå òèïà äàííûõ, à òàê-æå
|
||||
@ ïðîâåðêà âîçìîæíîñòè ïðîñìîòðà äàííîãî ìîäóëÿ
|
||||
@ âñå ïîääêëþ÷àåìûå êëàññû äîëæíû áûòü ÍÅÎÁÕÎÄÈÌÛÌÈ!
|
||||
*/
|
||||
public static function defaultAction() {
|
||||
|
||||
//Ïîäêëþ÷àåì ïàêåòû
|
||||
\Core\User::connect();
|
||||
\Core\User::room();
|
||||
|
||||
if (\Core\User::$data == false ) {
|
||||
//Íåò äîñòóïà, ïåðñîíàæ íå àâòîðèçèðîâàí èëè çàáëîêèðîâàí
|
||||
echo 'Àâòîðèçèðóéòåñü ÷åðåç <a href="/index.php">ãëàâíóþ ñòðàíèöó</a>.';
|
||||
}elseif( stristr($_SERVER['HTTP_ACCEPT'],'application/json') == true ) {
|
||||
echo self::getJSON();
|
||||
}else{
|
||||
echo self::getHTML();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé HTML-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ ×åðåç êîíêðåòíûé øàáëîíèçàòîð
|
||||
*/
|
||||
public static function getHTML() {
|
||||
//PC âåðñèÿ ãëàâíîé ñòðàíèöû
|
||||
//
|
||||
return view::generateTpl( 'admin', array(
|
||||
'title' => COPY . ' :: Ïàíåëü àäìèíà',
|
||||
|
||||
//Ïåðåäàåì äàííûå ïàêåòîâ
|
||||
'user' => \Core\User::$data,
|
||||
'stats' => \Core\User::$stats,
|
||||
'room' => \Core\User::$room,
|
||||
|
||||
'OK' => OK,
|
||||
'copy' => COPY,
|
||||
'rights' => RIGHTS,
|
||||
|
||||
'ver' => '0.0.1'
|
||||
) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé JSON-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ Èíôîðìàöèÿ áåðåòñÿ èç ïåðåìåííîé self::$JSON
|
||||
*/
|
||||
public static function getJSON() {
|
||||
$r = array();
|
||||
|
||||
return \Core\Utils::jsonencode( $r );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,551 @@
|
||||
<?
|
||||
|
||||
namespace Logic;
|
||||
|
||||
use \Core\View as view;
|
||||
|
||||
class Auction {
|
||||
|
||||
/*
|
||||
@ Áàçîâûé ìåòîä íà÷àë ãåíèðàöèè ìîäóëÿ
|
||||
@ Çäåñü ïðîèñõîäèò îïðåäåëåíèå òèïà äàííûõ, à òàê-æå
|
||||
@ ïðîâåðêà âîçìîæíîñòè ïðîñìîòðà äàííîãî ìîäóëÿ
|
||||
@ âñå ïîääêëþ÷àåìûå êëàññû äîëæíû áûòü ÍÅÎÁÕÎÄÈÌÛÌÈ!
|
||||
*/
|
||||
public static function defaultAction() {
|
||||
|
||||
//Ïîäêëþ÷àåì ïàêåòû
|
||||
\Core\User::connect();
|
||||
\Core\User::room();
|
||||
|
||||
if (\Core\User::$data == false ) {
|
||||
//Íåò äîñòóïà, ïåðñîíàæ íå àâòîðèçèðîâàí èëè çàáëîêèðîâàí
|
||||
echo 'Àâòîðèçèðóéòåñü ÷åðåç <a href="/index.php">ãëàâíóþ ñòðàíèöó</a>.';
|
||||
}elseif( \Core\User::$data['battle'] > 0 ) {
|
||||
header('location:main.php?inv');
|
||||
}elseif( \Core\User::$room['name'] != 'Àóêöèîí' ) {
|
||||
echo 'Âû íàõîäèòåñü â äðóãîé ëîêàöèè.';
|
||||
}elseif( stristr($_SERVER['HTTP_ACCEPT'],'application/json') == true ) {
|
||||
\Core\User::$stats = \Core\User::getStats( \Core\User::$data['id'] );
|
||||
echo self::getJSON();
|
||||
}else{
|
||||
\Core\User::$stats = \Core\User::getStats( \Core\User::$data['id'] );
|
||||
echo self::getHTML();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé HTML-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ ×åðåç êîíêðåòíûé øàáëîíèçàòîð
|
||||
*/
|
||||
public static function getHTML() {
|
||||
//PC âåðñèÿ ãëàâíîé ñòðàíèöû
|
||||
return view::generateTpl( 'auction', array(
|
||||
'title' => COPY . ' :: Àóêöèîí',
|
||||
|
||||
//Ïåðåäàåì äàííûå ïàêåòîâ
|
||||
'user' => \Core\User::$data,
|
||||
'stats' => \Core\User::$stats,
|
||||
'room' => \Core\User::$room,
|
||||
|
||||
'OK' => OK,
|
||||
'copy' => COPY,
|
||||
'rights' => RIGHTS,
|
||||
|
||||
'ver' => '1.2.5'
|
||||
) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé JSON-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ Èíôîðìàöèÿ áåðåòñÿ èç ïåðåìåííîé self::$JSON
|
||||
*/
|
||||
public static function getJSON() {
|
||||
$r = array( 'type' => $_GET['type'],'item_data' => array( 'i' => 0 , 'g' => array() ) );
|
||||
|
||||
//Èíôîðìàöèÿ
|
||||
$r['money'] = 0+\Core\User::$data['money'];
|
||||
$r['massaNow'] = 0+\Core\User::$data['massaNow'];
|
||||
$r['massaMax'] = 0+\Core\User::$data['massaNow'];
|
||||
$r['timeGo'] = 0+\Core\User::$stats['timeGo'];
|
||||
$r['timeGoL'] = 0+\Core\User::$stats['timeGoL'];
|
||||
$r['timeNow'] = OK;
|
||||
//
|
||||
|
||||
if(isset($_GET['buy_item']) && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK) {
|
||||
//Ìåíÿåì ñòàâêó
|
||||
$itm_auc = \Core\Database::query( 'SELECT * FROM `items_auc` WHERE `id` = :item_id AND `time_end` = 0 AND `time` > :time LIMIT 1' , array(
|
||||
'item_id' => (int)$_GET['buy_item'],
|
||||
'time' => OK - 86400
|
||||
) , true );
|
||||
if(isset($itm_auc['id'])) {
|
||||
$price = round($_GET['kr'],2);
|
||||
$price_min = round(($itm_auc['price'] + $itm_auc['price']*0.01),2);
|
||||
$price_max = round(($itm_auc['price'] * 2),2);
|
||||
if( $itm_auc['uid'] == \Core\User::$data['id'] ) {
|
||||
$r['error'] = 6;
|
||||
}elseif( $itm_auc['user_buy'] != \Core\User::$data['id'] ) {
|
||||
if( $price > \Core\User::$data['money'] ) {
|
||||
$r['error'] = 5; //Ó âàñ íåäîñòàòî÷íî äåíåã
|
||||
}elseif( $price - $price_min >= 0 ) {
|
||||
if( $price - $price_max < 1 ) {
|
||||
/*
|
||||
Çàáèðàåì êð. , åñëè áûëè ñòàâêè äî ýòîãî âîçâðàùàåì êð. íà ïî÷òó ïåðñîíàæó êîòîðûé äåëàë ñòàâêó
|
||||
*/
|
||||
if( $itm_auc['user_buy'] > 0 ) {
|
||||
//Âûäàåì êð. îáðàòíî ïðîøëîìó èãðîêó êîòîðûé ñäåëàë ñòàâêó
|
||||
$user = \Core\Database::query( 'SELECT `id`,`login` FROM `users` WHERE `id` = :uid LIMIT 1' , array(
|
||||
'uid' => $itm_auc['user_buy']
|
||||
) , true );
|
||||
if( isset($user['id']) ) {
|
||||
\Core\Chat::send_system( $user['login'] , 'Ïåðñîíàæ <b>' . \Core\User::$data['login'] . '</b> ïåðåáèë âàøó ñòàâêó íà Àóêöèîíå, ïðåäìåò "'.$itm_auc['name'].'". Ñóììà âàøåé ñòàâêè îòïðàâëåíà ê âàì íà ïî÷òó.' );
|
||||
//
|
||||
$tmgo = 0;
|
||||
\Core\Database::query( 'INSERT INTO `items_users` (`item_id`,`1price`,`uid`,`delete`,`lastUPD`) VALUES (
|
||||
1220 , :money , :uid , 0 , :time
|
||||
)' , array(
|
||||
'uid' => '-51' . $user['id'],
|
||||
'money' => $itm_auc['price'],
|
||||
'time' => OK + $tmgo * 60
|
||||
));
|
||||
$txt = 'Äåíüãè îò <b>'.$itm_auc['login'].'</b>: '.$itm_auc['price'].' êð. Ïðèáûòèå: '.date('d.m.Y H:i',(OK + $tmgo*60)).'';
|
||||
\Core\Database::query( 'INSERT INTO `post` (`uid`,`sender_id`,`time`,`money`,`text`) VALUES
|
||||
( :user_to , :user_from , :time , :money , :txt )' , array(
|
||||
'user_from' => $itm_auc['uid'],
|
||||
'user_to' => $user['id'],
|
||||
'time' => OK,
|
||||
'txt' => $txt,
|
||||
'money' => $itm_auc['price']
|
||||
));
|
||||
$txt = 'Äåíüãè ê <b>'.$user['login'].'</b>: '.$itm_auc['price'].' êð. Ïðèáûòèå: '.date('d.m.Y H:i',(OK + $tmgo*60)).'';
|
||||
\Core\Database::query( 'INSERT INTO `post` (`uid`,`sender_id`,`time`,`money`,`text`) VALUES
|
||||
( :user_from , :user_to , :time , :money , :txt )' , array(
|
||||
'user_from' => $itm_auc['uid'],
|
||||
'user_to' => $user['id'],
|
||||
'time' => OK,
|
||||
'txt' => $txt,
|
||||
'money' => $tim_auc['price']
|
||||
));
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
//Çàáèðàåì äåíüãè ó òåêóùåãî èãðîêà è çàïèñûâàåì â òåëî àóêöèîíà
|
||||
\Core\User::$data['money'] -= $price;
|
||||
\Core\Database::query( 'UPDATE `users` SET `money` = :money WHERE `id` = :uid LIMIT 1', array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'money' => \Core\User::$data['money']
|
||||
) );
|
||||
//
|
||||
$itm_auc['price'] = $price;
|
||||
$itm_auc['login_buy'] = \Core\User::$data['login'];
|
||||
$itm_auc['user_buy'] = \Core\User::$data['id'];
|
||||
$itm_auc['time'] += 15*60; //+15 ìèí ê àóêöèîíó
|
||||
//
|
||||
\Core\Database::query( 'UPDATE `items_auc` SET `price` = :price , `time` = :time , `login_buy` = :login_buy , `user_buy` = :user_buy WHERE `id` = :id LIMIT 1', array(
|
||||
'id' => $itm_auc['id'],
|
||||
'price' => $itm_auc['price'],
|
||||
'time' => $itm_auc['time'],
|
||||
'login_buy' => $itm_auc['login_buy'],
|
||||
'user_buy' => $itm_auc['user_buy']
|
||||
) );
|
||||
//
|
||||
//
|
||||
$r['info'] = true;
|
||||
//
|
||||
}else{
|
||||
$r['error'] = 4; //Ïðåâûøåíà ìàêñèìàëüíàÿ ñòàâêà â 2 ðàçà îò òåêóùåé ñòàâêè
|
||||
}
|
||||
}else{
|
||||
$r['error'] = 3; //Ìèíèìàëüíàÿ ñòàâêà - 1% îò òåêóùåé ñòàâêè
|
||||
}
|
||||
}else{
|
||||
$r['error'] = 2;
|
||||
}
|
||||
}else{
|
||||
$r['error'] = 1;
|
||||
}
|
||||
}elseif(isset($_GET['add_item']) && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK) {
|
||||
//Äîáàâëÿåì ïðåäìåò íà àóêöèîí (îò èãðîêà â àóêöèîí)
|
||||
$itm_user = \Core\Database::query( 'SELECT `a`.* , `b`.* , `a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `a`.`item_id` = `b`.`id` WHERE `a`.`inOdet` = 0 AND `a`.`uid` = :uid AND `a`.`id` = :item_id AND `a`.`delete` = 0 AND `a`.`gift` = "" AND `a`.`data` NOT LIKE "%sudba=%" AND `a`.`data` NOT LIKE "%zazuby=%" AND `a`.`data` NOT LIKE "%|notransfer=%" AND `a`.`inTransfer` = 0 AND `a`.`inShop` = 0 LIMIT 1' , array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'item_id' => (int)$_GET['add_item']
|
||||
) , true );
|
||||
if( isset($itm_user['id']) ) {
|
||||
$price = round($_GET['price'],2);
|
||||
//
|
||||
if( \Core\User::$stats['st']['silver'] >= 4 ) {
|
||||
$price_com = round(($price/100*2.5),2);
|
||||
}else{
|
||||
$price_com = round(($price/100*10),2);
|
||||
}
|
||||
//
|
||||
if( $price < 1 ) {
|
||||
$r['error'] = 2;
|
||||
}elseif( $price > 1000000 ) {
|
||||
$r['error'] = 3;
|
||||
}elseif( $price_com > \Core\User::$data['money'] ) {
|
||||
$r['error'] = 4;
|
||||
}elseif( \Core\User::$data['align'] == 2 ) {
|
||||
$r['error'] = 5;
|
||||
}else{
|
||||
//
|
||||
$count = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_users` WHERE `uid` = :uid AND `item_id` = :item_id AND ( ( `inGroup` > 0 AND `inGroup` = :group ) OR ( `inGroup` = 0 AND `id` = :id ) ) AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0 LIMIT 1', array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'id' => $itm_user['uiid'],
|
||||
'item_id' => $itm_user['id'],
|
||||
'group' => $itm_user['inGroup']
|
||||
) , true );
|
||||
$count = $count[0];
|
||||
//
|
||||
$upd = \Core\Database::query( 'UPDATE `items_users` SET `uid` = 0, `inGroup` = :id WHERE `uid` = :uid AND `item_id` = :item_id AND ( ( `inGroup` > 0 AND `inGroup` = :group ) OR ( `inGroup` = 0 AND `id` = :id ) ) AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0' ,
|
||||
array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'id' => $itm_user['uiid'],
|
||||
'item_id' => $itm_user['id'],
|
||||
'group' => $itm_user['inGroup']
|
||||
)
|
||||
);
|
||||
//
|
||||
if($upd == true) {
|
||||
$itm_user_data = \Core\Item::lookStats($itm_user['data']);
|
||||
//
|
||||
\Core\Database::query( 'INSERT INTO `items_auc`
|
||||
(
|
||||
`login`,`uid`,`item_id`,`items_id`,`time`,`time_end`,`img`,`name`,`level`,`x`,`price_start`,`price`,`massa`,`iznosNOW`,`iznosMAX`,`user_buy`,`type`,`delete`
|
||||
) VALUES (
|
||||
:login , :uid , :item_id , :items_id , :time , 0 , :img , :name , :level , :x , :price , :price , :massa , :iznosNOW , :iznosMAX , 0 , :type , 0
|
||||
)', array(
|
||||
'login' => \Core\User::$data['login'],
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'item_id' => $itm_user['uiid'],
|
||||
'items_id' => $itm_user['id'],
|
||||
'time' => OK,
|
||||
'time_end' => OK + 86400,
|
||||
'img' => $itm_user['img'],
|
||||
'name' => $itm_user['name'],
|
||||
'level' => $itm_user_data['tr_lvl'],
|
||||
'x' => (0+$count),
|
||||
'price' => $price,
|
||||
'massa' => $itm_user['massa'],
|
||||
'iznosNOW' => $itm_user['iznosNOW'],
|
||||
'iznosMAX' => $itm_user['iznosMAX'],
|
||||
'type' => $itm_user['type']
|
||||
));
|
||||
//
|
||||
$r['info'] = array(
|
||||
'itm_name' => $itm_user['name'],
|
||||
'x' => $count,
|
||||
'price' => $price,
|
||||
'id' => $itm_user['uiid']
|
||||
);
|
||||
//
|
||||
}else{
|
||||
$r['error'] = 6;
|
||||
}
|
||||
//
|
||||
}
|
||||
}else{
|
||||
$r['error'] = 1;
|
||||
}
|
||||
}elseif(isset($_GET['option_item']) && ($_GET['option_item'] == 1 || $_GET['option_item'] == 2 || $_GET['option_item'] == 3 || $_GET['option_item'] == 4 || $_GET['option_item'] == 5)) {
|
||||
//Ïðîñìàòðèâàåì ïðåäìåòû êîòîðûå íàõîäÿòñÿ â àóêöèîíå è â èíâåíòàðå èãðîêà
|
||||
$id = (int)$_GET['option_item'];
|
||||
if( $id == 5 ) {
|
||||
//Òîðãè (óíèêàëüíûå âåùè)
|
||||
$r['item_data']['x'] = 0;
|
||||
$pla = \Core\Database::query( 'SELECT * FROM `items_auc` WHERE `time_end` = 0 AND `uniq` = 1 ORDER BY `id` DESC' , array(
|
||||
|
||||
) , true , true );
|
||||
//
|
||||
$pages_all = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_auc` WHERE `time_end` = 0 AND `uniq` = 1 LIMIT 1', array(
|
||||
|
||||
) , true );
|
||||
//
|
||||
$pages_all = $pages_all['i'];
|
||||
$pages_all = ceil($pages_all/20); //20 ñòðàíèö
|
||||
//
|
||||
$page_now = 0 + round((int)$_GET['page']);
|
||||
if( $page_now < 1 ) {
|
||||
$page_now = 1;
|
||||
}elseif( $page_now > $pages_all ) {
|
||||
$page_now = $pages_all;
|
||||
}
|
||||
//
|
||||
$r['toppages'] = $pages_all;
|
||||
$r['page'] = $page_now;
|
||||
//
|
||||
$i = 0;
|
||||
$j = 0;
|
||||
while( $i < count($pla) ) {
|
||||
//
|
||||
if( $i < ($page_now) * 20 && $i >= ($page_now-1) * 20 ) {
|
||||
$pl = \Core\Database::query( 'SELECT `a`.* , `b`.* , `a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `a`.`item_id` = `b`.`id` WHERE `a`.`id` = :item_id LIMIT 1' , array(
|
||||
'item_id' => $pla[$i]['item_id']
|
||||
) , true );
|
||||
//
|
||||
$r['item_data'][$j] = \Core\Item::infoItem($pl);
|
||||
$r['item_data'][$j]['iid'] = $pl['item_id'];
|
||||
$r['item_data'][$j]['user_ow'] = $pla[$i]['login'];
|
||||
$r['item_data'][$j]['item_id'] = $pla[$i]['items_id'];
|
||||
$r['item_data'][$j]['name'] = $pl['name'];
|
||||
$r['item_data'][$j]['prc'] = $pla[$i]['price'];
|
||||
$r['item_data'][$j]['prc2'] = round(($pla[$i]['price']+$pla[$i]['price']*0.01),2);
|
||||
$r['item_data'][$j]['cid'] = $pl['id'];
|
||||
$r['item_data'][$j]['aid'] = $pla[$i]['id'];
|
||||
//
|
||||
$r['item_data'][$j]['buy'] = $pla[$i]['login_buy'];
|
||||
//$r['item_data'][$j]['buy'] = $pl['login_buy'];
|
||||
//
|
||||
$r['item_data'][$j]['x'] = $count;
|
||||
$r['item_data'][$j]['iznosNOW'] = $pl['iznosNOW'];
|
||||
$r['item_data'][$j]['iznosMAX'] = $pl['iznosMAX'];
|
||||
$r['item_data'][$j]['massa'] = $pl['massa'];
|
||||
$r['item_data'][$j]['time'] = \Core\Utils::timeOut($pla[$i]['time']+86400-time());
|
||||
$j++;
|
||||
//
|
||||
$r['item_data']['x']++;
|
||||
$r['item_data']['i']++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
}elseif( $id == 1 ) {
|
||||
//Òîðãè
|
||||
$r['item_data']['x'] = 0;
|
||||
$pla = \Core\Database::query( 'SELECT * FROM `items_auc` WHERE `time_end` = 0 AND `uniq` = 0 ORDER BY `id` DESC' , array(
|
||||
|
||||
) , true , true );
|
||||
//
|
||||
$pages_all = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_auc` WHERE `time_end` = 0 AND `uniq` = 0 LIMIT 1', array(
|
||||
|
||||
) , true );
|
||||
//
|
||||
$pages_all = $pages_all['i'];
|
||||
$pages_all = ceil($pages_all/20); //20 ñòðàíèö
|
||||
//
|
||||
$page_now = 0 + round((int)$_GET['page']);
|
||||
if( $page_now < 1 ) {
|
||||
$page_now = 1;
|
||||
}elseif( $page_now > $pages_all ) {
|
||||
$page_now = $pages_all;
|
||||
}
|
||||
//
|
||||
$r['toppages'] = $pages_all;
|
||||
$r['page'] = $page_now;
|
||||
//
|
||||
$i = 0;
|
||||
$j = 0;
|
||||
while( $i < count($pla) ) {
|
||||
//
|
||||
if( $i < ($page_now) * 20 && $i >= ($page_now-1) * 20 ) {
|
||||
$pl = \Core\Database::query( 'SELECT `a`.* , `b`.* , `a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `a`.`item_id` = `b`.`id` WHERE `a`.`id` = :item_id LIMIT 1' , array(
|
||||
'item_id' => $pla[$i]['item_id']
|
||||
) , true );
|
||||
//
|
||||
$r['item_data'][$j] = \Core\Item::infoItem($pl);
|
||||
$r['item_data'][$j]['iid'] = $pl['item_id'];
|
||||
$r['item_data'][$j]['user_ow'] = $pla[$i]['login'];
|
||||
$r['item_data'][$j]['item_id'] = $pla[$i]['items_id'];
|
||||
$r['item_data'][$j]['name'] = $pl['name'];
|
||||
$r['item_data'][$j]['prc'] = $pla[$i]['price'];
|
||||
$r['item_data'][$j]['prc2'] = round(($pla[$i]['price']+$pla[$i]['price']*0.01),2);
|
||||
$r['item_data'][$j]['cid'] = $pl['id'];
|
||||
$r['item_data'][$j]['aid'] = $pla[$i]['id'];
|
||||
//
|
||||
$r['item_data'][$j]['buy'] = $pla[$i]['login_buy'];
|
||||
//$r['item_data'][$j]['buy'] = $pl['login_buy'];
|
||||
//
|
||||
$r['item_data'][$j]['x'] = $count;
|
||||
$r['item_data'][$j]['iznosNOW'] = $pl['iznosNOW'];
|
||||
$r['item_data'][$j]['iznosMAX'] = $pl['iznosMAX'];
|
||||
$r['item_data'][$j]['massa'] = $pl['massa'];
|
||||
$r['item_data'][$j]['time'] = \Core\Utils::timeOut($pla[$i]['time']+86400-time());
|
||||
$j++;
|
||||
//
|
||||
$r['item_data']['x']++;
|
||||
$r['item_data']['i']++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
}elseif( $id == 2 ) {
|
||||
//Ñòàâêè
|
||||
$r['item_data']['x'] = 0;
|
||||
$pla = \Core\Database::query( 'SELECT * FROM `items_auc` WHERE `time_end` = 0 AND `user_buy` = :uid ORDER BY `id` DESC' , array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true , true );
|
||||
//
|
||||
$pages_all = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_auc` WHERE `time_end` = 0 AND `user_buy` = :uid LIMIT 1', array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true );
|
||||
//
|
||||
$pages_all = $pages_all['i'];
|
||||
$pages_all = ceil($pages_all/20); //20 ñòðàíèö
|
||||
//
|
||||
$page_now = 0 + round((int)$_GET['page']);
|
||||
if( $page_now < 1 ) {
|
||||
$page_now = 1;
|
||||
}elseif( $page_now > $pages_all ) {
|
||||
$page_now = $pages_all;
|
||||
}
|
||||
//
|
||||
$r['toppages'] = $pages_all;
|
||||
$r['page'] = $page_now;
|
||||
//
|
||||
$i = 0;
|
||||
$j = 0;
|
||||
while( $i < count($pla) ) {
|
||||
//
|
||||
if( $i < ($page_now) * 20 && $i >= ($page_now-1) * 20 ) {
|
||||
$pl = \Core\Database::query( 'SELECT `a`.* , `b`.* , `a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `a`.`item_id` = `b`.`id` WHERE `a`.`id` = :item_id LIMIT 1' , array(
|
||||
'item_id' => $pla[$i]['item_id']
|
||||
) , true );
|
||||
//
|
||||
$r['item_data'][$j] = \Core\Item::infoItem($pl);
|
||||
$r['item_data'][$j]['iid'] = $pl['item_id'];
|
||||
$r['item_data'][$j]['user_ow'] = $pla[$i]['login'];
|
||||
$r['item_data'][$j]['item_id'] = $pla[$i]['items_id'];
|
||||
$r['item_data'][$j]['name'] = $pl['name'];
|
||||
$r['item_data'][$j]['prc'] = $pla[$i]['price'];
|
||||
$r['item_data'][$j]['prc2'] = round(($pla[$i]['price']+$pla[$i]['price']*0.01),2);
|
||||
$r['item_data'][$j]['cid'] = $pl['id'];
|
||||
$r['item_data'][$j]['aid'] = $pla[$i]['id'];
|
||||
//
|
||||
$r['item_data'][$j]['buy'] = $pla[$i]['login_buy'];
|
||||
//$r['item_data'][$j]['buy'] = $pl['login_buy'];
|
||||
//
|
||||
$r['item_data'][$j]['x'] = $count;
|
||||
$r['item_data'][$j]['iznosNOW'] = $pl['iznosNOW'];
|
||||
$r['item_data'][$j]['iznosMAX'] = $pl['iznosMAX'];
|
||||
$r['item_data'][$j]['massa'] = $pl['massa'];
|
||||
$r['item_data'][$j]['time'] = \Core\Utils::timeOut($pla[$i]['time']+86400-time());
|
||||
$j++;
|
||||
//
|
||||
$r['item_data']['x']++;
|
||||
$r['item_data']['i']++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
}elseif( $id == 3 ) {
|
||||
//Âàøè ïðåäìåòû (óæå íà òîðãàõ)
|
||||
$r['item_data']['x'] = 0;
|
||||
$pla = \Core\Database::query( 'SELECT * FROM `items_auc` WHERE `uid` = :uid AND `time_end` = 0 ORDER BY `id` DESC' , array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true , true );
|
||||
//
|
||||
$pages_all = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_auc` WHERE `uid` = :uid AND `time_end` = 0 LIMIT 1', array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true );
|
||||
//
|
||||
$pages_all = $pages_all['i'];
|
||||
$pages_all = ceil($pages_all/20); //20 ñòðàíèö
|
||||
//
|
||||
$page_now = 0 + round((int)$_GET['page']);
|
||||
if( $page_now < 1 ) {
|
||||
$page_now = 1;
|
||||
}elseif( $page_now > $pages_all ) {
|
||||
$page_now = $pages_all;
|
||||
}
|
||||
//
|
||||
$r['toppages'] = $pages_all;
|
||||
$r['page'] = $page_now;
|
||||
//
|
||||
$i = 0;
|
||||
$j = 0;
|
||||
while( $i < count($pla) ) {
|
||||
//
|
||||
if( $i < ($page_now) * 20 && $i >= ($page_now-1) * 20 ) {
|
||||
$pl = \Core\Database::query( 'SELECT `a`.* , `b`.* , `a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `a`.`item_id` = `b`.`id` WHERE `a`.`id` = :item_id LIMIT 1' , array(
|
||||
'item_id' => $pla[$i]['item_id']
|
||||
) , true );
|
||||
//
|
||||
$r['item_data'][$j] = \Core\Item::infoItem($pl);
|
||||
$r['item_data'][$j]['iid'] = $pl['item_id'];
|
||||
$r['item_data'][$j]['item_id'] = $pla[$i]['items_id'];
|
||||
$r['item_data'][$j]['name'] = $pl['name'];
|
||||
$r['item_data'][$j]['prc'] = $pla[$i]['price'];
|
||||
$r['item_data'][$j]['cid'] = $pl['id'];
|
||||
//
|
||||
$r['item_data'][$j]['buy'] = $pla[$i]['login_buy'];
|
||||
//$r['item_data'][$j]['buy'] = $pl['login_buy'];
|
||||
//
|
||||
$r['item_data'][$j]['x'] = $count;
|
||||
$r['item_data'][$j]['iznosNOW'] = $pl['iznosNOW'];
|
||||
$r['item_data'][$j]['iznosMAX'] = $pl['iznosMAX'];
|
||||
$r['item_data'][$j]['massa'] = $pl['massa'];
|
||||
$r['item_data'][$j]['time'] = \Core\Utils::timeOut($pla[$i]['time']+86400-time());
|
||||
$j++;
|
||||
//
|
||||
$r['item_data']['x']++;
|
||||
$r['item_data']['i']++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
}elseif( $id == 4 ) {
|
||||
//Âûñòàâèòü ïðåäìåòû íà òîðãè
|
||||
$r['item_data']['x'] = 0;
|
||||
$pl = \Core\Database::query( 'SELECT `a`.* , `b`.* , `a`.`id` AS `uiid` FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON `a`.`item_id` = `b`.`id` WHERE `a`.`inOdet` = 0 AND `a`.`uid` = :uid AND `a`.`delete` = 0 AND `a`.`gift` = "" AND `a`.`data` NOT LIKE "%sudba=%" AND `a`.`data` NOT LIKE "%zazuby=%" AND `a`.`data` NOT LIKE "%|notransfer=%" AND `a`.`inTransfer` = 0 AND `a`.`inShop` = 0 ORDER BY `a`.`lastUPD` DESC' , array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true , true );
|
||||
//
|
||||
$pages_all = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_users` WHERE `inOdet` = 0 AND `uid` = :uid AND `delete` = 0 AND `inGroup` = 0 AND `inShop` = 0 AND `inTransfer` = 0 AND `gift` = "" AND `data` NOT LIKE "%|zazuby=%" AND `data` NOT LIKE "%|notransfer=%" AND `data` NOT LIKE "%|sudba=%" LIMIT 1', array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true );
|
||||
$pages_group = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_users` WHERE `inOdet` = 0 AND `uid` = :uid AND `delete` = 0 AND `inGroup` > 0 AND `inShop` = 0 AND `inTransfer` = 0 AND `gift` = "" AND `data` NOT LIKE "%|zazuby=%" AND `data` NOT LIKE "%|notransfer=%" AND `data` NOT LIKE "%|sudba=%" GROUP BY `inGroup` , `item_id` LIMIT 1', array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true );
|
||||
//
|
||||
$pages_all = $pages_all['i'];
|
||||
$pages_group = $pages_group['i'];
|
||||
//
|
||||
$pages_all += $pages_group;
|
||||
$pages_all = ceil($pages_all/20); //20 ñòðàíèö
|
||||
//
|
||||
$page_now = 0 + round((int)$_GET['page']);
|
||||
if( $page_now < 1 ) {
|
||||
$page_now = 1;
|
||||
}elseif( $page_now > $pages_all ) {
|
||||
$page_now = $pages_all;
|
||||
}
|
||||
//
|
||||
$r['toppages'] = $pages_all;
|
||||
$r['page'] = $page_now;
|
||||
//
|
||||
$i = 0;
|
||||
$j = 0;
|
||||
while( $i < count($pl) ) {
|
||||
//
|
||||
//if( $j < ($page_now) * 20 && $j >= ($page_now-1) * 20 ) {
|
||||
if( $pl[$i]['inGroup'] == 0 || !isset($r['item_data']['g'][$pl[$i]['item_id']][$pl[$i]['inGroup']]) ) {
|
||||
$r['item_data'][$j] = \Core\Item::infoItem($pl[$i]);
|
||||
$r['item_data'][$j]['iid'] = $pl[$i]['item_id'];
|
||||
$r['item_data'][$j]['prc'] = $pl[$i]['1price'];
|
||||
$r['item_data'][$j]['cid'] = $pl[$i]['id'];
|
||||
$r['item_data'][$j]['x'] = $count;
|
||||
$j++;
|
||||
}
|
||||
//
|
||||
$r['item_data']['x']++;
|
||||
$r['item_data']['i']++;
|
||||
//}
|
||||
if( $pl[$i]['inGroup'] > 0 ) {
|
||||
$r['item_data']['g'][$pl[$i]['item_id']][$pl[$i]['inGroup']]++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$pages_all = 1;
|
||||
$r['toppages'] = $pages_all;
|
||||
$r['page'] = $page_now;
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
return \Core\Utils::jsonencode( $r );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,569 @@
|
||||
<?
|
||||
|
||||
namespace Logic;
|
||||
|
||||
use \Core\View as view;
|
||||
|
||||
class Comission {
|
||||
|
||||
/*
|
||||
@ Áàçîâûé ìåòîä íà÷àë ãåíèðàöèè ìîäóëÿ
|
||||
@ Çäåñü ïðîèñõîäèò îïðåäåëåíèå òèïà äàííûõ, à òàê-æå
|
||||
@ ïðîâåðêà âîçìîæíîñòè ïðîñìîòðà äàííîãî ìîäóëÿ
|
||||
@ âñå ïîääêëþ÷àåìûå êëàññû äîëæíû áûòü ÍÅÎÁÕÎÄÈÌÛÌÈ!
|
||||
*/
|
||||
public static function defaultAction() {
|
||||
|
||||
//Ïîäêëþ÷àåì ïàêåòû
|
||||
\Core\User::connect();
|
||||
\Core\User::room();
|
||||
|
||||
if (\Core\User::$data == false ) {
|
||||
//Íåò äîñòóïà, ïåðñîíàæ íå àâòîðèçèðîâàí èëè çàáëîêèðîâàí
|
||||
echo 'Àâòîðèçèðóéòåñü ÷åðåç <a href="/index.php">ãëàâíóþ ñòðàíèöó</a>.';
|
||||
}elseif( \Core\User::$data['battle'] > 0 ) {
|
||||
header('location:main.php?inv');
|
||||
}elseif( \Core\User::$room['name'] != 'Êîìèññèîííûé ìàãàçèí' ) {
|
||||
echo 'Âû íàõîäèòåñü â äðóãîé ëîêàöèè.';
|
||||
}elseif( stristr($_SERVER['HTTP_ACCEPT'],'application/json') == true ) {
|
||||
echo self::getJSON();
|
||||
}else{
|
||||
echo self::getHTML();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé HTML-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ ×åðåç êîíêðåòíûé øàáëîíèçàòîð
|
||||
*/
|
||||
public static function getHTML() {
|
||||
//PC âåðñèÿ ãëàâíîé ñòðàíèöû
|
||||
return view::generateTpl( 'comission', array(
|
||||
'title' => COPY . ' :: Êîìèññèîííûé ìàãàçèí',
|
||||
|
||||
//Ïåðåäàåì äàííûå ïàêåòîâ
|
||||
'user' => \Core\User::$data,
|
||||
'stats' => \Core\User::$stats,
|
||||
'room' => \Core\User::$room,
|
||||
|
||||
'OK' => OK,
|
||||
'copy' => COPY,
|
||||
'rights' => RIGHTS,
|
||||
|
||||
'ver' => '1.1.3'
|
||||
) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé JSON-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ Èíôîðìàöèÿ áåðåòñÿ èç ïåðåìåííîé self::$JSON
|
||||
*/
|
||||
public static function getJSON() {
|
||||
$r = array( 'type' => $_GET['type'],'it' => array( 'i' => 0 , 'g' => array() ) );
|
||||
|
||||
//Èíôîðìàöèÿ
|
||||
$r['money'] = 0+\Core\User::$data['money'];
|
||||
//
|
||||
$ves = \Core\User::ves(\Core\User::$data['id']);
|
||||
//
|
||||
$r['massaNow'] = 0+$ves['now'];
|
||||
$r['massaMax'] = 0+$ves['max'];
|
||||
$r['timeGo'] = 0+\Core\User::$stats['timeGo'];
|
||||
$r['timeGoL'] = 0+\Core\User::$stats['timeGoL'];
|
||||
$r['timeNow'] = OK;
|
||||
//
|
||||
if( isset($_GET['newprice_item']) && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK ) {
|
||||
//Îáíîâëÿåì ñòîèìîñòü ïðåäìåòà
|
||||
$comiss = 0.10; //Êîìèññèÿ
|
||||
//
|
||||
$itm_user = \Core\Database::query( 'SELECT * FROM `items_com` WHERE `item_id` = :id AND `uid` = :uid AND `city` =:city AND `delete` = "0" LIMIT 1' , array(
|
||||
'id' => $_GET['newprice_item'],
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true );
|
||||
//
|
||||
$itm_useri = \Core\Database::query( 'SELECT *, `id` AS `uiid` FROM `items_users` WHERE `id` = :id AND `uid` = :uid AND `gift` = "" AND `data` NOT LIKE "%sudba=%" AND `data` NOT LIKE "%zazuby=%" AND `data` NOT LIKE "%|notransfer=%" AND `inOdet` = 0 AND `delete` = 0 AND `inTransfer` = 0 AND `inShop` = 0 LIMIT 1' , array(
|
||||
'id' => $itm_user['item_id'],
|
||||
'uid' => 0
|
||||
) , true );
|
||||
//
|
||||
$itm_main = \Core\Database::query( 'SELECT * FROM `items_main` WHERE `id` = :id LIMIT 1' , array(
|
||||
'id' => $itm_user['items_id']
|
||||
) , true );
|
||||
//
|
||||
if( $itm_useri['1price'] == 0 ) {
|
||||
$itm_useri['1price'] = $itm_main['price1'];
|
||||
}
|
||||
if( $itm_useri['1price'] == 0 ) {
|
||||
$itm_useri['1price'] = 1;
|
||||
}
|
||||
//
|
||||
$prc = round($_GET['newprice_price'],2);
|
||||
//
|
||||
if(!isset($itm_user['id']) || !isset($itm_useri['id']) || !isset($itm_main['id'])) {
|
||||
$r['newprice_error'] = 1;
|
||||
}elseif( $prc < 1 ) {
|
||||
$r['newprice_error'] = 2;
|
||||
}elseif( $prc > ( $itm_user['group'] * $itm_useri['1price'] ) * 10 ) {
|
||||
$r['newprice_error'] = 3;
|
||||
}elseif( $prc < round( (((( $itm_user['group'] * $itm_useri['1price'] ) / $itm_main['iznosMAXi'] ) * $itm_useri['iznosMAX']) / 2) , 2) ) {
|
||||
$r['newprice_error'] = 4;
|
||||
$r['newprice_error_min'] = round( (((( $itm_user['group'] * $itm_useri['1price'] ) / $itm_main['iznosMAXi'] ) * $itm_useri['iznosMAX']) / 2) , 2);
|
||||
}else{
|
||||
$itm_user['price'] = $prc;
|
||||
//
|
||||
$r['newprice_price_comission'] = $comiss;
|
||||
$r['newprice_item'] = $itm_user['id'];
|
||||
$r['newprice_uiid'] = $itm_user['item_id'];
|
||||
$r['newprice_name'] = $itm_user['name'];
|
||||
$r['newprice_x'] = $itm_user['group'];
|
||||
$r['newprice_price']= $itm_user['price'];
|
||||
//
|
||||
\Core\User::$data['money'] -= $comiss; //$comiss Êîìèññèÿ
|
||||
//
|
||||
\Core\Database::query( 'UPDATE `users` SET `money` = :money WHERE `id` = :uid LIMIT 1' ,
|
||||
array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'money' => \Core\User::$data['money']
|
||||
)
|
||||
);
|
||||
//
|
||||
\Core\Database::query( 'UPDATE `items_com` SET `price` = :newprice WHERE `id` = :id LIMIT 1', array(
|
||||
'id' => $itm_user['id'],
|
||||
'newprice' => $itm_user['price']
|
||||
) );
|
||||
}
|
||||
//
|
||||
}elseif( isset($_GET['pick_item']) && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK ) {
|
||||
//Çàáèðàåì ïðåäìåò
|
||||
$itm_user = \Core\Database::query( 'SELECT * FROM `items_com` WHERE `city` = :city AND `id` = :id AND `uid` = :uid AND `delete` = "0" LIMIT 1' , array(
|
||||
'id' => $_GET['pick_item'],
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true );
|
||||
//
|
||||
if(!isset($itm_user['id'])) {
|
||||
$r['pick_error'] = 1;
|
||||
}else{
|
||||
$r['pick_item'] = $itm_user['id'];
|
||||
$r['pick_uiid'] = $itm_user['item_id'];
|
||||
$r['pick_name'] = $itm_user['name'];
|
||||
$r['pick_x'] = $itm_user['group'];
|
||||
\Core\Database::query( 'UPDATE `items_com` SET `delete` = :time WHERE `id` = :id LIMIT 1', array(
|
||||
'id' => $itm_user['id'],
|
||||
'time' => OK
|
||||
) );
|
||||
\Core\Database::query( 'UPDATE `items_users` SET `inGroup` = 0 , `uid` = :uid , `lastUPD` = :time WHERE `id` = :id OR ( `inGroup` = :id AND `item_id` = :item_id AND `uid` = 0 )', array(
|
||||
'id' => $itm_user['item_id'],
|
||||
'item_id' => $itm_user['items_id'],
|
||||
'uid' => $itm_user['uid'],
|
||||
'time' => OK
|
||||
) );
|
||||
}
|
||||
//
|
||||
}elseif( isset($_GET['give_item']) && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK ) {
|
||||
//Ñäàåì ïðåäìåò
|
||||
$itm_user = \Core\Database::query( 'SELECT *, `id` AS `uiid` FROM `items_users` WHERE `id` = :id AND `uid` = :uid AND `gift` = "" AND `data` NOT LIKE "%sudba=%" AND `data` NOT LIKE "%zazuby=%" AND `data` NOT LIKE "%|notransfer=%" AND `inOdet` = 0 AND `delete` = 0 AND `inTransfer` = 0 AND `inShop` = 0 LIMIT 1' , array(
|
||||
'id' => $_GET['give_item'],
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true );
|
||||
//
|
||||
$comiss = 1; //Êîìèññèÿ â êð.
|
||||
$prc = round($_GET['give_price'],2); //Êàêóþ ñóììó âûñòàâëÿåì ïðåäìåòó
|
||||
//
|
||||
$itm_x = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_users` WHERE `inGroup` = :group AND `inGroup` > 0 AND `item_id` = :item_id AND `uid` = :uid AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0 LIMIT 1' , array(
|
||||
'item_id' => $itm_user['item_id'],
|
||||
'group' => $itm_user['inGroup'],
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true );
|
||||
if( $itm_x['i'] == 0 ) {
|
||||
$itm_x['i'] = 1;
|
||||
}
|
||||
//
|
||||
$itm_main = \Core\Database::query( 'SELECT * FROM `items_main` WHERE `id` = :id LIMIT 1' , array(
|
||||
'id' => $itm_user['item_id']
|
||||
) , true );
|
||||
if( $itm_user['1price'] == 0 ) {
|
||||
$itm_user['1price'] = $itm_main['price1'];
|
||||
}
|
||||
if( $itm_user['1price'] == 0 ) {
|
||||
$itm_user['1price'] = 1;
|
||||
}
|
||||
//
|
||||
if( !isset($itm_user['id']) ) {
|
||||
$r['give_error'] = 1;
|
||||
}elseif( $comiss > \Core\User::$data['money'] && true == false ) {
|
||||
$r['give_error'] = 2;
|
||||
}elseif( \Core\User::$data['align'] == 2 ) {
|
||||
$r['give_error'] = 3;
|
||||
}elseif( \Core\User::$data['level'] < 4 ) {
|
||||
$r['give_error'] = 4;
|
||||
}elseif( $prc > 100000 ) {
|
||||
$r['give_error'] = 5;
|
||||
}elseif( $prc < 1 ) {
|
||||
$r['give_error'] = 6;
|
||||
}elseif( $prc > ( $itm_x['i'] * $itm_user['1price'] ) * 10 && true == false ) {
|
||||
$r['give_error'] = 7;
|
||||
}elseif( $prc < round( (((( $itm_x['i'] * $itm_user['1price'] ) / $itm_main['iznosMAXi'] ) * $itm_user['iznosMAX']) / 2) , 2) ) {
|
||||
$r['give_error'] = 8;
|
||||
$r['give_error_min'] = round( (((( $itm_x['i'] * $itm_user['1price'] ) / $itm_main['iznosMAXi'] ) * $itm_user['iznosMAX']) / 2) , 2);
|
||||
}else{
|
||||
//Âñå îêåé
|
||||
$r['give_item'] = $itm_user['id'];
|
||||
$r['give_name'] = $itm_main['name'];
|
||||
$r['give_x'] = $itm_x['i'];
|
||||
$r['give_price'] = $prc;
|
||||
$r['give_price_comission'] = $comiss.'.00';
|
||||
//
|
||||
$upd = \Core\Database::query( 'UPDATE `items_users` SET `uid` = 0, `inGroup` = :id WHERE `uid` = :uid AND `item_id` = :item_id AND ( ( `inGroup` > 0 AND `inGroup` = :group ) OR ( `inGroup` = 0 AND `id` = :id ) ) AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0' ,
|
||||
array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'id' => $itm_user['uiid'],
|
||||
'item_id' => $itm_main['id'],
|
||||
'group' => $itm_user['inGroup']
|
||||
)
|
||||
);
|
||||
if( $upd == true ) {
|
||||
//
|
||||
\Core\User::$data['money'] -= $comiss; //$comiss Êîìèññèÿ
|
||||
//
|
||||
\Core\Database::query( 'UPDATE `users` SET `money` = :money WHERE `id` = :uid LIMIT 1' ,
|
||||
array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'money' => \Core\User::$data['money']
|
||||
)
|
||||
);
|
||||
//
|
||||
/*
|
||||
=========================================
|
||||
Òèïû ïðåäìåòîâ: /////////////////////////
|
||||
=========================================
|
||||
31 - ðóíà
|
||||
32 - ðåñóðñû
|
||||
33 - ìóñîð
|
||||
34 - ïðî÷åå
|
||||
35 - ñóìêà
|
||||
36 - óñèëåíèå
|
||||
37 - óïàêîâêà
|
||||
38 - ïîäàðîê
|
||||
39 - ïîäàðîê (òðåáóåò óïàêîâêó)
|
||||
40 - êíèæíûé ïðèåì
|
||||
41 - ïðèãëàøåíèå
|
||||
42 - áèëåò
|
||||
43 - ñëîò ñìåíû
|
||||
44 - ïåðãàìåíò (ñ òåêñòîì)
|
||||
45 - ñóìêà
|
||||
46 - çàòî÷êà
|
||||
47 - óñèëåíèå 1
|
||||
48 - óñèëåíèå 2 (âðåìåííîå)
|
||||
49 - êîðì äëÿ æèâîòíîãî
|
||||
60 - áóìàãà
|
||||
61 - ÷åê
|
||||
62 - ÷àðêà
|
||||
63 - îòêðûòêà
|
||||
64 - êàêèå-òî ïîäàðêè (ïîêà íå ïðèäóìàë)
|
||||
*/
|
||||
$point = 24;
|
||||
$arr_point = array(
|
||||
1 => 10,
|
||||
2 => 24, // âåíêè íà ãîëîâó
|
||||
3 => 11,
|
||||
4 => 7,
|
||||
5 => 8,
|
||||
6 => 9,
|
||||
7 => 24, // ïëàùè
|
||||
8 => 12,
|
||||
9 => 15,
|
||||
10 => 16,
|
||||
11 => 17,
|
||||
12 => 6,
|
||||
13 => 14,
|
||||
14 => 13,
|
||||
15 => 5,
|
||||
|
||||
18 => 0,
|
||||
19 => 1,
|
||||
20 => 2,
|
||||
21 => 3,
|
||||
22 => 4,
|
||||
|
||||
29 => 18,
|
||||
30 => 19,
|
||||
|
||||
31 => 21,
|
||||
62 => 20,
|
||||
|
||||
32 => 22,
|
||||
|
||||
49 => 23
|
||||
);
|
||||
if( isset($arr_point[$itm_main['type']]) ) {
|
||||
$point = $arr_point[$itm_main['type']];
|
||||
}
|
||||
//
|
||||
$itm_po = \Core\Item::lookStats( $itm_user['data'] );
|
||||
//
|
||||
\Core\Database::query( 'INSERT INTO `items_com` (
|
||||
`uid`,`item_id`,`items_id`,`name`,`level`,`img`,`massa`,`point`,`price`,`time`,`city`,`buy`,`delete`,`iznosNow`,`iznosMax`,`tr_align`,`group`
|
||||
) VALUES (
|
||||
:uid , :item_id , :items_id , :name , :level , :img , :massa , :point , :price , :time , :city , 0 , 0 , :iznosNOW , :iznosMAX , :align , :group
|
||||
)' , array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'item_id' => $itm_user['uiid'],
|
||||
'items_id' => $itm_main['id'],
|
||||
'name' => $itm_main['name'],
|
||||
'level' => $itm_po['tr_lvl'],
|
||||
'img' => $itm_main['img'],
|
||||
'massa' => ($itm_x['i'] * $itm_main['massa']),
|
||||
'point' => $point,
|
||||
'price' => $r['give_price'],
|
||||
'time' => OK,
|
||||
'city' => \Core\User::$data['city'],
|
||||
'align' => $itm_po['tr_align'],
|
||||
'iznosNOW' => $itm_user['iznosNOW'],
|
||||
'iznosMAX' => $itm_user['iznosMAX'],
|
||||
'group' => $r['give_x']
|
||||
));
|
||||
}else{
|
||||
$r['give_error'] = 9;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
}elseif( isset($_GET['buy_item']) && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK ) {
|
||||
//Ïðîäàòü ïðåäìåò
|
||||
$itm = \Core\Database::query( 'SELECT * FROM `items_com` WHERE `id` = :cid AND `city` = :city AND `items_id` = :items_id AND `delete` = 0 LIMIT 1' , array(
|
||||
'cid' => $_GET['buy_item'],
|
||||
'items_id' => $_GET['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true );
|
||||
$itm_user = \Core\Database::query( 'SELECT * FROM `items_users` WHERE `id` = :id AND `uid` = 0 LIMIT 1' , array(
|
||||
'id' => $itm['item_id']
|
||||
) , true );
|
||||
$user = \Core\Database::query( 'SELECT * FROM `users` WHERE `id` = :id ORDER BY `id` ASC LIMIT 1' , array(
|
||||
'id' => $itm['uid']
|
||||
) , true );
|
||||
if( !isset($itm['id']) || !isset($itm_user['id']) ) {
|
||||
//Ïðåäìåò íå íàéäåí, âîçìîæíî åãî êòî-òî óæå êóïèë
|
||||
if( isset($itm['id']) ) {
|
||||
\Core\Database::query( 'UPDATE `items_com` SET `buy` = :uid, `delete` = :delete WHERE `id` = :id LIMIT 1' , array(
|
||||
'id' => $itm['id'],
|
||||
'uid' => 111,
|
||||
'delete' => OK
|
||||
));
|
||||
}
|
||||
$r['buy_error'] = 1;
|
||||
}elseif( \Core\User::$data['align'] == 2 ) {
|
||||
//Õàîñíèêàì íåëüçÿ ïîëüçîâàòüñÿ êîìèññèîííûì ìàãàçèíîì
|
||||
$r['buy_error'] = 3;
|
||||
}elseif( \Core\User::$data['level'] < 1 ) {
|
||||
//Ïåðñîíàæàì íèæå 1-ãî óðîâíÿ çàïðåùåíî ïîëüçîâàòüñÿ êîìèññèîííûì ìàãàçèíîì
|
||||
$r['buy_error'] = 4;
|
||||
}elseif( $itm['price'] > \Core\User::$data['money']) {
|
||||
//Ó âàñ íåäîñòàòî÷íî äåíåã
|
||||
$r['buy_error'] = 2;
|
||||
}else{
|
||||
//Áåç îøèáîê, êóïèëè ïðåäìåò
|
||||
\Core\Database::query( 'UPDATE `items_com` SET `buy` = :uid, `delete` = :delete WHERE `id` = :id LIMIT 1' , array(
|
||||
'id' => $itm['id'],
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'delete' => OK
|
||||
));
|
||||
//
|
||||
\Core\Database::query( 'UPDATE `items_users` SET `uid` = :uid, `lastUPD` = :time, `inGroup` = 0 WHERE `id` = :id LIMIT 1' , array(
|
||||
'id' => $itm['item_id'],
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'time' => OK
|
||||
));
|
||||
//
|
||||
\Core\Database::query( 'UPDATE `items_users` SET `uid` = :uid, `lastUPD` = :time, `inGroup` = 0 WHERE `inGroup` = :id AND `uid` = 0 LIMIT ' . $itm['group'] , array(
|
||||
'id' => $itm['item_id'],
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'time' => OK
|
||||
));
|
||||
\Core\User::$data['money'] -= $itm['price'];
|
||||
\Core\Database::query( 'UPDATE `users` SET `money` = :money WHERE `id` = :id ORDER BY `id` ASC LIMIT 1' , array(
|
||||
'id' => \Core\User::$data['id'],
|
||||
'money' => \Core\User::$data['money']
|
||||
));
|
||||
//
|
||||
$post_money = round($itm['price']*0.9,2);
|
||||
if( $itm['group'] > 1 ) {
|
||||
$itm['name'] .= ' (x'.$itm['group'].')';
|
||||
}
|
||||
\Core\Chat::send_system( $user['login'] , 'Ïåðñîíàæ <b>' . \Core\User::$data['login'] . '</b> ïðèîáðåë âàøó âåùü "'.$itm['name'].'" èç êîìèññèîííîãî ìàãàçèíà çà '.$post_money.' êð. (+1 êð. êîìèññèîííûõ). Äåíüãè îòïðàâëåíû ê âàì íà ïî÷òó.' );
|
||||
$post_money += 1; //Êîìèññèîííûå
|
||||
//
|
||||
$tmgo = 1;
|
||||
\Core\Database::query( 'INSERT INTO `items_users` (`item_id`,`1price`,`uid`,`delete`,`lastUPD`) VALUES (
|
||||
1220 , :money , :uid , 0 , :time
|
||||
)' , array(
|
||||
'uid' => '-51' . $user['id'],
|
||||
'money' => $post_money,
|
||||
'time' => OK + $tmgo * 60
|
||||
));
|
||||
$txt = 'Äåíüãè îò <b>'.\Core\User::$data['login'].'</b>: '.$post_money.' êð. Ïðèáûòèå: '.date('d.m.Y H:i',(OK + $tmgo*60)).'';
|
||||
\Core\Database::query( 'INSERT INTO `post` (`uid`,`sender_id`,`time`,`money`,`text`) VALUES
|
||||
( :user_to , :user_from , :time , :money , :txt )' , array(
|
||||
'user_from' => \Core\User::$data['id'],
|
||||
'user_to' => $user['id'],
|
||||
'time' => OK,
|
||||
'txt' => $txt,
|
||||
'money' => $post_money
|
||||
));
|
||||
$txt = 'Äåíüãè ê <b>'.$user['login'].'</b>: '.$post_money.' êð. Ïðèáûòèå: '.date('d.m.Y H:i',(OK + $tmgo*60)).'';
|
||||
\Core\Database::query( 'INSERT INTO `post` (`uid`,`sender_id`,`time`,`money`,`text`) VALUES
|
||||
( :user_from , :user_to , :time , :money , :txt )' , array(
|
||||
'user_from' => \Core\User::$data['id'],
|
||||
'user_to' => $user['id'],
|
||||
'time' => OK,
|
||||
'txt' => $txt,
|
||||
'money' => $post_money
|
||||
));
|
||||
//
|
||||
$r['buy_error'] = 0;
|
||||
$r['buy_item'] = $itm['id'];
|
||||
$r['buy_name'] = $itm['name'];
|
||||
$r['buy_price'] = $itm['price'];
|
||||
$r['buy_massa'] = $itm['massa'];
|
||||
//
|
||||
$itm_last = \Core\Database::query( 'SELECT COUNT(*) AS `i` FROM `items_com` WHERE `city` = :city AND `items_id` = :items_id AND `delete` = 0 LIMIT 1' , array(
|
||||
'items_id' => $_GET['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true );
|
||||
$r['buy_last'] = $itm_last['i'];
|
||||
}
|
||||
}elseif($_GET['point'] == 'give' && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK) {
|
||||
//Ïîëîæèòü ïðåäìåò
|
||||
$pl = \Core\Database::query( 'SELECT `id`,`inGroup`,`item_id` FROM `items_users` WHERE `uid` = :uid AND `gift` = "" AND `data` NOT LIKE "%sudba=%" AND `data` NOT LIKE "%zazuby=%" AND `data` NOT LIKE "%|notransfer=%" AND `data` NOT LIKE "%fromshop=2%" AND `inOdet` = 0 AND `delete` = 0 AND `inTransfer` = 0 AND `inShop` = 0 ORDER BY `lastUPD` DESC' , array(
|
||||
'uid' => \Core\User::$data['id']
|
||||
) , true , true );
|
||||
//
|
||||
$i = 0; $j = 0;
|
||||
while( $i < count($pl) ) {
|
||||
if( !isset($r['it']['g'][$pl[$i]['item_id']][$pl[$i]['inGroup']]) ) {
|
||||
$itm = \Core\Item::getItemUser( $pl[$i]['id'] );
|
||||
$itm = \Core\Item::infoItem( $itm );
|
||||
$itm['iid'] = $pl[$i]['item_id'];
|
||||
$r['it'][] = $itm;
|
||||
$j++;
|
||||
}
|
||||
if( $pl[$i]['inGroup'] > 0 ) {
|
||||
$r['it']['g'][$pl[$i]['item_id']][$pl[$i]['inGroup']]++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$r['it']['i'] = $j;
|
||||
//
|
||||
}elseif($_GET['point'] == 'pick' && \Core\User::$data['invBlock'] < OK && \Core\User::$data['allLock'] < OK) {
|
||||
//Çàáðàòü ïðåäìåò ðàçäåë
|
||||
$pl = \Core\Database::query( 'SELECT * FROM `items_com` WHERE `uid` = :uid AND `city` = :city AND `delete` = 0 ORDER BY `time` DESC' , array(
|
||||
'uid' => \Core\User::$data['id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true , true );
|
||||
//
|
||||
$i = 0;
|
||||
//
|
||||
while( $i < count($pl) ) {
|
||||
$itm = \Core\Item::getItemUser( $pl[$i]['item_id'] );
|
||||
if( !isset($r['it']['n']) ) {
|
||||
$r['it']['n'] = $itm['name'];
|
||||
}
|
||||
$itm = \Core\Item::infoItem( $itm );
|
||||
$itm['iid'] = $pl[$i]['items_id'];
|
||||
$itm['prc'] = $pl[$i]['price'];
|
||||
$itm['cid'] = $pl[$i]['id'];
|
||||
$itm['x'] = $pl[$i]['group'];
|
||||
$itm['timeend'] = date('d.m.Y H:i',( $pl[$i]['time'] + 86400 * 14 ));
|
||||
$r['it'][] = $itm;
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
$r['it']['l'] = $_GET['lookIt'];
|
||||
$r['it']['i'] = $i;
|
||||
}elseif( $_GET['type'] == 1 ) {
|
||||
//Ïðîñìîòð ïðåäìåòîâ
|
||||
$pl = \Core\Database::query( 'SELECT * FROM `items_com` WHERE `items_id` = :items_id AND `city` = :city AND `delete` = 0 ORDER BY `price` ASC' , array(
|
||||
'items_id' => $_GET['lookIt'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true , true );
|
||||
//
|
||||
$i = 0;
|
||||
//
|
||||
while( $i < count($pl) ) {
|
||||
$itm = \Core\Item::getItemUser( $pl[$i]['item_id'] );
|
||||
if( !isset($r['it']['n']) ) {
|
||||
$r['it']['n'] = $itm['name'];
|
||||
}
|
||||
$itm = \Core\Item::infoItem( $itm );
|
||||
$itm['iid'] = $pl[$i]['items_id'];
|
||||
$itm['prc'] = $pl[$i]['price'];
|
||||
$itm['cid'] = $pl[$i]['id'];
|
||||
$itm['x'] = $pl[$i]['group'];
|
||||
$r['it'][] = $itm;
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
$r['it']['l'] = $_GET['lookIt'];
|
||||
$r['it']['i'] = $i;
|
||||
}elseif( $_GET['type'] == 0 ) {
|
||||
//Ïðîñìîòð ðàçäåëà
|
||||
$pl = \Core\Database::query( 'SELECT * FROM `items_com` WHERE `point` = :point AND `city` = :city AND `delete` = 0 GROUP BY `items_id` ORDER BY `time` DESC' , array(
|
||||
'point' => $_GET['point'],
|
||||
'city' => \Core\User::$data['city']
|
||||
) , true , true );
|
||||
//
|
||||
$i = 0;
|
||||
while( $i < count($pl) ) {
|
||||
//
|
||||
$col = \Core\Database::query( 'SELECT COUNT(`id`) AS `i` FROM `items_com` WHERE `items_id` = :iid AND `city` = :city AND `delete` = 0', array(
|
||||
'iid' => $pl[$i]['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
),true); //êîëè÷åñòâî ïðåäìåòîâ
|
||||
$col = $col['i'];
|
||||
//
|
||||
$prs1 = \Core\Database::query( 'SELECT `price` AS `i` FROM `items_com` WHERE `items_id` = :iid AND `city` = :city AND `delete` = 0 ORDER BY `price` ASC', array(
|
||||
'iid' => $pl[$i]['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
),true); //Ìèíèìàëüíàÿ öåíà ïðåäìåòà
|
||||
$prs1 = $prs1['i'];
|
||||
//
|
||||
$prs2 = \Core\Database::query( 'SELECT `price` AS `i` FROM `items_com` WHERE `items_id` = :iid AND `city` = :city AND `delete` = 0 ORDER BY `price` DESC', array(
|
||||
'iid' => $pl[$i]['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
),true); //Ìàêñèìàëüíàÿ öåíà ïðåäìåòà
|
||||
$prs2 = $prs2['i'];
|
||||
//
|
||||
$izns1 = \Core\Database::query( 'SELECT `iznosNow` AS `i`,`iznosMax` AS `j` FROM `items_com` WHERE `items_id` = :iid AND `city` = :city AND `delete` = 0 ORDER BY `iznosMax` ASC', array(
|
||||
'iid' => $pl[$i]['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
),true); //Ìèíèìàëüíàÿ öåíà ïðåäìåòà
|
||||
//
|
||||
$izns2 = \Core\Database::query( 'SELECT `iznosNow` AS `i`,`iznosMax` AS `j` FROM `items_com` WHERE `items_id` = :iid AND `city` = :city AND `delete` = 0 ORDER BY `iznosMax` DESC', array(
|
||||
'iid' => $pl[$i]['items_id'],
|
||||
'city' => \Core\User::$data['city']
|
||||
),true); //Ìàêñèìàëüíàÿ öåíà ïðåäìåòà
|
||||
//
|
||||
$r['it'][] = array(
|
||||
$pl[$i]['id'],
|
||||
$pl[$i]['items_id'],
|
||||
array($izns1['i'],$izns2['i']),
|
||||
array($izns1['j'],$izns2['j']),
|
||||
$pl[$i]['name'],
|
||||
$pl[$i]['img'],
|
||||
$pl[$i]['massa'],
|
||||
array($prs1,$prs2),
|
||||
$col,
|
||||
$pl[$i]['level']
|
||||
);
|
||||
$i++;
|
||||
}
|
||||
$r['it']['i'] = $i;
|
||||
}
|
||||
|
||||
return \Core\Utils::jsonencode( $r );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,83 @@
|
||||
<?
|
||||
|
||||
namespace Logic;
|
||||
|
||||
use \Core\View as view;
|
||||
|
||||
class Debuger {
|
||||
|
||||
/*
|
||||
@ Áàçîâûé ìåòîä íà÷àë ãåíèðàöèè ìîäóëÿ
|
||||
@ Çäåñü ïðîèñõîäèò îïðåäåëåíèå òèïà äàííûõ, à òàê-æå
|
||||
@ ïðîâåðêà âîçìîæíîñòè ïðîñìîòðà äàííîãî ìîäóëÿ
|
||||
@ âñå ïîääêëþ÷àåìûå êëàññû äîëæíû áûòü ÍÅÎÁÕÎÄÈÌÛÌÈ!
|
||||
*/
|
||||
public static function defaultAction() {
|
||||
|
||||
//Ïîäêëþ÷àåì ïàêåòû
|
||||
\Core\User::connect();
|
||||
\Core\User::room();
|
||||
|
||||
if (\Core\User::$data == false ) {
|
||||
//Íåò äîñòóïà, ïåðñîíàæ íå àâòîðèçèðîâàí èëè çàáëîêèðîâàí
|
||||
echo 'Àâòîðèçèðóéòåñü ÷åðåç <a href="/index.php">ãëàâíóþ ñòðàíèöó</a>.';
|
||||
}elseif( stristr($_SERVER['HTTP_ACCEPT'],'application/json') == true ) {
|
||||
echo self::getJSON();
|
||||
}else{
|
||||
echo self::getHTML();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé HTML-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ ×åðåç êîíêðåòíûé øàáëîíèçàòîð
|
||||
*/
|
||||
public static function getHTML() {
|
||||
//PC âåðñèÿ ãëàâíîé ñòðàíèöû
|
||||
//
|
||||
$skills = array();
|
||||
$pl = \Core\Database::query( 'SELECT * FROM `priems` WHERE `activ` = 1 ORDER BY `img` ASC', array(
|
||||
//
|
||||
), true , true );
|
||||
$i = 0;
|
||||
while( $i != -1 ) {
|
||||
if(!isset($pl[$i])) {
|
||||
$i = -2;
|
||||
}else{
|
||||
$skills .= ',[' . $pl[$i]['id'] . ',"' . $pl[$i]['img'] . '","' . $pl[$i]['name'] . '"]';
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$skills = ltrim($skills,',');
|
||||
//
|
||||
return view::generateTpl( 'debuger', array(
|
||||
'title' => COPY . ' :: Âîïðîñû ïî èãðå è ñäà÷à áàãîâ',
|
||||
|
||||
//Ïåðåäàåì äàííûå ïàêåòîâ
|
||||
'user' => \Core\User::$data,
|
||||
'stats' => \Core\User::$stats,
|
||||
'room' => \Core\User::$room,
|
||||
|
||||
'OK' => OK,
|
||||
'copy' => COPY,
|
||||
'rights' => RIGHTS,
|
||||
|
||||
'skills' => $skills,
|
||||
|
||||
'ver' => '0.0.1'
|
||||
) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ Ìåòîä âûâîäÿùèé JSON-êîíòåíò íà ñòîðîíó ïîëüçîâàòåëÿ
|
||||
@ Èíôîðìàöèÿ áåðåòñÿ èç ïåðåìåííîé self::$JSON
|
||||
*/
|
||||
public static function getJSON() {
|
||||
$r = array();
|
||||
|
||||
return \Core\Utils::jsonencode( $r );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user