room['file'] != 'enterptp') { return; } // 1 Получаем Задание, 0 Собираем группу для похода $roomSection = isset($_GET['rz']) ? 1 : 0; $dun = 0; /* if($u->room['id']==372){ $dun = 12; } // Вход в Пещеру Тысячи Проклятий , CapitalCity elseif($u->room['id']==369){ $dun = 102; } // Вход в подземелье Драконов, elseif($u->room['id']==354){ $dun = 101; } // Вход в Бездну , AngelsCity elseif($u->room['id']==293){ $dun = 3; } // Вход в Катакомбы , DemonsCity elseif($u->room['id']==296){ $dun = 11; } // Вход в Некровиль , для новичков 2-7 лвл elseif($u->room['id']==18){ $dun = 10; } // Вход в Грибницу , для новичков 2-7 лвл SandCity elseif($u->room['id']==209){ $dun = 20; } // Вход в Ледяную пещеру, elseif($u->room['id']==188){ $dun = 1; } // Вход в Вход в канализацию */ $dungeon = mysql_fetch_assoc(mysql_query('SELECT `id` as room, `dungeon_id` as id, `dungeon_name` as name FROM `dungeon_room` WHERE `id`="' . $u->room['id'] . '" LIMIT 1')); $dungeon['list'] = [ // список подземелий, которые используются для вычита используемой репутации. // При добавлении в список нового города, следует проверить наличие ячеек в таблице `rep`. // Так-же следует помнить, что в __user.php в выводе инвентаря, некоторых подземелий\городов, нету. // Да и вообще, херня получается, что наши подземелья считаются как Город, то есть два подземелья на город - технически нет такого. Так-как ПТП это capitalcity. 1 => 'capitalcity', 2 => 'demonscity', 3 => 'angelscity', 4 => 'devilscity', 5 => 'suncity']; $er = ''; // Собираем ошибки. $dungeonGroupList = ''; // Сюда помещаем список Групп. $dungeonGo = 1; // По умолчанию, мы идем в пещеру. if ($u->info['dn'] > 0) { // Если ты пошел гулять, так иди и гуляй! $zv = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_zv` WHERE `id`="' . $u->info['dn'] . '" AND `delete` = "0" LIMIT 1')); if (!isset($zv['id'])) { mysql_query('UPDATE `stats` SET `dn` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); $u->info['dn'] = 0; } } $dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh' . $dungeon['id'] . '" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); // Проверка - последний визит? if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. { $dungeonGo = 0; if (isset($_GET['start'])) { $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $dungeonGo == 1) { //начинаем поход //начинаем поход $ig = 1; if ($ig > 0) { //перемещаем игроков в пещеру //$u->addAction(time(),'psh'.$dun,''); $ins = mysql_query( 'INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`) VALUES ("' . $zv['city'] . '","' . $zv['uid'] . '","' . $dungeon['id'] . '","Бездна","' . time() . '")' ); if ($ins) { $zid = mysql_insert_id(); mysql_query('UPDATE `dungeon_zv` SET `delete` = "' . time() . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1'); //обновляем пользователей $su = mysql_query( 'SELECT `u`.`id`,`st`.`dn` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`dn`="' . $zv['id'] . '" LIMIT ' . ($zv['team_max'] + 1) . '' ); $ids = ''; $map_locs = []; $spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = "' . $dungeon['id'] . '"'); while ($plm2 = mysql_fetch_array($spm2)) { $map_locs[] = [$plm2['x'], $plm2['y']]; } unset($spm2, $plm2); while ($pu = mysql_fetch_array($su)) { $ids .= ' `id` = "' . $pu['id'] . '" OR'; $u->addAction(time(), 'psh' . $dungeon['id'], '', $pu['id']); //Добавляем квестовые обьекты для персонажей $sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` LIKE "%start_quest%" AND `vals` = "go" LIMIT 100'); while ($pl2 = mysql_fetch_array($sp)) { $pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE `id` = "' . (str_replace('start_quest', '', $pl2['vars'])) . '" AND `line` = "' . $dungeon['id'] . '" LIMIT 1')); if (isset($pl['id'])) { $act = explode(',', $pl['act_date']); $i = 0; while ($i < count($act)) { $xr = explode(':=:', $act[$i]); //Сбор ресурсов if ($xr[0] == 'tk_itm') { $xr2 = explode('=', $xr[1]); if ($xr2[2] == 0) { //Добавляем обьект для юзера $j = 0; while ($j < $xr2[1]) { $cord = $map_locs[rand(0, count($map_locs) - 1)]; if ($cord[0] != 0 || $cord[1] != 0) { mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" )' ); } $j++; } } else { //Предмет находится в конкретном месте mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $xr2[2] . '","' . $xr2[3] . '","' . $u->info['id'] . '","' . $pl['id'] . '" )' ); } // } $i++; } } } // } $ids = rtrim($ids, 'OR'); $upd1 = mysql_query( 'UPDATE `stats` SET `s`="1",`res_s`="1",`x`="0",`y`="0",`res_x`="0",`res_y`="0",`dn` = "0",`dnow` = "' . $zid . '" WHERE ' . $ids . ' LIMIT ' . ($zv['team_max'] + 1) . '' ); if ($upd1) { $upd2 = mysql_query('UPDATE `users` SET `room` = "374" WHERE ' . $ids . ' LIMIT ' . ($zv['team_max'] + 1) . ''); //Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id'] //Добавляем ботов $vls = ''; $sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = "' . $dungeon['id'] . '"'); while ($pl = mysql_fetch_array($sp)) { $vls .= '("' . $zid . '","' . $pl['id_bot'] . '","' . $pl['colvo'] . '","' . $pl['items'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['dialog'] . '","' . $pl['items'] . '","' . $pl['go_bot'] . '"),'; } $vls = rtrim($vls, ','); $ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`) VALUES ' . $vls . ''); //Добавляем обьекты $vls = ''; $sp = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = "' . $dungeon['id'] . '"'); while ($pl = mysql_fetch_array($sp)) { $vls .= '("' . $zid . '","' . $pl['name'] . '","' . $pl['img'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['action'] . '","' . $pl['type'] . '","' . $pl['w'] . '","' . $pl['h'] . '","' . $pl['s'] . '","' . $pl['s2'] . '","' . $pl['os1'] . '","' . $pl['os2'] . '","' . $pl['os3'] . '","' . $pl['os4'] . '","' . $pl['type2'] . '","' . $pl['top'] . '","' . $pl['left'] . '","' . $pl['date'] . '"),'; } $vls = rtrim($vls, ','); if ($vls != '') { $ins2 = mysql_query( 'INSERT INTO `dungeon_obj` (`dn`,`name`,`img`,`x`,`y`,`action`,`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`) VALUES ' . $vls . '' ); } else { $ins2 = true; } if ($upd2 && $ins1 && $ins2) { die(''); } else { $re = 'Ошибка перехода в подземелье... ptp1'; } } else { $re = 'Ошибка перехода в подземелье... ptp2'; } } else { $re = 'Ошибка перехода в подземелье... ptp3'; } } } elseif (isset($_POST['go'], $_POST['goid']) && $dungeonGo == 1) { if (!isset($zv['id'])) { $zv = mysql_fetch_array( mysql_query('SELECT * FROM `dungeon_zv` WHERE `city` = "' . $u->info['city'] . '" AND `id`="' . mysql_real_escape_string($_POST['goid']) . '" AND `delete` = "0" LIMIT 1') ); if (isset($zv['id']) && $u->info['dn'] == 0) { if ($zv['pass'] != '' && $_POST['pass_com'] != $zv['pass']) { $re = 'Вы ввели неправильный пароль'; } elseif ($u->info['level'] > 7) { $row = 0; if (5 > $row) { $upd = mysql_query('UPDATE `stats` SET `dn` = "' . $zv['id'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); if (!$upd) { $re = 'Не удалось вступить в эту группу'; unset($zv); } else { $u->info['dn'] = $zv['id']; } } else { $re = 'В группе нет места'; unset($zv); } } else { $re = 'Вы не подходите по уровню'; unset($zv); } } else { $re = 'Заявка не найдена'; } } else { $re = 'Вы уже находитесь в группе'; } } elseif (isset($_POST['leave']) && isset($zv['id']) && $dungeonGo == 1) { if ($zv['uid'] == $u->info['id']) { //ставим в группу нового руководителя $ld = mysql_fetch_array(mysql_query('SELECT `id` FROM `stats` WHERE `dn` = "' . $zv['id'] . '" AND `id` != "' . $u->info['id'] . '" LIMIT 1')); if (isset($ld['id'])) { $zv['uid'] = $ld['id']; mysql_query('UPDATE `dungeon_zv` SET `uid` = "' . $zv['uid'] . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1'); mysql_query('UPDATE `stats` SET `dn` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); $u->info['dn'] = 0; unset($zv); } else { //удаляем группу целиком mysql_query('UPDATE `dungeon_zv` SET `delete` = "' . time() . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1'); mysql_query('UPDATE `stats` SET `dn` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); $u->info['dn'] = 0; unset($zv); } } else { //просто выходим с группы mysql_query('UPDATE `stats` SET `dn` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); $u->info['dn'] = 0; unset($zv); } } elseif (isset($_POST['add']) && $u->info['level'] > 1 && $dungeonGo == 1) { if ($u->info['dn'] == 0) { $ins = mysql_query( 'INSERT INTO `dungeon_zv` (`city`,`time`,`uid`,`dun`,`pass`,`com`,`lvlmin`,`lvlmax`,`team_max`) VALUES ("' . $u->info['city'] . '","' . time() . '","' . $u->info['id'] . '","' . $dungeon['id'] . '", "' . mysql_real_escape_string($_POST['pass']) . '", "' . mysql_real_escape_string($_POST['text']) . '", "8", "21", "5")' ); if ($ins) { $u->info['dn'] = mysql_insert_id(); $zv['id'] = $u->info['dn']; $zv['uid'] = $u->info['id']; mysql_query('UPDATE `stats` SET `dn` = "' . $u->info['dn'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); $re = 'Вы успешно создали группу'; } else { $re = 'Не удалось создать группу'; } } else { $re = 'Вы уже находитесь в группе'; } } //Генерируем список групп $sp = mysql_query('SELECT * FROM `dungeon_zv` WHERE `city` = "' . $u->info['city'] . '" AND `dun` = "' . $dungeon['id'] . '" AND `delete` = "0" AND `time` > "' . (time() - 60 * 60 * 2) . '"'); while ($pl = mysql_fetch_array($sp)) { $dungeonGroupList .= '
= $u->room['name']; ?> |