battles/main.php

1465 lines
71 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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 ($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 sum_bron($u)
{
try {
$sum = db::c()->query('SELECT SUM(`add_proc_bron`) AS `mf` FROM `inventory` WHERE `dressed` = 1 AND `add_proc_bron` > 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 max_mf()
{
$r = '';
$mfs = countmf();
if (($mfs['fkrit'] > $mfs['fakrit']) && ($mfs['fkrit'] > $mfs['fuvorot']) && ($mfs['fkrit'] > $mfs['fauvorot'])) {
$r = 'fkrit';
} elseif (($mfs['fakrit'] > $mfs['fkrit']) && ($mfs['fakrit'] > $mfs['fuvorot']) && ($mfs['fakrit'] > $mfs['fauvorot'])) {
$r = 'fakrit';
} elseif (($mfs['fuvorot'] > $mfs['fkrit']) && ($mfs['fuvorot'] > $mfs['fakrit']) && ($mfs['fuvorot'] > $mfs['fauvorot'])) {
$r = 'fuvorot';
} elseif (($mfs['fauvorot'] > $mfs['fkrit']) && ($mfs['fauvorot'] > $mfs['fakrit']) && ($mfs['fauvorot'] > $mfs['fuvorot'])) {
$r = 'fauvorot';
}
return $r;
}
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 countmf()
{ //TODO пересчитать модификаторы
//global $user;
// Защита от урона и сокрушение?
$zo = db::c()->query('SELECT 1 FROM `users_effects` WHERE `type` = 201 AND `owner_id` = ?i', $_SESSION['uid'])->getNumRows();
$sokr = db::c()->query('SELECT 1 FROM `users_effects` WHERE `type` = 202 AND `owner_id` = ?i', $_SESSION['uid'])->getNumRows();
$user = new User($_SESSION['uid']);
$userDressedItemsBonuses = new DressedItems();
function GetWeaponType($idwep)
{
if ($idwep == 0 || $idwep == null || $idwep == '') {
$type = "kulak";
}
$wep = db::c()->query('SELECT `otdel`, `minu` FROM `inventory` WHERE `id` = ?i', $idwep)->fetch_row();
if ($wep[0] == '1') {
$type = "noj";
} elseif ($wep[0] == '12') {
$type = "dubina";
} elseif ($wep[0] == '11') {
$type = "topor";
} elseif ($wep[0] == '13') {
$type = "mech";
} elseif ($wep[1] > 0) {
$type = "buket";
} else {
$type = "kulak";
}
return $type;
}
$bmfud = $bmfbron = 0;
if (!empty($sokr)) {
$bmfud += 5;
}
if (!empty($zo)) {
$bmfbron += 25;
}
$mf = [];
//$user_dress = db::c()->query('SELECT SUM(`minu`), SUM(`maxu`), SUM(`mfkrit`), SUM(`mfakrit`), SUM(`mfuvorot`), SUM(`mfauvorot`), SUM(`bron1`), SUM(`bron2`), SUM(`bron3`), SUM(`bron4`) FROM `inventory` WHERE `dressed` = 1 AND `owner` = ?i', $user['id'])->fetch_row();
//FIXME Брони стало 3, а не 4.
$user_dress[6] = $bmfbron + $user->headArmor;
$user_dress[7] = $bmfbron + $user->chestArmor;
$user_dress[8] = $bmfbron + $user->legArmor;
$user_dress[9] = $bmfbron + $user->legArmor;
$mykrit = $allBonuses['sum_intuition'] * 2.95; /* + SUM(mfkrit) */
$myakrit = $allBonuses['sum_intuition'] * 2.75; /* + SUM(mfakrit) */
$myuvorot = $allBonuses['sum_dexterity'] * 5; /* + SUM(mfuvorot) */
$myauvorot = $allBonuses['sum_dexterity'] * 5; /* + SUM(mfauvorot) */
$mf['me'] = ['udar' => (floor($user['sila'] / 3) + 1 + $user_dress[0]), 'maxudar' => (floor($user['sila'] / 3) + 4 + $user_dress[1])];
if ($mf['me']['udar'] < 0) {
$mf['me']['udar'] = 0;
}
$weap_b = 0;
switch (GetWeaponType($user['weap'])) {
case "noj":
$weap_b += $user['noj'];
break;
case "dubina":
$weap_b += $user['dubina'];
break;
case "topor":
$weap_b += $user['topor'];
break;
case "mech":
$weap_b += $user['mec'];
break;
default:
$weap_b = 0;
break;
}
$minu = $mf['me']['udar'] + $bmfud + $weap_b;
$maxu = $mf['me']['maxudar'] + $bmfud + $weap_b;
return ['minu' => $minu, 'maxu' => $maxu, 'fkrit' => round($mykrit, 0), 'fakrit' => round($myakrit, 0), 'fuvorot' => round($myuvorot, 0), 'fauvorot' => round($myauvorot, 0), 'bron1' => $user_dress[6], 'bron2' => $user_dress[7], 'bron3' => $user_dress[8], 'bron4' => $user_dress[9]];
}
// одеть предмет
function dressitem($id)
{
global $user;
$item = db::c()->query('SELECT * FROM `inventory` WHERE `duration` < `maxdur` AND `id` = ?i AND `owner` = ?i AND `dressed` = 0', $id, $user['id'])->fetch_assoc();
switch ($item['type']) {
case 1:
$slot1 = 'sergi';
break;
case 2:
$slot1 = 'kulon';
break;
case 3:
$slot1 = 'weap';
break;
case 4:
$slot1 = 'bron';
break;
case 5:
$slot1 = 'r1';
break;
case 6:
$slot1 = 'r2';
break;
case 7:
$slot1 = 'r3';
break;
case 8:
$slot1 = 'helm';
break;
case 9:
$slot1 = 'perchi';
break;
case 10:
$slot1 = 'shit';
break;
case 11:
$slot1 = 'boots';
break;
case 12:
$slot1 = 'm1';
break;
case 22:
$slot1 = 'rybax';
break;
case 23:
$slot1 = 'plaw';
break;
default:
$slot1 = '';
break;
}
if ($item['type'] == 5) {
if (!$user['r1']) {
$slot1 = 'r1';
} elseif (!$user['r2']) {
$slot1 = 'r2';
} elseif (!$user['r3']) {
$slot1 = 'r3';
} else {
$slot1 = 'r1';
dropitem(5);
}
} elseif ($item['type'] == 12) {
if (!$user['m1']) {
$slot1 = 'm1';
} elseif (!$user['m2']) {
$slot1 = 'm2';
} elseif (!$user['m3']) {
$slot1 = 'm3';
} elseif (!$user['m4']) {
$slot1 = 'm4';
} elseif (!$user['m5']) {
$slot1 = 'm5';
} elseif (!$user['m6']) {
$slot1 = 'm6';
} elseif (!$user['m7']) {
$slot1 = 'm7';
} elseif (!$user['m8']) {
$slot1 = 'm8';
} elseif (!$user['m9']) {
$slot1 = 'm9';
} elseif (!$user['m10']) {
$slot1 = 'm10';
} else {
$slot1 = 'm1';
dropitem(12);
}
} else {
dropitem($item['type']);
}
if (!($item['type'] == 12 && $user['level'] < 4)) {
if (db::c()->query('UPDATE `users` AS `u`, `inventory` AS `i` SET `u`.?f = ?i, `i`.`dressed` = 1, `u`.`sila` = `u`.`sila` + `i`.`gsila`, `u`.`lovk` = `u`.`lovk` + `i`.`glovk`, `u`.`inta` = `u`.`inta` + `i`.`ginta`, `u`.`intel` = `u`.`intel` + `i`.`gintel`, `u`.`maxhp` = `u`.`maxhp` + `i`.`ghp`, `u`.`noj` = `u`.`noj` + `i`.`gnoj`, `u`.`topor` = `u`.`topor` + `i`.`gtopor`, `u`.`dubina` = `u`.`dubina` + `i`.`gdubina`, `u`.`mec` = `u`.`mec` + `i`.`gmech`, `u`.`mfire` = `u`.`mfire` + `i`.`gfire`, `u`.`mwater` = `u`.`mwater` + `i`.`gwater`, `u`.`mair` = `u`.`mair` + `i`.`gair`, `u`.`mearth` = `u`.`mearth` + `i`.`gearth`, `u`.`mlight` = `u`.`mlight` + `i`.`glight`, `u`.`mgray` = `u`.`mgray` + `i`.`ggray`, `u`.`mdark` = `u`.`mdark` + `i`.`gdark`, `u`.`ubron1` = `u`.`ubron1` + `i`.`bron1`, `u`.`ubron2` = `u`.`ubron2` + `i`.`bron2`, `u`.`ubron3` = `u`.`ubron3` + `i`.`bron3`, `u`.`ubron4` = `u`.`ubron4` + `i`.`bron4`, `u`.`fkrit` = `u`.`fkrit` + `i`.`mfkrit`, `u`.`fakrit` = `u`.`fakrit` + `i`.`mfakrit`, `u`.`fuvorot` = `u`.`fuvorot` + `i`.`mfuvorot`, `u`.`fauvorot` = `u`.`fauvorot` + `i`.`mfauvorot`, `u`.`uminu` = `u`.`uminu` + `i`.`minu`, `u`.`umaxu` = `u`.`umaxu` + `i`.`maxu` WHERE `i`.`needident` = 0 AND `i`.`id` = ?i AND `i`.`dressed` = 0 AND `i`.owner = ?i AND (20 + `u`.`sila`) >= `i`.`nsila` AND (20 + `u`.`lovk`) >= `i`.`nlovk` AND (20 + `u`.`inta`) >= `i`.`ninta` AND `u`.`vinos` >= `i`.`nvinos` AND (20 + `u`.`intel`) >= `i`.`nintel` AND `u`.`mudra` >= `i`.`nmudra` AND `u`.`level` >= `i`.`nlevel` AND (((?i = `i`.`nalign`)) OR (`i`.`nalign` = 0)) AND `u`.`noj` >= `i`.`nnoj` AND `u`.`topor` >= `i`.`ntopor` AND `u`.`dubina` >= `i`.`ndubina` AND `u`.`mec` >= `i`.`nmech` AND `u`.`mfire` >= `i`.`nfire` AND `u`.`mwater` >= `i`.`nwater` AND `u`.`mair` >= `i`.`nair` AND `u`.`mearth` >= `i`.`nearth` AND `u`.`mlight` >= `i`.`nlight` AND `u`.`mgray` >= `i`.`ngray` AND `u`.`mdark` >= `i`.`ndark` AND `i`.`setsale` = 0 AND `u`.`id` = ?i', $slot1, $id, $id, $user['id'], $user['align'], $user['id'])) {
$user[$slot1] = $item['id'];
}
return true;
} else {
return false;
}
}
// Входим и выходим если можем.
if (isset($_GET['goto'])) {
$imove = true;
$d = db::c()->query('SELECT SUM(`massa`) AS `summ` FROM `inventory` WHERE `owner` = ?i AND `dressed` = 0 AND `setsale` = 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']);
if ($d['summ'] > get_meshok() && $_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']);
}
function updstats()
{
global $user;
$u1 = db::c()->query('SELECT
`sila`, `lovk`, `inta`, `intel`, `noj`, `mec`, `topor`, `dubina`,
`mfire`, `mwater`, `mair`, `mearth`, `mlight`, `mgray`, `mdark`, `hp`, `maxhp`
FROM `users` WHERE `id` = ?i', $user['id'])->fetch_assoc();
foreach ($u1 as $k => $v) {
$user[$k] = $v;
}
}
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>
<table width=100%>
<tr>
<td><h3>Выбрать образ персонажа</h3></td>
<td align=right><INPUT TYPE=button value="Вернуться"
onClick="location.href='main.php?edit=0.467837356797105';"></td>
</tr>
<tr>
<td align=center style="color:red;">Внимание! Образ персонажа выбирается только один раз.</td>
</tr>
</table>
<table style="padding:5px; margin:auto;">
<caption><b>Общие образы</b></caption>
<tr>
<td><a href="?edit=1&obraz=m1"><img alt="m01" src="i/shadow/m1.gif"></a></a></td>
<td><a href="?edit=1&obraz=m2"><img alt="m02" src="i/shadow/m2.gif"></a></td>
<td><a href="?edit=1&obraz=m3"><img alt="m03" src="i/shadow/m3.gif"></a></td>
<td><a href="?edit=1&obraz=m4"><img alt="m04" src="i/shadow/m4.gif"></a></td>
<td><a href="?edit=1&obraz=m5"><img alt="m05" src="i/shadow/m5.gif"></a></td>
<td><a href="?edit=1&obraz=m6"><img alt="m06" src="i/shadow/m6.gif"></a></td>
<td><a href="?edit=1&obraz=m7"><img alt="m07" src="i/shadow/m7.gif"></a></td>
<td><a href="?edit=1&obraz=m8"><img alt="m08" src="i/shadow/m8.gif"></a></td>
<td><a href="?edit=1&obraz=m9"><img alt="m09" src="i/shadow/m9.gif"></a></td>
<td><a href="?edit=1&obraz=m10"><img alt="m10" src="i/shadow/m10.gif"></a></td>
</tr>
<tr>
<td><a href="?edit=1&obraz=f1"><img alt="f01" src="i/shadow/f1.gif"></a></a></td>
<td><a href="?edit=1&obraz=f2"><img alt="f02" src="i/shadow/f2.gif"></a></td>
<td><a href="?edit=1&obraz=f3"><img alt="f03" src="i/shadow/f3.gif"></a></td>
<td><a href="?edit=1&obraz=f4"><img alt="f04" src="i/shadow/f4.gif"></a></td>
<td><a href="?edit=1&obraz=f5"><img alt="f05" src="i/shadow/f5.gif"></a></td>
<td><a href="?edit=1&obraz=f6"><img alt="f06" src="i/shadow/f6.gif"></a></td>
<td><a href="?edit=1&obraz=f7"><img alt="f07" src="i/shadow/f7.gif"></a></td>
<td><a href="?edit=1&obraz=f8"><img alt="f08" src="i/shadow/f8.gif"></a></td>
<td><a href="?edit=1&obraz=f9"><img alt="f09" src="i/shadow/f9.gif"></a></td>
<td><a href="?edit=1&obraz=f10"><img alt="f10" src="i/shadow/f10.gif"></a></td>
</tr>
</table>
</body>
</html>
<?php
die();
}
if (input::get('edit')) {
if (input::get('ups')) {
addOnePoint(input::get('ups'), 'stat');
}
if (input::get('upm')) {
addOnePoint(input::get('upm'), 'mastery');
}
if (input::get('drop')) {
dropitem(input::get('drop'));
updstats();
}
if (input::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'));
}
updstats();
} 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']);
updstats();
}
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('Ошибка: запрещённые символы!');
}
}
if (!in_array(input::get('mZeAjax'), ['mZeInventory', 'mZeFilter'])): ?>
<!doctype html>
<HTML lang="ru">
<HEAD>
<meta charset="utf-8">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/tooltip.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 type="text/javascript" src="js/funcs.js"></script>
<script>
$(function () {
$(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500});
});
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
}
<?= topsethp(); ?>
$(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>
<style>
.jGrowl .jGrowl-notification, .jGrowl .jGrowl-closer {
border: 2px groove threedface;
background: #E6E6E6 !important;
}
.jGrowl .jGrowl-notification, .jGrowl div.jGrowl-closer {
margin: 10px;
}
.jGrowl div.jGrowl-notification {
min-height: 40px;
}
.jGrowl .jGrowl-notification, .jGrowl .jGrowl-closer {
background-color: #000;
opacity: .85;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=85);
zoom: 1;
width: 235px;
padding: 10px;
margin-top: 5px;
margin-bottom: 5px;
font-family: Tahoma, Arial, Helvetica, sans-serif;
font-size: 1em;
text-align: left;
display: none;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
</style>
<title></title>
</HEAD>
<body>
<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>
<FORM METHOD=POST ACTION="main.php?edit=1">
<table width=100%>
<TR>
<td style="vertical-align: top; width: 250px">
<?php
$showUser = new User($_SESSION['uid']);
$showUser->showUserDoll(0, 1);
$showItemsBonuses = new DressedItems();
?> <!-- Первый столбец -->
<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: 207px"> <!-- Второй столбец -->
<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->getStrength(1) + $showItemsBonuses->sumStrength ?><br>
Ловкость: <?= $showUser->getDexterity(1) + $showItemsBonuses->sumDexterity ?><br>
Интуиция: <?= $showUser->getIntuition(1) + $showItemsBonuses->sumIntuition ?><br>
Выносливость: <?= $showUser->getEndurance(1) + $showItemsBonuses->sumEndurance ?><br>
Интеллект: <?= $showUser->getIntelligence(1) + $showItemsBonuses->sumIntelligence ?><br>
Мудрость: <?= $showUser->getWisdom(1) + $showItemsBonuses->sumWisdom ?><br>
<small style="color: darkgreen;">Возможных увеличений: <?= $showUser->stat_points ?></small>
<br><br>
Здоровье: <?= $showUser->getHealth() ?><br>
Уворот: ?? + <? $showItemsBonuses->sumDodge ?><br>
Точность: ?? + <? $showItemsBonuses->sumAccuracy ?><br>
Шанс крита: ?? + <? $showItemsBonuses->sumCriticals ?><br>
</div>
<?php
$mf = countmf();
$min_dmg = 0;
$max_dmg = 0;
$item_mf = db::c()->query('SELECT `id` FROM `inventory` WHERE `owner` = ?i AND `dressed` > 0 AND `add_proc_mf` > 0', $_SESSION['uid'])->fetch_assoc();
$item_damage = db::c()->query('SELECT `id` FROM `inventory` WHERE `owner` = ?i AND `dressed` > 0 AND `add_proc_uron` > 0', $_SESSION['uid'])->fetch_assoc();
$item_bron = db::c()->query('SELECT `id` FROM `inventory` WHERE `owner` = ?i AND `dressed` > 0 AND `add_proc_bron` > 0', $_SESSION['uid'])->fetch_assoc();
if (isset($item_mf['id'])) {
$max_mf = max_mf();
$add_mf = sum_mf($user['id']);
if ($max_mf == 'fkrit') {
$var_mf = round(($mf['fkrit'] / 100) * $add_mf);
$mf['fkrit'] += $var_mf;
} elseif ($max_mf == 'fakrit') {
$var_mf = round(($mf['fakrit'] / 100) * $add_mf);
$mf['fakrit'] += $var_mf;
} elseif ($max_mf == 'fuvorot') {
$var_mf = round(($mf['fuvorot'] / 100) * $add_mf);
$mf['fuvorot'] += $var_mf;
} elseif ($max_mf == 'fauvorot') {
$var_mf = round(($mf['fauvorot'] / 100) * $add_mf);
$mf['fauvorot'] += $var_mf;
}
}
if (isset($item_damage['id'])) {
$add_dmg = sum_dmg($user['id']);
$min_dmg = round(($mf['minu'] / 100) * $add_dmg);
$max_dmg = round(($mf['maxu'] / 100) * $add_dmg);
}
if (isset($item_bron['id'])) {
$add_bron = sum_bron($user['id']);
$var_brons = bron_ads($mf['bron1'], $mf['bron2'], $mf['bron3'], $mf['bron4'], $add_bron);
} else {
$var_brons = ['a1' => 0, 'a2' => 0, 'a3' => 0, 'a4' => 0];
}
?>
<SPAN title='Усредненный по всем типам повреждений для вашего урона, без учета брони и защиты противника.'>Урон: <b><?= $mf['minu'] + $min_dmg ?>
- <?= $mf['maxu'] + $max_dmg ?></b> <?php if (isset($item_damage['id'])) {
echo '<span style=\'color: Green;\'>(' . $add_dmg . '%)</span>';
} ?></span><br>
<SPAN title='Мф. крит. удара позволяет нанести критический удар, наносящий дополнительные повреждения даже сквозь блок.'>Шанс крита: <?= $mf['fkrit'] ?> <?php if (isset($item_mf['id']) && $max_mf == 'fkrit') {
echo '<span style=\'color: Green;\'>(' . $add_mf . '%)</span>';
} ?></span><br>
<SPAN title='Мф. против крит. удара снижает вероятность получения крит. удара'>Шанс антикрита: <?= $mf['fakrit'] ?> <?php if (isset($item_mf['id']) && $max_mf == 'fakrit') {
echo '<span style=\'color: Green;\'>(' . $add_mf . '%)</span>';
} ?></span><br>
<SPAN title='Мф. увертывания позволяет вам уклониться от атаки противника, полностью игнорируя ее.'>Шанс уворота: <?= $mf['fuvorot'] ?> <?php if (isset($item_mf['id']) && $max_mf == 'fuvorot') {
echo '<span style=\'color: Green;\'>(' . $add_mf . '%)</span>';
} ?></span><br>
<SPAN title='Мф. против увертывания снижает шансы противника уклониться от вашей атаки'>Шанс антиуворота: <?= $mf['fauvorot'] ?> <?php if (isset($item_mf['id']) && $max_mf == 'fauvorot') {
echo '<span style=\'color: Green;\'>(' . $add_mf . '%)</span>';
} ?></span><br>
<div class="container">
<b>Владение оружием:</b>
<br>Кинжалами: <?= $user['noj'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=noj'">
<?php endif; ?>
<br>Мечами: <?= $user['mec'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mec'">
<?php endif; ?>
<br>Дубинами: <?= $user['dubina'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=dubina'">
<?php endif; ?>
<br>Топорами: <?= $user['topor'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=topor'">
<?php endif; ?>
<br><br>
<b>Владение магией:</b>
<br>Магия огня: <?= $user['mfire'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mfire'">
<?php endif; ?>
<br>Магия воды: <?= $user['mwater'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mwater'">
<?php endif; ?>
<br>Магия воздуха: <?= $user['mair'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mair'">
<?php endif; ?>
<br>Магия земли: <?= $user['mearth'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mearth'">
<?php endif; ?>
<br>Магия света: <?= $user['mlight'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mlight'">
<?php endif; ?>
<br>Магия серости: <?= $user['mgray'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mgray'">
<?php endif; ?>
<br>Магия тьмы: <?= $user['mdark'] ?>
<?php if (!empty($user['stats'])): ?>
<img src=i/up.gif onclick="location.href='?edit=1&upm=mdark'">
<?php endif; ?>
<br>
<small style="color: darkgreen;">Возможных увеличений: <?= $user['master'] ?></small>
<br><br>
</div>
<div class="container">
Броня головы: <?= $mf['bron1'] + $var_brons['a1'] ?><?php if (isset($item_bron['id'])) {
echo '<span style=\'color: Green;\'>(' . $add_bron . '%)</span>';
} ?><BR>
Броня корпуса: <?= $mf['bron2'] + $var_brons['a2'] ?><?php if (isset($item_bron['id'])) {
echo '<span style=\'color: Green;\'>(' . $add_bron . '%)</span>';
} ?><BR>
Броня пояса: <?= $mf['bron3'] + $var_brons['a3'] ?><?php if (isset($item_bron['id'])) {
echo '<span style=\'color: Green;\'>(' . $add_bron . '%)</span>';
} ?><BR>
Броня ног: <?= $mf['bron4'] + $var_brons['a4'] ?><?php if (isset($item_bron['id'])) {
echo '<span style=\'color: Green;\'>(' . $add_bron . '%)</span>';
} ?><BR>
</div>
<?php
# Отображение (только отображение!) бонусов за количество статов.
$bonus['fkrit'] = $bonus['fakrit'] = $bonus['fuvorot'] = $bonus['fauvorot'] = $bonus['uminu'] = $bonus['umaxu'] = 0;
if (($user['sila']) >= 25) {
$bonus['fauvorot'] += round($user['sila'] / 3);
$bonus['fakrit'] += round($user['sila'] / 3);
}
// if (($user['sila']) >=100) {
// $bonus['uminu'] += round($user['sila'] / 25);
// $bonus['umaxu'] += round($bonus['uminu'] + $user['sila'] / 100);
// }
if (($user['lovk']) >= 25) {
$bonus['fuvorot'] += round($user['lovk'] / 2);
$bonus['fauvorot'] += round($user['lovk'] / 3);
}
if (($user['inta']) >= 25) {
$bonus['fkrit'] += round($user['inta'] / 2);
$bonus['fakrit'] += round($user['inta'] / 3);
}
if ($user['sila'] >= 25 || $user['lovk'] >= 25 || $user['inta'] >= 25 || $user['vinos'] >= 25) {
echo 'Бонусы за статы:<br>';
if (!empty($bonus['fkrit'])) {
echo "Шанс крита: +" . $bonus['fkrit'] . "<br>";
}
if (!empty($bonus['fakrit'])) {
echo "Шанс антикрита: +" . $bonus['fakrit'] . "<br />";
}
if (!empty($bonus['fuvorot'])) {
echo "Шанс уворота: +" . $bonus['fuvorot'] . "<br />";
}
if (!empty($bonus['fauvorot'])) {
echo "Шанс антиуворота: +" . $bonus['fauvorot'] . "<br />";
}
// if (!empty($bonus['uminu'])) echo "Бонус урона: +" . $bonus['uminu'] . "-" . $bonus['umaxu'];
}
?>
</div>
</TD>
<!--Меню-->
<TD valign=top>
<link rel="stylesheet" href="css/btn.css" type="text/css">
<div align=right class="btn-control inventory">
<FORM METHOD=POST ACTION="?edit=1" name=f1>
<?php if ($user['shadow'] == '0.gif' || $user['admin'] == 1): ?>
<INPUT class="button-mid btn" TYPE="submit" name="setshadow" value="Образы" title="Образы">
<?php endif; ?>
<INPUT class="button-mid btn" TYPE=button name=combats value="Поединки"
onClick="location.href='zayavka.php';" style="font-weight:bold;">
<INPUT class="button-mid btn" TYPE=button name=combats value="Состояние"
onClick="location.href='module_quest.php';" style="font-weight:bold;">
<INPUT class="button-mid btn" TYPE="button" onClick="location.href='main.php';" value="Вернуться"
title="Вернуться">
</div>
<div id="jGrowl" class="top-right jGrowl">
<div class="jGrowl-notification"></div>
</div>
<div id="mZeInventory">
<?php endif ?>
<?php
$razdel = $_GET['razdel'] ?? 0;
if (in_array($razdel, [0, 1, 2, 3, 4, 5])) {
$_SESSION['razdel'] = $razdel;
}
?>
<table class="allzeroes" style="background-color: #a5a5a5;">
<tr>
<td>
<table class="allzeroes" style="background-color: #d4d2d2;">
<tr>
td style="text-align: center;
background-color: <?= ($_SESSION['razdel'] == null) ? '#A5A5A6' : '#C7C7C8' ?>"><a
href="?edit=1&razdel=0" ajax="mZeInventory">Амуниция</a></td>
td style="text-align: center;
background-color: <?= ($_SESSION['razdel'] == 1) ? '#A5A5A6' : '#C7C7C8' ?>"><a
href="?edit=1&razdel=1" ajax="mZeInventory">Заклинания</a></td>
td style="text-align: center;
background-color: <?= ($_SESSION['razdel'] == 3) ? '#A5A5A6' : '#C7C7C8' ?>"><a
href="?edit=1&razdel=3" ajax="mZeInventory">Ресурсы</a></td>
td style="text-align: center;
background-color: <?= ($_SESSION['razdel'] == 4) ? '#A5A5A6' : '#C7C7C8' ?>"><a
href="?edit=1&razdel=4" ajax="mZeInventory">Подарки</a></td>
td style="text-align: center;
background-color: <?= ($_SESSION['razdel'] == 5) ? '#A5A5A6' : '#C7C7C8' ?>"><a
href="?edit=1&razdel=5" ajax="mZeInventory">Квестовые вещи</a></td>
td style="text-align: center;
background-color: <?= ($_SESSION['razdel'] == 2) ? '#A5A5A6' : '#C7C7C8' ?>"><a
href="?edit=1&razdel=2" ajax="mZeInventory">Прочее</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align=center><B>Рюкзак (масса : <?= getItemsMassaInfo() ?>)</B>
</td>
</tr>
<tr>
<td style="text-align: center">
<table BORDER=0 WIDTH=100% CELLSPACING="1" CELLPADDING="2" BGCOLOR="#A5A5A5">
<?php if (!empty($user['money'])): ?>
<tr style="background-color: #c7c7c7">
<td style="text-align: center; width: 100px;"><img src="i/sh/money-bag.png"></td>
<td valign="top">Мешок денег (Масса: 0)<br><b><?= $user['money'] ?> кр.</b></td>
</tr>
<?php endif;
if ($_SESSION['razdel'] == null) {
$data = db::c()->query('SELECT `inventory`.*,
`magic`.`name` AS `magic_name`,
`magic`.`chanse` AS `magic_chanse`,
`magic`.`time` AS `magic_time`,
`magic`.`file` AS `magic_file`,
`magic`.`targeted` AS `magic_targeted`,
`magic`.`needcharge` AS `magic_needcharge`,
`magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND (`type` < 12 OR `type` = 22 OR `type` = 23 OR `type` = 24) AND `setsale` = 0 ORDER BY `update` DESC', $user['id']);
}
if ($_SESSION['razdel'] == 1) {
$data = db::c()->query('SELECT `inventory`.*,
`magic`.`name` AS `magic_name`,
`magic`.`chanse` AS `magic_chanse`,
`magic`.`time` AS `magic_time`,
`magic`.`file` AS `magic_file`,
`magic`.`targeted` AS `magic_targeted`,
`magic`.`needcharge` AS `magic_needcharge`,
`magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND `type` = 12 AND `setsale` = 0 ORDER BY `update` DESC', $user['id']);
}
if ($_SESSION['razdel'] == 2) {
$data = db::c()->query('SELECT `inventory`.*,
`magic`.`name` AS `magic_name`,
`magic`.`chanse` AS `magic_chanse`,
`magic`.`time` AS `magic_time`,
`magic`.`file` AS `magic_file`,
`magic`.`targeted` AS `magic_targeted`,
`magic`.`needcharge` AS `magic_needcharge`,
`magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND (`type` > 12 OR `type` != 22 OR `type` != 23 OR `type` != 24) AND `setsale` = 0 ORDER BY `update` DESC', $user['id']);
}
if ($_SESSION['razdel'] == 3) {
$data = db::c()->query('SELECT `inventory`.*,
`magic`.`name` AS `magic_name`,
`magic`.`chanse` AS `magic_chanse`,
`magic`.`time` AS `magic_time`,
`magic`.`file` AS `magic_file`,
`magic`.`targeted` AS `magic_targeted`,
`magic`.`needcharge` AS `magic_needcharge`,
`magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND `type` >= 80 AND `type` <= 89 AND `setsale` = 0 ORDER BY `update` ASC', $user['id']);
}
if ($_SESSION['razdel'] == 4) {
$data = db::c()->query('SELECT `inventory`.*,
`magic`.`name` AS `magic_name`,
`magic`.`chanse` AS `magic_chanse`,
`magic`.`time` AS `magic_time`,
`magic`.`file` AS `magic_file`,
`magic`.`targeted` AS `magic_targeted`,
`magic`.`needcharge` AS `magic_needcharge`,
`magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND `type` = 200 AND `setsale` = 0 ORDER BY `update` ASC', $user['id']);
}
if ($_SESSION['razdel'] == 5) {
$data = db::c()->query('SELECT `inventory`.*,
`magic`.`name` AS `magic_name`,
`magic`.`chanse` AS `magic_chanse`,
`magic`.`time` AS `magic_time`,
`magic`.`file` AS `magic_file`,
`magic`.`targeted` AS `magic_targeted`,
`magic`.`needcharge` AS `magic_needcharge`,
`magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND `type` = 199 AND `setsale` = 0 ORDER BY `update` ASC', $user['id']);
}
$groupNum = [];
$viewInventory = [];
$getItems = [];
$row = [];
$iteminfo = [];
#while ($row = $data->fetch_assoc()) showitem($row, null, "edit=1&razdel=$_SESSION[razdel]");
#while ($row = $data->fetch_assoc()) showitem($row);
while ($row = $data->fetch_assoc()) {
$iteminfo[] = new InventoryItem($row);
}
foreach ($iteminfo as $ii) {
echo "<tr><td width='100' align='center' bgcolor='#d3d3d3'>";
$ii->printImage();
$ii->printControls();
echo "</td>";
echo "<td valign='top' bgcolor='#d3d3d3'>";
$ii->printInfo();
echo "</td></tr>";
}
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>Пусто</th></tr>";
}
?>
</table>
</td>
</tr>
</table>
<?php if (!in_array(input::get('mZeAjax'), ['mZeInventory', 'mZeFilter'])): ?>
</div>
</td>
</form>
</tr>
</table>
</body>
</html>
<?php
endif;
die();
}
?>
<HTML lang="ru">
<HEAD>
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/btn.css">
<meta charset="utf-8">
<link rel="stylesheet" href="css/tooltip.css">
<script src="js/jquery-1.7.2.min.js"></script>
<script src="js/tooltip.js"></script>
<script>
$(function () {
$(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500});
});
</script>
<script>
let Hint3Name = '';
// Заголовок, название скрипта, имя поля с логином
function findlogin(title, script, name) {
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>' +
'Укажите логин персонажа:<small><BR>(можно щелкнуть по логину в чате)</TD></TR><TR><TD width=50% align=right><INPUT TYPE=text NAME="' + name + '"></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;
}
// Заголовок, название скрипта, имя поля с шмоткой
function okno(title, script, name) {
const errkom = '';
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 + '"></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;
}
function closehint3() {
document.getElementById("hint3").style.visibility = "hidden";
Hint3Name = '';
}
const delay = 30;
let TimerOn = -1, tkHP, maxHP, speed = 750;
const stLen = 185, redHP = 0.33, yellowHP = 0.66;
function setHP(a, b, c) {
tkHP = a;
maxHP = b;
TimerOn >= 0 && (clearTimeout(TimerOn), TimerOn = -1);
speed = c;
setHPlocal()
}
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
}
</script>
<title></title>
</HEAD>
<body onLoad="<?= topsethp(); ?>">
<?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>
<table class="allzeroes">
<tr>
<td style="width:250px;">
<?php
$userInfo = new User($_SESSION['uid']);
$userInfo->showUserInfoMain();
?>
</td>
<td>&nbsp;</td>
<TD style="text-align: right;">
<div class="hint-text">Сейчас в игре: <strong><?= 'неизвестно' /*$online->getNumRows()*/ ?></strong> чел.
</div>
<button onclick="gotohref('zayavka.php')">Поединки</button>
<br>
<button onclick="gotohref('main.php?edit=1')">Инвентарь</button>
<br>
<button onclick="gotohref('module_quest.php')">Активные задания</button>
<br>
<?php if ($user['room'] === 20): ?>
<button onclick="gotohref('main.php?goto=arena')">Войти внутрь</button><br>
<?php else: ?>
<button onclick="gotohref('main.php?goto=plo')">Выйти на улицу</button><br>
<?php endif; ?>
<button onclick="gotohref('main.php')">Обновить страницу</button>
</TD>
</tr>
</table>
<script>
function gotohref(filename) {
location.href = filename;
}
</script>
</BODY>
</HTML>