room['file']=='enterptp'){ if(isset($_GET['rz'])) $roomSection = 1; // Получаем Задание else $roomSection = 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'] = array( // список подземелий, которые используются для вычита используемой репутации. // При добавлении в список нового города, следует проверить наличие ячеек в таблице `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($u->info['admin']>0) unset($dungeon_timeout); // $dungeon_timeout - задержка на посещение пещеры. if(isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. { $dungeonGo = 0; if(isset($_GET['start'])) { $re = 'До следующего похода осталось еще: '.$u->timeOut(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 = array(); $spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = "'.$dungeon['id'].'"'); while( $plm2 = mysql_fetch_array($spm2)) { $map_locs[] = array($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 = 'Ошибка перехода в подземелье...'; } }else{ $re = 'Ошибка перехода в подземелье...'; } }else{ $re = 'Ошибка перехода в подземелье...'; } } }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']; ?> |