View file vobog-wmzo_ru/travel/index.php

File size: 7.87Kb
<?php
require_once '../system/core.php';
auth();
$title = 'Набеги';
require_once '../system/thead.php';

$is_vip = (isset($user['vip']) && (int)$user['vip'] > time());
$my_power = ($user['t_str'] * 1.5) + ($user['t_def'] * 0.5) + ($user['level'] * 10);

$locations = [
    1 => ['name' => 'Равнины Олимпа', 'pwr' => 50, 'time' => 3600, 'g_min' => 1, 'g_max' => 3],
    2 => ['name' => 'Забытый каньон', 'pwr' => 250, 'time' => 7200, 'g_min' => 3, 'g_max' => 6],
    3 => ['name' => 'Красные скалы', 'pwr' => 700, 'time' => 18000, 'g_min' => 6, 'g_max' => 15],
    4 => ['name' => 'Ледяные пики', 'pwr' => 1500, 'time' => 28800, 'g_min' => 12, 'g_max' => 27],
    5 => ['name' => 'Лес Теней', 'pwr' => 3000, 'time' => 43200, 'g_min' => 21, 'g_max' => 45]
];

$tactics = [
    0 => ['name' => 'Обычный', 'bonus' => 'Стандарт'],
    1 => ['name' => 'Скрытный', 'bonus' => 'Золото х2'],
    2 => ['name' => 'Напролом', 'bonus' => 'Время -20%']
];

if (isset($_GET['start_new'])) {
    $h = (int)$_GET['start_new'];
    $t = (int)($_COOKIE['raid_tactic'] ?? 0);
    if (isset($locations[$h]) && $my_power >= $locations[$h]['pwr']) {
        $check = db_query("SELECT id FROM `travel` WHERE `user` = ? LIMIT 1", [$myID])->fetch();
        if (!$check) {
            $baseTime = $locations[$h]['time'];
            if ($is_vip) $baseTime *= 0.6;
            if ($t == 1) $baseTime *= 1.2;
            if ($t == 2) $baseTime *= 0.8;
            db_query("INSERT INTO `travel` (`user`, `h`, `time`, `step`, `tactic`) VALUES (?, ?, ?, 1, ?)", [$myID, $h, time() + (int)$baseTime, $t]);
        }
    }
    header('Location: index.php'); exit;
}

$travel = db_query("SELECT * FROM `travel` WHERE `user` = ? LIMIT 1", [$myID])->fetch();

if (isset($_GET['end_travel']) && $travel && (int)$travel['step'] === 2) {
    $h = (int)$travel['h'];
    $t = (int)$travel['tactic'];
    $v_m = $is_vip ? 2 : 1;
    $reward_silver = rand($h * 1050, $h * 2400) * $v_m; 
    $reward_exp = rand($h * 450, $h * 900) * $v_m;
    $reward_gold = rand($locations[$h]['g_min'], $locations[$h]['g_max']);
    if ($t == 1) $reward_gold *= 2;
    if ($is_vip) $reward_gold *= 2;
    $res = db_query("DELETE FROM `travel` WHERE `user` = ?", [$myID]);
    if (db_rows_affected($res)) {
        db_query("UPDATE `users` SET `silver` = `silver` + ?, `gold` = `gold` + ?, `exp` = `exp` + ? WHERE `id` = ?", [$reward_silver, $reward_gold, $reward_exp, $myID]);
        $_SESSION['loot'] = ['silver' => $reward_silver, 'gold' => $reward_gold, 'exp' => $reward_exp, 'name' => $locations[$h]['name'], 'h' => $h];
    }
    header('Location: index.php'); exit;
}

echo '<div style="text-align:center; margin-bottom:10px;"><div class="head-new"><div class="b-new" style="display:inline-block; width:90%;">НАБЕГИ</div></div></div>';
show_msg();

$exp_img = '<img src="/style/icons/exp.png" style="width:13px; vertical-align:middle;">';
$sil_img = '<img src="/design/images/head-money-new-style/silver.png" style="width:13px; vertical-align:middle;">';
$gold_img = '<img src="/design/images/head-money-new-style/gold.png" style="width:13px; vertical-align:middle;">';
$pwr_img = '<img src="/design/images/head-new-style/str.png" style="width:13px; vertical-align:middle;">';

