Файл: pages/economy/inv.php
Строк: 274
<?php
// Physical module map v50.6: public URL stays clean while code lives in /pages.
if (!defined('GAME_ROOT')) define('GAME_ROOT', dirname(__DIR__, 2));
chdir(GAME_ROOT);
if (PHP_SAPI !== 'cli') { $_SERVER['PHP_SELF']='/inv.php'; $_SERVER['SCRIPT_NAME']='/inv.php'; }
/* Обновление игры под PHP 8.4 / PDO и усиление безопасности: by Метриум (Стэлп) */
include './system/common.php';
include './system/functions.php';
include './system/user.php';
if(!$user) {
header('location: /');
exit;
}
// Заменить
$ListInv = db_result(db_query('SELECT COUNT(`id`) FROM `inv` WHERE `user` = "'.$user['id'].'" AND `equip` = "0" AND `place` = "0"'),0);
$place = _string(_num(($_GET['place'] ?? null)));
switch($place) {
default: case 0:
$title = 'Сумка ('.$ListInv.'/'.$user['inv'].')';
$max = $user['inv'];
break;
case 1:
if($user['chest'] == 0) {
header('location: /inv/bag/');
exit;
}
$title = 'Сундук';
$max = 20;
break;
}
include './system/h.php';
$wear = _string(_num(($_GET['wear'] ?? null)));
if($wear) {
$inv = db_fetch_array(db_query('SELECT * FROM `inv` WHERE `id` = "'.$wear.'" AND `equip` = "0" AND `user` = "'.$user['id'].'"'));
if($inv) {
$item = db_fetch_array(db_query('SELECT * FROM `items` WHERE `id` = "'.$inv['item'].'"'));
if($user['skill'] < $item['skill']) exit(header('location: /inv/'.($inv['place'] == 0 ? 'bag':'chest').'/'));
if($user['w_'.$item['w']]) {
$_inv = db_fetch_array(db_query('SELECT * FROM `inv` WHERE `id` = "'.$user['w_'.$item['w']].'" AND `user` = "'.$user['id'].'"'));
$_item = db_fetch_array(db_query('SELECT * FROM `items` WHERE `id` = "'.$_inv['item'].'"'));
db_query('UPDATE `users` SET `str` = `str` - '.$_inv['_str'].', `vit` = `vit` - '.$_inv['_vit'].', `agi` = `agi` - '.$_inv['_agi'].', `def` = `def` - '.$_inv['_def'].', `w_'.$_item['w'].'` = "0" WHERE `id` = ''.$user['id'].''');
// Все оплаченные улучшения старой вещи автоматически переходят на новую вещь этого слота. by Метриум (Стэлп)
if(game_transfer_item_enhancements((int)$user['id'],(int)$_inv['id'],(int)$inv['id'])) {
$_SESSION['ok']='Руна, заточка, бонус и звёзды перенесены на новую вещь.';
}
db_query('UPDATE `inv` SET `equip` = "0" WHERE `id` = "'.$_inv['id'].'"');
exit(header('location: /inv/wear/'.$wear.'/'));
}
if(!$user['w_'.$item['w']]) {
db_query('UPDATE `users` SET `str` = `str` + '.$inv['_str'].', `vit` = `vit` + '.$inv['_vit'].', `agi` = `agi` + '.$inv['_agi'].', `def` = `def` + '.$inv['_def'].', `w_'.$item['w'].'` = ''.$inv['id'].'' WHERE `id` = ''.$user['id'].''');
db_query('UPDATE `inv` SET `equip` = "1" WHERE `id` = "'.$inv['id'].'"');
exit(header('location: /inv/'.($inv['place'] == 0 ? 'bag':'chest').'/'));
}
}
}
# Parse
# @ void
# Code
$sell = _string(_num(($_GET['sell'] ?? null)));
if($sell) {
$query = db_query('SELECT * FROM `inv` WHERE `id` = ''.$sell.'' AND `equip` = '0' AND `user` = ''.$user['id'].''');
$inv = db_fetch_array($query);
if($inv) {
$_sell = array(0, 100, 250, 500, 1000, 50000, 50000);
$_sell_parse = array(0, 1, 5, 8, 10,15,20);
db_query('UPDATE `users` SET `s` = `s` + '.$_sell[$inv['quality']].', `parse_exp` = `parse_exp` + '.$_sell_parse[$inv['quality']].' WHERE `id` = ''.$user['id'].''');
db_query('DELETE FROM `inv` WHERE `id` = ''.$inv['id'].''');
header('location: /inv/'.($place == 0 ? 'bag':'chest').'/');
}
}
$unwear = _string(_num(($_GET['unwear'] ?? null)));
if($unwear) {
$query = db_query('SELECT * FROM `inv` WHERE `id` = ''.$unwear.'' AND `user` = ''.$user['id'].''');
$inv = db_fetch_array($query);
if($inv) {
$query = db_query('SELECT * FROM `items` WHERE `id` = ''.$inv['item'].''');
$item = db_fetch_array($query);
if($user['w_'.$item['w']] && $user['w_'.$item['w']] == $inv['id']) {
if(db_result(db_query('SELECT COUNT(*) FROM `inv` WHERE `place` = ''.$place.'' AND `user` = ''.$user['id'].'' AND `equip` = '0''),0) + 1 > $max) $errors[] = 'Ошибка, сумка заполнена';
if($errors) {
echo '<div class='content' align='center'>';
foreach($errors as $error) {
echo $error.'<br/>';
}
echo '</div>
<div class='line'></div>';
}
else
{
db_query('UPDATE `users` SET `str` = `str` - '.$inv['_str'].',
`vit` = `vit` - '.$inv['_vit'].',
`agi` = `agi` - '.$inv['_agi'].',
`def` = `def` - '.$inv['_def'].',
`w_'.$item['w'].'` = '0' WHERE `id` = ''.$user['id'].''');
if($place == 1 && $user['chest'] == 0) $place = 0;
db_query('UPDATE `inv` SET `equip` = '0',
`place` = ''.$place.'' WHERE `id` = ''.$inv['id'].''');
header('location: /equip/');
}
}
else
{
if($place == 1 && $user['chest'] == 0) $place = 0;
db_query('UPDATE `inv` SET `place` = ''.$place.'' WHERE `id` = ''.$inv['id'].''');
header('location: /inv/'.($place == 0 ? 'bag':'chest').'/');
}
}
}
$sell = _string(_num(($_GET['sell'] ?? null)));
if($sell) {
$query = db_query('SELECT * FROM `inv` WHERE `id` = ''.$sell.'' AND `equip` = '0' AND `user` = ''.$user['id'].''');
$inv = db_fetch_array($query);
if($inv) {
$_sell = array(0, 100, 250, 500, 1000, 50000, 50000);
db_query('UPDATE `users` SET `s` = `s` + '.$_sell[$inv['quality']].' WHERE `id` = ''.$user['id'].''');
db_query('DELETE FROM `inv` WHERE `id` = ''.$inv['id'].''');
header('location: /inv/'.($place == 0 ? 'bag':'chest').'/');
}
}
if($place == 0) {
if($user['chest'] == 0) {
if(($_GET['buy_chest'] ?? '') == true) {
if($user['g'] < $config['chest']) $errors[] = 'Ошибка, нехватает <img src='/images/icon/g.png'> '.($config['chest'] - $user['g']).' золота';
if($errors) {
echo '<div class='content' align='center'>';
foreach($errors as $error) {
echo $error.'<br/>';
}
echo '</div>
<div class='line'></div>';
}
else
{
db_query('UPDATE `users` SET `g` = `g` - 100,
`chest` = '1' WHERE `id` = ''.$user['id'].''');
header('location: /inv/chest/');
}
}
}
}
echo '<div class='title'>'.$title.'</div>';
/* Старое обучение сумки удалено. by Метриум (Стэлп) */
echo'
<div class='line'></div>
<div class='list'>
<a href=''.($place == 0 ? ( ($user['chest'] == 0) ? '/inv/bag/?buy_chest=true':'/inv/chest/'):'/inv/bag/').''><img src='/images/icon/bag.png' alt='*'/> '.($place == 0 ? ( ($user['chest'] == 0) ? 'Купить cундук за <img src='/images/icon/g.png' alt='*'/> 100 золота':'Открыть cундук'):'Открыть cумку').'</a></li>
</div><div class='line'></div>';
if(db_result(db_query('SELECT COUNT(*) FROM `inv` WHERE `user` = ''.$user['id'].'' AND `equip` = '0' AND `place` = ''.$place.'''),0) > 0) {
$max = 10;
$count = db_result(db_query('SELECT COUNT(*) FROM `inv` WHERE `user` = ''.$user['id'].'' AND `equip` = '0' AND `place` = ''.$place.'' ORDER BY `id` DESC'),0);
$pages = ceil($count/$max);
$page = _string(_num(($_GET['page'] ?? null)));
if($page > $pages) {
$page = $pages;
}
if($page < 1) {
$page = 1;
}
$start = $page * $max - $max;
$q = db_query('SELECT * FROM `inv` WHERE `user` = ''.$user['id'].'' AND `equip` = '0' AND `place` = ''.$place.'' ORDER BY `id` DESC LIMIT '.$start.', '.$max.'');
$shopNewItemId=(int)($_SESSION['shop_new_item_id'] ?? 0);
unset($_SESSION['shop_new_item_id']);
while($row = db_fetch_array($q)) {
$item = db_fetch_array(db_query('SELECT * FROM `items` WHERE `id` = ''.$row['item'].'''));
$ownedQuality=game_item_quality_from_owned($row,$item);
$qinfo=game_item_quality_info($ownedQuality);
$quality=$qinfo['name'];
$quality_col=$qinfo['color'];
$bonus=game_item_bonus_max($ownedQuality);
if($row['new'] == 0) {
db_query('UPDATE `inv` SET `new` = '1' WHERE `id` = ''.$row['id'].''');
}
echo '<div class='content'.($shopNewItemId === (int)$row['id'] ? ' inv-new-purchase' : '').''><table cellpadding='0' cellspacing='0'><tr>
<td><img src='/itemImage.php?id='.$row['item'].'&smith='.$row['smith'].'' alt='*'/></td>
<td valign='top' style='padding-left: 5px;'><img src='/images/icon/quality/'.$row['quality'].'.png' alt='*'/> <a href='/item/'.$row['id'].'/'>'.$item['name'].'</a> '.($row['smith'] > 0 ? '<font color='#90c090'>+'.$row['smith'].'</font>':'').'<br/>
<small><small><font color=''.$quality_col.''>'.$quality.' ['.$row['bonus'].'/'.$bonus.']</font> ';
if($user['w_'.$item['w']]) {
$equipitem = db_fetch_array(db_query('SELECT * FROM `inv` WHERE `id` = ''.$user['w_'.$item['w']].'''));
if( ( $row['_str'] + $row['_vit'] + $row['_agi'] + $row['_def'] ) - ( $equipitem['_str'] + $equipitem['_vit'] + $equipitem['_agi'] + $equipitem['_def'] ) > 0) echo '<font color='#30c030'>+'.(( $row['_str'] + $row['_vit'] + $row['_agi'] + $row['_def'] ) - ( $equipitem['_str'] + $equipitem['_vit'] + $equipitem['_agi'] + $equipitem['_def'] )).'</font>';
}
else
{
echo '<font color='#30c030'>+'.( $row['_str'] + $row['_vit'] + $row['_agi'] + $row['_def'] ).'</font>';
}
echo '<br/>
<font color='#'.(($user['skill'] < $item['skill']) ? 'c06060':'ffffff').''>Мастерство: '.$item['skill'].'</font>';
if($row['rune']) {
switch($row['rune']) {
case 1:
$rune_stats = 75;
break;
case 2:
$rune_stats = 150;
break;
case 3:
$rune_stats = 250;
break;
case 4:
$rune_stats = 600;
break;
case 5:
$rune_stats = 1000;
break;
case 6:
$rune_stats = 2000;
break;
}
switch($item['w']) {
case 1:
$rune_stat = 'силы';
break;
case 2:
$rune_stat = 'жизни';
break;
case 3:
$rune_stat = 'брони';
break;
case 4:
$rune_stat = 'удачи';
break;
case 5:
$rune_stat = 'силы';
break;
case 6:
$rune_stat = 'силы';
break;
case 7:
$rune_stat = 'брони';
break;
case 8:
$rune_stat = 'жизни';
break;
case 9:
$rune_stat = 'жизни';
break;
}
echo '<br/>
<img src='/images/icon/quality/'.$row['rune'].'.png' alt='*'/> <font color='#90c090'>+'.$rune_stats.'</font> '.$rune_stat.'<br/>';
}
echo '</small></small></td>
</tr></table>
<div align='center'>';
if($user['skill'] >= $item['skill']) echo ' <a href='/inv/wear/'.$row['id'].'/' class='btn'><span class='end'><span class='label'>Надеть</span></span></a> ';
if((int)$user['w_'.$item['w']] !== (int)$row['id']) {
switch($item['quality']) {
case 0:
$_s = 0;
$_g = 0;
break;
case 1:
$_s = 100;
$_g = 0;
break;
case 2:
$_s = 250;
$_g = 0;
break;
case 3:
$_s = 500;
$_g = 0;
break;
case 4:
$_s = 1000;
$_g = 0;
break;
case 5:
$_s = 50000;
$_g = 0;
break;
case 6:
$_s = 50000;
$_g = 0;
break;
}
?>
<br/><a href='/inv/<?=((int)($row['place'] ?? $place) === 0 ? 'bag':'chest')?>/?sell=<?=$row['id']?>' class='btn'><span class='end'><span class='label'>Разобрать вещь <?=($_s ? "<img src='/images/icon/silver.png' alt='*'/> $_s":"<img src='/images/icon/gold.png' alt='*'/> $_g")?></span></span></a><br>
<?php
}
if($user['chest']) echo ' <a href='/inv/move/'.($place == 0 ? 1:0).'/'.$row['id'].'/' class='btn'><span class='end'><span class='label'>В '.($place == 0 ? 'сундук':'сумку').'</span></span></a> ';
echo '</div>
</div>';
}
?>
<div class='line'></div>
<div class='menu'>
<?php
if($place == 0) {
?>
<li class='no_b'>
<?php
pages('?');
}else false;
?>
</li>
</div>
<?php
}
else
{
/* Старое обучение пустой сумки удалено. by Метриум (Стэлп) */
echo '<div class='content'>
<font color='#909090'>'.($place == 0 ? 'Сумка пуста':'Сундук пуст').'</font>
</div>';
}
if(isset($_GET['use'])) {
$id = _string(_num($_GET['id']));
if($id < 1 OR $id > 4) exit(header('Location: /inv/bag/'));
if($_belt[$id] > 0) {
if($_belt['belt_'.$id.''] <= 0) {
db_query("UPDATE `belt` SET `".$id."` = ".($_belt[$id] - 1).", `belt_".$id."` = ".(time() + 14400)." WHERE `user` = ".$user['id']."");
}else{
db_query("UPDATE `belt` SET `".$id."` = ".($_belt[$id] - 1).", `belt_".$id."` = ".($_belt['belt_'.$id.''] + 14400)." WHERE `user` = ".$user['id']."");
}
}
exit(header('Location: /inv/bag/'));
}
for($i = 1; $i <= 4; $i++) {
$_alchemy = array(1 => 'силы', 2 => 'жизни', 3 => 'удачи', 4 => 'брони');
$_alchemys = array(1 => 'силе', 2 => 'жизням', 3 => 'удаче', 4 => 'броне');
if($_belt[$i] > 0) {
?>
<div class='line'></div><div class="content">
<table cellpadding="0" cellspacing="0"><tbody><tr> <td><img src="/images/belt/<?=$i;?>.png" alt="*"></td>
<td valign="top" style="padding-left: 5px;"> <font color="#c6f">Эликсир <?=$_alchemy[$i];?></font> <br>
<small><small>Бонус: <font color='#90c090'>+<?=$user['skill'];?> к <?=$_alchemys[$i];?></font> <br>
<font color="#ffffff">Количество: <?=$_belt[$i];?> штук</font></small></small></td>
</tr></tbody></table>
<center> <a href="/inv/bag/use/<?=$i?>/" class="button">Использовать</a> </div>
</div>
<?php
}
}
include './system/f.php';
?>