Пещеры заселились живностью.
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Core\Config;
|
||||
use Core\Db;
|
||||
use Helper\Conversion;
|
||||
use User\StatsModel;
|
||||
|
||||
if (!defined('GAME')) {
|
||||
@@ -13,11 +15,8 @@ if ($u->room['file'] != 'dungeon_enter_all') {
|
||||
$error = ''; // Собираем ошибки.
|
||||
$dungeonGroupList = ''; // Сюда помещаем список Групп.
|
||||
$dungeonGo = 1; // По умолчанию, мы идем в пещеру.
|
||||
$dungeon = mysql_fetch_assoc(mysql_query('SELECT `id` as room, city, `dungeon_room` as d_room, city, `shop`, `dungeon_id` as id, `dungeon_name` as name, quest FROM `dungeon_room` WHERE `id`="' . $u->room['id'] . '" LIMIT 1'));
|
||||
|
||||
//
|
||||
$dungeon['quest'] = 1;
|
||||
//
|
||||
$dungeon = Db::getRow('select id as room, city, dungeon_room as d_room, shop, dungeon_id as id, dungeon_name as name from dungeon_room where id = ?', [$u->room['id']]);
|
||||
$zv = [];
|
||||
|
||||
$dunname = [
|
||||
12 => ['capitalcity', 'Пещера Тысячи Проклятий'],
|
||||
@@ -37,19 +36,16 @@ if ($u->isAdmin()) {
|
||||
$dunname[999] = ['capitalcity', 'Тестовая локация'];
|
||||
}
|
||||
|
||||
$roomSection = isset($_GET['rz']) && $dungeon['quest'] == 1 ? 1 : 0;
|
||||
$roomSection = isset($_GET['rz']) ? 1 : 0;
|
||||
// Собираем группу для похода
|
||||
|
||||
$all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 ');
|
||||
while ($t = mysql_fetch_array($all_dungeon)) {
|
||||
$dungeon['list'][] = $t['city'];
|
||||
}
|
||||
unset($all_dungeon);
|
||||
// Для названий репутаций в переменных $u->rep[rp_*]...
|
||||
$dungeon['list'] = Db::getColumn('select city from dungeon_room where city is not null and active = 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');
|
||||
$zv = Db::getRow('select dungeon_zv.*, dungeon_room.dungeon_name from dungeon_zv left join dungeon_room on dungeon_room.dungeon_id = dun where dungeon_zv.id = ?', [$u->info['dn']]);
|
||||
if (empty($zv['id'])) {
|
||||
Db::sql('update stats set dn = 0 where id = ?', [$u->info['id']]);
|
||||
$u->info['dn'] = 0;
|
||||
}
|
||||
}
|
||||
@@ -59,263 +55,142 @@ $dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` =
|
||||
if ($u->isAdmin()) {
|
||||
unset($dungeon_timeout);
|
||||
} // $dungeon_timeout - задержка на посещение пещеры.
|
||||
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
|
||||
{
|
||||
if (isset($dungeon_timeout['id'])) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
|
||||
$dungeonGo = 0;
|
||||
if (isset($_GET['start'])) {
|
||||
$error = 'До следующего похода осталось еще: ' . $u->timeOut(60 * 60 * 2 - time() + $dungeon_timeout['time']);
|
||||
$error = 'До следующего похода осталось еще: ' . 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) { //перемещаем игроков в пещеру
|
||||
//перемещаем игроков в пещеру
|
||||
$dungeon['room'] = 321;
|
||||
$dungeon['id'] = $zv['dun'];
|
||||
//
|
||||
Db::sql('insert into dungeon_now (uid, id2, name, time_start) values (?,?,?,unix_timestamp())', [$zv['uid'], $zv['dun'], $zv['dungeon_name']]);
|
||||
$zid = Db::lastInsertId();
|
||||
|
||||
$dungeon['room'] = 321;
|
||||
$dungeon['id'] = $zv['dun'];
|
||||
//
|
||||
$ins = mysql_query('INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`)
|
||||
VALUES ("' . $zv['city'] . '","' . $zv['uid'] . '","' . $zv['dun'] . '","' . $dunname[$zv['dun']][1] . '","' . 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 = '';
|
||||
Db::sql('delete from dungeon_zv where id = ?', [$zv['id']]);
|
||||
//обновляем пользователей
|
||||
$uids = Db::getColumn('select id from stats where dn = ?', [$zv['id']]);
|
||||
|
||||
$map_locs = [];
|
||||
$spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = "' . $zv['dun'] . '"');
|
||||
while ($plm2 = mysql_fetch_array($spm2)) {
|
||||
$map_locs[] = [$plm2['x'], $plm2['y']];
|
||||
}
|
||||
unset($spm2, $plm2);
|
||||
$map_locs = [];
|
||||
|
||||
$pxd = 0;
|
||||
while ($pu = mysql_fetch_array($su)) {
|
||||
$pxd++;
|
||||
$ids .= ' `id` = "' . $pu['id'] . '" OR';
|
||||
if ($u->stats['silver'] >= 3) {
|
||||
$u->addAction((time() - ((60 * 60 * 2) / 100 * 30)), 'psh0', $pu['id'], $pu['id']);
|
||||
} else {
|
||||
$u->addAction(time(), 'psh0', $pu['id'], $pu['id']);
|
||||
}
|
||||
if (date('w') == 0 || date('w') == 6 || date('w') == 1) {
|
||||
StatsModel::addRepexpById($pu['id'], 5); //Репутация +5
|
||||
}
|
||||
//Добавляем квестовые обьекты для персонажей
|
||||
$sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `room` = ' . $dungeon['room'] . ' 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)) {
|
||||
$act_date = explode(':|:', $act[$i]);
|
||||
foreach ($act_date as $key => $val) {
|
||||
$val = explode(':=:', $val);
|
||||
$actdate[$val[0]] = $val[1];
|
||||
foreach (Db::getRows('select x, y from dungeon_map where id_dng = ?', [$zv['dun']]) as $pos) {
|
||||
$map_locs[] = [$pos['x'], $pos['y']];
|
||||
}
|
||||
|
||||
$pxd = 0;
|
||||
foreach ($uids as $uid) {
|
||||
$pxd++;
|
||||
|
||||
$u->addAction(time(), 'psh0', $uid, $uid);
|
||||
|
||||
if (date('w') == 0 || date('w') == 6 || date('w') == 1) {
|
||||
StatsModel::addRepexpById($uid, 5); //Репутация +5
|
||||
}
|
||||
|
||||
//Добавляем квестовые обьекты для персонажей
|
||||
$sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `room` = ' . $dungeon['room'] . ' 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)) {
|
||||
$act_date = explode(':|:', $act[$i]);
|
||||
foreach ($act_date as $key => $val) {
|
||||
$val = explode(':=:', $val);
|
||||
$actdate[$val[0]] = $val[1];
|
||||
}
|
||||
//Сбор ресурсов
|
||||
if (isset($actdate['tk_itm']) && $actdate['tk_itm'] != '') {
|
||||
$xr2 = explode('=', $actdate['tk_itm']);
|
||||
if ($xr2[2] == 0) {
|
||||
if (isset($actdate['tk_itm_fromY']) && isset($actdate['tk_itm_toY'])) {
|
||||
$actdate['tk_itm_fromY'] = (integer)$actdate['tk_itm_fromY'];
|
||||
$actdate['tk_itm_toY'] = (integer)$actdate['tk_itm_toY'];
|
||||
}
|
||||
//Сбор ресурсов
|
||||
if (isset($actdate['tk_itm']) && $actdate['tk_itm'] != '') {
|
||||
$xr2 = explode('=', $actdate['tk_itm']);
|
||||
if ($xr2[2] == 0) {
|
||||
if (isset($actdate['tk_itm_fromY']) && isset($actdate['tk_itm_toY'])) {
|
||||
$actdate['tk_itm_fromY'] = (integer)$actdate['tk_itm_fromY'];
|
||||
$actdate['tk_itm_toY'] = (integer)$actdate['tk_itm_toY'];
|
||||
}
|
||||
$ml_arr = [];
|
||||
foreach ($map_locs as $ml) { // tk_itm_fromY tk_itm_toY - отсеиваем позицию для дропа предметов.
|
||||
if ((isset($actdate['tk_itm_fromY']) && isset($actdate['tk_itm_toY'])) or (!isset($actdate['tk_itm_fromY']) && isset($actdate['tk_itm_toY']))) {
|
||||
if ($ml[1] > $actdate['tk_itm_fromY'] && $actdate['tk_itm_toY'] > $ml[1]) $ml_arr[] = $ml;
|
||||
elseif (!isset($actdate['tk_itm_fromY']) && $actdate['tk_itm_toY'] > $ml[1]) $ml_arr[] = $ml;
|
||||
} else $ml_arr[] = $ml;
|
||||
}
|
||||
if (isset($ml_arr) && count($ml_arr) == 0) $ml_arr = $map_locs;
|
||||
//Добавляем обьект для юзера
|
||||
$j = 0;
|
||||
while ($j < $xr2[1]) {
|
||||
$cord = $ml_arr[rand(0, count($ml_arr) - 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++;
|
||||
$ml_arr = [];
|
||||
foreach ($map_locs as $ml) { // tk_itm_fromY tk_itm_toY - отсеиваем позицию для дропа предметов.
|
||||
if ((isset($actdate['tk_itm_fromY']) && isset($actdate['tk_itm_toY'])) or (!isset($actdate['tk_itm_fromY']) && isset($actdate['tk_itm_toY']))) {
|
||||
if ($ml[1] > $actdate['tk_itm_fromY'] && $actdate['tk_itm_toY'] > $ml[1] || !isset($actdate['tk_itm_fromY']) && $actdate['tk_itm_toY'] > $ml[1]) {
|
||||
$ml_arr[] = $ml;
|
||||
}
|
||||
} 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'] . '"
|
||||
)');
|
||||
$ml_arr[] = $ml;
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
$ids = rtrim($ids, 'OR');
|
||||
$snew = 1;
|
||||
$upd1 = mysql_query('UPDATE `stats` SET `s`="' . $snew . '",`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` = "405" WHERE ' . $ids . ' LIMIT ' . ($zv['team_max'] + 1) . '');
|
||||
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
|
||||
//Добавляем ботов
|
||||
$vls = '';
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = "' . $zv['dun'] . '"');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
if ($pl['id_bot'] == 0 && $pl['bot_group'] != '') {
|
||||
$bots = explode(',', $pl['bot_group']);
|
||||
$pl['id_bot'] = (int)$bots[rand(0, count($bots) - 1)];
|
||||
}
|
||||
if ($pl['id_bot'] > 0) {
|
||||
$vls .= '("' . $zid . '","' . $pl['id_bot'] . '","' . $pl['colvo'] . '","' . $pl['items'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['dialog'] . '","' . $pl['items'] . '","' . $pl['go_bot'] . '","' . $pl['noatack'] . '"),';
|
||||
}
|
||||
unset($bots);
|
||||
}
|
||||
$vls = rtrim($vls, ',');
|
||||
//var_dump($vls);
|
||||
$ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`,`noatack`) VALUES ' . $vls . '');
|
||||
//Добавляем обьекты
|
||||
$vls = '';
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = "' . $zv['dun'] . '"');
|
||||
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'] . '"),';
|
||||
}
|
||||
|
||||
//Добавление обьектов (день святого валентина)
|
||||
if (floor(date('m')) == 2 && floor(date('d')) >= 7 && floor(date('d')) <= 20) {
|
||||
if (floor(date('m')) == 2 && floor(date('d')) >= 14 && floor(date('d')) <= 20) {
|
||||
//Появляются мобы которые принимают цветы
|
||||
$vlsbts = '';
|
||||
$ins1bts = null;
|
||||
if ($zv['dun'] == 1) {
|
||||
//4 уровня (КАНАЛИЗАЦИЯ)
|
||||
$vlsbts .= '("' . $zid . '","410","1","","-5","3","8","0","0"),';
|
||||
//4-7 уровня
|
||||
$vlsbts .= '("' . $zid . '","413","1","","8","46","9","0","0"),';
|
||||
} elseif ($zv['dun'] == 12) {
|
||||
//(ПТП)
|
||||
//4-7 уровня
|
||||
$vlsbts .= '("' . $zid . '","413","1","","-3","18","9","0","0"),';
|
||||
//4-9 уровня
|
||||
$vlsbts .= '("' . $zid . '","414","1","","-2","29","10","0","0"),';
|
||||
} elseif ($zv['dun'] == 3) {
|
||||
//(КАТАКОМБЫ)
|
||||
//4-7 уровня
|
||||
$vlsbts .= '("' . $zid . '","413","1","","15","8","9","0","0"),';
|
||||
//4-9 уровня
|
||||
$vlsbts .= '("' . $zid . '","414","1","","3","35","10","0","0"),';
|
||||
} elseif ($zv['dun'] == 101) {
|
||||
//(бездна)
|
||||
//4-7 уровня
|
||||
$vlsbts .= '("' . $zid . '","413","1","","-2","21","9","0","0"),';
|
||||
//4-9 уровня
|
||||
$vlsbts .= '("' . $zid . '","414","1","","2","43","10","0","0"),';
|
||||
}
|
||||
|
||||
if ($vlsbts != '') {
|
||||
$vlsbts = rtrim($vlsbts, ',');
|
||||
$ins1bts = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`) VALUES ' . $vlsbts . '');
|
||||
}
|
||||
unset($vlsbts, $ins1bts);
|
||||
}
|
||||
//Раскидываем предметы по пещере (Блёклый подземник)
|
||||
$dcords = [];
|
||||
$c_sp = mysql_query('SELECT * FROM `dungeon_map` WHERE `id_dng` = "' . $zv['dun'] . '"');
|
||||
while ($c_pl = mysql_fetch_array($c_sp)) {
|
||||
$dcords[] = [$c_pl['x'], $c_pl['y']];
|
||||
}
|
||||
$fcords = [];
|
||||
$i = 1;
|
||||
while ($i <= $pxd) {
|
||||
$j = rand(1, 10);
|
||||
while ($j >= 0) {
|
||||
$rndxy = rand(0, count($dcords) - 1);
|
||||
$rndx = $dcords[$rndxy][0];
|
||||
$rndy = $dcords[$rndxy][1];
|
||||
$fcords[$rndx][$rndy] = true;
|
||||
unset($dcords[$rndxy]);
|
||||
$vls .= '("' . $zid . '","Блеклый подземник","vbig1.gif","' . $rndx . '","' . $rndy . '","fileact:vbig1","0","81","81","0","0","5","8","12","0","0","0","0","{use:\'takeit\',rt2:154,rl2:146,rt3:139,rl3:154,rt4:125,rl4:161}"),';
|
||||
$j--;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
//Раскидываем предметы по пещере (Черепичный подземник)
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = "' . $zv['dun'] . '"');
|
||||
$test = [];
|
||||
$dcords2 = [];
|
||||
$dcords3 = [];
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
if (!isset($test[$pl['id_bot']])) {
|
||||
$test[$pl['id_bot']] = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $pl['id_bot'] . '" LIMIT 1'));
|
||||
}
|
||||
if (isset($test[$pl['id_bot']]['id']) && $test[$pl['id_bot']] != 2) {
|
||||
if ($test[$pl['id_bot']]['level'] > 6) {
|
||||
$dcords2[] = [$pl['x'], $pl['y']];
|
||||
if (empty($ml_arr)) {
|
||||
$ml_arr = $map_locs;
|
||||
}
|
||||
if ($test[$pl['id_bot']]['level'] >= 8 && $test[$pl['id_bot']]['align'] == 9) {
|
||||
$dcords3[] = [$pl['x'], $pl['y']];
|
||||
//Добавляем обьект для юзера
|
||||
$j = 0;
|
||||
while ($j < $xr2[1]) {
|
||||
$cord = $ml_arr[rand(0, count($ml_arr) - 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 {
|
||||
$test[$pl['id_bot']] = 2;
|
||||
//Предмет находится в конкретном месте
|
||||
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 = 1;
|
||||
while ($i <= $pxd) {
|
||||
$j = rand(1, 5);
|
||||
while ($j >= 0) {
|
||||
$rndxy = rand(0, count($dcords2) - 1);
|
||||
$rndx = $dcords2[$rndxy][0];
|
||||
$rndy = $dcords2[$rndxy][1];
|
||||
if (!isset($fcords[$rndx][$rndy]) && isset($dcords2[$rndxy][0])) {
|
||||
$fcords[$rndx][$rndy] = true;
|
||||
unset($dcords2[$rndxy]);
|
||||
$vls .= '("' . $zid . '","Черепичный подземник","vbig2.gif","' . $rndx . '","' . $rndy . '","fileact:vbig2","0","81","81","0","0","5","8","12","0","0","0","0","{use:\'takeit\',rt2:154,rl2:146,rt3:139,rl3:154,rt4:125,rl4:161}"),';
|
||||
}
|
||||
$j--;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$i = 1;
|
||||
while ($i <= $pxd) {
|
||||
$j = rand(1, 2);
|
||||
while ($j >= 0) {
|
||||
$rndxy = rand(0, count($dcords3) - 1);
|
||||
$rndx = $dcords3[$rndxy][0];
|
||||
$rndy = $dcords3[$rndxy][1];
|
||||
if (!isset($fcords[$rndx][$rndy]) && isset($dcords3[$rndxy][0])) {
|
||||
$fcords[$rndx][$rndy] = true;
|
||||
unset($dcords3[$rndxy]);
|
||||
$vls .= '("' . $zid . '","Кровавый подземник","vbig3.gif","' . $rndx . '","' . $rndy . '","fileact:vbig3","0","81","81","0","0","5","8","12","0","0","0","0","{use:\'takeit\',rt2:154,rl2:146,rt3:139,rl3:154,rt4:125,rl4:161}"),';
|
||||
}
|
||||
$j--;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
unset($test);
|
||||
$i++;
|
||||
}
|
||||
//
|
||||
$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('<script>location="main.php?rnd=' . $code . '";</script>');
|
||||
} else {
|
||||
var_dump($upd2, $ins1, $ins2);
|
||||
$error = 'Ошибка перехода в подземелье... a1';
|
||||
}
|
||||
} else {
|
||||
$error = 'Ошибка перехода в подземелье... a2';
|
||||
}
|
||||
} else {
|
||||
$error = 'Ошибка перехода в подземелье... a3';
|
||||
}
|
||||
}
|
||||
|
||||
Db::sql('update stats left join users on users.id = stats.id set s = 1, dnow = ?, room = 405 where users.id in (?) limit ?', [$zid, implode(',', $uids), $zv['team_max'] + 1]);
|
||||
|
||||
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
|
||||
//Добавляем ботов
|
||||
$botarray = [];
|
||||
$dbots = Db::getRows('select * from dungeon_bots where for_dn = ?', [$zv['dun']]);
|
||||
foreach ($dbots as $bot) {
|
||||
if ($bot['id_bot'] == 0 && $bot['bot_group'] != '') {
|
||||
$bots = explode(',', $bot['bot_group']);
|
||||
$bot['id_bot'] = (int)$bots[rand(0, count($bots) - 1)];
|
||||
}
|
||||
if ($bot['id_bot'] > 0) {
|
||||
$botarray[] = [$zid, $bot['id_bot'], $bot['colvo'], $bot['items'], $bot['x'], $bot['y'], $bot['dialog'], intval($bot['items']), $bot['go_bot'], $bot['noatack']];
|
||||
}
|
||||
}
|
||||
|
||||
$addbots = Db::prepare('insert into dungeon_bots (dn, id_bot, colvo, items, x, y, dialog, atack, go_bot, noatack) values (?,?,?,?,?,?,?,?,?,?)');
|
||||
foreach ($botarray as $b) {
|
||||
$addbots->execute($b);
|
||||
}
|
||||
|
||||
//Добавляем обьекты
|
||||
$objarray = [];
|
||||
$dobjects = Db::getRows('select * from dungeon_obj where for_dn = ?', [$zv['dun']]);
|
||||
|
||||
foreach ($dobjects as $object) {
|
||||
$objarray[] = [$zid, $object['name'], $object['img'], $object['x'], $object['y'], $object['action'], $object['type'], $object['w'], $object['h'], $object['s'], $object['s2'],
|
||||
$object['os1'], $object['os2'], $object['os3'], $object['os4'], $object['type2'], $object['top'], $object['left'], $object['date']];
|
||||
}
|
||||
|
||||
$addobjects = Db::prepare('insert into dungeon_obj (dn, name, img, x, y, action, type, w, h, s, s2, os1, os2, os3, os4, type2, top, `left`, date) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)');
|
||||
|
||||
foreach ($objarray as $o) {
|
||||
$addobjects->execute($o);
|
||||
}
|
||||
|
||||
exit('<script>location="main.php?rnd=' . PassGen::intCode() . '";</script>');
|
||||
|
||||
} elseif (isset($_POST['go'], $_POST['goid']) && $dungeonGo == 1) {
|
||||
if (!isset($zv['id'])) {
|
||||
$zv = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_zv` WHERE `city` = "all" AND `id`="' . mysql_real_escape_string($_POST['goid']) . '" AND `delete` = "0" LIMIT 1'));
|
||||
@@ -459,14 +334,16 @@ if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $dungeonGo == 1) {
|
||||
$dun5 = 12; //ПТП
|
||||
}
|
||||
//
|
||||
$ins = mysql_query('INSERT INTO `dungeon_zv`
|
||||
$ins = mysql_query(
|
||||
'INSERT INTO `dungeon_zv`
|
||||
(`city`,`time`,`uid`,`dun`,`pass`,`com`,`lvlmin`,`lvlmax`,`team_max`) VALUES
|
||||
("all","' . time() . '","' . $u->info['id'] . '","' . $dun5 . '",
|
||||
"' . mysql_real_escape_string($_POST['pass']) . '",
|
||||
"' . mysql_real_escape_string($_POST['text']) . '",
|
||||
"8",
|
||||
"21",
|
||||
"5")');
|
||||
"5")'
|
||||
);
|
||||
if ($ins) {
|
||||
$u->info['dn'] = mysql_insert_id();
|
||||
$zv['id'] = $u->info['dn'];
|
||||
@@ -485,13 +362,17 @@ if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $dungeonGo == 1) {
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_zv` WHERE `city` = "all" AND `delete` = "0" AND `time` > "' . (time() - 60 * 60 * 2) . '"');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$dungeonGroupList .= '<div style="padding:2px;">';
|
||||
if ($u->info['dn'] == 0) $dungeonGroupList .= '<input type="radio" name="goid" id="goid" value="' . $pl['id'] . '" />';
|
||||
if ($u->info['dn'] == 0) {
|
||||
$dungeonGroupList .= '<input type="radio" name="goid" id="goid" value="' . $pl['id'] . '" />';
|
||||
}
|
||||
$dungeonGroupList .= '<span class="date">' . date('H:i', $pl['time']) . '</span> ';
|
||||
|
||||
$dungeonGroupList .= '<span><img title="' . $dunname[$pl['dun']][1] . '" style="vertical-align:bottom" src="//img.new-combats.tech/i/city_ico2/' . $dunname[$pl['dun']][0] . '.gif" /></span> ';
|
||||
|
||||
$pus = ''; //группа
|
||||
$su = mysql_query('SELECT `u`.`id`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`st`.`dn`,`u`.`city`,`u`.`room` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`dn`="' . $pl['id'] . '" LIMIT ' . ($pl['team_max'] + 1) . '');
|
||||
$su = mysql_query(
|
||||
'SELECT `u`.`id`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`st`.`dn`,`u`.`city`,`u`.`room` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`dn`="' . $pl['id'] . '" LIMIT ' . ($pl['team_max'] + 1) . ''
|
||||
);
|
||||
while ($pu = mysql_fetch_array($su)) {
|
||||
$pus .= '<b>' . $pu['login'] . '</b> [' . $pu['level'] . ']<a href="info/' . $pu['id'] . '" target="_blank"><img src="//img.new-combats.tech/i/inf_' . $pu['city'] . '.gif" title="Инф. о ' . $pu['login'] . '"></a>';
|
||||
$pus .= ', ';
|
||||
@@ -501,7 +382,9 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
$dungeonGroupList .= $pus;
|
||||
unset($pus);
|
||||
|
||||
if ($pl['pass'] != '' && $u->info['dn'] == 0) $dungeonGroupList .= ' <small><input type="password" name="pass_com" value=""></small>';
|
||||
if ($pl['pass'] != '' && $u->info['dn'] == 0) {
|
||||
$dungeonGroupList .= ' <small><input type="password" name="pass_com" value=""></small>';
|
||||
}
|
||||
|
||||
if ($pl['com'] != '') {
|
||||
$dl = '';
|
||||
@@ -628,7 +511,9 @@ if ($roomSection == 1) {
|
||||
<form autocomplete="off" action='/main.php' method="post" name="F1" id="F1">
|
||||
<?php
|
||||
$qsee = '';
|
||||
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1);
|
||||
$hgo = $u->testAction(
|
||||
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1
|
||||
);
|
||||
$qc = 0; // Quest Count
|
||||
$qcc = [];
|
||||
//Генерируем список текущих квестов
|
||||
@@ -684,7 +569,11 @@ if ($roomSection == 1) {
|
||||
$dun5 = 12; //ПТП
|
||||
}
|
||||
//
|
||||
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . mysql_real_escape_string($qst_city) . '" LIMIT 1', 1);
|
||||
$hgo = $u->testAction(
|
||||
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . mysql_real_escape_string(
|
||||
$qst_city
|
||||
) . '" LIMIT 1', 1
|
||||
);
|
||||
//$qcc
|
||||
if ($qcc[$dun5] > 0) {
|
||||
echo '<font color="red"><b>У Вас уже есть задание, завершите его или отмените для получения нового.</b></font><br>';
|
||||
@@ -755,7 +644,9 @@ if ($roomSection == 1) {
|
||||
$hgo3 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_suncity" LIMIT 1', 1);
|
||||
$hgo4 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_demonscity" LIMIT 1', 1);
|
||||
$hgo5 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_dreamscity" LIMIT 1', 1);
|
||||
$hgo6 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_abandonedplain" LIMIT 1', 1);
|
||||
$hgo6 = $u->testAction(
|
||||
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_abandonedplain" LIMIT 1', 1
|
||||
);
|
||||
$hgo7 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_izlom16" LIMIT 1', 1);
|
||||
$hgo8 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_sandcity" LIMIT 1', 1);
|
||||
$hgo9 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_emeraldscity" LIMIT 1', 1);
|
||||
@@ -860,7 +751,9 @@ if ($roomSection == 1) {
|
||||
} else {
|
||||
echo '<font color="red"><b>Ничего не получилось...</b></font><br>';
|
||||
}
|
||||
} else echo 'Недостаточно репутации.';
|
||||
} else {
|
||||
echo 'Недостаточно репутации.';
|
||||
}
|
||||
} else {
|
||||
echo '<font color="red"><b>Ничего не получилось...</b></font><br>';
|
||||
}
|
||||
@@ -945,7 +838,11 @@ if ($roomSection == 1) {
|
||||
if (isset($cur_price['nu_' . $val]) && isset($u->rep['nu_' . $val]) && $rt == 1) {
|
||||
$u->rep['nu_' . $val] += $cur_price['nu_' . $val];
|
||||
$r = mysql_query('UPDATE `rep` SET `nu_' . $val . '` = "' . $u->rep['nu_' . $val] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
|
||||
if ($r) $rt = 1; else $rt = 0;
|
||||
if ($r) {
|
||||
$rt = 1;
|
||||
} else {
|
||||
$rt = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($rt == 1) {
|
||||
@@ -957,7 +854,9 @@ if ($roomSection == 1) {
|
||||
} else {
|
||||
echo '<font color="red"><b>Ничего не получилось...</b></font><br>';
|
||||
}
|
||||
} else echo 'Недостаточно репутации.';
|
||||
} else {
|
||||
echo 'Недостаточно репутации.';
|
||||
}
|
||||
|
||||
} else {
|
||||
echo '<font color="red"><b>Ничего не получилось...</b></font><br>';
|
||||
@@ -982,7 +881,11 @@ if ($roomSection == 1) {
|
||||
if (isset($cur_price['nu_' . $val]) && isset($u->rep['nu_' . $val]) && $rt == 1) {
|
||||
$u->rep['nu_' . $val] += $cur_price['nu_' . $val];
|
||||
$r = mysql_query('UPDATE `rep` SET `nu_' . $val . '` = "' . $u->rep['nu_' . $val] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
|
||||
if ($r) $rt = 1; else $rt = 0;
|
||||
if ($r) {
|
||||
$rt = 1;
|
||||
} else {
|
||||
$rt = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($rt == 1) {
|
||||
@@ -997,7 +900,9 @@ if ($roomSection == 1) {
|
||||
} else {
|
||||
echo '<font color="red"><b>Ничего не получилось...</b></font><br>';
|
||||
}
|
||||
} else echo 'Недостаточно репутации.';
|
||||
} else {
|
||||
echo 'Недостаточно репутации.';
|
||||
}
|
||||
} else {
|
||||
echo '<font color="red"><b>Ничего не получилось...</b></font><br>';
|
||||
}
|
||||
@@ -1049,13 +954,19 @@ if ($roomSection == 1) {
|
||||
</table>
|
||||
</fieldset>
|
||||
<?php
|
||||
$chk = mysql_fetch_array(mysql_query('SELECT COUNT(`u`.`id`),SUM(`m`.`price1`) FROM `items_users` AS `u` LEFT JOIN `items_main` AS `m` ON `u`.`item_id` = `m`.`id` WHERE `m`.`type` = "61" AND `u`.`delete` = "0" AND `u`.`inOdet` = "0" AND `u`.`inShop` = "0" AND `u`.`inTransfer` = "0" AND `u`.`uid` = "' . $u->info['id'] . '" LIMIT 1000'));
|
||||
$chk = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT COUNT(`u`.`id`),SUM(`m`.`price1`) FROM `items_users` AS `u` LEFT JOIN `items_main` AS `m` ON `u`.`item_id` = `m`.`id` WHERE `m`.`type` = "61" AND `u`.`delete` = "0" AND `u`.`inOdet` = "0" AND `u`.`inShop` = "0" AND `u`.`inTransfer` = "0" AND `u`.`uid` = "' . $u->info['id'] . '" LIMIT 1000'
|
||||
)
|
||||
);
|
||||
if (isset($_GET['buy777']) && $chk[0] > 0) {
|
||||
?>
|
||||
<fieldset style='margin-top:15px;'>
|
||||
<p><span style="padding-left: 10px">
|
||||
<?php
|
||||
$chk_cl = mysql_query('SELECT `u`.`id`,`m`.`price1` FROM `items_users` AS `u` LEFT JOIN `items_main` AS `m` ON `u`.`item_id` = `m`.`id` WHERE `m`.`type` = "61" AND `u`.`delete` = "0" AND `u`.`inOdet` = "0" AND `u`.`inShop` = "0" AND `u`.`inTransfer` = "0" AND `u`.`uid` = "' . $u->info['id'] . '" LIMIT 1000');
|
||||
$chk_cl = mysql_query(
|
||||
'SELECT `u`.`id`,`m`.`price1` FROM `items_users` AS `u` LEFT JOIN `items_main` AS `m` ON `u`.`item_id` = `m`.`id` WHERE `m`.`type` = "61" AND `u`.`delete` = "0" AND `u`.`inOdet` = "0" AND `u`.`inShop` = "0" AND `u`.`inTransfer` = "0" AND `u`.`uid` = "' . $u->info['id'] . '" LIMIT 1000'
|
||||
);
|
||||
while ($chk_pl = mysql_fetch_array($chk_cl)) {
|
||||
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
|
||||
$x++;
|
||||
@@ -1167,7 +1078,9 @@ if ($roomSection == 1) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . $u->timeOut(60 * 60 * 2 - time() + $dungeon_timeout['time']) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . $u->timeOut(
|
||||
60 * 60 * 2 - time() + $dungeon_timeout['time']
|
||||
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user