$SecTarget = 'Beta';
}
if (!isset($Game_Scrn_Type)) {
    $Game_Scrn_Type = 1;
}
postHead('');
AuthUser("{$Pl_Value['USERNAME']}", "{$Pl_Value['PASSWORD']}");
if ($CFU_Time >= $TIMEAUTH + $TIME_OUT_TIME || $TIMEAUTH <= $CFU_Time - $TIME_OUT_TIME) {
    echo "連線逾時!<br>請重新登入!";
    exit;
}
mt_srand((double) microtime() * 1000000);
include 'includes/sfo.class.php';
include 'includes/obattle.ext.php';
$Pl = new oBattle();
$Pl->SetUser($Pl_Value['USERNAME']);
$Pl->FetchPlayer(true, true);
if ($CFU_Time - $Pl->Player['btltime'] < $Btl_Intv) {
    echo "距離上次攻擊或移動的時間太短了!<br>請在 " . ($Btl_Intv - ($CFU_Time - $Pl->Player['btltime'])) . " 秒後再進行攻擊!";
    exit;
}
if ($Pl->Player['msuit']) {
    $Pl->ProcessAllWeapon();
    $Pl_Repaired = RepairPlayer($Pl->Player, $Pl->Eq['D'], $Pl->Eq['E']);
    $Pl->Player['hp'] = $Pl_Repaired['hp'];
    $Pl->Player['en'] = $Pl_Repaired['en'];
    $Pl->Player['sp'] = $Pl_Repaired['sp'];
    $Pl->Player['status'] = $Pl_Repaired['status'];
    $t_now = $Pl->Player['time1'] = $Pl_Repaired['time1'];
    if ($Pl->Player['status']) {
        echo "修理中,無法出擊。";
 include 'battle_function.php';
 //
 // Pre-phase
 //
 $AtkFortFlag = 0;
 $Op_Name = isset($Op_Name) ? $Op_Name : '';
 $isAtkFortName = $Op_Name == '<AttackFort>';
 if (!$Op_Name) {
     echo "請先挑選對手!";
     exit;
 } elseif ($Op_Name == $Pl_Value['USERNAME']) {
     echo "不能攻擊自己!";
     exit;
 } elseif (!$isAtkFortName) {
     $Op = new oBattle();
     $Op->SetUser($Op_Name);
     $Op->FetchPlayer(true);
 } else {
     if ($AttackFort != 'True' || $Area["User"]["hp"] <= 0) {
         echo "不能攻擊要塞";
         postFooter();
         exit;
     }
     //Search for Defenders
     if (count($Defenders) > 0) {
         $d_sql_where = '(';
         $i = 0;
         foreach ($Defenders as $u) {
             $d_sql_where = $d_sql_where . ($i == 0 ? '' : ' OR') . " `ge`.`username` = '{$u}' ";
             $i++;
         }