if (isset($_SESSION['loot'])) {
    $l = $_SESSION['loot'];
    echo '<div class="msg-new" style="text-align:center; border:1px solid #ffcc00; padding:15px;">';
    echo '<img src="/style/travel/location_'.$l['h'].'.png" style="width:80px; margin-bottom:10px; border-radius:5px; border:1px solid #ffcc00;"><br>';
    echo '<b style="color:#fff;">Успешный набег!</b><br><br>';
    echo '<div style="background:rgba(0,0,0,0.3); padding:10px; border-radius:5px;">';
    echo '<span style="color:#00ff00;">'.$exp_img.' +'.n_f($l['exp']).' | '.$sil_img.' +'.n_f($l['silver']).'</span>';
    if ($l['gold'] > 0) echo '<br><span style="color:#ffcc00; font-weight:bold;">'.$gold_img.' +'.n_f($l['gold']).' Золота</span>';
    echo '</div></div>';
    echo '<div style="margin-top:15px; text-align:center;"><a href="index.php" class="bbtn-new" style="display:inline-block; width:220px; text-decoration:none;"><span class="lbl-new">ПРОДОЛЖИТЬ</span></a></div>';
    unset($_SESSION['loot']);
} elseif (!$travel) {
    if ($is_vip) echo '<div style="text-align:center; color:#ffcc00; font-size:11px; margin-bottom:10px;"><img src="/style/icons/premium.png" width="12"> VIP: Награды x2 | Время -40%</div>';
    echo '<div style="text-align:center; margin-bottom:12px;"><select onchange="document.cookie=\'raid_tactic=\'+this.value+\';path=/\'; location.reload();" style="background:#183543; color:#fff; border:1px solid #365e71; font-size:11px; padding:6px; border-radius:4px;">';
    foreach($tactics as $tid => $tc) {
        echo '<option value="'.$tid.'" '.((int)($_COOKIE['raid_tactic'] ?? 0) == $tid ? 'selected' : '').'>Тактика: '.$tc['name'].' ('.$tc['bonus'].')</option>';
    }
    echo '</select></div>';
    foreach ($locations as $id => $data) {
        $lock = ($my_power < $data['pwr']);
        $real_time = $is_vip ? ($data['time'] * 0.6) : $data['time'];
        echo '<div class="msg-new" style="'.($lock ? 'opacity:0.6;' : '').' padding:8px;">';
        echo '<table width="100%"><tr>';
        echo '<td width="65"><img src="/style/travel/location_'.$id.'.png" style="width:60px; height:60px; border-radius:4px; border:1px solid #365e71;"></td>';
        echo '<td style="padding-left:10px;">';
        echo '<div style="color:#fff; font-weight:bold; font-size:12px;">'.$data['name'].' '.($is_vip ? '<img src="/style/icons/premium.png" width="10">' : '').'</div>';
        echo '<div style="font-size:10px; color:#9bc2e0; margin:3px 0;">⏲ '.round($real_time/3600, 1).' ч. | '.$pwr_img.' <span style="color:'.($lock?'#ff4444':'#00ff00').';">'.n_f($data['pwr']).'</span></div>';
        echo '<div style="font-size:10px; color:#ffea00;">'.$gold_img.' '.($is_vip ? $data['g_min']*2 : $data['g_min']).'-'.($is_vip ? $data['g_max']*2 : $data['g_max']).'</div>';
        echo '</td><td align="right">';
        if (!$lock) {
            echo '<a href="?start_new='.$id.'" class="bbtn-new" style="display:inline-block; padding:8px 12px; text-decoration:none;"><span class="lbl-new" style="font-size:10px;">В ПУТЬ</span></a>';
        } else {
            echo '<img src="/design/images/head-new-style/block.png" width="18" style="opacity:0.5; margin-right:15px;">';
        }
        echo '</td></tr></table></div>';
    }
} else {
    $timeLeft = (int)$travel['time'] - time();
    if ($timeLeft <= 0 && (int)$travel['step'] === 1) {
        db_query("UPDATE `travel` SET `step` = 2 WHERE `user` = ?", [$myID]);
        header('Location: index.php'); exit;
    }
    echo '<div class="msg-new" style="text-align:center; padding:20px;">';
    echo '<img src="/style/travel/location_'.$travel['h'].'.png" style="width:120px; border-radius:8px; border:1px solid #365e71; margin-bottom:15px;"><br>';
    if ((int)$travel['step'] === 1) {
        echo '<b style="color:#fff;">Вы в пути: ' . $locations[$travel['h']]['name'] . '</b><br><br>';
        echo '<div style="color:#00ff00; font-size:24px; font-weight:bold;" id="timer">' . gmdate("H:i:s", max(0, $timeLeft)) . '</div>';
        echo '<script>var sec='.$timeLeft.'; function tick(){ if(sec<=0){location.reload();return;} sec--; var h=Math.floor(sec/3600), m=Math.floor((sec%3600)/60), s=sec%60; document.getElementById("timer").innerHTML=(h<10?"0"+h:h)+":"+(m<10?"0"+m:m)+":"+(s<10?"0"+s:s); setTimeout(tick,1000); } tick();</script>';
    } else {
        echo '<b style="color:#00ff00; font-size:16px;">Набег завершен!</b><br><br>';
        echo '<a href="?end_travel=1" class="bbtn-new" style="display:inline-block; width:200px; text-decoration:none;"><span class="lbl-new">ЗАБРАТЬ ДОБЫЧУ</span></a>';
    }
    echo '</div>';
}
require_once '../system/tfoot.php'; 
?>