0 => $inf = User::getInfo($_GET['id']), !empty($_GET['login']) && $_GET['login'] !== 'delete' => $inf = User::getInfo($_GET['login']), !empty($uplogin) && $uplogin !== 'delete' => $inf = User::getInfo($uplogin), }; if (empty($inf) || $inf['login'] == 'delete' || $inf['login'] == 'DELETE') { unset($inf); } else { if ($inf['info_delete'] > 1 && $inf['info_delete'] < time()) { $inf['info_delete'] = 0; Db::sql('update users set info_delete = 0 where id = ?', [$inf['id']]); } } if (isset($_GET['restartmonster']) && $u->isAdmin()) { //что ты такое?? Db::sql('update stats set res_x = 0 where id = ?', [$inf['id']]); $inf['res_x'] = 0; } if ($u->isAdmin() && isset($_GET['wipe']) && $u->newAct($_GET['sd4'])) { Db::sql('update stats set wipe = 1 where id = ?', [$inf['id']]); $uer = 'Сброс характеристик прошел успешно
'; } if ($inf['room'] == 303 && $u->info['admin'] == 0) { unset($inf); } if (!isset($inf['id'])) { die('Ошибка. Персонаж не найден.'); } $zodiac = new Zodiac($inf['bithday']); function statInfo($s): string { global $st, $st2; if (isset($st[$s])) { $st[$s] = (int)$st[$s]; } else { $st[$s] = 0; } if (isset($st2[$s])) { $st2[$s] = (int)$st2[$s]; } else { $st2[$s] = 0; } if ($st[$s] == $st2[$s]) { return '' . $st[$s] . ''; } else { $s1 = '+'; if ($st2[$s] > $st[$s]) { $s1 = '-'; } $colours = ['black', 'darkred', 'darkgreen', 'green']; $si = 0; if ($s1 == '-') { $si = 2; } $t = $st[$s]; $j = $st[$s] - $st2[$s]; $t = $t - $j; if ($j > 0) { if ($t == 0) { $t = 1; } $d = $j * 100 / $t; if ($d < 0 && $t + $j >= 0) { $d = 100; } if ($d < 33) { $si = 2; } elseif ($d > 100) { $si = 3; } } elseif ($j < 0) { $si = 1; } if ($st[$s] < 0 || $st[$s] <= round($st2[$s])) { $si = 1; } return '' . $st[$s] . ' (' . $st2[$s] . ' ' . $s1 . ' ' . abs($st[$s] - $st2[$s]) . ')'; } } $room['name'] = $inf['room_name']; $nopal = false; if (!$u->isAdmin() && $inf['admin'] > 0) { $nopal = true; } if ($inf['inTurnir'] > 0 && ($u->info['inTurnir'] == $inf['inTurnir'] || $u->isAdmin())) { $bs = mysql_fetch_array(mysql_query('SELECT * FROM `bs_turnirs` WHERE `id` = "' . $inf['inTurnir'] . '" LIMIT 1')); if (isset($bs['id']) && ($bs['users'] <= 2 || $bs['type_btl'] == 1)) { $bs_rm = mysql_fetch_array( mysql_query( 'SELECT `id`,`name` FROM `bs_map` WHERE `mid` = "' . $bs['type_map'] . '" AND `x` = "' . $inf['x'] . '" AND `y` = "' . $inf['y'] . '" LIMIT 1' ) ); if (isset($bs_rm['id'])) { $room['name'] .= ' - ' . $bs_rm['name']; } } } $st = []; $st2 = []; $st = $u->getStats($inf['id'], 1, 0, true); $st2 = $st[1]; $st = $st[0]; $rgd = $u->regen($inf['id'], $st, 1); $us = $u->getInfoPers($inf['id'], 1, $st); if (isset($bs['id']) && $bs['type_btl'] == 2 && ($u->info['x'] != $inf['x'] || $u->info['y'] != $inf['y'])) { $us[0] = '
Информация скрыта,
Вы в разных комнатах.
'; } if ($inf['align'] == 9) { $st['hpNow'] = $st['hpNow'] / ($st['hpAll'] / 100); $st['hpAll'] = '100%'; $rgd[0] = '0.28'; } ?> Информация о <?= $inf['login']; ?> ' . $uer . '
'; } ?>
' ?>
time() - 520 && $inf['banned'] == 0 && $inf['invis'] != 1 && $inf['invis'] < time()) { echo 'Персонаж сейчас находится в клубе.
"' . $room['name'] . '"'; } else { echo 'Персонаж не в клубе'; if ($inf['online'] == 0) { $inf['online'] = $inf['timeREG']; } if (date('Y', $inf['online']) == date('Y')) { echo ', но был тут:
' . date('d.m.Y H:i', $inf['online']) . 'Время сервера' . '
(' . Conversion::secondsToTimeout(time() - $inf['online']) . ' назад)'; } } if ($inf['inUser'] > 0 && $inf['id'] != 12059) { echo '
Персонаж вселился в бота'; } if ($inf['battle'] > 0 && $battleid) { echo '
Персонаж сейчас в поединке'; } } else { if ($inf['res_x'] - time() > 0) { echo '
Появится через ' . Conversion::secondsToTimeout($inf['res_x'] - time()) . '
'; } else { echo '
Появится в ближайшее время...
'; } } //Эффект админ if ($u->isAdmin()) { function effAdm($pl): string { if ($pl['v1'] != 'priem') { $eff = Db::getRow('select img, actionTime from eff_main where id2 = ?', [$pl['id_eff']]); $pl['img2'] = $eff['img']; $pl['name'] .= "\r" . 'Действует еще ' . Conversion::secondsToTimeout($pl['timeUse'] - time() + $eff['actionTime']); } return ''; } if (isset($_GET['cancel_eff'])) { Effects::removeByEffectId($inf['id'], (int)$_GET['cancel_eff']); die(''); } $eff_adm = ''; foreach (Effects::getActive($inf['id']) as $effect) { $eff_adm .= effAdm($effect); } if (!empty($eff_adm)) { echo '
Эффекты на персонаже:
' . $eff_adm . '
'; } ?>
Показать модификаторы
isAdmin()) { $nodell = Db::getRow('select id, inUser from users where login = ? order by id limit 1', [$inf['login']]); $sp = Db::getRows('select id from users where login = ? and id != ?', [$inf['login'], $inf['id']]); $nolog = ''; foreach ($sp as $pl) { if (isset($_GET['del_copy']) && $_GET['del_copy'] == $pl['id']) { if ($nodell['inUser'] != $pl['id'] && $pl['id'] != $nodell['id']) { Db::sql('update users set login = ? where id = ?', ['DELETE', $pl['id']]); } } else { $nolog .= '
' . User::getLogin($pl['id']); if ($nodell['inUser'] != $pl['id'] && $pl['id'] != $nodell['id']) { $nolog .= ' (персонажа можно удалить)'; } if ($pl['id'] == $nodell['id']) { $nolog .= ' (основной персонаж)'; } $nolog .= '
'; } } if (!empty($nolog)) { echo 'Копии персонажа:' . $nolog . ''; } } ?>
Сила:
Ловкость:
Интуиция:
Выносливость:
Интеллект:
Мудрость:
9 || $st['s7'] != 0) { ?> Духовность:
Рейтинг сегодня:
Уровень:
Побед: ' . $inf['win'] . ''; ?>
Поражений:
Ничьих:
0) { $pc = ClanInfo::getById($inf['clan']); if (isset($pc['id'])) { if ($inf['clan_prava'] == 'glava') { $inf['mod_zvanie'] = '- Глава клана'; } elseif (!empty($inf['mod_zvanie'])) { $inf['mod_zvanie'] = '- ' . htmlspecialchars($inf['mod_zvanie'], null); $inf['mod_zvanie'] = str_replace('<b>', '', $inf['mod_zvanie']); $inf['mod_zvanie'] = str_replace('</b>', '', $inf['mod_zvanie']); $inf['mod_zvanie'] = str_replace('<u>', '', $inf['mod_zvanie']); $inf['mod_zvanie'] = str_replace('</u>', '', $inf['mod_zvanie']); $inf['mod_zvanie'] = str_replace('<i>', '', $inf['mod_zvanie']); $inf['mod_zvanie'] = str_replace('</i>', '', $inf['mod_zvanie']); } echo 'Клан: ' . $pc['name'] . ' ' . $inf['mod_zvanie'] . '
'; } elseif ($u->isAdmin()) { echo 'Подана заявка на регистрацию клана или ошибка в базе кланов.'; } } $accountStatus = new class { public static function print(bool $condition, string $type, string $color, string $status = ''): void { if (!$condition) { return; } echo "$type"; if (!empty($status)) { echo " - $status"; } echo '
'; } }; $accountStatus::print(!empty($inf['admin']), 'Администратор', 'green'); $accountStatus::print($inf['pass'] === 'saintlucia' && $u->isAdmin(), 'NPC', 'dimgray'); $accountStatus::print( ($inf['align'] > 1 && $inf['align'] < 2 || $inf['align'] > 3 && $inf['align'] < 4) && empty($inf['admin']), 'Модератор', 'green', $inf['mod_zvanie']); $accountStatus::print($inf['align'] === 50, 'Алхимик', 'orange', $inf['mod_zvanie']); echo 'День рождения персонажа: '; if (empty($inf['timereg'])) { echo 'До начала времен...'; } else { echo date('d.m.Y', $inf['timereg']); } echo '
'; $twinks = new Twinks($inf['id'], $inf['twink']); $lastnames = new LastNames($inf['id']); $ai = new Achievements($u); $awards = new Awards($inf['id']); $status = new \Inf\Status(); $achievements = ''; foreach ($ai->getTypes() as $type) { $i = $ai->getInfo($inf['id']); if (empty($i[$type])) { continue; } $achievements .= '
' . '
' . $i['name' . $type] . '
' . '
Ранг ' . $i['klas' . $type] . ' :
' . ' ' . $i['name' . $type] . ' ' . '
'; } if ($inf['align'] == 50) { $awards->addCustom('Официальный дилер', 'Имеет право вести коммерческую деятельность.', 'alchemy1.gif'); } if ($inf['vip'] === 1) { $awards->addCustom('За помощь в развитии проекта.', '', 'vip2.gif'); } if (!empty($inf['marry'])) { $partner = Db::getValue('select login from users where id = ?', [$inf['marry']]); if ($partner) { $awards->addCustom('Семейные узы', "В счастливом браке с $partner.", 'i/i_marry.gif'); } } //сам себя наебал, condition не заменяет isset, а вот ?? null это уже чисто костыль, который будет тут висеть пока не придёт ясность как формируется $st $status->add($inf['jail'] > time(), 'В заточении', $inf['jail'], 'i/jail.gif'); $status->add(!empty($st['puti']), 'Не может передвигаться', $st['puti'] ?? null, 'i/items/chains.gif'); $status->add($inf['molch1'] > time(), 'Не может общаться в чате', $inf['molch1'], 'i/sleeps' . $inf['sex'] . '.gif'); $status->add($inf['molch2'] > time(), 'Не может общаться на форуме', $inf['molch2'], 'i/fsleeps' . $inf['sex'] . '.gif'); $status->add($inf['clan_delay'] > time(), 'Не может вступать в кланы', $inf['clan_delay']); $status->add($inf['info_delete'] > time() || $inf['info_delete'] === 1, 'Профиль скрыт', $inf['info_delete'], 'stopinfo.png'); foreach (Effects::getAllInjuries($inf['id']) as $injury) { $status->add(true, 'Травма: «' . $injury['name'] . '»', $injury['timeUse'] + $injury['timeAce'], 'i/jail.gif'); } $twinks->print(); $lastnames->print(); ?>
print(); $status->print(); if (!empty($achievements)) { echo <<
Достижения персонажа:
$achievements
HTML; } if ($inf['banned'] > 0 || $inf['jail'] > time()) { Delo::printPublicModerationStatus($inf['id']); } //подарки (это какой-то сферический пиздец в вакууме!) if ($inf['info_delete'] < time() && $inf['info_delete'] != 1 || $u->isModerator()) { $gs = ['', '', '']; $i = 0; $ij1 = 1; $ij2 = 1; $q1 = "select * from items_users left join items_main on items_main.id = items_users.item_id where uid = ? and gift != '' order by items_users.id desc"; $presentsList1 = Db::getRows($q1, [$inf['id']]); foreach ($presentsList1 as $pl) { if (stristr($pl['data'], 'gift_id')) { $po = Conversion::dataStringToArray($pl['data']); $pl_gift = $po['gift_id']; if ($pl_gift > 0) { $pl_gift = Db::getRow('select name, img from users_gifts where id = ?', [$pl_gift]); if ($pl_gift) { //Именной подарок $pl['name'] = $pl_gift['name']; $pl['img'] = $pl_gift['img']; } } } //подарки if ($pl['gift'] == 1) { $pl['gift2'] = 'Невидимка'; } else { $pl['gift2'] = $pl['gift']; } $gs[0] .= ''; $ij1++; } $q2 = "select * from items_users left join items_main on items_main.id = items_users.item_id where uid = ? and gift != '' and inOdet = 0 and (type in (63,37) or data like '%|giftsee=2%') order by items_users.id desc"; $presentsList2 = Db::getRows($q2, [$inf['id']]); foreach ($presentsList2 as $pl) { if ($pl['gift'] == 1) { $pl['gift2'] = 'Невидимка'; } else { $pl['gift2'] = $pl['gift']; } $gs[1] .= ''; $ij2++; } if (!empty($gs[0]) || !empty($gs[1])) { echo '

' . '
' . '
Подарки:

' . $gs[0] . '
' . $gs[1] . '
'; $q3 = "select count(items_users.id) from items_users left join items_main on items_main.id = items_users.item_id where (type in (28,63,38,64,37) or data like '%|giftsee=1' or data like '%|giftsee=2%') and uid = ? and gift != '' and inOdet = 0"; $ij4 = Db::getValue($q3, [$inf['id']]); if ($ij1 + $ij2 + 1 < $ij4) { if (!isset($_GET['maxgift'])) { echo 'Нажмите сюда, чтобы увидеть все подарки...'; } else { echo 'Нажмите сюда, чтобы скрыть подарки'; } } } } if ($inf['align'] == '9' && $u->isAdmin()) { if (isset($_GET['emonster'])) { $monster = new Monster($inf['id']); ?> Параметры монстра:
Место появления (id комнаты):  
Время ожидания после поражения бота: мин.
Исчезнет после своей победы:
Появляется, ДН Д М Ч Мин
Исчезает,    ДН Д М Ч Мин
Текст появления (Логин бота {b}, Логины игроков {u}):
Текст исчезновения:
Текст победы игрока:
Текст поражения игрока:
Текст ничьей:
Награда (победа игрока):
Кр.:
Екр.:
Опыт (За 100% НР монстра):
Предметы (id@kolvo@data, ...):
Эффект:
Подвиги:
Награда (поражение игрока):
Кр.:
Екр.:
Опыт:
Предметы:
Эффект:
Подвиги:


Скрыть
Настройка монстра
isModerator() && !$nopal) { $m = []; $mults = Db::getRows('select * from mults where (uid = ? or uid2 = ?) and uid != 0 and uid2 != 0', [$inf['id'], $inf['id']]); foreach ($mults as $mult) { $usr = $inf['id'] === $mult['uid'] ? $mult['uid2'] : $mult['uid']; if (empty($usr) || $usr === $inf['id']) { continue; } $m[] = User::getLogin($usr); } echo '
За игроком замечены следующие темные делишки:
'; if (!isset($_GET['mod_inf'])) { echo 'Показать личное дело'; } else { //Личное дело персонажа foreach (Delo::getAllByUserId($inf['id']) as $logstr) { echo date('d.m.Y H:i:s', $logstr['time']) . ' ' . $logstr['text'] . '
'; } echo 'Скрыть личное дело'; } echo '

'; //Информация для паладинов\тарманов\ангелов if ((int)$inf['host_reg'] >= 1) { $inf['ref'] = User::getLogin((int)$inf['host_reg']); } else { $inf['ref'] = '--'; } if (!isset($inf['ipReg'])) { $inf['ipReg'] = '--'; } echo '
Секретно!
'; echo 'День рождения: ' . $inf['bithday'] . '
'; echo date('Последний вход: d.m.Y H:i', $inf['online']) . '
'; echo '
'; echo 'Персонажа пригласили: ' . $inf['ref'] . '
' . 'IP при регистрации: ' . $inf['ipReg'] . '
'; echo 'Текущий IP: ' . $inf['ip'] . '
Последние входы:
'; $auth = Db::getRows('select ip, time from logs_auth where uid = ? and type = 1 order by id desc', [$inf['id']]); foreach ($auth as $a) { $date = date(': d.m.Y H:i', $a['time']); echo "{$a['ip']}$date
"; } if (!empty($m)) { echo 'Другие ники этого бойца: ' . implode(', ', $m) . '
'; } $refusers = []; $invitedByUser = Db::getRows('select ip, ipreg, online, timereg from users where host_reg = ? order by timereg desc', [$inf['id']]); foreach ($invitedByUser as $refuser) { $refusers[] = date('Дата регистрации: d.m.Y H:i', $refuser['timereg']) . DIRECTORY_SEPARATOR . date('Был тут: d.m.Y H:i ', $refuser['online']) . User::getLogin($inf['id']) . "({$refuser['ip']}, {$refuser['ipreg']})"; } if (!empty($refusers)) { echo '
Рефералы бойца:
' . implode('
', $refusers) . '
'; } if ($u->isAdmin()) { $mls = Db::getValue('select count(*) from users_rbk where email = ?', [$inf['mail']]) > 0; $online = Db::getRow('select time_all, time_today from online where uid = ?', [$inf['id']]); echo '
'; echo 'Комната: ' . $inf['room'] . '
'; echo 'E-mail: ' . $inf['mail']; if ($mls) { echo ' (рассылка)'; } echo '   &   ' . $inf['send'] . '
'; echo "

"; if (isset($online['time_all'], $online['time_today'])) { echo 'Время в онлайне (всего): ' . Conversion::secondsToTimeout($online['time_all']) . '
Время в онлайне (сегодня): ' . Conversion::secondsToTimeout($online['time_today']) . '
'; } echo '
'; } $donatedEkr = Db::getValue('select sum(ekr) from pay_operation where uid = ? and good > 1', [$inf['id']]) ?: 0; echo "Опыт: {$inf['exp']}
" . "Нераспределённые статы: {$inf['ability']}
" . "Кредиты: {$inf['money']}
" . "ЕвроКредиты: {$inf['money2']}
" . "
Куплено: $donatedEkr екр."; echo '
'; } ?>
<?= $zodiac->getName() ?>
isModerator()): ?>

Анкетные данные

Имя:
Пол:
Увлечения / хобби:
', $inf['hobby']) ?>