<?php
define('_CONSTANT_', 1);
require_once '../../core/start.php';
checkAuth();
switch ($do)
{
default:
head('Торговая площадь', 'Торговая площадь');
?>
<div class="headerImg"><img src="<?=HOME?>/img/shop.png" alt="[header-img]" width="350px"></div>
<a href="<?=HOME?>/modules/shop/index.php?do=vip" class="link-touch"><?=ico('vip.png')?> VIP</a>
<a href="<?=HOME?>/modules/shop/index.php?do=auction" class="link-touch"><?=ico('items.png')?> Магазин снаряжения</a>
<a href="<?=HOME?>/modules/fair/index.php" class="link-touch"><?=ico('oracul.png')?> Ярмарка</a>
<a href="<?=HOME?>/modules/shop/index.php?do=blackMarket" class="link-touch"><?=ico('vip.png')?> Черный рынок</a>
<a href="<?=HOME?>/modules/shop/index.php?do=bottle" class="link-touch"><img src="/ico/bottle/1.png" width="18px"> Магазин зелий</a>
<a href="<?=HOME?>/modules/shop/index.php?do=userBonus" class="link-touch"><?=ico('strike.png')?> Магазин эффектов</a>
<a href="<?=HOME?>/modules/shop/index.php?do=help" class="link-touch"><?=ico('info.png')?><span style="color: darkorange;"> Помочь проекту</span></a>
<?php
break;
case 'vip':
head('Vip', 'Vip');
$cost = 100; // hour;
if (isset($_POST['try']))
{
$timeVip = time() + 3600;
/* Plus time */
if ($user['vip'] > time())
{
$timeVip = $user['vip'] + 3600;
}
if ($user['money'] < $cost)
{
error('Вам не хватает ' . moneyIcon() . ($cost - $user['money']));
}
DB::$dbs->query("UPDATE " . USERS . " SET `vip` = ?, `money` = ? WHERE `id` = ?", [$timeVip, ($user['money'] - $cost), $user['id']]);
successNoExit('Vip успешно приобретен/продлен');
}
?>
Цена: <?=moneyIcon() . $cost?> за 1час.<br/>
<div class="head">Преимущества</div>
<?=ico('info.png')?> Опыт на локациях <span style="color: #fff000;">X2</span><br/>
<?=ico('info.png')?> Регенерация здоровья <span style="color: #fff000;">X2</span><br/>
<form action="" method="POST">
<input type="submit" name="try" value="Приобрести">
</form>
<?php
break;
break;
# Items shop
case 'auction':
head('Магазин снаряжения', 'Магазин снаряжения');
$category = (!empty($_GET['category']) ? $Filter->output($_GET['category']) : null);
$allowCategory = ['items']; // Allow list;
if (empty($category) || !in_array($category, $allowCategory))
{
?>
<a href="<?=HOME?>/modules/shop/index.php?do=auction&category=items&sortBy=lvl" class="link-touch"><?=ico('items.png')?> Вещи</a>
<?php
}
else
{
# Output items list
if ($category == 'items')
{
$sortBy = (!empty($_GET['sortBy']) ? $Filter->output($_GET['sortBy']) : 'lvl');
$allowSort = ['lvl', 'cost', 'strike']; // Allow sort param;
if (!in_array($sortBy, $allowSort))
{
errorNoExit('Неверная сортировка');
}
else
{
$itemType = (!empty($_POST['itemType']) ? $Filter->output($_POST['itemType']) : NULL);
$allowItemType = ['helmet', 'weapon', 'chest', 'defend', 'armor', 'shoulder', 'ring'];
# If take don`t allow item type;
if (!in_array($itemType, $allowItemType) && !empty($itemType))
{
error('Не верный тип вещи.', '/modules/shop/index.php?do=auction', 'Магазин снаряжения');
}
$all = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM " . ALL_ITEMS . " WHERE `auction` = ? ". (!empty($itemType) ? 'and `type` = ?' : NULL) ." ORDER BY `" . $sortBy . "` DESC", (!empty($itemType) ? [1, $itemType] : [1]));
$n = new Navigator($all,10,'do=auction&category=items&sortBy=' . $sortBy);
$sql = DB::$dbs->query("SELECT * FROM " . ALL_ITEMS . " WHERE `auction` = ? ". (!empty($itemType) ? 'and `type` = ?' : NULL) ." ORDER BY `" . $sortBy . "` DESC LIMIT {$n->start()}, 10", (!empty($itemType) ? [1, $itemType] : [1]));
if (empty($all))
{
errorNoExit('Ничего не найдено...');
}
else if (empty(isset($_GET['byItem'])))
{
# Items list;
echo 'Сортировать по: ' . ($sortBy != 'lvl' ? '<a href="' . HOME . '/modules/shop/index.php?do=auction&category=items&sortBy=lvl"> уровню</a>' : '<b> уровню</b>') .
($sortBy != 'cost' ? '<a href="' . HOME . '/modules/shop/index.php?do=auction&category=items&sortBy=cost"> цене</a>' : '<b> цене</b>') .
($sortBy != 'strike' ? '<a href="' . HOME . '/modules/shop/index.php?do=auction&category=items&sortBy=strike"> силе</a>' : '<b> силе</b>');
# Item type selector;
echo '<form action="#" method="POST"><br/>Тип вещи: <select name="itemType"><option value="helmet"> Шлем</option><option value="weapon"> Оружие</option><option value="chest"> Сундук</option><option value="armor"> Броня</option></select><input type="submit" name="" value="Подтвердить"></form>';
echo '<hr><div style="margin: 5px;">';
while ($item = $sql -> fetch())
{
?>
<img src="/img/item/<?=$Filter->output($item['type'])?>/<?=$Filter->output($item['img'])?>.png" width="25px"><a href="#"><?=$Filter->output($item['name'])?></a><br/>
<a href="<?=HOME?>/modules/shop/index.php?do=auction&category=items&sortBy=<?=$sortBy?>&byItem=<?=$Filter->clearInt($item['id'])?>"> Выкупить за <?=ico('gold.png') . $item['cost']?><br/><hr>
<?php
}
echo '</div>' . $n->navi();
}
}
?>
<a href="<?=HOME?>/modules/shop/index.php?do=auction" class="link-touch"><?=ico('back.png')?> Магазин</a>
<?php
# By item;
if (isset($_GET['byItem']))
{
$itemId = $Filter->clearInt($_GET['byItem']);
$item = DB::$dbs->queryFetch("SELECT * FROM " . ALL_ITEMS . " WHERE `id` = ?", [$itemId]);
if (empty($itemId) || !is_numeric($itemId))
{
errorNoExit('Не верный идентификатор вещи.');
}
else if (empty($item))
{
errorNoExit('Вещь не найдена.');
}
else if ($item['auction'] == 0)
{
errorNoExit('Данную вещь нельзя купить на аукционе.');
}
else
{
if (!empty($item['item_reward']))
{
$dropedItem = DB::$dbs->queryFetch("SELECT * FROM " . ALL_ITEMS . " WHERE `id` = ?", [$item['item_reward']]);
}
?>
<div class="title"><h1>Подтвердите покупку</h1></div>
Вы хотите купить - <a href="#"><?=$Filter->output($item['name'])?></a><br/>
<div class="head"> Характеристики</div>
<div class="wrap">
<img src="/img/item/<?=$Filter->output($item['type'])?>/<?=$Filter->output($item['img'])?>.png" width="35px"><br/>
<?=ico('strike.png')?> Сила: <?=$Filter->clearInt($item['strike'])?><br/>
<?=ico('defend.png')?> Защита: <?=$Filter->clearInt($item['defend'])?><br/>
<?=ico('health.png')?> Здоровье: <?=$Filter->clearInt($item['health'])?><br/>
<?=ico('exp.png')?> Уровень: <?=($user['lvl'] < $item['lvl'] ? '<span style="color: red;">'. $Filter->clearInt($item['lvl']) .'</span>' : '<span style="color: green;">'. $Filter->clearInt($item['lvl']) .'</span')?><br/>
<?=($item['type'] == 'chest' ? 'В этом сундуке вам может выпасть: <br/>' . ico('gold.png') . $item['gold_reward'] . ', ' . ico('exp.png') . $item['exp_reward'] . ', ' . ico('1.png') . $Filter->output($dropedItem['name']) . '<br/>' : NULL)?>
</div>
<a href="<?=HOME?>/modules/shop/index.php?do=auction&category=items&sortBy=<?=$sortBy?>&byItem=<?=$itemId?>&true" class="link-touch">Купить за <?=ico('gold.png') . $Filter->clearInt($item['cost'])?></a>
<?php
if (isset($_GET['true']))
{
if ($user['money'] < $item['cost'])
{
errorNoExit('Недостаточно золота.');
}
else if ($user['inv'] == $user['max_inv'])
{
errorNoExit('Рюкзак переполнен.');
}
else if ($user['lvl'] < $item['lvl'])
{
errorNoExit('Уровень вещи больше чем ваш.');
}
else
{
DB::$dbs->query("INSERT INTO " . USERITEM . "(`user_id`, `status`, `type`, `name`, `img`, `res_kick`, `strike`, `defend`, `health`, `gold_reward`, `exp_reward`, `item_reward`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", [$user['id'], 0, $Filter->clearString($item['type']), $Filter->clearString($item['name']), $item['img'], $item['res_kick'], $item['strike'], $item['defend'], $item['health'], $item['gold_reward'], $item['exp_reward'], $item['item_reward']]);
DB::$dbs->query("UPDATE " . USERS . " SET `money` = ?, `inv` = ? WHERE `id` = ?", [($user['money'] - $item['cost']), ($user['inv'] + 1), $user['id']]);
$journal = 'Вы купили ' . $Filter->output($item['name']) . ' за ' . ico('gold.png') . $Filter->clearInt($item['cost']);
$User->addUserJournal($journal, $user['id']);
success('Вещь успешно куплена','/modules/shop/index.php?do=auction', 'Магазин');
}
}
}
}
# End by item;
}
}
break;
case 'help':
head('Добровольные взносы', 'Добровольные взносы');
?>
<div class="block">
На данный момент в игре нет доната. Но если вы желаете помочь проекту, можете перечислить любую сумму на указанные ниже номера кошельков в системе webmoney.<br/>
Рубли: R037725018759 <br/>
Гривны: U716875989961 <br/>
<?=ico('info.png')?> Полученые средства будут использованы на оплату хостинга.<br/>
<?=ico('info.png')?> Если вы укажете в коментариях к платежу : wapgame + Ваш ник в игре, то я смогу подарить вам какую нибуть плюшку в игре)
</div>
<?php
break;
case 'blackMarket':
head('Черный рынок', 'Черный рынок');
?>
<div class="wrap">
Здесь вы в дальнейшем сможете покупать легендарные вещи, питомцев, открывать подземелья, покупать редкие зелья и многое другое.<br/>
<b><u>На данный момент данный модуль в разработке.</u></b>
</div>
<?php
break;
case 'bottle':
head('Магазин зелий', 'Магазин зелий');
?>
<div class="wrap">
Здесь вы можете приобрести зелья, которые можно использовать в бою.<br/>
<img src="/ico/bottle/1.png" width="18px">Зелье здоровья: x1 = <?=ico('gold.png')?>100з, +<?=ico('health.png')?>100хп<br/>
<img src="/ico/bottle/2.png" width="18px">Среднее зелье здоровья: x1 = <?=ico('gold.png')?>250з, +<?=ico('health.png')?>250хп<br/>
<img src="/ico/bottle/3.png" width="18px">Большое зелье здоровья: x1 = <?=ico('gold.png')?>500з, +<?=ico('health.png')?>500хп
</div>
<?php
if (isset($_POST['try']))
{
$data = $_POST;
$data['count'] = $Filter->clearInt($data['count']);
$data['type'] = $Filter->clearInt($data['type']);
if ($data['type'] == 1)
{
$restore = 100;
$cost = 100;
$name = 'Зелье здоровья';
}
else if ($data['type'] == 2)
{
$restore = 250;
$cost = 250;
$name = 'Среднее зелье здоровья';
}
else if ($data['type'] == 3)
{
$restore = 500;
$cost = 500;
$name = 'Большое зелье здоровья';
}
$cost = $cost * $data['count'];
if (empty($data['count']) || empty($data['type']))
{
errorNoExit('Обнаружено пустое поле.');
}
else if ($user['money'] < $cost)
{
errorNoExit('Недостаточно золота.');
}
else
{
DB::$dbs->query("INSERT INTO ". BELT ." (`user_id`, `name`, `status`, `count`, `type`, `restore`, `img`) VALUES (?, ?, ?, ?, ?, ?, ?)", [$user['id'], $name, 0, $data['count'], 'health', $restore, $data['type']]);
DB::$dbs->query("UPDATE ". USERS ." SET `money` = ? WHERE `id` = ?", [($user['money'] - $cost), $user['id']]);
$User->addUserJournal('Вы купили '. $name .' x'. $data['count'] .' <span style="color: red;">-'. ico('gold.png') . $cost.'</span>', $user['id']);
success('Вы купили зелье.');
}
}
?>
<form action="" method="POST">
Зелье: <br/>
<select name="type">
<option value="1">Зелье здоровья</option>
<option value="2">Среднее зелье здоровья</option>
<option value="3">Большое зелье здоровья</option>
</select><br/>
Количество: <br/>
<input type="text" name="count"><br/>
<input type="submit" name="try" value="Купить">
</form>
<?php
break;
case 'userBonus':
head('Эффекты', 'Эффекты');
$bonusCost = $user['lvl'] * 100;
$userParam = $user['strike'] + $user['defend'] + $user['max_health'];
$bonusParam = round($userParam * $user['lvl'] / 100);
if (isset($_POST['try']))
{
$bonusTime = time() + 3600;
$bonus = DB::$dbs->queryFetch("SELECT * FROM ". USER_BONUS ." WHERE `user_id` = ? and `type` = ?", [$user['id'], 'param']);
if ($user['money'] < $bonusCost)
{
errorNoExit('Недостаточно золота');
}
else
{
if (!empty($bonus))
{
errorNoExit('У вас уже активирован данный эффект');
}
DB::$dbs->query("UPDATE ". USERS ." SET `strike` = ?, `defend` = ?, `max_health` = ?, `money` = ? WHERE `id` = ?", [($user['strike'] + $bonusParam), ($user['defend'] + $bonusParam), ($user['max_health'] + $bonusParam), ($user['money'] - $bonusCost), $user['id']]);
DB::$dbs->query("INSERT INTO ". USER_BONUS ." (`user_id`, `type`, `param`, `time`, `text`) VALUES (?, ?, ?, ?, ?)", [$user['id'], 'param', $bonusParam, $bonusTime, 'Городской бонус']);
successNoExit('Бонус активирован');
}
}
?>
<div class="wrap">
Цена эффекта: <?=$bonusCost?><br/>
К параметрам: <span style="color: green;">+ <?=ico('strike.png') . ico('health.png') . ico('defend.png') .$bonusParam?></span><br/>
Время действия: 1 час.
</div>
<form action="" method="POST">
<input type="submit" name="try" value="Активировать">
</form>
<?php
break;
}
require_once '../../core/foot.php';