WIP: removing User::class public array $items for Stat()::class.

This commit is contained in:
2024-01-08 03:33:20 +02:00
parent 4a7535d67d
commit bd8761f240
22 changed files with 812 additions and 971 deletions
+96 -77
View File
@@ -1,16 +1,91 @@
<?php
echo "
<script language='JavaScript'>
var elem = document.getElementById('se-pre-con');
elem.parentNode.removeChild(elem);
</script>
";
use Core\Config;
use Core\Db;
use Helper\Conversion;
use Model\Constant\Stat;
if (!defined('GAME')) {
die();
}
/** @var User $u */
$shadows = Db::getRows(
"select * from obraz where
sex = ? and
level <= ? and
(login = '' or login = ?) and
(uid = 0 or uid = ?) and
(align = '0' or align = ?) and
(clan = 0 or clan = ?) order by level, img",
[$u->info['sex'], $u->info['level'], $u->info['login'], $u->info['id'], $u->info['align'], $u->info['clan']]
);
$statnames = new Stat();
$statnames->getRequirement();
$code = PassGen::intCode();
$imgsrc = Config::img();
$str2 = '';
foreach ($shadows as $shadow) {
$tr = true;
$str = '';
$data = Conversion::dataStringToArray($shadow['tr']);
if ($shadow['level'] > 0) {
$str .= "\r• Уровень персонажа: {$shadow['level']}";
}
if (!empty($shadow['itm'])) {
$needItems = [];
foreach (explode(',', $shadow['itm']) as $itemId) {
if ($itemId < 1) {
continue;
}
$item = Db::getRow('select item_id as id, name from items_users left join items_main on item_id = items_main.id where item_id = ? and inodet > 0 and inshop = 0 and uid = ?', [$itemId, $u->info['id']]);
if (!$item['id']) {
$tr = false;
}
$needItems[] = "«{$item['name']}»";
}
if (!empty($needItems)) {
$str .= "\r• Предметы: " . implode(', ', $needItems);
}
}
foreach ($statnames->sysRequirementNames as $srn) {
if (!isset($data['tr_' . $srn])) {
continue;
}
$str .= "\r$statnames->requirementNames[$srn]: " . $data['tr_' . $srn];
if ($data['tr_' . $srn] <= $u->stats[$srn]) {
continue;
}
$tr = false;
}
if ((!empty($shadow['tr']) || !empty($shadow['itm'])) && !$tr) {
continue;
}
if (!empty($str)) {
$str = "Требуется минимальное:$str";
}
$str2 .= <<<HTML
<a href="/main.php?inv=1&obr_sel={$shadow['id']}&rnd=$code">
<img class="obrsl1" title="$str" src="$imgsrc/obraz/{$shadow['sex']}/{$shadow['img']}" width="120" height="220" alt="">
</a>
HTML;
}
?>
<script>
const elem = document.getElementById('se-pre-con');
elem.parentNode.removeChild(elem);
</script>
<style>
.obrsl1 {
border: 1px solid #888;
@@ -26,77 +101,21 @@ if (!defined('GAME')) {
margin-right: 1px;
}
</style>
<table width="100%" cellspacing="0" cellpadding="0">
<form method="post" action="/main.php?inv">
<tr>
<td valign="top" align="left"><img src="//img.new-combats.tech/i/1x1.gif" alt="" width="1" height="5"/><br/>
&nbsp;&nbsp;
</td>
<center><?= User::getLogin($u->info['id']) . '<br>'; ?></center>
<td valign="top" align="right">&nbsp;
<table style="width: 100%; border-spacing: 0;">
<caption><?= User::getLogin($u->info['id']) ?></caption>
<tr>
<td style="vertical-align: top; width: 1px; height: 5px; padding: 0;"></td>
<td style="vertical-align: top; text-align: right; padding: 0;">
<form method="post" action="/main.php?inv">
<input type="button" onClick="location.href='/main.php?obraz';" class="btn" value="Обновить"/>
<input type="submit" class="btn" name="edit" value="Вернуться"/>
<br>
<hr/>
<br/>
</td>
</tr>
</form>
</form>
<br>
<hr>
<br>
</td>
</tr>
<tr>
<td style="text-align:center; padding: 0;" colspan="2"><?= $str2 ?></td>
</tr>
</table>
<center>
<?php
$sp = mysql_query('SELECT * FROM `obraz` WHERE `sex` = "' . $u->info['sex'] . '" AND `level` <= "' . $u->info['level'] . '" AND (`login` = "" OR `login` = "' . $u->info['login'] . '") AND (`uid` = "" OR `uid` = "' . $u->info['id'] . '") AND (`align` = "0" OR `align` = "' . $u->info['align'] . '") AND (`clan` = "0" OR `clan` = "' . $u->info['clan'] . '") ORDER BY `level` ASC, `img` ASC');
while ($pl = mysql_fetch_array($sp)) {
$tr = true;
$trd = '';
$po = Helper\Conversion::dataStringToArray($pl['tr']);
$t = $u->items['tr'];
$x = 0;
if ($pl['level'] > 0) {
$trd .= "\r" . '&bull; Уровень персонажа: ' . $pl['level'] . '';
}
if ($pl['itm'] > 0) {
$pl['itm'] = explode(',', $pl['itm']);
$j = 0;
$tritm = '';
while ($j < count($pl['itm'])) {
$itm_id = $pl['itm'][$j];
if ($itm_id > 0) {
$itm_id = mysql_fetch_array(mysql_query('SELECT `id`,`name` FROM `items_main` WHERE `id` = "' . $itm_id . '" LIMIT 1'));
$itm_id_true = mysql_fetch_array(mysql_query('SELECT `id` FROM `items_users` WHERE `item_id` = "' . $itm_id['id'] . '" AND
`delete` = 0 AND `inOdet` > 0 AND `inShop` = 0 AND `uid` = "' . $u->info['id'] . '"
LIMIT 1'));
if (!isset($itm_id_true['id'])) {
$tr = false;
}
if ($j > 0) {
$tritm .= ', ';
}
$tritm .= '&quot;' . $itm_id['name'] . '&quot;';
}
$j++;
}
if ($tritm != '') {
$trd .= "\r" . '&bull; Предметы: ' . $tritm . '';
}
}
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['tr_' . $n])) {
$trd .= "\r" . '&bull; ' . $u->is[$n] . ': ' . $po['tr_' . $n] . '';
if ($po['tr_' . $n] > $u->stats[$n]) {
$tr = false;
}
}
$x++;
}
if (($pl['tr'] == '' && $pl['itm'] == '') || $tr == true) {
if ($trd != '') {
$trd = 'Требуется минимальное:' . $trd;
}
echo '<a href="main.php?inv=1&obr_sel=' . $pl['id'] . '&rnd=' . $code . '"><img class="obrsl1" title="' . $trd . '" src="//img.new-combats.tech/i/obraz/' . $pl['sex'] . '/' . $pl['img'] . '" width="120" height="220" /></a> ';
}
}
?>
</center>