<?php ob_start("ob_gzhandler"); session_start(); $get = filter_input(INPUT_SERVER, 'QUERY_STRING'); if ($get === 'exit') { session_destroy(); header("Location: fight.php"); } if (!isset($_SESSION['uid'])) { header("Location: index.php"); } require_once 'functions.php'; $tmaz = time(); try { db::c()->query('UPDATE `online` SET `real_time` = ?i WHERE `user_id` = ?i', time(), $user['id']); } catch (\Krugozor\Database\Mysql\Exception $e) { echo "<div class='debug' '>Ошибка: " . $e->getMessage() . "<br> Стек: " . $e->getTraceAsString() . "</div>"; } if (!empty($user['battle'])) { header('location: fbattle.php'); die(); } //БС if (isset($user['in_tower']) && $user['in_tower'] == 1) { header('Location: towerin.php'); die(); } /* === проверяем соответствие комнаты и скрипта === */ if (in_array($user['room'], [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111], 1)) { header('Location: city.php'); die(); } if ($user['room'] == 22) { header('Location: shop.php'); die(); } if ($user['room'] == 23) { header('Location: repair.php'); die(); } if ($user['room'] == 25) { header('Location: comission.php'); die(); } if ($user['room'] == 27) { header('Location: post.php'); die(); } if ($user['room'] == 29) { header('Location: bank.php'); die(); } if ($user['room'] == 31) { header('Location: tower.php'); die(); } if ($user['room'] == 30) { header('Location: clan_create.php'); die(); } if ($user['room'] == 34) { header('Location: fshop.php'); die(); } if ($user['room'] == 42) { header('Location: lotery.php'); die(); } if ($user['room'] == 43) { header('Location: znahar.php'); die(); } if ($user['room'] == 44) { header('Location: new_year.php'); die(); } if ($user['room'] == 45) { header('Location: clan_castle.php'); die(); } if ($user['room'] == 47) { header('Location: wall_build.php'); die(); } if ($user['room'] == 49) { header('Location: dig.php'); die(); } if ($user['room'] == 50) { header('Location: ashop.php'); die(); } if ($user['room'] == 53) { header('Location: library.php'); die(); } if ($user['room'] == 61) { header('Location: akadem.php'); die(); } if ($user['room'] == 650) { header('Location: ul_clans.php'); die(); } //Храм древнх if ($user['room'] == 203) { header('Location: church.php'); die(); } //ЦХ if ($user['room'] == 600) { header('Location: c_haos.php'); die(); } if ($user['room'] == 601) { header('Location: c_haos_in.php'); die(); } if ($user['room'] == 602) { header('Location: c_park.php'); die(); } if ($user['room'] == 603) { header('Location: aren_of_angels.php'); die(); } if ($user['room'] == 620) { header('Location: enter_cave.php'); die(); } if ($user['room'] == 621) { header('Location: cave.php'); die(); } if ($user['room'] == 660) { header('Location: hostel.php'); die(); } if ($user['room'] == 661) { header('Location: hostel_room.php'); die(); } if ($user['room'] == 662) { header('Location: quest_room.php'); die(); } if ($user['room'] == 760) { header('Location: c_forest.php'); die(); } if ($user['room'] == 1000) { header('Location: solib/enterbezdna.php'); die(); } if ($user['room'] == 1001) { header('Location: solib/dungeon.php'); die(); } if ($user['room'] == 1051) { header('Location: lab_enter.php'); die(); } if ($user['room'] == 1052) { header('Location: labirint.php'); die(); } if ($user['room'] == 402) { header('Location: vxod.php'); die(); } if ($user['room'] == 403) { header('Location: canalizaciya.php'); die(); } if ($user['room'] == 1054) { header('Location: fontan_luck.php'); die(); } if ($user['room'] == 1055) { header('Location: group_arena.php'); die(); } if ($user['room'] == 666) { header('Location: jail.php'); die(); } function sum_mf($u) { try { $sum = db::c()->query('SELECT SUM(`add_proc_mf`) AS `mf` FROM `inventory` WHERE `dressed` = 1 AND `add_proc_mf` > 0 AND `owner` = ?i', $u); if ($sum->fetch_assoc() > 0) { return $sum; } else { return 0; } } catch (\Krugozor\Database\Mysql\Exception $e) { echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>"; } } function sum_dmg($u) { try { $sum = db::c()->query('SELECT SUM(`add_proc_uron`) AS `mf` FROM `inventory` WHERE `dressed` = 1 AND `add_proc_uron` > 0 AND `owner` = ?i', $u); if ($sum->fetch_assoc() > 0) { return $sum; } else { return 0; } } catch (\Krugozor\Database\Mysql\Exception $e) { echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>"; } } function bron_ads($a1, $a2, $a3, $a4, $col) { return ['a1' => round(($a1 / 100) * $col), 'a2' => round(($a2 / 100) * $col), 'a3' => round(($a3 / 100) * $col), 'a4' => round(($a4 / 100) * $col)]; } function stack($it_id) { global $user; $it_id = (int)$it_id; $stack = db::c()->query('SELECT * FROM `inventory` WHERE `id` = ?i AND `owner` = ?i', $it_id, $user['id']); if (db::c()->getAffectedRows() === 1) { $stack = $stack->fetch_assoc(); $similar = mysql_fetch_array(mysql_query("SELECT SUM(`koll`) FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` != '" . $stack['id'] . "' AND `name` = '" . $stack['name'] . "' AND `present` = '" . $stack['present'] . "' AND `duration` = '" . $stack['duration'] . "' AND `maxdur` = '" . $stack['maxdur'] . "' AND `laba` = '" . $stack['laba'] . "' AND `gmeshok` = '" . $stack['gmeshok'] . "' AND `dressed` = 0 AND `goden` = 0 AND `setsale` = 0 AND `koll` >= 1 AND `isrep` = '" . $stack['isrep'] . "' AND FORMAT(`cost`/`koll`, 2) = FORMAT(" . ($stack['cost'] / $stack['koll']) . ", 2) AND FORMAT(`point`/`koll`, 2) = FORMAT(" . ($stack['point'] / $stack['koll']) . ", 2) AND FORMAT(`bcost`/`koll`, 2) = FORMAT(" . ($stack['bcost'] / $stack['koll']) . ", 2)")); if ($similar[0] >= 1) { mysql_query("UPDATE `inventory` SET `cost` = (`cost`+`cost`/`koll`*" . $similar[0] . "), `point` = (`point`+`point`/`koll`*" . $similar[0] . "), `bcost` = (`bcost`+`bcost`/`koll`*" . $similar[0] . "), `massa` = (`massa`+`massa`/`koll`*" . $similar[0] . "), `koll` = (`koll`+" . $similar[0] . "), `gmeshok` = (`gmeshok`+`gmeshok`*" . $similar[0] . ") WHERE `id` = '" . $stack['id'] . "' LIMIT 1"); mysql_query("DELETE FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` != '" . $stack['id'] . "' AND `name` = '" . $stack['name'] . "' AND `present` = '" . $stack['present'] . "' AND `duration` = '" . $stack['duration'] . "' AND `maxdur` = '" . $stack['maxdur'] . "' AND `dressed` = 0 AND `goden` = 0 AND `koll` >= 1 AND `setsale` = 0 AND `gmeshok` = '" . $stack['gmeshok'] . "' AND `laba` = '" . $stack['laba'] . "' AND `isrep` = '" . $stack['isrep'] . "' AND FORMAT(`cost`/`koll`, 2)=FORMAT(" . $stack['cost'] / $stack['koll'] . ", 2) AND FORMAT(`point`/`koll`, 2) = FORMAT(" . ($stack['point'] / $stack['koll']) . ", 2) AND FORMAT(`bcost`/`koll`, 2) = FORMAT(" . ($stack['bcost'] / $stack['koll']) . ", 2) "); } } } function unstack($it_id, $it_count) { global $user; $it_id = (int)$it_id; $it_count = (int)$it_count; $it_count = abs($it_count); try { $dress = db::c()->query('SELECT * FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $it_id)->fetch_assoc_array(); } catch (\Krugozor\Database\Mysql\Exception $e) { echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>"; } if (isset($dress['id'])) { if ($it_count <= $dress['koll'] && $it_count > 0) { if ($dress['koll'] == $it_count) { db::c()->query('DELETE FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $dress['id']); } else { mysql_query("UPDATE `inventory` SET `cost` = (`cost`-`cost`/`koll`*" . $it_count . "), `point` = (`point`-`point`/`koll`*" . $it_count . "), `bcost` = (`bcost`-`bcost`/`koll`*" . $it_count . "), `massa` = (`massa`-`massa`/`koll`*" . $it_count . "), `koll` = (`koll`-" . $it_count . ") WHERE `id` = '$dress[id]' AND `owner` = '$user[id]' LIMIT 1"); } mysql_query("INSERT INTO `inventory` (`name`, `upgrade`, `modif`, `podgon`, `duration`, `maxdur`, `cost`, `bcost`, `point`, `nlevel`, `nsila`, `nlovk`, `ninta`, `nvinos`, `nintel`, `nmudra`, `nnoj`, `ntopor`, `ndubina`, `nmech`, `nalign`, `minu`, `maxu`, `gsila`, `glovk`, `ginta`, `gintel`, `ghp`, `mfkrit`, `mfakrit`, `mfuvorot`, `mfauvorot`, `gnoj`, `gtopor`, `gdubina`, `gmech`, `img`, `text`, `owner`, `dressed`, `bron1`, `bron2`, `bron3`, `bron4`, `dategoden`, `magic`, `type`, `present`, `sharped`, `massa`, `goden`, `needident`, `nfire`, `nwater`, `nair`, `nearth`, `nlight`, `ngray`, `ndark`, `gfire`, `gwater`, `gair`, `gearth`, `glight`, `ggray`, `gdark`, `free_bron`, `free_stat`, `free_mf`, `letter`, `isrep`, `update`, `setsale`, `prototype`, `otdel`, `bs`, `gmp`, `includemagic`, `includemagicdex`, `includemagicmax`, `includemagicname`, `includemagicuses`, `includemagiccost`, `gmeshok`, `tradesale`, `podzem`, `x_mis`, `artefact`, `destinyinv`, `encicl`, `foronetrip`, `koll`) VALUES ('" . $dress['name'] . "', '" . $dress['upgrade'] . "', '" . $dress['modif'] . "', '" . $dress['podgon'] . "', '" . $dress['duration'] . "', '" . $dress['maxdur'] . "', '" . ($dress['cost'] / $dress['koll'] * $it_count) . "', '" . ($dress['bcost'] / $dress['koll'] * $it_count) . "', '" . ($dress['point'] / $dress['koll'] * $it_count) . "', '" . $dress['nlevel'] . "', '" . $dress['nsila'] . "', '" . $dress['nlovk'] . "', '" . $dress['ninta'] . "', '" . $dress['nvinos'] . "', '" . $dress['nintel'] . "', '" . $dress['nmudra'] . "', '" . $dress['nnoj'] . "', '" . $dress['ntopor'] . "', '" . $dress['ndubina'] . "', '" . $dress['nmech'] . "', '" . $dress['nalign'] . "', '" . $dress['minu'] . "', '" . $dress['maxu'] . "', '" . $dress['gsila'] . "', '" . $dress['glovk'] . "', '" . $dress['ginta'] . "', '" . $dress['gintel'] . "', '" . $dress['ghp'] . "', '" . $dress['mfkrit'] . "', '" . $dress['mfakrit'] . "', '" . $dress['mfuvorot'] . "', '" . $dress['mfauvorot'] . "', '" . $dress['gnoj'] . "', '" . $dress['gtopor'] . "', '" . $dress['gdubina'] . "', '" . $dress['gmech'] . "', '" . $dress['img'] . "', '" . $dress['text'] . "', '" . $dress['owner'] . "', '" . $dress['dressed'] . "', '" . $dress['bron1'] . "', '" . $dress['bron2'] . "', '" . $dress['bron3'] . "', '" . $dress['bron4'] . "', '" . $dress['dategoden'] . "', '" . $dress['magic'] . "', '" . $dress['type'] . "', '" . $dress['present'] . "', '" . $dress['sharped'] . "', '" . ($dress['massa'] / $dress['koll'] * $it_count) . "', '" . $dress['goden'] . "', '" . $dress['needident'] . "', '" . $dress['nfire'] . "', '" . $dress['nwater'] . "', '" . $dress['nair'] . "', '" . $dress['nearth'] . "', '" . $dress['nlight'] . "', '" . $dress['ngray'] . "', '" . $dress['ndark'] . "', '" . $dress['gfire'] . "', '" . $dress['gwater'] . "', '" . $dress['gair'] . "', '" . $dress['gearth'] . "', '" . $dress['glight'] . "', '" . $dress['ggray'] . "', '" . $dress['gdark'] . "', '" . $dress['free_bron'] . "', '" . $dress['free_bron'] . "', '" . $dress['free_mf'] . "', '" . $dress['letter'] . "', '" . $dress['isrep'] . "', '" . $dress['update'] . "', '" . $dress['setsale'] . "', '" . $dress['prototype'] . "', '" . $dress['otdel'] . "', '" . $dress['bs'] . "', '" . $dress['gmp'] . "', '" . $dress['includemagic'] . "', '" . $dress['includemagicdex'] . "', '" . $dress['includemagicmax'] . "', '" . $dress['includemagicname'] . "', '" . $dress['ggrincludemagicusesay'] . "', '" . $dress['includemagiccost'] . "', '" . ($dress['gmeshok'] / $dress['koll'] * $it_count) . "', '" . $dress['tradesale'] . "', '" . $dress['podzem'] . "', '" . $dress['x_mis'] . "', '" . $dress['artefact'] . "', '" . $dress['destinyinv'] . "', '" . $dress['encicl'] . "', '" . $dress['foronetrip'] . "', '" . $it_count . "')"); return mysql_insert_id(); } else { return false; } } else { return false; } } //FIXME id and uid together??? function del_efs($uid, $id, $type) { global $user; $arr = [2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 20]; if ($uid == $user['id'] && $id != null) { if (!in_array($type, $arr)) { db::c()->query('DELETE FROM `users_effects` WHERE `owner_id` = ?i AND `id` = ?i', $uid, $id); if ($type == 1022) { db::c()->query('UPDATE `users` SET `invis` = ?i WHERE `id` = ?i', 0, $uid); $user['invis'] = 0; } err('Эффект удалён.'); } else { err('Данный эффект нельзя удалить.'); } } } // одеть предмет function dressitem($id) { define('HELMET', 1); define('ARMOR', 2); define('LEGS', 3); define('BOOTS', 4); define('GLOVES', 5); define('WEAPON', 6); define('SHIELD', 7); define('BELT', 8); define('RING', 9); define('AMULET', 10); define('ERROR_TOO_MANY_ITEMS_IN_SLOTS', 'Критическая ошибка: Переполнение слота!'); define('ERROR_UNKNOWN_ITEM_TYPE', 'Неизвестный тип предмета!'); define('ERROR_ITEM_NOT_FOUND', 'Предмет не найден!'); $selectedItemRow = db::c()->query('SELECT item_type FROM `inventory` WHERE item_id = ?i AND owner_id = ?i AND `dressed_slot` = 0', $id, $_SESSION['uid']); if ($selectedItemRow->getNumRows()) { $selectedItem = $selectedItemRow->fetch_object(); $itemInSlotRow = db::c()->query('SELECT dressed_slot FROM inventory WHERE owner_id = ?i AND dressed_slot > 0 AND item_type = ?i', $_SESSION['uid'], $selectedItem->item_type); $itemInSlotQuantity = $itemInSlotRow->getNumRows(); if ($itemInSlotQuantity) { $itemInSlot = $itemInSlotRow->fetch_assoc(); } if (in_array($selectedItem->item_type,[HELMET,ARMOR,LEGS,BOOTS,GLOVES,WEAPON,SHIELD,BELT,AMULET])) { //работаем с нормальными слотами if (!$itemInSlotQuantity) { // просто одеваем предмет db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE id = ?i', $id); } elseif ($itemInSlotQuantity === 1) { // снимаем предмет и одеваем вместо db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i', $itemInSlot['dressed_slot']); db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE id = ?i', $id); } else { // невозможная ситуация - два предмета в одиночном слоте. критическая ошибка, запись в лог, раздевание. $error = ERROR_TOO_MANY_ITEMS_IN_SLOTS; db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12'); } } elseif ($selectedItem->item_type === RING) { // работаем с кольцами if (!$itemInSlotQuantity) { // просто одеваем предмет в слот 9 db::c()->query('UPDATE inventory SET dressed_slot = 9 WHERE id = ?i', $id); } elseif ($itemInSlotQuantity > 0 && $itemInSlotQuantity < 3) { // Сравниваем массив колец и массив слотов для колец. $emptyRingSlots = array_diff([9,10,11], $itemInSlot); // Сортируем массив свободных слотов по возрастанию. sort($emptyRingSlots); // Одеваем предмет в первый свободный слот. db::c()->query('UPDATE inventory SET dressed_slot = ?i WHERE id = ?i',$emptyRingSlots[0], $id); } elseif ($itemInSlotQuantity === 3) { db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = 11'); db::c()->query('UPDATE inventory SET dressed_slot = 11 WHERE id = ?i', $id); // снимаем предмет из слота 11 и одеваем вместо } else { // невозможная ситуация - больше трёх предметов на три слота. критическая ошибка, запись в лог, раздевание. $error = ERROR_TOO_MANY_ITEMS_IN_SLOTS; db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12'); } } else { //предмет вообще не должен одеваться, ошибка $error = ERROR_UNKNOWN_ITEM_TYPE; } } else { //с предметом что-то сильно не ок, ошибка. $error = ERROR_ITEM_NOT_FOUND; } if (isset($error)) { return $error; } else { return true; } } // Входим и выходим если можем. if (isset($_GET['goto'])) { $imove = true; $d = db::c()->query('SELECT SUM(`weight`) AS `sum_weight` FROM `inventory` WHERE `owner` = ?i AND `on_sale` = 0', $user['id'])->fetch_assoc(); $eff = db::c()->query('SELECT 1 FROM `users_effects` WHERE `owner_id` = ?i AND (`type` = 14 OR `type` = 13)', $user['id']); //(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . $showUser->strength * 4 if ($d['sum_weight'] > $user['strength'] * 4 && $_GET['got']) { err('У вас переполнен рюкзак, вы не можете передвигаться...'); $imove = false; } if ($eff->getNumRows() && $_GET['got']) { err('У вас тяжелая травма, вы не можете передвигатся...'); $imove = false; } if ($_GET['goto'] == 'plo' && empty($user['zayavka']) && $imove === true) { db::c()->query('UPDATE `users`,`online` SET `users`.`room` = 20,`online`.`room` = 20 WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_SESSION['uid']); header('Location: city.php'); die("<i>Топ-топ-топ...</i>"); } else { err('Подали заявку на бой и убегаете из клуба? Нехорошо...'); } if ($_GET['goto'] == 'arena' && $user['room'] === 20 && $imove === true) { db::c()->query('UPDATE `users`, `online` SET `users`.`room` = 1, `online`.`room` = 1 WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_SESSION['uid']); header('Location: main.php'); die("<i>Топ-топ-топ...</i>"); } } if (isset($_GET['use'])) { usemagic($_GET['use'], $_POST['target']); } unset($_SESSION['stackall']); if (isset($_GET["stack"])) { $_GET["stack"] = (int)$_GET["stack"]; $rec = db::c()->query('SELECT `id` FROM `inventory` WHERE `id` = ?i AND `owner` = ?i AND `setsale` = 0', $_GET['stack'], $user['id'])->fetch_assoc(); if (isset($rec['id'])) { stack($rec['id']); unset($rec); } } if (isset($_GET['unstack'])) { unstack((int)$_GET['unstack'], (int)$_POST["qty"]); } function setShadow($image) { global $user; $shadows = [ 'm01', 'm02', 'm03', 'm04', 'm05', 'm06', 'm07', 'm08', 'm09', 'm10', 'f01', 'f02', 'f03', 'f04', 'f05', 'f06', 'f07', 'f08', 'f09', 'f10', 'person', ]; if (in_array($image, $shadows)) { $i = $image . '.png'; db::c()->query('UPDATE `users` SET `shadow` = "?s" WHERE `id` = ?i', $i, $user['id']); } else { err('Ошибка!'); } } $obraz = filter_input(INPUT_GET, 'obraz'); if ($obraz && ($user['shadow'] == 'g0.gif' || $user['shadow'] == 'man0.gif')) { setShadow($obraz); } if (isset($_GET['del']) && $_GET['del'] == 1 && $_GET['efid'] > 0) { $pl = db::c()->query('SELECT `id`, `type` FROM `users_effects` WHERE `owner_id` = ?i AND `id` = ?i', $user['id'], (int)$_GET['efid'])->fetch_assoc(); if (isset($pl['id'])) { del_efs($user['id'], $pl['id'], $pl['type']); } else { echo "<span class='error'>Эффект не найден!</span>"; } } if (isset($_GET['modif_bron'])) { $brons = $_GET['modif_bron']; $ids = $_GET['ids']; try { $cur = db::c()->query('SELECT free_bron, bron1, bron2, bron3, bron4 FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $ids)->fetch_assoc(); } catch (\Krugozor\Database\Mysql\Exception $e) { echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>"; } if ($cur['free_bron'] > 0 && $cur[$brons] > 0) { mysql_query("UPDATE `inventory` SET `free_bron` = (`free_bron`-1), `" . $brons . "` = (`" . $brons . "`+1) WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"); echo "<span class='success'>Параметр брони увеличен!</span>"; } } if (isset($_GET['modif_stat'])) { $stats = $_GET['modif_stat']; $ids = $_GET['ids']; $cur = mysql_fetch_assoc(mysql_query("SELECT `id`, `free_stat`, `gsila`, `glovk`, `ginta`, `gintel` FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1")); if (isset($cur['id']) && $cur['free_stat'] > 0 && $cur[$stats] > 0) { mysql_query("UPDATE `inventory` SET `free_stat` = (`free_stat`-1), `" . $stats . "` = (`" . $stats . "`+1) WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"); echo "<span class='success'>Параметр увеличен!</span>"; } } if (isset($_GET['modif_mf'])) { $mfs = $_GET['modif_mf']; $ids = $_GET['ids']; $cur = mysql_fetch_assoc(mysql_query("SELECT `id`, `free_mf`, `mfkrit`, `mfakrit`, `mfuvorot`, `mfauvorot` FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1")); if (isset($cur['id']) && $cur['free_mf'] > 0 && $cur[$mfs] > 0) { mysql_query("UPDATE `inventory` SET `free_mf` = (`free_mf`-1), `" . $mfs . "` = (`" . $mfs . "`+1) WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"); echo "<span class='success'>Параметр увеличен!</span>"; } } if (input::post('setshadow')) { ?> <!doctype html> <html lang="ru"> <head> <link rel=stylesheet href="css/main.css"> <meta charset="utf-8"> <title></title> </head> <body> <div style="text-align: right;"> <input type=button value="Вернуться" onClick="location.href='main.php?edit=<?= mt_rand() ?>';"> </div> <table style="padding:5px; margin:auto;"> <caption><b style="color: red;">Внимание! Образ персонажа выбирается только один раз.</b></caption> <tr> <td><a href="?edit=1&obraz=m1"><img alt="m01" src="i/shadow/m1.gif"></a> <td><a href="?edit=1&obraz=m2"><img alt="m02" src="i/shadow/m2.gif"></a> <td><a href="?edit=1&obraz=m3"><img alt="m03" src="i/shadow/m3.gif"></a> <td><a href="?edit=1&obraz=m4"><img alt="m04" src="i/shadow/m4.gif"></a> <td><a href="?edit=1&obraz=m5"><img alt="m05" src="i/shadow/m5.gif"></a> <td><a href="?edit=1&obraz=m6"><img alt="m06" src="i/shadow/m6.gif"></a> <td><a href="?edit=1&obraz=m7"><img alt="m07" src="i/shadow/m7.gif"></a> <td><a href="?edit=1&obraz=m8"><img alt="m08" src="i/shadow/m8.gif"></a> <td><a href="?edit=1&obraz=m9"><img alt="m09" src="i/shadow/m9.gif"></a> <td><a href="?edit=1&obraz=m10"><img alt="m10" src="i/shadow/m10.gif"></a> <tr> <td><a href="?edit=1&obraz=f1"><img alt="f01" src="i/shadow/f1.gif"></a> <td><a href="?edit=1&obraz=f2"><img alt="f02" src="i/shadow/f2.gif"></a> <td><a href="?edit=1&obraz=f3"><img alt="f03" src="i/shadow/f3.gif"></a> <td><a href="?edit=1&obraz=f4"><img alt="f04" src="i/shadow/f4.gif"></a> <td><a href="?edit=1&obraz=f5"><img alt="f05" src="i/shadow/f5.gif"></a> <td><a href="?edit=1&obraz=f6"><img alt="f06" src="i/shadow/f6.gif"></a> <td><a href="?edit=1&obraz=f7"><img alt="f07" src="i/shadow/f7.gif"></a> <td><a href="?edit=1&obraz=f8"><img alt="f08" src="i/shadow/f8.gif"></a> <td><a href="?edit=1&obraz=f9"><img alt="f09" src="i/shadow/f9.gif"></a> <td><a href="?edit=1&obraz=f10"><img alt="f10" src="i/shadow/f10.gif"></a> </table> </body> </html> <?php die(); } if (isset($_GET['edit'])) { if (input::get('ups')) { addOnePoint(input::get('ups'), 'stat'); } if (input::get('upm')) { addOnePoint(input::get('upm'), 'mastery'); } if (isset($_GET['drop'])) { $items = new DressedItems($_SESSION['uid']); $items->undressItem($_GET['drop']); } if (isset($_GET['dress'])) { // $q = db::c()->query('SELECT `id`, `koll` FROM `inventory` WHERE `id` = ?i AND `owner` = ?i', input::get('dress'), $_SESSION['uid']); // if ($q->getNumRows()) { // $q = $q->fetch_assoc(); // if ($q['koll'] > 1) { // $id = unstack($q['id'], 1); // dressitem($id); // } else { // dressitem(input::get('dress')); // } // } else { // err('Ошибка: предмет не найден!'); // } } if (input::get('destruct')) { $q = db::c()->query('SELECT `id`, `dressed`, `name`, `duration`, `maxdur` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i', $_SESSION['uid'], input::get('destruct')); if ($q->getNumRows()) { $q = $q->fetch_assoc(); if (empty($q['dressed'])) { destructitem($q['id']); addToDelo($user['login'] . " выбросил предмет " . $q['name'] . " id:(cap" . $q['id'] . ")"); err('Предмет ' . $q['name'] . ' выброшен.'); } else { err('Ошибка: нельзя выбросить одетый предмет!'); } } else { err('Ошибка: предмет не найден!'); } } if (input::get('use')) { $q = db::c()->query('SELECT `id`, `koll` FROM `inventory` WHERE `id` = ?i AND `owner` = ?i', input::get('use'), $_SESSION['uid']); if ($q->getNumRows()) { $q = $q->fetch_assoc(); if ($q['koll'] > 1) { $id = unstack($q['id'], 1); usemagic($id, $_POST['target']); } else { usemagic($_GET['use'], $_POST['target']); } } else { err('Ошибка: предмет не найден!'); } } if (input::get('undress')) { undressall($_SESSION['uid']); } if (input::get('delcomplect')) { db::c()->query('DELETE FROM `komplekt` WHERE `name` = "?s" AND `owner` = ?i', input::get('delcomplect'), $_SESSION['uid']); } if (input::get('complect')) { $hp = $user['hp']; undressall($_SESSION['uid']); $q = db::c()->query('SELECT `items` FROM `komplekt` WHERE `name` = "?s" AND `owner` = ?i', input::get('complect'), $_SESSION['uid'])->fetch_assoc(); $items_in_set = []; $items_in_set = explode(';', $q['items']); foreach ($items_in_set as $iis) { dressitem($iis); } db::c()->query('UPDATE `users` SET `hp` = ?i WHERE `id` = ?i', $hp, $_SESSION['uid']); // Если здоровье становится выше максимума - выравниваем: db::c()->query('UPDATE `users` SET `hp` = `maxhp` WHERE `hp` > `maxhp` AND `id` = ?i', $_SESSION['uid']); $user = (new users_row($_SESSION['uid']))->result(); # Нахера перевыгружать О_о)?! } //FIXME роняем вещи, которые больше не можем держать //ref_drop(); if (input::get('savecomplect')) { if (preg_match('/^[- \p{L}\d]+$/u', input::get('savecomplect'))) { $q = db::c()->query('SELECT `id` FROM `komplekt` WHERE `name` = "?s" AND `owner` = ?i', input::get('savecomplect'), $_SESSION['uid'])->getNumRows(); if (empty($q)) { $items = []; $q2 = db::c()->query('SELECT `id` FROM `inventory` WHERE `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i OR `id` = ?i', $user['sergi'], $user['kulon'], $user['perchi'], $user['weap'], $user['bron'], $user['rybax'], $user['r1'], $user['r2'], $user['r3'], $user['helm'], $user['shit'], $user['m1'], $user['m2'], $user['m3'], $user['m4'], $user['m5'], $user['m6'], $user['m7'], $user['m8'], $user['m9'], $user['m10'], $user['boots'], $user['plaw']); while ($res = $q2->fetch_assoc()) { $items[] = $res['id']; } $t_items = implode(";", $items); db::c()->query('INSERT INTO `komplekt` (`name`, `owner`, `items`) VALUES ("?s",?i,"?s")', input::get('savecomplect'), $_SESSION['uid'], $t_items); err('Комплект ' . $name . ' сохранён.'); } else { err('Ошибка: такое название комплекта уже используется!'); } } else { err('Ошибка: запрещённые символы!'); } } } ?> <!doctype html> <HTML lang="ru"> <HEAD> <meta charset="utf-8"> <link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/tooltip.css"> <link rel="stylesheet" href="css/btn.css"> <script src="js/jquery.plugins.js"></script> <script src="js/jquery-1.7.2.min.js"></script> <script src="js/jquery.simplemodal.js"></script> <script src="js/jquery.ui.js?100"></script> <script src="js/tooltip.js"></script> <script src="js/funcs.js"></script> <script> $(function () { $(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500}); }); function gotohref(filename) { location.href = filename; } function saveComplect() { new miDialog({title: 'Сохранить комплект'}, {edit: 1}, function () { document.location = '/main.php?' + $.param(this.data); }, $('<div>Название комплекта :<br /><div style="font-size: smaller;"><b>может содеражать только буквы (англ / русс) и цифры.</b></div></div>').append(miDialog._oneInput({name: 'savecomplect'})), {width: 250}); } let Hint3Name = ''; function okno(title, script, name, coma, errk) { let errkom = ''; let com = ''; if (errk === 1) { errkom = 'Нельзя использовать символы: /\:*?"<>|+%<br>'; com = coma } if (errk === 2) { errkom = 'Такой комплект уже существует<br>'; com = coma } document.getElementById("hint3").innerHTML = '<table width=100% cellspacing=1 cellpadding=0 bgcolor=CCC3AA><tr><td align=center><B>' + title + '</td><td width=20 align=right valign=top style="cursor: pointer" onclick="closehint3();"><BIG><B>x</td></tr><tr><td colspan=2>' + '<form action="' + script + '" method=POST><table width=100% cellspacing=0 cellpadding=2 bgcolor=FFF6DD><tr><INPUT TYPE=hidden name=sd4 value="6"><td colspan=2><span class="error">' + errkom + '</span>введите название предмета</TD></TR><TR><TD width=50% align=right><INPUT TYPE=text NAME="' + name + '" value="' + com + '"></TD><TD width=50%><INPUT TYPE="submit" value=" »» "></TD></TR></TABLE></FORM></td></tr></table>'; document.getElementById("hint3").style.visibility = "visible"; document.getElementById("hint3").style.left = '100'; document.getElementById("hint3").style.top = '100'; document.getElementById(name).focus(); Hint3Name = name; } const delay = 30; let TimerOn = -1, tkHP, maxHP, speed = 750; const stLen = 185, redHP = 0.33, yellowHP = 0.66; function setHPlocal() { tkHP > maxHP && (tkHP = maxHP); let a = Math.round(tkHP) + "/" + maxHP; a = stLen - (a.length + 2) * 7; const b = Math.round((a - 1) / maxHP * tkHP); a -= b; const HP = document.getElementById("hp_value"); const HP1 = document.getElementById("HP1"); const HP2 = document.getElementById("HP2"); if (HP) { HP1.width = b, HP2.width = a, HP1.src = tkHP / maxHP < redHP ? "i/1red.gif" : tkHP / maxHP < yellowHP ? "i/1yellow.gif" : "i/1green.gif", HP.innerHTML = Math.round(tkHP) + "/" + maxHP; } tkHP += maxHP / 53 / 230 * (speed / 100); TimerOn = tkHP < maxHP ? setTimeout("setHPlocal()", delay * 100) : -1 } $(document).ready(function () { $('a').live('click', function () { if ($(this).attr('ajax') !== undefined) { const ajaxModule = $(this).attr('ajax'); switch (ajaxModule) { case'mZeInventory': $('#mZeInventory').html('<div align="center" style="padding:10px;background-color:#d4d2d2;color:grey;"><b>Загрузка...</b></div>'); $.ajax({ url: $(this).attr('href') + '&mZeAjax=' + ajaxModule, cache: false, dataType: 'html', success: function (html) { $('#mZeInventory').html(html); } }); break; } return false; } }); }); </script> <title>Окно игры</title> </HEAD> <body> <?php try { $online = db::c()->query('SELECT 1 FROM `online` WHERE `real_time` >= ?i', (time() - 60)); } catch (Exception $e) { echo '<div class="debug">В таблице online нет ячейки real_time так как неясно что она делает. Ошибка обращения в базу.</div>'; } ?> <div id=hint3 class=ahint></div> <div id="hint4" style="position: absolute;"></div> <div id="chpassbank" style="display:none; position:absolute; top:50px; left:250px;"></div> <table width=100%> <TR> <td style="vertical-align: top; width: 350px"> <?php $showUser = new User($_SESSION['uid']); $getItemsBonuses = new DressedItems($_SESSION['uid']); $showUser->showUserDoll(0, 1); ?> <!-- Первый столбец --> <div align="center"> <a href='main.php?edit=1&undress=all'>Снять все</a><BR> <a href="javascript: void(0);" onclick="saveComplect(); return false;">Запомнить комплект</a><br/> <?php try { //Выгребаем все комплекты перса $u_all_kompl = db::c()->query("SELECT `name` FROM komplekt WHERE `owner` = ?i", $user['id']); while ($u_k = $u_all_kompl->fetch_assoc()) { $k_name = $u_k['name']; echo "<a onclick=\"if (!confirm('Вы уверены, что хотите удалить комплект?')) { return false; }\" href='main.php?edit=1&delcomplect=" . $k_name . "'> <img src='i/clear.gif'></a> <a href='main.php?edit=1&complect=" . $k_name . "'>Надеть \"" . $k_name . "\"</a><BR>"; } } catch (Exception $e) { echo '<div class="debug">Комплекты не работают, потому что нет таблицы и функции застряли в php5.3.</div>'; } ?> <div class="effectList" style="padding-top: 15px; max-height: 150px; width: 220px;"> <?php try { echo show_eff_inf($user['id'], 2); } catch (Exception $e) { echo '<div class="debug">show_eff_inf() не работаeт, потому что нет таблицы и функции застряли в php5.3.</div>'; } ?> </div> </div> <br> </td> <td style="vertical-align: top; width: 250px"> <!-- Второй столбец --> <div> <br>Уровень: <strong><?= $showUser->level ?></strong> <br>Опыт: <strong><?= $showUser->experience ?></strong> <br>Побед: <strong><?= 'нет поля' ?></strong> <br>Поражений: <strong><?= 'нет поля' ?></strong> <br>Ничьих: <strong><?= 'нет поля' ?></strong> <br>Деньги: <strong><?= $showUser->money ?></strong> кр. <HR> </div> <!--Параметры--> <div> <div class="container"> Сила: <?= ($showUser->free_stat_points ? $showUser->getStrength(1) . '(' . strval($showUser->strength + $getItemsBonuses->getStrengthBonus()) . ')' : $showUser->strength + $getItemsBonuses->getStrengthBonus()) ?> <br> Ловкость: <?= ($showUser->free_stat_points ? $showUser->getDexterity(1) . '(' . strval($showUser->dexterity + $getItemsBonuses->getDexterityBonus()) . ')' : $showUser->dexterity + $getItemsBonuses->getDexterityBonus()) ?> <br> Интуиция: <?= ($showUser->free_stat_points ? $showUser->getIntuition(1) . '(' . strval($showUser->intuition + $getItemsBonuses->getIntuitionBonus()) . ')' : $showUser->intuition + $getItemsBonuses->getIntuitionBonus()) ?> <br> Выносливость: <?= ($showUser->free_stat_points ? $showUser->getEndurance(1) . '(' . strval($showUser->endurance + $getItemsBonuses->getEnduranceBonus()) . ')' : $showUser->endurance + $getItemsBonuses->getEnduranceBonus()) ?> <br> Интеллект: <?= ($showUser->free_stat_points ? $showUser->getIntelligence(1) . '(' . strval($showUser->intelligence + $getItemsBonuses->getIntelliganceBonus()) . ')' : $showUser->intelligence + $getItemsBonuses->getIntelliganceBonus()) ?> <br> Мудрость: <?= ($showUser->free_stat_points ? $showUser->getWisdom(1) . '(' . strval($showUser->wisdom + $getItemsBonuses->getWisdomBonus()) . ')' : $showUser->wisdom + $getItemsBonuses->getWisdomBonus()) ?><br> <?php if ($showUser->free_stat_points): ?> <small style="color: darkgreen;">Возможных увеличений: <?= $showUser->free_stat_points ?></small><br> <?php endif; ?> <br> Здоровье: <?= $showUser->getHealth() ?><br> Уворот: ?? + <?= $getItemsBonuses->getEvasionBonus() ?><br> Точность: ?? + <?= $getItemsBonuses->getAccuracyBonus() ?><br> Шанс крита: ?? + <?= $getItemsBonuses->getCriticalsBonus() ?><br> Урон: <?= $showUser->minDamage ?> - <?= $showUser->maxDamage ?> <br> <br> <div style="color: gray;"> Защита от огня: ?? <br> Защита от воды: ?? <br> Защита от вохдуха: ?? <br> Защита от земли: ?? <br> Защита от яда: ?? <br> </div> Броня головы: <?= $showUser->headArmor ?> <br> Броня корпуса: <?= $showUser->chestArmor ?> <br> Броня ног: <?= $showUser->legArmor ?> <br> </div> </div> </td> <td valign=top> <div class="button-container"> <!--Меню-кнопки--> <FORM METHOD=POST ACTION="?edit=1" name=f1> <?php if ($user['shadow'] == '0.gif' || $user['admin'] == 1): ?> <INPUT class="button primary icon user" TYPE="submit" name="setshadow" value="Образы" title="Образы"> <?php endif; ?> <div class="button-group"> <button class="button primary" onclick="gotohref('zayavka.php')">Поединки</button> <button class="button" onclick="gotohref('module_quest.php')">Активные задания</button> <button class="button" onclick="gotohref('main.php?edit=1')">Инвентарь</button> <?php if ($user['room'] === 20): ?> <button class="button icon move" onclick="gotohref('main.php?goto=arena')">Войти внутрь </button> <?php else: ?> <button class="button icon move" onclick="gotohref('main.php?goto=plo')">Выйти на улицу </button> <?php endif; ?> <button class="button icon loop" onclick="gotohref('main.php')">Обновить страницу</button> </div> </div> <div id="mZeInventory"> <!--рюкзак--> <table BORDER=0 WIDTH=100% CELLSPACING="1" CELLPADDING="2" BGCOLOR="#A5A5A5"> <caption>Рюкзак (масса: <?= '?? /' . $showUser->strength * 4 ?>) </caption> <?php $data_query = 'SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot = 0 AND on_sale = 0'; $data = db::c()->query($data_query, $_SESSION['uid']); $groupNum = []; $viewInventory = []; $getItems = []; $row = []; $iteminfo = []; while ($row = $data->fetch_assoc()) { //FIXME Какая-то хуета. Зачем я каждый прежмет делал новым классом? $iteminfo[] = new InventoryItem($row); } foreach ($iteminfo as $ii) { echo "<tr><td width='100' align='center' bgcolor='#d3d3d3'>"; $ii->printImage(); $ii->printControls(); echo "<td valign='top' bgcolor='#d3d3d3'>"; $ii->printInfo(); } if ($viewInventory and $getItems) { foreach ($viewInventory as $viewCategiryes) { echo $viewCategiryes['header']; foreach ($viewCategiryes['ids'] as $viewItem) { echo $getItems[$viewItem]; } echo $viewCategiryes['fooder']; } } if ($data->getNumRows() == 0) { echo "<tr><th colspan='3' align=center bgcolor=#C7C7C7>Пусто"; } ?> </table> </div> </td> </tr> </table> </body> </html>