This commit is contained in:
2022-06-07 00:30:34 +03:00
commit 5f4b2cbf77
1784 changed files with 327645 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
deny from all
+1
View File
@@ -0,0 +1 @@
deny from all
+30
View File
@@ -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
) );
}
}
?>
+45
View File
@@ -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();
}
}
?>
+24
View File
@@ -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);
}
}
?>
+79
View File
@@ -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;
}
}
?>
+62
View File
@@ -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 .' íå íàéäåíî');
}
}
?>
+160
View File
@@ -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 .' не найдено');
}
}
?>
+376
View File
@@ -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;
}
}
?>
+16
View File
@@ -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);
}
}
?>
+1
View File
@@ -0,0 +1 @@
deny from all
+31
View File
@@ -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>
+61
View File
@@ -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>
+85
View File
@@ -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>
+25
View File
@@ -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>
+13
View File
@@ -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();
?>
+1
View File
@@ -0,0 +1 @@
deny from all
+66
View File
@@ -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 );
}
}
?>
+551
View File
@@ -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> ïåðåáèë âàøó ñòàâêó íà Àóêöèîíå, ïðåäìåò &quot;'.$itm_auc['name'].'&quot;. Ñóììà âàøåé ñòàâêè îòïðàâëåíà ê âàì íà ïî÷òó.' );
//
$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 );
}
}
?>
+569
View File
@@ -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> ïðèîáðåë âàøó âåùü &quot;'.$itm['name'].'&quot; èç êîìèññèîííîãî ìàãàçèíà çà '.$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 );
}
}
?>
+83
View File
@@ -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 );
}
}
?>