2018-01-28 18:40:49 +02:00
< ? php
2020-06-23 22:34:52 +03:00
ob_start ( " ob_gzhandler " );
2018-01-28 18:40:49 +02:00
session_start ();
2019-02-16 00:31:18 +02:00
$get = filter_input ( INPUT_SERVER , 'QUERY_STRING' );
2019-09-16 17:45:07 +03:00
if ( $get === 'exit' ) {
2019-02-16 00:33:58 +02:00
session_destroy ();
header ( " Location: fight.php " );
}
2020-06-23 11:49:49 +03:00
if ( ! isset ( $_SESSION [ 'uid' ])) {
header ( " Location: index.php " );
}
2020-06-23 22:34:52 +03:00
2020-06-23 21:19:52 +03:00
require_once 'functions.php' ;
2020-06-23 22:34:52 +03:00
2020-06-23 16:13:25 +03:00
try {
2020-08-30 02:21:22 +03:00
db :: c () -> query ( 'UPDATE `online` SET `real_time` = ?i WHERE `user_id` = ?i' , time (), $user -> id );
2020-06-23 16:13:25 +03:00
} catch ( \Krugozor\Database\Mysql\Exception $e ) {
2020-07-06 16:54:51 +03:00
echo " <div class='debug' '>Ошибка: " . $e -> getMessage () . " <br> Стек: " . $e -> getTraceAsString () . " </div> " ;
2018-03-02 16:33:58 +02:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> battle ) {
2020-07-06 23:17:49 +03:00
header ( 'location: fbattle.php' );
2020-08-30 02:21:22 +03:00
exit ();
2020-07-06 23:17:49 +03:00
}
2020-07-06 22:54:50 +03:00
//БС
2020-08-30 02:21:22 +03:00
if ( $user -> in_tower == 1 ) {
2020-07-06 22:54:50 +03:00
header ( 'Location: towerin.php' );
2020-08-30 02:21:22 +03:00
exit ();
}
// Инициализируем входящие GET\POST переменные.
$goto = $_GET [ 'goto' ] ? ? null ;
$obraz = $_GET [ 'obraz' ] ? ? null ;
$del = $_GET [ 'del' ] ? ? null ;
$effectId = $_GET [ 'efid' ] ? ? null ;
$brons = $_GET [ 'modif_bron' ] ? ? null ;
$stats = $_GET [ 'modif_stat' ] ? ? null ;
$mfs = $_GET [ 'modif_mf' ] ? ? null ;
$ids = $_GET [ 'ids' ] ? ? null ;
$setShadow = $_POST [ 'setshadow' ] ? ? null ;
$edit = $_GET [ 'edit' ] ? ? null ;
// Подготавливаем отображение инфы и предметов.
2020-08-30 13:44:57 +03:00
$userInfo = new UserInfo ( $user -> id );
2020-08-30 02:21:22 +03:00
$getItemsBonuses = new DressedItems ( $_SESSION [ 'uid' ]);
$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' ]);
$iteminfo = [];
while ( $row = $data -> fetch_assoc ()) {
$iteminfo [] = new InventoryItem ( $row );
2020-07-06 22:54:50 +03:00
}
2018-01-28 18:40:49 +02:00
2020-08-30 13:44:57 +03:00
2019-09-18 17:06:05 +03:00
/* === проверяем соответствие комнаты и скрипта === */
2020-08-30 02:21:22 +03:00
if ( in_array ( $user -> room , [ 20 , 21 , 26 , 48 , 51 , 52 , 651 , 2655 , 2601 , 2701 , 2702 , 2111 ], 1 )) {
2019-09-18 17:06:05 +03:00
header ( 'Location: city.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 22 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: shop.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 23 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: repair.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 25 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: comission.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 27 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: post.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 29 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: bank.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 31 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: tower.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 30 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: clan_create.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 34 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: fshop.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 42 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: lotery.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 43 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: znahar.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 44 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: new_year.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 45 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: clan_castle.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 47 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: wall_build.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 49 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: dig.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 50 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: ashop.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 53 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: library.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 61 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: akadem.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 650 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: ul_clans.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
//Храм древнх
2020-08-30 02:21:22 +03:00
if ( $user -> room == 203 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: church.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
//ЦХ
2020-08-30 02:21:22 +03:00
if ( $user -> room == 600 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: c_haos.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 601 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: c_haos_in.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 602 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: c_park.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 603 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: aren_of_angels.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 620 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: enter_cave.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 621 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: cave.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 660 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: hostel.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 661 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: hostel_room.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 662 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: quest_room.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 760 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: c_forest.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 1000 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: solib/enterbezdna.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 1001 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: solib/dungeon.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 1051 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: lab_enter.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 1052 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: labirint.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 402 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: vxod.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 403 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: canalizaciya.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 1054 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: fontan_luck.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 1055 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: group_arena.php' );
2020-08-30 02:21:22 +03:00
exit ();
2019-09-18 17:06:05 +03:00
}
2020-08-30 02:21:22 +03:00
if ( $user -> room == 666 ) {
2019-09-18 17:06:05 +03:00
header ( 'Location: jail.php' );
2020-08-30 02:21:22 +03:00
exit ();
2018-07-02 18:35:25 +03:00
}
2020-08-29 17:54:26 +03:00
function del_efs ( $id , $type )
2018-07-02 18:35:25 +03:00
{
2020-08-29 17:54:26 +03:00
if ( $id && ! in_array ( $type , [ 2 , 3 , 4 , 5 , 8 , 10 , 11 , 12 , 13 , 14 , 20 ])) {
db :: c () -> query ( 'DELETE FROM users_effects WHERE owner_id = ?i AND effect_id = ?i' , $_SESSION [ 'uid' ], $id );
if ( $type == 1022 ) {
db :: c () -> query ( 'UPDATE `users` SET `invis` = 0 WHERE `id` = ?i' , $_SESSION [ 'uid' ]);
2018-07-02 18:35:25 +03:00
}
2020-08-29 17:54:26 +03:00
return 'Эффект удалён.' ;
} else {
return 'Эффект нельзя удалить.' ;
2018-07-02 18:35:25 +03:00
}
}
// одеть предмет
function dressitem ( $id )
{
2020-08-29 15:25:07 +03:00
//FIXME Предметы не должны одеваться, если не соответствуют требованиям!
2020-08-29 14:15:29 +03:00
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 );
2020-08-29 17:54:26 +03:00
define ( 'DRESSITEM_ERROR' , [
'TOO_MANY_ITEMS_IN_SLOTS' => 'Критическая ошибка: Переполнение слота!' ,
'UNKNOWN_ITEM_TYPE' => 'Неизвестный тип предмета!' ,
'ITEM_NOT_FOUND' => 'Предмет не найден!' ,
]);
2020-08-29 16:59:22 +03:00
$itemInSlot = [];
2020-08-29 14:15:29 +03:00
$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 ) {
2020-08-29 16:59:22 +03:00
while ( $row = $itemInSlotRow -> fetch_object ()) {
$itemInSlot [] = $row -> dressed_slot ;
2020-08-29 16:44:08 +03:00
}
2018-07-02 18:35:25 +03:00
}
2020-08-29 17:54:26 +03:00
if ( in_array ( $selectedItem -> item_type , [ HELMET , ARMOR , LEGS , BOOTS , GLOVES , WEAPON , SHIELD , BELT , AMULET ])) {
2020-08-29 14:15:29 +03:00
//работаем с нормальными слотами
if ( ! $itemInSlotQuantity ) {
// просто одеваем предмет
2020-08-29 14:50:16 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i' , $id );
2020-08-29 14:15:29 +03:00
} elseif ( $itemInSlotQuantity === 1 ) {
// снимаем предмет и одеваем вместо
2020-08-29 16:50:01 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i' , $itemInSlot [ 0 ]);
2020-08-29 14:50:16 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i' , $id );
2020-08-29 14:15:29 +03:00
} else {
// невозможная ситуация - два предмета в одиночном слоте. критическая ошибка, запись в лог, раздевание.
2020-08-29 17:54:26 +03:00
$error = DRESSITEM_ERROR [ 'TOO_MANY_ITEMS_IN_SLOTS' ];
2020-08-29 14:47:42 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?i' , $_SESSION [ 'uid' ]);
2020-08-29 14:15:29 +03:00
}
2020-08-29 16:02:52 +03:00
} elseif ( $selectedItem -> item_type == RING ) {
2020-08-29 14:15:29 +03:00
// работаем с кольцами
2020-08-29 16:59:22 +03:00
if ( $itemInSlotQuantity < 3 ) {
2020-08-29 14:15:29 +03:00
// Сравниваем массив колец и массив слотов для колец.
2020-08-29 17:54:26 +03:00
$emptyRingSlots = array_diff ([ 9 , 10 , 11 ], $itemInSlot );
2020-08-29 14:15:29 +03:00
// Сортируем массив свободных слотов по возрастанию.
sort ( $emptyRingSlots );
// Одеваем предмет в первый свободный слот.
2020-08-29 17:54:26 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = ?i WHERE item_id = ?i' , $emptyRingSlots [ 0 ], $id );
2020-08-29 14:15:29 +03:00
} elseif ( $itemInSlotQuantity === 3 ) {
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = 11' );
2020-08-29 14:50:16 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = 11 WHERE item_id = ?i' , $id );
2020-08-29 14:15:29 +03:00
// снимаем предмет из слота 11 и одеваем вместо
} else {
// невозможная ситуация - больше трёх предметов на три слота. критическая ошибка, запись в лог, раздевание.
2020-08-29 17:54:26 +03:00
$error = DRESSITEM_ERROR [ 'TOO_MANY_ITEMS_IN_SLOTS' ];
2020-08-29 14:47:42 +03:00
db :: c () -> query ( 'UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?i' , $_SESSION [ 'uid' ]);
2020-08-29 14:15:29 +03:00
}
2020-06-23 11:49:49 +03:00
} else {
2020-08-29 14:15:29 +03:00
//предмет вообще не должен одеваться, ошибка
2020-08-29 17:54:26 +03:00
$error = DRESSITEM_ERROR [ 'UNKNOWN_ITEM_TYPE' ];
2018-07-02 18:35:25 +03:00
}
2020-06-23 11:49:49 +03:00
} else {
2020-08-29 14:15:29 +03:00
//с предметом что-то сильно не ок, ошибка.
2020-08-29 17:54:26 +03:00
$error = DRESSITEM_ERROR [ 'ITEM_NOT_FOUND' ];
2020-06-23 11:49:49 +03:00
}
2018-07-02 18:35:25 +03:00
2020-08-29 14:15:29 +03:00
if ( isset ( $error )) {
return $error ;
2020-06-23 11:49:49 +03:00
} else {
2020-08-29 16:02:52 +03:00
return null ;
2020-06-23 11:49:49 +03:00
}
2018-07-02 18:35:25 +03:00
}
2019-09-17 17:37:44 +03:00
// Входим и выходим если можем.
2020-08-30 02:21:22 +03:00
if ( $goto ) {
2019-09-17 17:37:44 +03:00
$imove = true ;
2020-08-30 02:21:22 +03:00
$d = db :: c () -> query ( 'SELECT SUM(weight) AS sum_weight FROM inventory WHERE owner_id = ?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 );
2020-08-30 12:48:53 +03:00
//(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . $user->strength * 4
2020-07-21 14:52:39 +03:00
2020-08-30 02:21:22 +03:00
if ( $d [ 'sum_weight' ] > $user -> strength * 4 && $goto ) {
2019-09-17 17:37:44 +03:00
err ( 'У вас переполнен рюкзак, вы не можете передвигаться...' );
$imove = false ;
}
2020-08-30 02:21:22 +03:00
if ( $eff -> getNumRows () && $goto ) {
2019-09-17 17:37:44 +03:00
err ( 'У вас тяжелая травма, вы не можете передвигатся...' );
$imove = false ;
}
2020-08-30 02:21:22 +03:00
if ( $goto == 'plo' && ! $user -> zayavka && $imove === true ) {
db :: c () -> query ( 'UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.users_id = ?i' , $_SESSION [ 'uid' ]);
2019-09-17 17:37:44 +03:00
header ( 'Location: city.php' );
2020-08-30 02:21:22 +03:00
exit ( " <i>Топ-топ-топ...</i> " );
2020-06-23 11:49:49 +03:00
} else {
err ( 'Подали заявку на бой и убегаете из клуба? Нехорошо...' );
}
2020-08-30 02:21:22 +03:00
if ( $goto == 'arena' && $user -> room === 20 && $imove === true ) {
db :: c () -> query ( 'UPDATE users, online SET users.room = 1, online.room = 1 WHERE online.user_id = users.id AND online.user_id = ?i' , $_SESSION [ 'uid' ]);
2019-09-17 17:37:44 +03:00
header ( 'Location: main.php' );
2020-08-30 02:21:22 +03:00
exit ( " <i>Топ-топ-топ...</i> " );
2019-09-17 17:37:44 +03:00
}
}
if ( isset ( $_GET [ 'use' ])) {
usemagic ( $_GET [ 'use' ], $_POST [ 'target' ]);
}
2018-03-23 22:36:35 +02:00
function setShadow ( $image )
{
global $user ;
$shadows = [
2018-03-30 23:21:35 +03:00
'm01' , 'm02' , 'm03' , 'm04' , 'm05' , 'm06' , 'm07' , 'm08' , 'm09' , 'm10' ,
'f01' , 'f02' , 'f03' , 'f04' , 'f05' , 'f06' , 'f07' , 'f08' , 'f09' , 'f10' ,
2020-07-06 22:54:50 +03:00
'person' ,
2018-03-23 22:36:35 +02:00
];
2018-03-30 23:21:35 +03:00
if ( in_array ( $image , $shadows )) {
2018-03-23 22:36:35 +02:00
$i = $image . '.png' ;
2020-08-30 03:09:53 +03:00
db :: c () -> query ( 'UPDATE `users` SET `shadow` = "?s" WHERE `id` = ?i' , $i , $user -> id );
2020-06-23 11:49:49 +03:00
} else {
err ( 'Ошибка!' );
}
2018-01-28 18:40:49 +02:00
}
2020-08-30 02:21:22 +03:00
if ( $obraz && ( $user -> shadow == 'g0.gif' || $user -> shadow == 'man0.gif' )) {
2018-03-23 22:36:35 +02:00
setShadow ( $obraz );
}
2018-01-28 18:40:49 +02:00
2020-08-30 02:21:22 +03:00
if ( $del == 1 && $effectId > 0 ) {
2020-08-30 03:09:53 +03:00
$pl = db :: c () -> query ( 'SELECT type FROM users_effects WHERE owner_id = ?i AND effect_id = ?i' , $user -> id , $effectId ) -> fetch_assoc ();
2020-08-30 02:21:22 +03:00
if ( isset ( $pl [ 'type' ])) {
echo del_efs ( $effectId , $pl [ 'type' ]);
2020-06-23 11:49:49 +03:00
} else {
2020-06-23 12:13:55 +03:00
echo " <span class='error'>Эффект не найден!</span> " ;
2018-01-28 18:40:49 +02:00
}
}
2020-08-30 02:21:22 +03:00
if ( $brons && $ids ) {
2020-06-23 16:31:58 +03:00
try {
2020-08-30 03:09:53 +03:00
$cur = db :: c () -> query ( 'SELECT free_bron, bron1, bron2, bron3, bron4 FROM inventory WHERE owner = ?i AND id = ?i' , $user -> id , $ids ) -> fetch_assoc ();
2020-07-06 22:54:50 +03:00
} catch ( \Krugozor\Database\Mysql\Exception $e ) {
2020-06-23 16:31:58 +03:00
echo " <div style='background-color: #ffaaaa;'>Ошибка: " . $e -> getMessage () . " <br> В файле: " . $e -> getFile () . " ( " . $e -> getLine () . " )</div> " ;
}
if ( $cur [ 'free_bron' ] > 0 && $cur [ $brons ] > 0 ) {
2020-08-30 02:21:22 +03:00
db :: c () -> query ( 'UPDATE inventory SET free_bron = free_bron - 1, ?f = ?f +1 WHERE owner_id = ?i AND item_id = ?i' , $brons , $brons , $user -> id , $ids );
2020-06-23 12:13:55 +03:00
echo " <span class='success'>Параметр брони увеличен!</span> " ;
2018-03-02 16:33:58 +02:00
}
2018-01-28 18:40:49 +02:00
}
2020-08-30 02:21:22 +03:00
if ( $stats && $ids ) {
$cur = db :: c () -> query ( 'SELECT free_stat, gsila, glovk, ginta, gintel FROM inventory WHERE owner_id = ?i AND item_id = ?i' , $user -> id , $ids );
if ( $cur [ 'free_stat' ] > 0 && $cur [ $stats ] > 0 ) {
db :: c () -> query ( 'UPDATE inventory SET free_stat = free_stat - 1, ?f = ?f +1 WHERE owner_id = ?i AND item_id = ?i' , $stats , $stats , $user -> id , $ids );
2020-06-23 12:13:55 +03:00
echo " <span class='success'>Параметр увеличен!</span> " ;
2018-01-28 18:40:49 +02:00
}
}
2020-08-30 02:21:22 +03:00
if ( $mfs && $ids ) {
$cur = db :: c () -> query ( 'SELECT free_mf, mfkrit, mfuvorot, mfakrit, mfauvorot FROM inventory WHERE owner_id = ?i AND item_id = ?i' , $user -> id , $ids );
2020-06-23 11:49:49 +03:00
if ( isset ( $cur [ 'id' ]) && $cur [ 'free_mf' ] > 0 && $cur [ $mfs ] > 0 ) {
2020-08-30 02:21:22 +03:00
db :: c () -> query ( 'UPDATE inventory SET free_mf = free_mf - 1, ?f = ?f +1 WHERE owner_id = ?i AND item_id = ?i' , $mfs , $mfs , $user -> id , $ids );
2020-06-23 12:13:55 +03:00
echo " <span class='success'>Параметр увеличен!</span> " ;
2018-01-28 18:40:49 +02:00
}
}
2020-08-30 02:21:22 +03:00
if ( $setShadow ) {
2018-03-02 16:33:58 +02:00
?>
2020-06-23 11:49:49 +03:00
<!doctype html>
2019-09-17 17:37:44 +03:00
<html lang="ru">
2018-03-30 23:21:35 +03:00
<head>
2018-03-02 17:31:43 +02:00
<link rel=stylesheet href="css/main.css">
2020-08-30 02:21:22 +03:00
<link rel=stylesheet href="css/btn.css">
2018-03-02 17:31:43 +02:00
<meta charset="utf-8">
2019-09-17 17:37:44 +03:00
<title></title>
2018-03-30 23:21:35 +03:00
</head>
2018-03-02 17:31:43 +02:00
<body>
2020-07-21 12:20:44 +03:00
<div style="text-align: right;">
2020-08-30 02:21:22 +03:00
<input type=button value="Вернуться" onClick="location.href='main.php?edit=<?= mt_rand() ?>';" class="button">
2020-07-21 12:20:44 +03:00
</div>
2018-03-30 23:21:35 +03:00
<table style="padding:5px; margin:auto;">
2020-07-21 12:20:44 +03:00
<caption><b style="color: red;">Внимание! Образ персонажа выбирается только один раз.</b></caption>
2018-03-30 23:21:35 +03:00
<tr>
2020-07-21 12:20:44 +03:00
<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>
2018-03-30 23:21:35 +03:00
<tr>
2020-07-21 12:20:44 +03:00
<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>
2018-03-02 16:33:58 +02:00
</table>
</body>
</html>
<?php
2020-08-30 02:21:22 +03:00
exit();
2018-03-02 16:33:58 +02:00
}
2020-08-30 02:21:22 +03:00
if ($edit) {
$ups = $_GET['ups'] ?? null;
$upm = $_GET['upm'] ?? null;
$use = $_GET['use'] ?? null;
$useTarget = $_POST['target'] ?? null;
$drop = $_GET['drop'] ?? null;
$dress = $_GET['dress'] ?? null;
$undress = $_GET['undress'] ?? null;
$destruct = $_GET['destruct'] ?? null;
2018-01-28 18:40:49 +02:00
2020-08-30 02:21:22 +03:00
if ($ups) {
2020-08-30 12:48:53 +03:00
$user->addOnePointToStat($ups);
2020-06-23 11:49:49 +03:00
}
2020-08-30 02:21:22 +03:00
if ($upm) {
addOnePoint($upm, 'mastery');
2020-06-23 11:49:49 +03:00
}
2020-08-30 02:21:22 +03:00
if ($drop) {
2020-07-21 18:03:46 +03:00
$items = new DressedItems($_SESSION['uid']);
2020-08-30 02:21:22 +03:00
$items->undressItem($drop);
2018-03-02 16:33:58 +02:00
}
2020-08-29 14:34:09 +03:00
//Пока что одеваем предмет отсюда.
2020-08-30 02:21:22 +03:00
if ($dress) {
echo dressitem($dress);
2018-03-02 16:33:58 +02:00
}
2020-08-30 02:21:22 +03:00
if ($destruct) {
$q = db::c()->query('SELECT `id`, `dressed`, `name`, `duration`, `maxdur` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i', $_SESSION['uid'], $destruct);
2018-12-11 15:00:16 +02:00
if ($q->getNumRows()) {
$q = $q->fetch_assoc();
if (empty($q['dressed'])) {
destructitem($q['id']);
2020-08-30 03:09:53 +03:00
addToDelo($user->login . " выбросил предмет " . $q['name'] . " id:(cap" . $q['id'] . ")");
2018-12-11 15:00:16 +02:00
err('Предмет ' . $q['name'] . ' выброшен.');
2020-06-23 11:49:49 +03:00
} else {
err('Ошибка: нельзя выбросить одетый предмет!');
}
} else {
err('Ошибка: предмет не найден!');
}
2018-03-02 16:33:58 +02:00
}
2020-08-30 02:21:22 +03:00
if ($use) {
usemagic($use, $useTarget);
2018-03-02 16:33:58 +02:00
}
2020-08-30 02:21:22 +03:00
if ($undress) {
undressall($_SESSION['uid']);
2018-03-02 16:33:58 +02:00
}
2020-07-21 18:57:15 +03:00
}
?>
2018-03-02 16:33:58 +02:00
2020-07-21 18:57:15 +03:00
<!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/tooltip.js"></script>
<script src="js/funcs.js"></script>
<script>
$(function () {
$(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500});
});
2018-03-02 16:33:58 +02:00
2020-07-21 18:57:15 +03:00
let Hint3Name = '';
2020-07-06 22:54:50 +03:00
2020-08-30 02:21:22 +03:00
function okno(title, script, name, errk) {
2020-07-21 18:57:15 +03:00
let errkom = '';
let com = '';
if (errk === 1) {
errkom = 'Нельзя использовать символы: /\:*?"<>|+%<br>';
}
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;
}
</script>
<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>
<table width=100%>
<TR>
<td style="vertical-align: top; width: 350px">
2020-08-30 13:47:22 +03:00
<?php $userInfo->showUserDoll(0, 1); ?> <!-- Первый столбец -->
2018-12-11 18:23:21 +02:00
<div align="center">
2020-08-30 04:09:52 +03:00
<a href='main.php?edit=1&undress=all' class="button">Снять все</a><BR>
2018-12-11 19:40:12 +02:00
<div class="effectList" style="padding-top: 15px; max-height: 150px; width: 220px;">
2020-08-30 03:09:53 +03:00
<?= show_eff_inf($user->id, 2) ?>
2018-12-11 19:40:12 +02:00
</div>
</div>
<br>
2018-03-02 16:33:58 +02:00
</td>
2020-07-21 18:57:15 +03:00
<td style="vertical-align: top; width: 250px"> <!-- Второй столбец -->
2018-12-11 19:40:12 +02:00
<div>
2020-08-30 12:48:53 +03:00
<br>Уровень: <strong><?= $user->level ?></strong>
<br>Опыт: <strong><?= $user->experience ?></strong>
2020-08-30 02:21:22 +03:00
<br>Побед: <strong>??</strong>
<br>Поражений: <strong>??</strong>
<br>Ничьих: <strong>??</strong>
2020-08-30 12:48:53 +03:00
<br>Деньги: <strong><?= $user->money ?></strong> кр.
2018-12-11 19:40:12 +02:00
<HR>
</div>
2018-03-02 16:33:58 +02:00
<!--Параметры-->
2018-12-11 19:40:12 +02:00
<div>
2018-12-12 00:26:21 +02:00
<div class="container">
2020-08-30 12:48:53 +03:00
Сила: <?= ($user->free_stat_points ? $user->getStat('strength', 1) . '(' . strval($user->strength + $getItemsBonuses->getStrengthBonus()) . ')' : $user->strength + $getItemsBonuses->getStrengthBonus()) ?>
2020-07-22 17:08:40 +03:00
<br>
2020-08-30 12:48:53 +03:00
Ловкость: <?= ($user->free_stat_points ? $user->getStat('dexterity', 1) . '(' . strval($user->dexterity + $getItemsBonuses->getDexterityBonus()) . ')' : $user->dexterity + $getItemsBonuses->getDexterityBonus()) ?>
2020-07-21 18:57:15 +03:00
<br>
2020-08-30 12:48:53 +03:00
Интуиция: <?= ($user->free_stat_points ? $user->getStat('intuition', 1) . '(' . strval($user->intuition + $getItemsBonuses->getIntuitionBonus()) . ')' : $user->intuition + $getItemsBonuses->getIntuitionBonus()) ?>
2020-07-21 18:57:15 +03:00
<br>
2020-08-30 12:48:53 +03:00
Выносливость: <?= ($user->free_stat_points ? $user->getStat('endurance', 1) . '(' . strval($user->endurance + $getItemsBonuses->getEnduranceBonus()) . ')' : $user->endurance + $getItemsBonuses->getEnduranceBonus()) ?>
2020-07-22 17:18:25 +03:00
<br>
2020-08-30 12:48:53 +03:00
Интеллект: <?= ($user->free_stat_points ? $user->getStat('intelligence', 1) . '(' . strval($user->intelligence + $getItemsBonuses->getIntelliganceBonus()) . ')' : $user->intelligence + $getItemsBonuses->getIntelliganceBonus()) ?>
2020-07-22 17:18:25 +03:00
<br>
2020-08-30 12:48:53 +03:00
Мудрость: <?= ($user->free_stat_points ? $user->getStat('wisdom', 1) . '(' . strval($user->wisdom + $getItemsBonuses->getWisdomBonus()) . ')' : $user->wisdom + $getItemsBonuses->getWisdomBonus()) ?>
2020-08-29 17:54:26 +03:00
<br>
2020-08-30 12:48:53 +03:00
<?php if ($user->free_stat_points): ?>
2020-07-22 17:08:40 +03:00
<small style="color: darkgreen;">Возможных
2020-08-30 12:48:53 +03:00
увеличений: <?= $user->free_stat_points ?></small><br>
2020-07-22 17:08:40 +03:00
<?php endif; ?>
2020-07-20 16:27:32 +03:00
<br>
2020-08-30 12:48:53 +03:00
Здоровье: <?= $user->getHealth() ?><br>
Пыль: <?= $user->getMana() ?><br>
2020-08-29 15:42:08 +03:00
Уворот: <?= $getItemsBonuses->getEvasionBonus() ?><br>
Точность: <?= $getItemsBonuses->getAccuracyBonus() ?><br>
Шанс крита: <?= $getItemsBonuses->getCriticalsBonus() ?><br>
2020-08-30 12:48:53 +03:00
Урон: <?= $user->minDamage + $getItemsBonuses->getMinPhysDamage() ?>
- <?= $user->maxDamage + $getItemsBonuses->getMaxPhysDamage() ?> <br>
2018-12-11 23:03:48 +02:00
<br>
2020-08-30 02:21:22 +03:00
Защита от огня: ?? <br>
Защита от воды: ?? <br>
Защита от вохдуха: ?? <br>
Защита от земли: ?? <br>
Защита от яда: ?? <br>
2020-08-30 12:48:53 +03:00
Броня головы: <?= $user->headArmor ?> <br>
Броня корпуса: <?= $user->chestArmor ?> <br>
Броня ног: <?= $user->legArmor ?> <br>
2018-12-12 00:26:21 +02:00
</div>
2018-12-11 19:40:12 +02:00
</div>
2020-07-21 18:57:15 +03:00
</td>
<td valign=top>
2020-07-22 11:43:14 +03:00
<div class="button-container"> <!--Меню-кнопки-->
2020-07-21 18:57:15 +03:00
<FORM METHOD=POST ACTION="?edit=1" name=f1>
2020-08-30 03:09:53 +03:00
<?php if ($user->shadow == '0.gif' || $user->admin == 1): ?>
2020-07-22 17:08:40 +03:00
<INPUT class="button primary icon user" TYPE="submit" name="setshadow" value="Образы"
title="Образы">
2020-07-21 18:57:15 +03:00
<?php endif; ?>
2020-07-22 11:43:14 +03:00
<div class="button-group">
2020-08-30 02:21:22 +03:00
<button class="button primary" onclick="window.location.href='zayavka.php';">Поединки</button>
<button class="button" onclick="window.location.href='module_quest.php';">Активные задания
</button>
<?php if ($user->room === 20): ?>
<button class="button icon move" onclick="window.location.href='main.php?goto=arena';">Войти
внутрь
2020-07-22 11:43:14 +03:00
</button>
<?php else: ?>
2020-08-30 02:21:22 +03:00
<button class="button icon move" onclick="window.location.href='main.php?goto=plo';">Выйти
на улицу
2020-07-22 11:43:14 +03:00
</button>
<?php endif; ?>
2020-08-30 02:21:22 +03:00
<button class="button icon loop" onclick="window.location.href='main.php';">Обновить страницу
</button>
2020-07-22 11:43:14 +03:00
</div>
2020-07-21 18:57:15 +03:00
</div>
2020-08-30 02:21:22 +03:00
<div> <!--рюкзак-->
2018-03-02 16:33:58 +02:00
<table BORDER=0 WIDTH=100% CELLSPACING="1" CELLPADDING="2" BGCOLOR="#A5A5A5">
2020-07-21 18:57:15 +03:00
<caption>Рюкзак
2020-08-30 12:48:53 +03:00
(масса: <?= '?? /' . $user->strength * 4 ?>)
2020-07-21 18:57:15 +03:00
</caption>
<?php
2019-02-12 20:31:23 +02:00
foreach ($iteminfo as $ii) {
2019-02-13 12:46:39 +02:00
echo "<tr><td width='100' align='center' bgcolor='#d3d3d3'>";
2019-02-12 20:31:23 +02:00
$ii->printImage();
$ii->printControls();
2019-02-13 12:46:39 +02:00
echo "<td valign='top' bgcolor='#d3d3d3'>";
2019-02-12 20:31:23 +02:00
$ii->printInfo();
}
2020-06-23 11:49:49 +03:00
if ($data->getNumRows() == 0) {
2020-07-21 12:20:44 +03:00
echo "<tr><th colspan='3' align=center bgcolor=#C7C7C7>Пусто";
2020-06-23 11:49:49 +03:00
}
2018-03-02 16:33:58 +02:00
?>
</table>
2020-07-06 22:54:50 +03:00
</div>
2020-07-21 18:57:15 +03:00
</td>
2018-03-02 16:33:58 +02:00
</tr>
2018-01-28 18:40:49 +02:00
</table>
2020-07-21 18:57:15 +03:00
</body>
</html>