<?php
# Скрипт отвечает за
# чистку пещер которые не используются игроком в течении 3 часов
# при учете что пещере больше 5 часов от времени создания.

# Получаем IP
function getIPblock()
{
    if (isset($_SERVER['HTTP_X_REAL_IP'])) {
        return $_SERVER['HTTP_X_REAL_IP'];
    }
    return $_SERVER['REMOTE_ADDR'];
}

# Выполняем проверку безопасности.

/*if(!isset($_GET['test'])) {
    if( $_SERVER['HTTP_CF_CONNECTING_IP'] != $_SERVER['SERVER_ADDR'] && $_SERVER['HTTP_CF_CONNECTING_IP'] != '127.0.0.1' && getIPblock() != '5.187.7.71' ) {    die('Hello pussy!');   }
    if(getIPblock() != $_SERVER['SERVER_ADDR'] && getIPblock() != '127.0.0.1' && getIPblock() != '' && getIPblock() != '5.187.7.71') {
        die(getIPblock().'<br>'.$_SERVER['SERVER_ADDR']);
    }
}*/


define('GAME', true);


include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
//include('_incl_data/class/__user.php');
//include('_incl_data/class/__dungeon.php');

# запуск скрипта.
function start()
{
    # Страница создана 0.0000
    $mtime = microtime();
    $mtime = explode(" ", $mtime);
    $tstart = $mtime[1] + $mtime[0];

    # Выбираем всех ботов.
    # В выборку включено: Позиция бота, Направление куда он может идти, Существует ли рядом Игрок, его координаты и в поединке ли он.
    $query = mysql_query(
        "SELECT
		`dn`.time_start as dn_start,
		`dn`.city as city,
		`dn`.id as dn_id,
		`uc`.countUsers as u_count
	FROM `dungeon_now` as `dn`
	LEFT JOIN `stats` as `st` ON `st`.id = `dn`.uid
	LEFT JOIN `users` as `u` ON `u`.id = `dn`.uid
	LEFT JOIN (SELECT dnow, count(id) as countUsers FROM `stats` group by dnow ) as `uc` ON `uc`.dnow = `dn`.id
    
    WHERE
		`st`.dnow > 0 AND
		`st`.dnow != '' AND 
		`u`.online < " . (time() - 10800) . " AND
		`dn`.time_start < " . (time() - 18000) . " AND
		`dn`.time_finish = '0' AND `dn`.`bsid` = '0'
	GROUP BY `dn`.id
	ORDER BY `dn`.id DESC;"
    );

    while ($dungeon = mysql_fetch_array($query)) {
        if (isset($dungeon['dn_id']) && $dungeon['dn_id'] != 15) {
            # [1] Выкидываем игроков с подземелья и перемещаем его `382` Подвальное помещение(Маг.портала)
            $users = mysql_query('SELECT `id` FROM `stats` WHERE `dnow` = "' . $dungeon['dn_id'] . '" LIMIT 10');
            while ($cur = mysql_fetch_array($users)) {
                mysql_query('UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $cur['id'] . '" LIMIT 1');
                //
                $podval_room = 382;
                //
                print_r($dungeon);
                if ($dungeon['city'] == 'capitalcity') {
                    //$podval_room = 372;
                    $podval_room = 321;
                } elseif ($dungeon['city'] == 'angelscity') {
                    $podval_room = 242;
                }

                mysql_query('UPDATE `users` SET `room` = "' . $podval_room . '" WHERE `id` = "' . $cur['id'] . '" LIMIT 1');
                #echo 'Выбросили игрока №'.$cur['id'].' с подземелья '.$dungeon['dn_id'].' и переместили в <strong>Подвальное помещение</strong><br/>';
                mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $cur['id'] . '" AND `dn_delete` = "1"');
                # echo 'Выбрасываем пещерные предметы у игрока №'.$cur['id'].' <br/>';
            }
            unset($cur);
            # [2] Удаляем Объекты.
            mysql_query('DELETE FROM `dungeon_obj` WHERE `dn` = "' . $dungeon['dn_id'] . '" AND `for_dn` = "0"');
            # echo 'Удаляем объекты в пещере №'.$dungeon['dn_id'].'<br/>';

            # [3] Удаляем Монстров.
            mysql_query('DELETE FROM `dungeon_bots` WHERE `dn` = "' . $dungeon['dn_id'] . '" AND `for_dn` = "0"');
            # echo 'Удаляем монстров в пещере №'.$dungeon['dn_id'].'<br/>';

            # [4] Удаляем Предметы.
            mysql_query('DELETE FROM `dungeon_items` WHERE `dn` = "' . $dungeon['dn_id'] . '" AND `for_dn` = "0"');
            # echo 'Удаляем предметы в пещере №'.$dungeon['dn_id'].'<br/>';

            # [5] Удаляем Действия (actions)
            mysql_query('DELETE FROM `dungeon_actions` WHERE `dn` = "' . $dungeon['dn_id'] . '"');
            # echo 'Удаляем действия в пещере №'.$dungeon['dn_id'].'<br/>';

            # [6] Закрываем Подземелье Dungeon_Now - time_finish = time();
            mysql_query('UPDATE `dungeon_now` SET `time_finish` = "' . time() . '" WHERE `id` = "' . $dungeon['dn_id'] . '" LIMIT 1');

            echo 'Закрыли пещеру №' . $dungeon['dn_id'] . '<br/><br/>';
        } else {
            echo 'Нет данных для обработки.<br/><br/>';
        }
    }
    unset($query, $dungeon, $users);

    $mtime = microtime();
    $mtime = explode(" ", $mtime);
    $mtime = $mtime[1] + $mtime[0];
    $totaltime = ($mtime - $tstart);
    printf("Страница сгенерирована за %f секунд !", $totaltime);
}

# Запускаем выполнение процесса.
start();
