diff --git a/Class/class.combat.php b/Class/class.combat.php new file mode 100644 index 0000000..093800b --- /dev/null +++ b/Class/class.combat.php @@ -0,0 +1,278 @@ += 1) { + $this->ATvais[] = array($i, $flotteAT['vaisseau'.$i], array(array($nomvais_pv[$i-1], $flotteAT['vaisseau'.$i])), array(array($nomvais_bc[$i-1], $flotteAT['vaisseau'.$i]))); + } + } + + //Génération des vaisseaux défenseurs + for ($i=1 ; $i<=12 ; $i++) { + if ($flotteEN['vaisseau_'.$i] >= 1) { + $this->ENvais[] = array($i, $flotteEN['vaisseau_'.$i], array(array($nomvais_pv[$i-1], $flotteEN['vaisseau_'.$i])), array(array($nomvais_bc[$i-1], $flotteEN['vaisseau_'.$i]))); + } + } + + //Génération des défenses défenseurs + for ($i=1 ; $i<=5 ; $i++) { + if ($defEN['def_'.$i] >= 1) { + $this->ENdef[] = array($i, $defEN['def_'.$i], array(array($nomvais_pv[$i-1], $defEN['def_'.$i])), array(array($nomvais_bc[$i-1], $defEN['def_'.$i]))); + } + } + } + + /** + * Change la tactique de l'attaquant + * @param int $tactique numéro de la tactique choisie + * + * @return void + * @access public + */ + function changerTactiqueAT($tactique) { + $this->ATtactique = ceil($tactique); + } + + /** + * Change la tactique du défenseur + * @param int $tactique numéro de la tactique choisie + * + * @return void + * @access public + */ + function changerTactiqueEN($tactique) { + $this->ENtactique = ceil($tactique); + } + + /** + * Régénére les boucliers + * @param int $pourcentage pourcentage de régénération + * @param bool $attaquant régénére le bouclier de l'attaquant si true, sinon régénrére celui du défenseur + * @param bool $retour si true, renvoie true ou false si !le pourcentage a été consommé ou non, si false, retrourne ne nombre de pourcentage restant + * + * @return float pourcentage non utilisé + * @access public + */ + function regenereBC($pourcentage, $attaquant, $retour = false) { + include('includes/vars.php'); + if ($attaquant) { + $count = count($this->ATvais); + $enplus = 0; + $norm = 0; + for ($i=0 ; $i<$count ; $i++) { + $type = $this->ATvais[$i][0]-1; + $maxbc = $nomvais_bc[$type]; + $ajout = $maxbc*$pourcentage/100; + $norm += $maxbc * $this->ATvais[$i][1]; + + $cntbc = count($this->ATvais[$i][3]); + for ($j=0 ; $j<$cntbc ; $j++) { + if ($this->ATvais[$i][3][$j][0] < $maxbc) { + $this->ATvais[$i][3][$j][0] += $ajout; + } + else $enplus += $ajout * $this->ATvais[$i][3][$j][1]; + if ($this->ATvais[$i][3][$j][0] > $maxbc) { + $enplus += ($this->ATvais[$i][3][$j][0] - $maxbc)*$this->ATvais[$i][3][$j][1]; + $this->ATvais[$i][3][$j][0] = $maxbc; + } + } + } + if ($retour) { + if($enplus/$norm == 1) return true; + else return false; + } + else return $enplus/$norm; + } + else { + $count = count($this->ENvais); + $enplus = 0; + $norm = 0; + for ($i=0 ; $i<$count ; $i++) { + $type = $this->ENvais[$i][0]-1; + $maxbc = $nomvais_bc[$type]; + $ajout = $maxbc*$pourcentage/100; + $norm += $maxbc * $this->ENvais[$i][1]; + + $cntbc = count($this->ENvais[$i][3]); + for ($j=0 ; $j<$cntbc ; $j++) { + if ($this->ENvais[$i][3][$j][0] < $maxbc) { + $this->ENvais[$i][3][$j][0] += $ajout; + } + else $enplus += $ajout * $this->ENvais[$i][3][$j][1]; + if ($this->ENvais[$i][3][$j][0] > $maxbc) { + $enplus += ($this->ENvais[$i][3][$j][0] - $maxbc)*$this->ENvais[$i][3][$j][1]; + $this->ENvais[$i][3][$j][0] = $maxbc; + } + } + } + $return = $enplus/$norm; + + //Défenses + $count = count($this->ENdef); + $enplus = 0; + $norm = 0; + for ($i=0 ; $i<$count ; $i++) { + $type = $this->ENdef[$i][0]-1; + $maxbc = $defense_bc[$type]; + $ajout = $maxbc*$pourcentage/100; + $norm += $maxbc * $this->ENdef[$i][1]; + + $cntbc = count($this->ENdef[$i][3]); + for ($j=0 ; $j<$cntbc ; $j++) { + if ($this->ENdef[$i][3][$j][0] < $maxbc) { + $this->ENdef[$i][3][$j][0] += $ajout; + } + else $enplus += $ajout * $this->ENdef[$i][3][$j][1]; + if ($this->ENdef[$i][3][$j][0] > $maxbc) { + $enplus += ($this->ENdef[$i][3][$j][0] - $maxbc)*$this->ENdef[$i][3][$j][1]; + $this->ENdef[$i][3][$j][0] = $maxbc; + } + } + } + $return += $enplus/$norm; + return $return/2; + } + } + + /** + * Calcul la puissance d'attaque disponible + * @param int $pourcentage pourcentage de régénération + * @param bool $attaquant calcul les points de l'attaquant si true, sinon calcul pour le défenseur + * + * @return int points disponibles + * @access public + */ + function calcAttaque($pourcentage, $attaquant) { + include('includes/vars.php'); + if ($attaquant) { + $puissance = 0; + $count = count($this->ATvais); + for ($i=0 ; $i<$count ; $i++) { + $maxat = $nomvais_at[$this->ATvais[$i][0]-1]; + $puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1]; + } + return $puissance; + } + else { + $puissance = 0; + $count = count($this->ENvais); + for ($i=0 ; $i<$count ; $i++) { + $maxat = $nomvais_at[$this->ENvais[$i][0]-1]; + $puissance += $maxat * $pourcentage/100 * $this->ENvais[$i][1]; + } + + //Défenses + $count = count($this->ENdef); + for ($i=0 ; $i<$count ; $i++) { + $maxat = $defense_at[$this->ENdef[$i][0]-1]; + $puissance += $maxat * $pourcentage/100 * $this->ENdef[$i][1]; + } + return $puissance; + } + } + + /** + * Attaque les vaisseaux adverses + * @param int $points points d'attaque disponible pour l'attaque + * @param bool $attaquant attaque le défenseur si true, sinon attaque l'attaquant + * + * @return void + * @access public + */ + function attaquerVais($points, $attaquant) { + if ($attaquant) { + while($points > 0) { + // Calcul du nombre de vaisseaux et défenses à attaquer + $nbvais = 0; + $nb = count($this->ENvais); + for ($i=0 ; $i<$nb ; $i++) { + $nbvais += $this->ENvais[$i][1]; + } + $nb = count($this->ENdef); + for ($i=0 ; $i<$nb ; $i++) { + $nbvais += $this->ENdef[$i][1]; + } + + //S'il ne reste plus de vaisseaux et de défenses, on arrête la boucle + if ($nbvais < 0 || $points < 0) break; + + //Calcul du nombre de points qui sera enlevé par vaisseau ou défense + $ppv = $points / $nbvais; + + //On lance l'attaque + $nb = count($this->ENvais); + for ($i=0 ; $i<$nb ; $i++) { + $persage = 0; //Initialisation du nombre de point restant pour attaquer les PV + $nbpersage = 0; //Initialisation du nombre de vaisseaux affectuer par le persage + $nbj = count($this->ENvais[$i][3]); //Nombre de vaisseaux dans le groupe + + //Attaque des boucliers + for ($j=0 ; $j<$nbj ; $j++) { + $this->ENvais[$i][3][$j][0] -= $ppv; + if ($this->ENvais[$i][3][$j][0] <= 0) { + $persage += abs($this->ENvais[$i][3][$j][0]); + $nbpersage += $this->ENvais[$i][3][$j][1]; + $this->ENvais[$i][3][$j][0] = 0; + } + } + + //Attaque des PV + while($persage > 0) { + $j = count($this->ENvais[$i][2])-1; //Nombre de vaisseaux dans le groupe + if ($this->ENvais[$i][2][$j][0] * $this->ENvais[$i][2][$j][1] < $persage * $nbpersage) { //Si il y a suffisament de point de persage pour détruire tous les vaisseaux de cette ligne + //On efface les vaisseaux du nombre total + $nbvais -= $this->ENvais[$i][2][$j][1]; + $this->ENvais[$i][1] -= $this->ENvais[$i][2][$j][1]; + + //On efface le groupe + unset($this->ENvais[$i][2][$j]); + + //S'il ne reste aucun vaisseaux du type, on le supprime + if ($j == 0 || $this->ENvais[$i][1] == 0) { + unset($this->ENvais[$i]); + $persage = 0; + } + } + else { //Attaque vaisseau par vaisseau dans le groupe + $nbmod = floor(($this->ENvais[$i][2][$j][0] * $this->ENvais[$i][2][$j][1])/($persage * $nbpersage)); + $this->ENvais[$i][1] -= $nbmod; + $nbvais -= $nbmod; + + } + } + } + } + } + } + + +} +?> \ No newline at end of file diff --git a/Class/class.phpmailer.php b/Class/class.phpmailer.php new file mode 100644 index 0000000..5ddad5b --- /dev/null +++ b/Class/class.phpmailer.php @@ -0,0 +1,1530 @@ +ContentType = "text/html"; + else + $this->ContentType = "text/plain"; + } + + /** + * Sets Mailer to send message using SMTP. + * @return void + */ + function IsSMTP() { + $this->Mailer = "smtp"; + } + + /** + * Sets Mailer to send message using PHP mail() function. + * @return void + */ + function IsMail() { + $this->Mailer = "mail"; + } + + /** + * Sets Mailer to send message using the $Sendmail program. + * @return void + */ + function IsSendmail() { + $this->Mailer = "sendmail"; + } + + /** + * Sets Mailer to send message using the qmail MTA. + * @return void + */ + function IsQmail() { + $this->Sendmail = "/var/qmail/bin/sendmail"; + $this->Mailer = "sendmail"; + } + + + ///////////////////////////////////////////////// + // RECIPIENT METHODS + ///////////////////////////////////////////////// + + /** + * Adds a "To" address. + * @param string $address + * @param string $name + * @return void + */ + function AddAddress($address, $name = "") { + $cur = count($this->to); + $this->to[$cur][0] = trim($address); + $this->to[$cur][1] = $name; + } + + /** + * Adds a "Cc" address. Note: this function works + * with the SMTP mailer on win32, not with the "mail" + * mailer. + * @param string $address + * @param string $name + * @return void + */ + function AddCC($address, $name = "") { + $cur = count($this->cc); + $this->cc[$cur][0] = trim($address); + $this->cc[$cur][1] = $name; + } + + /** + * Adds a "Bcc" address. Note: this function works + * with the SMTP mailer on win32, not with the "mail" + * mailer. + * @param string $address + * @param string $name + * @return void + */ + function AddBCC($address, $name = "") { + $cur = count($this->bcc); + $this->bcc[$cur][0] = trim($address); + $this->bcc[$cur][1] = $name; + } + + /** + * Adds a "Reply-to" address. + * @param string $address + * @param string $name + * @return void + */ + function AddReplyTo($address, $name = "") { + $cur = count($this->ReplyTo); + $this->ReplyTo[$cur][0] = trim($address); + $this->ReplyTo[$cur][1] = $name; + } + + + ///////////////////////////////////////////////// + // MAIL SENDING METHODS + ///////////////////////////////////////////////// + + /** + * Creates message and assigns Mailer. If the message is + * not sent successfully then it returns false. Use the ErrorInfo + * variable to view description of the error. + * @return bool + */ + function Send() { + $header = ""; + $body = ""; + + if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) + { + $this->SetError($this->Lang("provide_address")); + return false; + } + + // Set whether the message is multipart/alternative + if(!empty($this->AltBody)) + $this->ContentType = "multipart/alternative"; + + $this->SetMessageType(); + $header .= $this->CreateHeader(); + $body = $this->CreateBody(); + + if($body == "") { return false; } + + // Choose the mailer + if($this->Mailer == "sendmail") + { + if(!$this->SendmailSend($header, $body)) + return false; + } + elseif($this->Mailer == "mail") + { + if(!$this->MailSend($header, $body)) + return false; + } + elseif($this->Mailer == "smtp") + { + if(!$this->SmtpSend($header, $body)) + return false; + } + else + { + $this->SetError($this->Mailer . $this->Lang("mailer_not_supported")); + return false; + } + + return true; + } + + /** + * Sends mail using the $Sendmail program. + * @access private + * @return bool + */ + function SendmailSend($header, $body) { + if ($this->Sender != "") + $sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender); + else + $sendmail = sprintf("%s -oi -t", $this->Sendmail); + + if(!@$mail = popen($sendmail, "w")) + { + $this->SetError($this->Lang("execute") . $this->Sendmail); + return false; + } + + fputs($mail, $header); + fputs($mail, $body); + + $result = pclose($mail) >> 8 & 0xFF; + if($result != 0) + { + $this->SetError($this->Lang("execute") . $this->Sendmail); + return false; + } + + return true; + } + + /** + * Sends mail using the PHP mail() function. + * @access private + * @return bool + */ + function MailSend($header, $body) { + $to = ""; + for($i = 0; $i < count($this->to); $i++) + { + if($i != 0) { $to .= ", "; } + $to .= $this->to[$i][0]; + } + + if ($this->Sender != "" && strlen(ini_get("safe_mode"))< 1) + { + $old_from = ini_get("sendmail_from"); + ini_set("sendmail_from", $this->Sender); + $params = sprintf("-oi -f %s", $this->Sender); + $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, + $header, $params); + } + else + $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header); + + if (isset($old_from)) + ini_set("sendmail_from", $old_from); + + if(!$rt) + { + $this->SetError($this->Lang("instantiate")); + return false; + } + + return true; + } + + /** + * Sends mail via SMTP using PhpSMTP (Author: + * Chris Ryan). Returns bool. Returns false if there is a + * bad MAIL FROM, RCPT, or DATA input. + * @access private + * @return bool + */ + function SmtpSend($header, $body) { + include_once($this->PluginDir . "class.smtp.php"); + $error = ""; + $bad_rcpt = array(); + + if(!$this->SmtpConnect()) + return false; + + $smtp_from = ($this->Sender == "") ? $this->From : $this->Sender; + if(!$this->smtp->Mail($smtp_from)) + { + $error = $this->Lang("from_failed") . $smtp_from; + $this->SetError($error); + $this->smtp->Reset(); + return false; + } + + // Attempt to send attach all recipients + for($i = 0; $i < count($this->to); $i++) + { + if(!$this->smtp->Recipient($this->to[$i][0])) + $bad_rcpt[] = $this->to[$i][0]; + } + for($i = 0; $i < count($this->cc); $i++) + { + if(!$this->smtp->Recipient($this->cc[$i][0])) + $bad_rcpt[] = $this->cc[$i][0]; + } + for($i = 0; $i < count($this->bcc); $i++) + { + if(!$this->smtp->Recipient($this->bcc[$i][0])) + $bad_rcpt[] = $this->bcc[$i][0]; + } + + if(count($bad_rcpt) > 0) // Create error message + { + for($i = 0; $i < count($bad_rcpt); $i++) + { + if($i != 0) { $error .= ", "; } + $error .= $bad_rcpt[$i]; + } + $error = $this->Lang("recipients_failed") . $error; + $this->SetError($error); + $this->smtp->Reset(); + return false; + } + + if(!$this->smtp->Data($header . $body)) + { + $this->SetError($this->Lang("data_not_accepted")); + $this->smtp->Reset(); + return false; + } + if($this->SMTPKeepAlive == true) + $this->smtp->Reset(); + else + $this->SmtpClose(); + + return true; + } + + /** + * Initiates a connection to an SMTP server. Returns false if the + * operation failed. + * @access private + * @return bool + */ + function SmtpConnect() { + if($this->smtp == NULL) { $this->smtp = new SMTP(); } + + $this->smtp->do_debug = $this->SMTPDebug; + $hosts = explode(";", $this->Host); + $index = 0; + $connection = ($this->smtp->Connected()); + + // Retry while there is no connection + while($index < count($hosts) && $connection == false) + { + if(strstr($hosts[$index], ":")) + list($host, $port) = explode(":", $hosts[$index]); + else + { + $host = $hosts[$index]; + $port = $this->Port; + } + + if($this->smtp->Connect($host, $port, $this->Timeout)) + { + if ($this->Helo != '') + $this->smtp->Hello($this->Helo); + else + $this->smtp->Hello($this->ServerHostname()); + + if($this->SMTPAuth) + { + if(!$this->smtp->Authenticate($this->Username, + $this->Password)) + { + $this->SetError($this->Lang("authenticate")); + $this->smtp->Reset(); + $connection = false; + } + } + $connection = true; + } + $index++; + } + if(!$connection) + $this->SetError($this->Lang("connect_host")); + + return $connection; + } + + /** + * Closes the active SMTP session if one exists. + * @return void + */ + function SmtpClose() { + if($this->smtp != NULL) + { + if($this->smtp->Connected()) + { + $this->smtp->Quit(); + $this->smtp->Close(); + } + } + } + + /** + * Sets the language for all class error messages. Returns false + * if it cannot load the language file. The default language type + * is English. + * @param string $lang_type Type of language (e.g. Portuguese: "br") + * @param string $lang_path Path to the language file directory + * @access public + * @return bool + */ + function SetLanguage($lang_type, $lang_path = "") { + if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) + include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); + else if(file_exists($lang_path.'phpmailer.lang-en.php')) + include($lang_path.'phpmailer.lang-en.php'); + else + { + $this->SetError("Could not load language file"); + return false; + } + $this->language = $PHPMAILER_LANG; + + return true; + } + + ///////////////////////////////////////////////// + // MESSAGE CREATION METHODS + ///////////////////////////////////////////////// + + /** + * Creates recipient headers. + * @access private + * @return string + */ + function AddrAppend($type, $addr) { + $addr_str = $type . ": "; + $addr_str .= $this->AddrFormat($addr[0]); + if(count($addr) > 1) + { + for($i = 1; $i < count($addr); $i++) + $addr_str .= ", " . $this->AddrFormat($addr[$i]); + } + $addr_str .= $this->LE; + + return $addr_str; + } + + /** + * Formats an address correctly. + * @access private + * @return string + */ + function AddrFormat($addr) { + if(empty($addr[1])) + $formatted = $addr[0]; + else + { + $formatted = $this->EncodeHeader($addr[1], 'phrase') . " <" . + $addr[0] . ">"; + } + + return $formatted; + } + + /** + * Wraps message for use with mailers that do not + * automatically perform wrapping and for quoted-printable. + * Original written by philippe. + * @access private + * @return string + */ + function WrapText($message, $length, $qp_mode = false) { + $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; + + $message = $this->FixEOL($message); + if (substr($message, -1) == $this->LE) + $message = substr($message, 0, -1); + + $line = explode($this->LE, $message); + $message = ""; + for ($i=0 ;$i < count($line); $i++) + { + $line_part = explode(" ", $line[$i]); + $buf = ""; + for ($e = 0; $e $length)) + { + $space_left = $length - strlen($buf) - 1; + if ($e != 0) + { + if ($space_left > 20) + { + $len = $space_left; + if (substr($word, $len - 1, 1) == "=") + $len--; + elseif (substr($word, $len - 2, 1) == "=") + $len -= 2; + $part = substr($word, 0, $len); + $word = substr($word, $len); + $buf .= " " . $part; + $message .= $buf . sprintf("=%s", $this->LE); + } + else + { + $message .= $buf . $soft_break; + } + $buf = ""; + } + while (strlen($word) > 0) + { + $len = $length; + if (substr($word, $len - 1, 1) == "=") + $len--; + elseif (substr($word, $len - 2, 1) == "=") + $len -= 2; + $part = substr($word, 0, $len); + $word = substr($word, $len); + + if (strlen($word) > 0) + $message .= $part . sprintf("=%s", $this->LE); + else + $buf = $part; + } + } + else + { + $buf_o = $buf; + $buf .= ($e == 0) ? $word : (" " . $word); + + if (strlen($buf) > $length and $buf_o != "") + { + $message .= $buf_o . $soft_break; + $buf = $word; + } + } + } + $message .= $buf . $this->LE; + } + + return $message; + } + + /** + * Set the body wrapping. + * @access private + * @return void + */ + function SetWordWrap() { + if($this->WordWrap < 1) + return; + + switch($this->message_type) + { + case "alt": + // fall through + case "alt_attachment": + $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); + break; + default: + $this->Body = $this->WrapText($this->Body, $this->WordWrap); + break; + } + } + + /** + * Assembles message header. + * @access private + * @return string + */ + function CreateHeader() { + $result = ""; + + // Set the boundaries + $uniq_id = md5(uniqid(time())); + $this->boundary[1] = "b1_" . $uniq_id; + $this->boundary[2] = "b2_" . $uniq_id; + + $result .= $this->Received(); + $result .= $this->HeaderLine("Date", $this->RFCDate()); + if($this->Sender == "") + $result .= $this->HeaderLine("Return-Path", trim($this->From)); + else + $result .= $this->HeaderLine("Return-Path", trim($this->Sender)); + + // To be created automatically by mail() + if($this->Mailer != "mail") + { + if(count($this->to) > 0) + $result .= $this->AddrAppend("To", $this->to); + else if (count($this->cc) == 0) + $result .= $this->HeaderLine("To", "undisclosed-recipients:;"); + if(count($this->cc) > 0) + $result .= $this->AddrAppend("Cc", $this->cc); + } + + $from = array(); + $from[0][0] = trim($this->From); + $from[0][1] = $this->FromName; + $result .= $this->AddrAppend("From", $from); + + // sendmail and mail() extract Bcc from the header before sending + if((($this->Mailer == "sendmail") || ($this->Mailer == "mail")) && (count($this->bcc) > 0)) + $result .= $this->AddrAppend("Bcc", $this->bcc); + + if(count($this->ReplyTo) > 0) + $result .= $this->AddrAppend("Reply-to", $this->ReplyTo); + + // mail() sets the subject itself + if($this->Mailer != "mail") + $result .= $this->HeaderLine("Subject", $this->EncodeHeader(trim($this->Subject))); + + $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); + $result .= $this->HeaderLine("X-Priority", $this->Priority); + $result .= $this->HeaderLine("X-Mailer", "PHPMailer [version " . $this->Version . "]"); + + if($this->ConfirmReadingTo != "") + { + $result .= $this->HeaderLine("Disposition-Notification-To", + "<" . trim($this->ConfirmReadingTo) . ">"); + } + + // Add custom headers + for($index = 0; $index < count($this->CustomHeader); $index++) + { + $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), + $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); + } + $result .= $this->HeaderLine("MIME-Version", "1.0"); + + switch($this->message_type) + { + case "plain": + $result .= $this->HeaderLine("Content-Transfer-Encoding", $this->Encoding); + $result .= sprintf("Content-Type: %s; charset=\"%s\"", + $this->ContentType, $this->CharSet); + break; + case "attachments": + // fall through + case "alt_attachments": + if($this->InlineImageExists()) + { + $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", + "multipart/related", $this->LE, $this->LE, + $this->boundary[1], $this->LE); + } + else + { + $result .= $this->HeaderLine("Content-Type", "multipart/mixed;"); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + } + break; + case "alt": + $result .= $this->HeaderLine("Content-Type", "multipart/alternative;"); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + } + + if($this->Mailer != "mail") + $result .= $this->LE.$this->LE; + + return $result; + } + + /** + * Assembles the message body. Returns an empty string on failure. + * @access private + * @return string + */ + function CreateBody() { + $result = ""; + + $this->SetWordWrap(); + + switch($this->message_type) + { + case "alt": + $result .= $this->GetBoundary($this->boundary[1], "", + "text/plain", ""); + $result .= $this->EncodeString($this->AltBody, $this->Encoding); + $result .= $this->LE.$this->LE; + $result .= $this->GetBoundary($this->boundary[1], "", + "text/html", ""); + + $result .= $this->EncodeString($this->Body, $this->Encoding); + $result .= $this->LE.$this->LE; + + $result .= $this->EndBoundary($this->boundary[1]); + break; + case "plain": + $result .= $this->EncodeString($this->Body, $this->Encoding); + break; + case "attachments": + $result .= $this->GetBoundary($this->boundary[1], "", "", ""); + $result .= $this->EncodeString($this->Body, $this->Encoding); + $result .= $this->LE; + + $result .= $this->AttachAll(); + break; + case "alt_attachments": + $result .= sprintf("--%s%s", $this->boundary[1], $this->LE); + $result .= sprintf("Content-Type: %s;%s" . + "\tboundary=\"%s\"%s", + "multipart/alternative", $this->LE, + $this->boundary[2], $this->LE.$this->LE); + + // Create text body + $result .= $this->GetBoundary($this->boundary[2], "", + "text/plain", "") . $this->LE; + + $result .= $this->EncodeString($this->AltBody, $this->Encoding); + $result .= $this->LE.$this->LE; + + // Create the HTML body + $result .= $this->GetBoundary($this->boundary[2], "", + "text/html", "") . $this->LE; + + $result .= $this->EncodeString($this->Body, $this->Encoding); + $result .= $this->LE.$this->LE; + + $result .= $this->EndBoundary($this->boundary[2]); + + $result .= $this->AttachAll(); + break; + } + if($this->IsError()) + $result = ""; + + return $result; + } + + /** + * Returns the start of a message boundary. + * @access private + */ + function GetBoundary($boundary, $charSet, $contentType, $encoding) { + $result = ""; + if($charSet == "") { $charSet = $this->CharSet; } + if($contentType == "") { $contentType = $this->ContentType; } + if($encoding == "") { $encoding = $this->Encoding; } + + $result .= $this->TextLine("--" . $boundary); + $result .= sprintf("Content-Type: %s; charset = \"%s\"", + $contentType, $charSet); + $result .= $this->LE; + $result .= $this->HeaderLine("Content-Transfer-Encoding", $encoding); + $result .= $this->LE; + + return $result; + } + + /** + * Returns the end of a message boundary. + * @access private + */ + function EndBoundary($boundary) { + return $this->LE . "--" . $boundary . "--" . $this->LE; + } + + /** + * Sets the message type. + * @access private + * @return void + */ + function SetMessageType() { + if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) + $this->message_type = "plain"; + else + { + if(count($this->attachment) > 0) + $this->message_type = "attachments"; + if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) + $this->message_type = "alt"; + if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) + $this->message_type = "alt_attachments"; + } + } + + /** + * Returns a formatted header line. + * @access private + * @return string + */ + function HeaderLine($name, $value) { + return $name . ": " . $value . $this->LE; + } + + /** + * Returns a formatted mail line. + * @access private + * @return string + */ + function TextLine($value) { + return $value . $this->LE; + } + + ///////////////////////////////////////////////// + // ATTACHMENT METHODS + ///////////////////////////////////////////////// + + /** + * Adds an attachment from a path on the filesystem. + * Returns false if the file could not be found + * or accessed. + * @param string $path Path to the attachment. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return bool + */ + function AddAttachment($path, $name = "", $encoding = "base64", + $type = "application/octet-stream") { + if(!@is_file($path)) + { + $this->SetError($this->Lang("file_access") . $path); + return false; + } + + $filename = basename($path); + if($name == "") + $name = $filename; + + $cur = count($this->attachment); + $this->attachment[$cur][0] = $path; + $this->attachment[$cur][1] = $filename; + $this->attachment[$cur][2] = $name; + $this->attachment[$cur][3] = $encoding; + $this->attachment[$cur][4] = $type; + $this->attachment[$cur][5] = false; // isStringAttachment + $this->attachment[$cur][6] = "attachment"; + $this->attachment[$cur][7] = 0; + + return true; + } + + /** + * Attaches all fs, string, and binary attachments to the message. + * Returns an empty string on failure. + * @access private + * @return string + */ + function AttachAll() { + // Return text of body + $mime = array(); + + // Add all attachments + for($i = 0; $i < count($this->attachment); $i++) + { + // Check for string attachment + $bString = $this->attachment[$i][5]; + if ($bString) + $string = $this->attachment[$i][0]; + else + $path = $this->attachment[$i][0]; + + $filename = $this->attachment[$i][1]; + $name = $this->attachment[$i][2]; + $encoding = $this->attachment[$i][3]; + $type = $this->attachment[$i][4]; + $disposition = $this->attachment[$i][6]; + $cid = $this->attachment[$i][7]; + + $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); + $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE); + $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); + + if($disposition == "inline") + $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); + + $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", + $disposition, $name, $this->LE.$this->LE); + + // Encode as string attachment + if($bString) + { + $mime[] = $this->EncodeString($string, $encoding); + if($this->IsError()) { return ""; } + $mime[] = $this->LE.$this->LE; + } + else + { + $mime[] = $this->EncodeFile($path, $encoding); + if($this->IsError()) { return ""; } + $mime[] = $this->LE.$this->LE; + } + } + + $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); + + return join("", $mime); + } + + /** + * Encodes attachment in requested format. Returns an + * empty string on failure. + * @access private + * @return string + */ + function EncodeFile ($path, $encoding = "base64") { + if(!@$fd = fopen($path, "rb")) + { + $this->SetError($this->Lang("file_open") . $path); + return ""; + } + $file_buffer = fread($fd, filesize($path)); + $file_buffer = $this->EncodeString($file_buffer, $encoding); + fclose($fd); + + return $file_buffer; + } + + /** + * Encodes string to requested format. Returns an + * empty string on failure. + * @access private + * @return string + */ + function EncodeString ($str, $encoding = "base64") { + $encoded = ""; + switch(strtolower($encoding)) { + case "base64": + // chunk_split is found in PHP >= 3.0.6 + $encoded = chunk_split(base64_encode($str), 76, $this->LE); + break; + case "7bit": + case "8bit": + $encoded = $this->FixEOL($str); + if (substr($encoded, -(strlen($this->LE))) != $this->LE) + $encoded .= $this->LE; + break; + case "binary": + $encoded = $str; + break; + case "quoted-printable": + $encoded = $this->EncodeQP($str); + break; + default: + $this->SetError($this->Lang("encoding") . $encoding); + break; + } + return $encoded; + } + + /** + * Encode a header string to best of Q, B, quoted or none. + * @access private + * @return string + */ + function EncodeHeader ($str, $position = 'text') { + $x = 0; + + switch (strtolower($position)) { + case 'phrase': + if (!preg_match('/[\200-\377]/', $str)) { + // Can't use addslashes as we don't know what value has magic_quotes_sybase. + $encoded = addcslashes($str, "\0..\37\177\\\""); + + if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) + return ($encoded); + else + return ("\"$encoded\""); + } + $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); + break; + case 'comment': + $x = preg_match_all('/[()"]/', $str, $matches); + // Fall-through + case 'text': + default: + $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); + break; + } + + if ($x == 0) + return ($str); + + $maxlen = 75 - 7 - strlen($this->CharSet); + // Try to select the encoding which should produce the shortest output + if (strlen($str)/3 < $x) { + $encoding = 'B'; + $encoded = base64_encode($str); + $maxlen -= $maxlen % 4; + $encoded = trim(chunk_split($encoded, $maxlen, "\n")); + } else { + $encoding = 'Q'; + $encoded = $this->EncodeQ($str, $position); + $encoded = $this->WrapText($encoded, $maxlen, true); + $encoded = str_replace("=".$this->LE, "\n", trim($encoded)); + } + + $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); + $encoded = trim(str_replace("\n", $this->LE, $encoded)); + + return $encoded; + } + + /** + * Encode string to quoted-printable. + * @access private + * @return string + */ + function EncodeQP ($str) { + $encoded = $this->FixEOL($str); + if (substr($encoded, -(strlen($this->LE))) != $this->LE) + $encoded .= $this->LE; + + // Replace every high ascii, control and = characters + $encoded = preg_replace('/([\000-\010\013\014\016-\037\075\177-\377])/e', + "'='.sprintf('%02X', ord('\\1'))", $encoded); + // Replace every spaces and tabs when it's the last character on a line + $encoded = preg_replace("/([\011\040])".$this->LE."/e", + "'='.sprintf('%02X', ord('\\1')).'".$this->LE."'", $encoded); + + // Maximum line length of 76 characters before CRLF (74 + space + '=') + $encoded = $this->WrapText($encoded, 74, true); + + return $encoded; + } + + /** + * Encode string to q encoding. + * @access private + * @return string + */ + function EncodeQ ($str, $position = "text") { + // There should not be any EOL in the string + $encoded = preg_replace("[\r\n]", "", $str); + + switch (strtolower($position)) { + case "phrase": + $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); + break; + case "comment": + $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); + case "text": + default: + // Replace every high ascii, control =, ? and _ characters + $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', + "'='.sprintf('%02X', ord('\\1'))", $encoded); + break; + } + + // Replace every spaces to _ (more readable than =20) + $encoded = str_replace(" ", "_", $encoded); + + return $encoded; + } + + /** + * Adds a string or binary attachment (non-filesystem) to the list. + * This method can be used to attach ascii or binary data, + * such as a BLOB record from a database. + * @param string $string String attachment data. + * @param string $filename Name of the attachment. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return void + */ + function AddStringAttachment($string, $filename, $encoding = "base64", + $type = "application/octet-stream") { + // Append to $attachment array + $cur = count($this->attachment); + $this->attachment[$cur][0] = $string; + $this->attachment[$cur][1] = $filename; + $this->attachment[$cur][2] = $filename; + $this->attachment[$cur][3] = $encoding; + $this->attachment[$cur][4] = $type; + $this->attachment[$cur][5] = true; // isString + $this->attachment[$cur][6] = "attachment"; + $this->attachment[$cur][7] = 0; + } + + /** + * Adds an embedded attachment. This can include images, sounds, and + * just about any other document. Make sure to set the $type to an + * image type. For JPEG images use "image/jpeg" and for GIF images + * use "image/gif". + * @param string $path Path to the attachment. + * @param string $cid Content ID of the attachment. Use this to identify + * the Id for accessing the image in an HTML form. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return bool + */ + function AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", + $type = "application/octet-stream") { + + if(!@is_file($path)) + { + $this->SetError($this->Lang("file_access") . $path); + return false; + } + + $filename = basename($path); + if($name == "") + $name = $filename; + + // Append to $attachment array + $cur = count($this->attachment); + $this->attachment[$cur][0] = $path; + $this->attachment[$cur][1] = $filename; + $this->attachment[$cur][2] = $name; + $this->attachment[$cur][3] = $encoding; + $this->attachment[$cur][4] = $type; + $this->attachment[$cur][5] = false; // isStringAttachment + $this->attachment[$cur][6] = "inline"; + $this->attachment[$cur][7] = $cid; + + return true; + } + + /** + * Returns true if an inline attachment is present. + * @access private + * @return bool + */ + function InlineImageExists() { + $result = false; + for($i = 0; $i < count($this->attachment); $i++) + { + if($this->attachment[$i][6] == "inline") + { + $result = true; + break; + } + } + + return $result; + } + + ///////////////////////////////////////////////// + // MESSAGE RESET METHODS + ///////////////////////////////////////////////// + + /** + * Clears all recipients assigned in the TO array. Returns void. + * @return void + */ + function ClearAddresses() { + $this->to = array(); + } + + /** + * Clears all recipients assigned in the CC array. Returns void. + * @return void + */ + function ClearCCs() { + $this->cc = array(); + } + + /** + * Clears all recipients assigned in the BCC array. Returns void. + * @return void + */ + function ClearBCCs() { + $this->bcc = array(); + } + + /** + * Clears all recipients assigned in the ReplyTo array. Returns void. + * @return void + */ + function ClearReplyTos() { + $this->ReplyTo = array(); + } + + /** + * Clears all recipients assigned in the TO, CC and BCC + * array. Returns void. + * @return void + */ + function ClearAllRecipients() { + $this->to = array(); + $this->cc = array(); + $this->bcc = array(); + } + + /** + * Clears all previously set filesystem, string, and binary + * attachments. Returns void. + * @return void + */ + function ClearAttachments() { + $this->attachment = array(); + } + + /** + * Clears all custom headers. Returns void. + * @return void + */ + function ClearCustomHeaders() { + $this->CustomHeader = array(); + } + + + ///////////////////////////////////////////////// + // MISCELLANEOUS METHODS + ///////////////////////////////////////////////// + + /** + * Adds the error message to the error container. + * Returns void. + * @access private + * @return void + */ + function SetError($msg) { + $this->error_count++; + $this->ErrorInfo = $msg; + } + + /** + * Returns the proper RFC 822 formatted date. + * @access private + * @return string + */ + function RFCDate() { + $tz = date("Z"); + $tzs = ($tz < 0) ? "-" : "+"; + $tz = abs($tz); + $tz = ($tz/3600)*100 + ($tz%3600)/60; + $result = sprintf("%s %s%04d", date("D, j M Y H:i:s"), $tzs, $tz); + + return $result; + } + + /** + * Returns Received header for message tracing. + * @access private + * @return string + */ + function Received() { + if ($this->ServerVar('SERVER_NAME') != '') + { + $protocol = ($this->ServerVar('HTTPS') == 'on') ? 'HTTPS' : 'HTTP'; + $remote = $this->ServerVar('REMOTE_HOST'); + if($remote == "") + $remote = 'phpmailer'; + $remote .= ' (['.$this->ServerVar('REMOTE_ADDR').'])'; + } + else + { + $protocol = 'local'; + $remote = $this->ServerVar('USER'); + if($remote == '') + $remote = 'phpmailer'; + } + + $result = sprintf("Received: from %s %s\tby %s " . + "with %s (PHPMailer);%s\t%s%s", $remote, $this->LE, + $this->ServerHostname(), $protocol, $this->LE, + $this->RFCDate(), $this->LE); + + return $result; + } + + /** + * Returns the appropriate server variable. Should work with both + * PHP 4.1.0+ as well as older versions. Returns an empty string + * if nothing is found. + * @access private + * @return mixed + */ + function ServerVar($varName) { + global $HTTP_SERVER_VARS; + global $HTTP_ENV_VARS; + + if(!isset($_SERVER)) + { + $_SERVER = $HTTP_SERVER_VARS; + if(!isset($_SERVER["REMOTE_ADDR"])) + $_SERVER = $HTTP_ENV_VARS; // must be Apache + } + + if(isset($_SERVER[$varName])) + return $_SERVER[$varName]; + else + return ""; + } + + /** + * Returns the server hostname or 'localhost.localdomain' if unknown. + * @access private + * @return string + */ + function ServerHostname() { + if ($this->Hostname != "") + $result = $this->Hostname; + elseif ($this->ServerVar('SERVER_NAME') != "") + $result = $this->ServerVar('SERVER_NAME'); + else + $result = "localhost.localdomain"; + + return $result; + } + + /** + * Returns a message in the appropriate language. + * @access private + * @return string + */ + function Lang($key) { + if(count($this->language) < 1) + $this->SetLanguage("en"); // set the default language + + if(isset($this->language[$key])) + return $this->language[$key]; + else + return "Language string failed to load: " . $key; + } + + /** + * Returns true if an error occurred. + * @return bool + */ + function IsError() { + return ($this->error_count > 0); + } + + /** + * Changes every end of line from CR or LF to CRLF. + * @access private + * @return string + */ + function FixEOL($str) { + $str = str_replace("\r\n", "\n", $str); + $str = str_replace("\r", "\n", $str); + $str = str_replace("\n", $this->LE, $str); + return $str; + } + + /** + * Adds a custom header. + * @return void + */ + function AddCustomHeader($custom_header) { + $this->CustomHeader[] = explode(":", $custom_header, 2); + } +} + +?> diff --git a/Class/class.smtp.php b/Class/class.smtp.php new file mode 100644 index 0000000..6b45c3a --- /dev/null +++ b/Class/class.smtp.php @@ -0,0 +1,1039 @@ +smtp_conn = 0; + $this->error = null; + $this->helo_rply = null; + + $this->do_debug = 0; + } + + /************************************************************* + * CONNECTION FUNCTIONS * + ***********************************************************/ + + /** + * Connect to the server specified on the port specified. + * If the port is not specified use the default SMTP_PORT. + * If tval is specified then a connection will try and be + * established with the server for that number of seconds. + * If tval is not specified the default is 30 seconds to + * try on the connection. + * + * SMTP CODE SUCCESS: 220 + * SMTP CODE FAILURE: 421 + * @access public + * @return bool + */ + function Connect($host,$port=0,$tval=30) { + # set the error val to null so there is no confusion + $this->error = null; + + # make sure we are __not__ connected + if($this->connected()) { + # ok we are connected! what should we do? + # for now we will just give an error saying we + # are already connected + $this->error = + array("error" => "Already connected to a server"); + return false; + } + + if(empty($port)) { + $port = $this->SMTP_PORT; + } + + #connect to the smtp server + $this->smtp_conn = fsockopen($host, # the host of the server + $port, # the port to use + $errno, # error number if any + $errstr, # error message if any + $tval); # give up after ? secs + # verify we connected properly + if(empty($this->smtp_conn)) { + $this->error = array("error" => "Failed to connect to server", + "errno" => $errno, + "errstr" => $errstr); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": $errstr ($errno)" . $this->CRLF; + } + return false; + } + + # sometimes the SMTP server takes a little longer to respond + # so we will give it a longer timeout for the first read + // Windows still does not have support for this timeout function + if(substr(PHP_OS, 0, 3) != "WIN") + socket_set_timeout($this->smtp_conn, $tval, 0); + + # get any announcement stuff + $announce = $this->get_lines(); + + # set the timeout of any socket functions at 1/10 of a second + //if(function_exists("socket_set_timeout")) + // socket_set_timeout($this->smtp_conn, 0, 100000); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce; + } + + return true; + } + + /** + * Performs SMTP authentication. Must be run after running the + * Hello() method. Returns true if successfully authenticated. + * @access public + * @return bool + */ + function Authenticate($username, $password) { + // Start authentication + fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 334) { + $this->error = + array("error" => "AUTH not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + // Send encoded username + fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 334) { + $this->error = + array("error" => "Username not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + // Send encoded password + fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($code != 235) { + $this->error = + array("error" => "Password not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + return true; + } + + /** + * Returns true if connected to a server otherwise false + * @access private + * @return bool + */ + function Connected() { + if(!empty($this->smtp_conn)) { + $sock_status = socket_get_status($this->smtp_conn); + if($sock_status["eof"]) { + # hmm this is an odd situation... the socket is + # valid but we aren't connected anymore + if($this->do_debug >= 1) { + echo "SMTP -> NOTICE:" . $this->CRLF . + "EOF caught while checking if connected"; + } + $this->Close(); + return false; + } + return true; # everything looks good + } + return false; + } + + /** + * Closes the socket and cleans up the state of the class. + * It is not considered good to use this function without + * first trying to use QUIT. + * @access public + * @return void + */ + function Close() { + $this->error = null; # so there is no confusion + $this->helo_rply = null; + if(!empty($this->smtp_conn)) { + # close the connection and cleanup + fclose($this->smtp_conn); + $this->smtp_conn = 0; + } + } + + + /*************************************************************** + * SMTP COMMANDS * + *************************************************************/ + + /** + * Issues a data command and sends the msg_data to the server + * finializing the mail transaction. $msg_data is the message + * that is to be send with the headers. Each header needs to be + * on a single line followed by a with the message headers + * and the message body being seperated by and additional . + * + * Implements rfc 821: DATA + * + * SMTP CODE INTERMEDIATE: 354 + * [data] + * . + * SMTP CODE SUCCESS: 250 + * SMTP CODE FAILURE: 552,554,451,452 + * SMTP CODE FAILURE: 451,554 + * SMTP CODE ERROR : 500,501,503,421 + * @access public + * @return bool + */ + function Data($msg_data) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Data() without being connected"); + return false; + } + + fputs($this->smtp_conn,"DATA" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 354) { + $this->error = + array("error" => "DATA command not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + # the server is ready to accept data! + # according to rfc 821 we should not send more than 1000 + # including the CRLF + # characters on a single line so we will break the data up + # into lines by \r and/or \n then if needed we will break + # each of those into smaller lines to fit within the limit. + # in addition we will be looking for lines that start with + # a period '.' and append and additional period '.' to that + # line. NOTE: this does not count towards are limit. + + # normalize the line breaks so we know the explode works + $msg_data = str_replace("\r\n","\n",$msg_data); + $msg_data = str_replace("\r","\n",$msg_data); + $lines = explode("\n",$msg_data); + + # we need to find a good way to determine is headers are + # in the msg_data or if it is a straight msg body + # currently I'm assuming rfc 822 definitions of msg headers + # and if the first field of the first line (':' sperated) + # does not contain a space then it _should_ be a header + # and we can process all lines before a blank "" line as + # headers. + $field = substr($lines[0],0,strpos($lines[0],":")); + $in_headers = false; + if(!empty($field) && !strstr($field," ")) { + $in_headers = true; + } + + $max_line_length = 998; # used below; set here for ease in change + + while(list(,$line) = @each($lines)) { + $lines_out = null; + if($line == "" && $in_headers) { + $in_headers = false; + } + # ok we need to break this line up into several + # smaller lines + while(strlen($line) > $max_line_length) { + $pos = strrpos(substr($line,0,$max_line_length)," "); + $lines_out[] = substr($line,0,$pos); + $line = substr($line,$pos + 1); + # if we are processing headers we need to + # add a LWSP-char to the front of the new line + # rfc 822 on long msg headers + if($in_headers) { + $line = "\t" . $line; + } + } + $lines_out[] = $line; + + # now send the lines to the server + while(list(,$line_out) = @each($lines_out)) { + if(strlen($line_out) > 0) + { + if(substr($line_out, 0, 1) == ".") { + $line_out = "." . $line_out; + } + } + fputs($this->smtp_conn,$line_out . $this->CRLF); + } + } + + # ok all the message data has been sent so lets get this + # over with aleady + fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "DATA not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * Expand takes the name and asks the server to list all the + * people who are members of the _list_. Expand will return + * back and array of the result or false if an error occurs. + * Each value in the array returned has the format of: + * [ ] + * The definition of is defined in rfc 821 + * + * Implements rfc 821: EXPN + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE FAILURE: 550 + * SMTP CODE ERROR : 500,501,502,504,421 + * @access public + * @return string array + */ + function Expand($name) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Expand() without being connected"); + return false; + } + + fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "EXPN not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + # parse the reply and place in our array to return to user + $entries = explode($this->CRLF,$rply); + while(list(,$l) = @each($entries)) { + $list[] = substr($l,4); + } + + return $list; + } + + /** + * Sends the HELO command to the smtp server. + * This makes sure that we and the server are in + * the same known state. + * + * Implements from rfc 821: HELO + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE ERROR : 500, 501, 504, 421 + * @access public + * @return bool + */ + function Hello($host="") { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Hello() without being connected"); + return false; + } + + # if a hostname for the HELO wasn't specified determine + # a suitable one to send + if(empty($host)) { + # we need to determine some sort of appopiate default + # to send to the server + $host = "localhost"; + } + + // Send extended hello first (RFC 2821) + if(!$this->SendHello("EHLO", $host)) + { + if(!$this->SendHello("HELO", $host)) + return false; + } + + return true; + } + + /** + * Sends a HELO/EHLO command. + * @access private + * @return bool + */ + function SendHello($hello, $host) { + fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => $hello . " not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + $this->helo_rply = $rply; + + return true; + } + + /** + * Gets help information on the keyword specified. If the keyword + * is not specified then returns generic help, ussually contianing + * A list of keywords that help is available on. This function + * returns the results back to the user. It is up to the user to + * handle the returned data. If an error occurs then false is + * returned with $this->error set appropiately. + * + * Implements rfc 821: HELP [ ] + * + * SMTP CODE SUCCESS: 211,214 + * SMTP CODE ERROR : 500,501,502,504,421 + * @access public + * @return string + */ + function Help($keyword="") { + $this->error = null; # to avoid confusion + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Help() without being connected"); + return false; + } + + $extra = ""; + if(!empty($keyword)) { + $extra = " " . $keyword; + } + + fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 211 && $code != 214) { + $this->error = + array("error" => "HELP not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + return $rply; + } + + /** + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more Recipient + * commands may be called followed by a Data command. + * + * Implements rfc 821: MAIL FROM: + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE SUCCESS: 552,451,452 + * SMTP CODE SUCCESS: 500,501,421 + * @access public + * @return bool + */ + function Mail($from) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Mail() without being connected"); + return false; + } + + fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "MAIL not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * Sends the command NOOP to the SMTP server. + * + * Implements from rfc 821: NOOP + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE ERROR : 500, 421 + * @access public + * @return bool + */ + function Noop() { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Noop() without being connected"); + return false; + } + + fputs($this->smtp_conn,"NOOP" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "NOOP not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * Sends the quit command to the server and then closes the socket + * if there is no error or the $close_on_error argument is true. + * + * Implements from rfc 821: QUIT + * + * SMTP CODE SUCCESS: 221 + * SMTP CODE ERROR : 500 + * @access public + * @return bool + */ + function Quit($close_on_error=true) { + $this->error = null; # so there is no confusion + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Quit() without being connected"); + return false; + } + + # send the quit command to the server + fputs($this->smtp_conn,"quit" . $this->CRLF); + + # get any good-bye messages + $byemsg = $this->get_lines(); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg; + } + + $rval = true; + $e = null; + + $code = substr($byemsg,0,3); + if($code != 221) { + # use e as a tmp var cause Close will overwrite $this->error + $e = array("error" => "SMTP server rejected quit command", + "smtp_code" => $code, + "smtp_rply" => substr($byemsg,4)); + $rval = false; + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $e["error"] . ": " . + $byemsg . $this->CRLF; + } + } + + if(empty($e) || $close_on_error) { + $this->Close(); + } + + return $rval; + } + + /** + * Sends the command RCPT to the SMTP server with the TO: argument of $to. + * Returns true if the recipient was accepted false if it was rejected. + * + * Implements from rfc 821: RCPT TO: + * + * SMTP CODE SUCCESS: 250,251 + * SMTP CODE FAILURE: 550,551,552,553,450,451,452 + * SMTP CODE ERROR : 500,501,503,421 + * @access public + * @return bool + */ + function Recipient($to) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Recipient() without being connected"); + return false; + } + + fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250 && $code != 251) { + $this->error = + array("error" => "RCPT not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * Sends the RSET command to abort and transaction that is + * currently in progress. Returns true if successful false + * otherwise. + * + * Implements rfc 821: RSET + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE ERROR : 500,501,504,421 + * @access public + * @return bool + */ + function Reset() { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Reset() without being connected"); + return false; + } + + fputs($this->smtp_conn,"RSET" . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "RSET failed", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + + return true; + } + + /** + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more Recipient + * commands may be called followed by a Data command. This command + * will send the message to the users terminal if they are logged + * in. + * + * Implements rfc 821: SEND FROM: + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE SUCCESS: 552,451,452 + * SMTP CODE SUCCESS: 500,501,502,421 + * @access public + * @return bool + */ + function Send($from) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Send() without being connected"); + return false; + } + + fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "SEND not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more Recipient + * commands may be called followed by a Data command. This command + * will send the message to the users terminal if they are logged + * in and send them an email. + * + * Implements rfc 821: SAML FROM: + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE SUCCESS: 552,451,452 + * SMTP CODE SUCCESS: 500,501,502,421 + * @access public + * @return bool + */ + function SendAndMail($from) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called SendAndMail() without being connected"); + return false; + } + + fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "SAML not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more Recipient + * commands may be called followed by a Data command. This command + * will send the message to the users terminal if they are logged + * in or mail it to them if they are not. + * + * Implements rfc 821: SOML FROM: + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE SUCCESS: 552,451,452 + * SMTP CODE SUCCESS: 500,501,502,421 + * @access public + * @return bool + */ + function SendOrMail($from) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called SendOrMail() without being connected"); + return false; + } + + fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250) { + $this->error = + array("error" => "SOML not accepted from server", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return true; + } + + /** + * This is an optional command for SMTP that this class does not + * support. This method is here to make the RFC821 Definition + * complete for this class and __may__ be implimented in the future + * + * Implements from rfc 821: TURN + * + * SMTP CODE SUCCESS: 250 + * SMTP CODE FAILURE: 502 + * SMTP CODE ERROR : 500, 503 + * @access public + * @return bool + */ + function Turn() { + $this->error = array("error" => "This method, TURN, of the SMTP ". + "is not implemented"); + if($this->do_debug >= 1) { + echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF; + } + return false; + } + + /** + * Verifies that the name is recognized by the server. + * Returns false if the name could not be verified otherwise + * the response from the server is returned. + * + * Implements rfc 821: VRFY + * + * SMTP CODE SUCCESS: 250,251 + * SMTP CODE FAILURE: 550,551,553 + * SMTP CODE ERROR : 500,501,502,421 + * @access public + * @return int + */ + function Verify($name) { + $this->error = null; # so no confusion is caused + + if(!$this->connected()) { + $this->error = array( + "error" => "Called Verify() without being connected"); + return false; + } + + fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF); + + $rply = $this->get_lines(); + $code = substr($rply,0,3); + + if($this->do_debug >= 2) { + echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; + } + + if($code != 250 && $code != 251) { + $this->error = + array("error" => "VRFY failed on name '$name'", + "smtp_code" => $code, + "smtp_msg" => substr($rply,4)); + if($this->do_debug >= 1) { + echo "SMTP -> ERROR: " . $this->error["error"] . + ": " . $rply . $this->CRLF; + } + return false; + } + return $rply; + } + + /******************************************************************* + * INTERNAL FUNCTIONS * + ******************************************************************/ + + /** + * Read in as many lines as possible + * either before eof or socket timeout occurs on the operation. + * With SMTP we can tell if we have more lines to read if the + * 4th character is '-' symbol. If it is a space then we don't + * need to read anything else. + * @access private + * @return string + */ + function get_lines() { + $data = ""; + while($str = fgets($this->smtp_conn,515)) { + if($this->do_debug >= 4) { + echo "SMTP -> get_lines(): \$data was \"$data\"" . + $this->CRLF; + echo "SMTP -> get_lines(): \$str is \"$str\"" . + $this->CRLF; + } + $data .= $str; + if($this->do_debug >= 4) { + echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF; + } + # if the 4th character is a space then we are done reading + # so just break the loop + if(substr($str,3,1) == " ") { break; } + } + return $data; + } + +} + + + ?> diff --git a/Class/phpmailer.lang-en.php b/Class/phpmailer.lang-en.php new file mode 100644 index 0000000..2f45383 --- /dev/null +++ b/Class/phpmailer.lang-en.php @@ -0,0 +1,23 @@ + diff --git a/Class/test/message.txt b/Class/test/message.txt new file mode 100644 index 0000000..2ae06f6 --- /dev/null +++ b/Class/test/message.txt @@ -0,0 +1,355 @@ +Received: from phpmailer ([127.0.0.1]) + by 127.0.0.1 with HTTP (PHPMailer); + Tue, 22 Jan 2008 23:56:42 +0100 +Date: Tue, 22 Jan 2008 23:56:42 +0100 +Return-Path: nobody@example.com +To: Test User +Cc: Carbon User +From: Unit Tester +Reply-to: Reply Guy +Subject: Unit Test: AltBody + Attachment +Message-ID: +X-Priority: 3 +X-Mailer: PHPMailer [version 1.71] +MIME-Version: 1.0 +Content-Type: multipart/mixed; + boundary="b1_a0169dc7929d1c609a827b4d1a0c3f74" + + +--b1_a0169dc7929d1c609a827b4d1a0c3f74 +Content-Type: multipart/alternative; + boundary="b2_a0169dc7929d1c609a827b4d1a0c3f74" + +--b2_a0169dc7929d1c609a827b4d1a0c3f74 +Content-Type: text/plain; charset = "iso-8859-1" +Content-Transfer-Encoding: 8bit + + +This is the text part of the email. + + +--b2_a0169dc7929d1c609a827b4d1a0c3f74 +Content-Type: text/html; charset = "iso-8859-1" +Content-Transfer-Encoding: 8bit + + +This is the HTML part of the email.

---------------------
Unit Test Information
---------------------
phpmailer version: 1.71
Content Type: text/html
Host: localhost
Attachments:
  • Name: phpmailer_test.php, Encoding: base64, Type: application/octet-stream

Changes
-------
  • Sender was changed to [nobody@example.com]
  • Mailer was changed to [smtp]


+ + + +--b2_a0169dc7929d1c609a827b4d1a0c3f74-- +--b1_a0169dc7929d1c609a827b4d1a0c3f74 +Content-Type: application/octet-stream; name="test_attach.txt" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="test_attach.txt" + +PD9waHANCi8qKioqKioqKioqKioqKioqKioqDQogIFVuaXQgVGVzdA0KICBUeXBlOiBwaHBtYWls +ZXIgY2xhc3MNCioqKioqKioqKioqKioqKioqKioqLw0KDQokSU5DTFVERV9ESVIgPSAiLi4vIjsN +Cg0KcmVxdWlyZSgicGhwdW5pdC5waHAiKTsNCnJlcXVpcmUoJElOQ0xVREVfRElSIC4gImNsYXNz +LnBocG1haWxlci5waHAiKTsNCmVycm9yX3JlcG9ydGluZyhFX0FMTCk7DQoNCi8qKg0KICogUGVy +Zm9ybXMgYXV0aGVudGljYXRpb24gdGVzdHMNCiAqLw0KY2xhc3MgcGhwbWFpbGVyVGVzdCBleHRl +bmRzIFRlc3RDYXNlDQp7DQogICAgLyoqDQogICAgICogSG9sZHMgdGhlIGRlZmF1bHQgcGhwbWFp +bGVyIGluc3RhbmNlLg0KICAgICAqIEBwcml2YXRlDQogICAgICogQHR5cGUgb2JqZWN0DQogICAg +ICovDQogICAgdmFyICRNYWlsID0gZmFsc2U7DQoNCiAgICAvKioNCiAgICAgKiBIb2xkcyB0aGUg +U01UUCBtYWlsIGhvc3QuDQogICAgICogQHB1YmxpYw0KICAgICAqIEB0eXBlIHN0cmluZw0KICAg +ICAqLw0KICAgIHZhciAkSG9zdCA9ICIiOw0KDQogICAgLyoqDQogICAgICogSG9sZHMgdGhlIGNo +YW5nZSBsb2cuDQogICAgICogQHByaXZhdGUNCiAgICAgKiBAdHlwZSBzdHJpbmcgYXJyYXkNCiAg +ICAgKi8NCiAgICB2YXIgJENoYW5nZUxvZyA9IGFycmF5KCk7DQoNCiAgICAgLyoqDQogICAgICog +SG9sZHMgdGhlIG5vdGUgbG9nLg0KICAgICAqIEBwcml2YXRlDQogICAgICogQHR5cGUgc3RyaW5n +IGFycmF5DQogICAgICovDQogICAgdmFyICROb3RlTG9nID0gYXJyYXkoKTsNCg0KICAgIC8qKg0K +ICAgICAqIENsYXNzIGNvbnN0dWN0b3IuDQogICAgICovDQogICAgZnVuY3Rpb24gcGhwbWFpbGVy +VGVzdCgkbmFtZSkgew0KICAgICAgICAvKiBtdXN0IGRlZmluZSB0aGlzIGNvbnN0cnVjdG9yICov +DQogICAgICAgICR0aGlzLT5UZXN0Q2FzZSggJG5hbWUgKTsNCiAgICB9DQoNCiAgICAvKioNCiAg +ICAgKiBSdW4gYmVmb3JlIGVhY2ggdGVzdCBpcyBzdGFydGVkLg0KICAgICAqLw0KICAgIGZ1bmN0 +aW9uIHNldFVwKCkgew0KICAgICAgICBnbG9iYWwgJGdsb2JhbF92YXJzOw0KICAgICAgICBnbG9i +YWwgJElOQ0xVREVfRElSOw0KDQogICAgICAgICR0aGlzLT5NYWlsID0gbmV3IFBIUE1haWxlcigp +Ow0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Qcmlvcml0eSA9IDM7DQogICAgICAgICR0aGlzLT5N +YWlsLT5FbmNvZGluZyA9ICI4Yml0IjsNCiAgICAgICAgJHRoaXMtPk1haWwtPkNoYXJTZXQgPSAi +aXNvLTg4NTktMSI7DQogICAgICAgICR0aGlzLT5NYWlsLT5Gcm9tID0gInVuaXRfdGVzdEBwaHBt +YWlsZXIuc2YubmV0IjsNCiAgICAgICAgJHRoaXMtPk1haWwtPkZyb21OYW1lID0gIlVuaXQgVGVz +dGVyIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPlNlbmRlciA9ICIiOw0KICAgICAgICAkdGhpcy0+ +TWFpbC0+U3ViamVjdCA9ICJVbml0IFRlc3QiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+Qm9keSA9 +ICIiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+QWx0Qm9keSA9ICIiOw0KICAgICAgICAkdGhpcy0+ +TWFpbC0+V29yZFdyYXAgPSAwOw0KICAgICAgICAkdGhpcy0+TWFpbC0+SG9zdCA9ICRnbG9iYWxf +dmFyc1sibWFpbF9ob3N0Il07DQogICAgICAgICR0aGlzLT5NYWlsLT5Qb3J0ID0gMjU7DQogICAg +ICAgICR0aGlzLT5NYWlsLT5IZWxvID0gImxvY2FsaG9zdC5sb2NhbGRvbWFpbiI7DQogICAgICAg +ICR0aGlzLT5NYWlsLT5TTVRQQXV0aCA9IGZhbHNlOw0KICAgICAgICAkdGhpcy0+TWFpbC0+VXNl +cm5hbWUgPSAiIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPlBhc3N3b3JkID0gIiI7DQogICAgICAg +ICR0aGlzLT5NYWlsLT5QbHVnaW5EaXIgPSAkSU5DTFVERV9ESVI7DQoJCSR0aGlzLT5NYWlsLT5B +ZGRSZXBseVRvKCJub19yZXBseUBwaHBtYWlsZXIuc2YubmV0IiwgIlJlcGx5IEd1eSIpOw0KICAg +ICAgICAkdGhpcy0+TWFpbC0+U2VuZGVyID0gIm5vYm9keUBleGFtcGxlLmNvbSI7DQoNCiAgICAg +ICAgaWYoc3RybGVuKCR0aGlzLT5NYWlsLT5Ib3N0KSA+IDApDQogICAgICAgICAgICAkdGhpcy0+ +TWFpbC0+TWFpbGVyID0gInNtdHAiOw0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAg +ICAgICR0aGlzLT5NYWlsLT5NYWlsZXIgPSAibWFpbCI7DQogICAgICAgICAgICAkdGhpcy0+U2Vu +ZGVyID0gInVuaXRfdGVzdEBwaHBtYWlsZXIuc2YubmV0IjsNCiAgICAgICAgfQ0KDQogICAgICAg +IGdsb2JhbCAkZ2xvYmFsX3ZhcnM7DQogICAgICAgICR0aGlzLT5TZXRBZGRyZXNzKCRnbG9iYWxf +dmFyc1sibWFpbF90byJdLCAiVGVzdCBVc2VyIik7DQogICAgICAgIGlmKHN0cmxlbigkZ2xvYmFs +X3ZhcnNbIm1haWxfY2MiXSkgPiAwKQ0KICAgICAgICAgICAgJHRoaXMtPlNldEFkZHJlc3MoJGds +b2JhbF92YXJzWyJtYWlsX2NjIl0sICJDYXJib24gVXNlciIsICJjYyIpOw0KICAgIH0NCg0KICAg +IC8qKg0KICAgICAqIFJ1biBhZnRlciBlYWNoIHRlc3QgaXMgY29tcGxldGVkLg0KICAgICAqLw0K +ICAgIGZ1bmN0aW9uIHRlYXJEb3duKCkgew0KICAgICAgICAvLyBDbGVhbiBnbG9iYWwgdmFyaWFi +bGVzDQogICAgICAgICR0aGlzLT5NYWlsID0gTlVMTDsNCiAgICAgICAgJHRoaXMtPkNoYW5nZUxv +ZyA9IGFycmF5KCk7DQogICAgICAgICR0aGlzLT5Ob3RlTG9nID0gYXJyYXkoKTsNCiAgICB9DQoN +Cg0KICAgIC8qKg0KICAgICAqIEJ1aWxkIHRoZSBib2R5IG9mIHRoZSBtZXNzYWdlIGluIHRoZSBh +cHByb3ByaWF0ZSBmb3JtYXQuDQogICAgICogQHByaXZhdGUNCiAgICAgKiBAcmV0dXJucyB2b2lk +DQogICAgICovDQogICAgZnVuY3Rpb24gQnVpbGRCb2R5KCkgew0KICAgICAgICAkdGhpcy0+Q2hl +Y2tDaGFuZ2VzKCk7DQoNCiAgICAgICAgLy8gRGV0ZXJtaW5lIGxpbmUgZW5kaW5ncyBmb3IgbWVz +c2FnZQ0KICAgICAgICBpZigkdGhpcy0+TWFpbC0+Q29udGVudFR5cGUgPT0gInRleHQvaHRtbCIg +fHwgc3RybGVuKCR0aGlzLT5NYWlsLT5BbHRCb2R5KSA+IDApDQogICAgICAgIHsNCiAgICAgICAg +ICAgICRlb2wgPSAiPGJyLz4iOw0KICAgICAgICAgICAgJGJ1bGxldCA9ICI8bGk+IjsNCiAgICAg +ICAgICAgICRidWxsZXRfc3RhcnQgPSAiPHVsPiI7DQogICAgICAgICAgICAkYnVsbGV0X2VuZCA9 +ICI8L3VsPiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAg +ICAkZW9sID0gIlxuIjsNCiAgICAgICAgICAgICRidWxsZXQgPSAiIC0gIjsNCiAgICAgICAgICAg +ICRidWxsZXRfc3RhcnQgPSAiIjsNCiAgICAgICAgICAgICRidWxsZXRfZW5kID0gIiI7DQogICAg +ICAgIH0NCg0KICAgICAgICAkUmVwb3J0Qm9keSA9ICIiOw0KDQogICAgICAgICRSZXBvcnRCb2R5 +IC49ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0iIC4gJGVvbDsNCiAgICAgICAgJFJlcG9ydEJvZHkg +Lj0gIlVuaXQgVGVzdCBJbmZvcm1hdGlvbiIgLiAkZW9sOw0KICAgICAgICAkUmVwb3J0Qm9keSAu +PSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAuICRlb2w7DQogICAgICAgICRSZXBvcnRCb2R5IC49 +ICJwaHBtYWlsZXIgdmVyc2lvbjogIiAuICR0aGlzLT5NYWlsLT5WZXJzaW9uIC4gJGVvbDsNCiAg +ICAgICAgJFJlcG9ydEJvZHkgLj0gIkNvbnRlbnQgVHlwZTogIiAuICR0aGlzLT5NYWlsLT5Db250 +ZW50VHlwZSAuICRlb2w7DQoNCiAgICAgICAgaWYoc3RybGVuKCR0aGlzLT5NYWlsLT5Ib3N0KSA+ +IDApDQogICAgICAgICAgICAkUmVwb3J0Qm9keSAuPSAiSG9zdDogIiAuICR0aGlzLT5NYWlsLT5I +b3N0IC4gJGVvbDsNCg0KICAgICAgICAvLyBJZiBhdHRhY2htZW50cyB0aGVuIGNyZWF0ZSBhbiBh +dHRhY2htZW50IGxpc3QNCiAgICAgICAgaWYoY291bnQoJHRoaXMtPk1haWwtPmF0dGFjaG1lbnQp +ID4gMCkNCiAgICAgICAgew0KICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gIkF0dGFjaG1lbnRz +OiIgLiAkZW9sOw0KICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gJGJ1bGxldF9zdGFydDsNCiAg +ICAgICAgICAgIGZvcigkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPk1haWwtPmF0dGFjaG1lbnQp +OyAkaSsrKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRSZXBvcnRCb2R5IC49ICRi +dWxsZXQgLiAiTmFtZTogIiAuICR0aGlzLT5NYWlsLT5hdHRhY2htZW50WyRpXVsxXSAuICIsICI7 +DQogICAgICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gIkVuY29kaW5nOiAiIC4gJHRoaXMtPk1h +aWwtPmF0dGFjaG1lbnRbJGldWzNdIC4gIiwgIjsNCiAgICAgICAgICAgICAgICAkUmVwb3J0Qm9k +eSAuPSAiVHlwZTogIiAuICR0aGlzLT5NYWlsLT5hdHRhY2htZW50WyRpXVs0XSAuICRlb2w7DQog +ICAgICAgICAgICB9DQogICAgICAgICAgICAkUmVwb3J0Qm9keSAuPSAkYnVsbGV0X2VuZCAuICRl +b2w7DQogICAgICAgIH0NCg0KICAgICAgICAvLyBJZiB0aGVyZSBhcmUgY2hhbmdlcyB0aGVuIGxp +c3QgdGhlbQ0KICAgICAgICBpZihjb3VudCgkdGhpcy0+Q2hhbmdlTG9nKSA+IDApDQogICAgICAg +IHsNCiAgICAgICAgICAgICRSZXBvcnRCb2R5IC49ICJDaGFuZ2VzIiAuICRlb2w7DQogICAgICAg +ICAgICAkUmVwb3J0Qm9keSAuPSAiLS0tLS0tLSIgLiAkZW9sOw0KDQogICAgICAgICAgICAkUmVw +b3J0Qm9keSAuPSAkYnVsbGV0X3N0YXJ0Ow0KICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBj +b3VudCgkdGhpcy0+Q2hhbmdlTG9nKTsgJGkrKykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg +ICAgICAkUmVwb3J0Qm9keSAuPSAkYnVsbGV0IC4gJHRoaXMtPkNoYW5nZUxvZ1skaV1bMF0gLiAi +IHdhcyBjaGFuZ2VkIHRvIFsiIC4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhp +cy0+Q2hhbmdlTG9nWyRpXVsxXSAuICJdIiAuICRlb2w7DQogICAgICAgICAgICB9DQogICAgICAg +ICAgICAkUmVwb3J0Qm9keSAuPSAkYnVsbGV0X2VuZCAuICRlb2wgLiAkZW9sOw0KICAgICAgICB9 +DQoNCiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vdGVzIHRoZW4gbGlzdCB0aGVtDQogICAgICAg +IGlmKGNvdW50KCR0aGlzLT5Ob3RlTG9nKSA+IDApDQogICAgICAgIHsNCiAgICAgICAgICAgICRS +ZXBvcnRCb2R5IC49ICJOb3RlcyIgLiAkZW9sOw0KICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0g +Ii0tLS0tIiAuICRlb2w7DQoNCiAgICAgICAgICAgICRSZXBvcnRCb2R5IC49ICRidWxsZXRfc3Rh +cnQ7DQogICAgICAgICAgICBmb3IoJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5Ob3RlTG9nKTsg +JGkrKykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkUmVwb3J0Qm9keSAuPSAkYnVs +bGV0IC4gJHRoaXMtPk5vdGVMb2dbJGldIC4gJGVvbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAg +ICAgICRSZXBvcnRCb2R5IC49ICRidWxsZXRfZW5kOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8g +UmUtYXR0YWNoIHRoZSBvcmlnaW5hbCBib2R5DQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5IC49 +ICRlb2wgLiAkZW9sIC4gJFJlcG9ydEJvZHk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQ2hl +Y2sgd2hpY2ggZGVmYXVsdCBzZXR0aW5ncyBoYXZlIGJlZW4gY2hhbmdlZCBmb3IgdGhlIHJlcG9y +dC4NCiAgICAgKiBAcHJpdmF0ZQ0KICAgICAqIEByZXR1cm5zIHZvaWQNCiAgICAgKi8NCiAgICBm +dW5jdGlvbiBDaGVja0NoYW5nZXMoKSB7DQogICAgICAgIGlmKCR0aGlzLT5NYWlsLT5Qcmlvcml0 +eSAhPSAzKQ0KICAgICAgICAgICAgJHRoaXMtPkFkZENoYW5nZSgiUHJpb3JpdHkiLCAkdGhpcy0+ +TWFpbC0+UHJpb3JpdHkpOw0KICAgICAgICBpZigkdGhpcy0+TWFpbC0+RW5jb2RpbmcgIT0gIjhi +aXQiKQ0KICAgICAgICAgICAgJHRoaXMtPkFkZENoYW5nZSgiRW5jb2RpbmciLCAkdGhpcy0+TWFp +bC0+RW5jb2RpbmcpOw0KICAgICAgICBpZigkdGhpcy0+TWFpbC0+Q2hhclNldCAhPSAiaXNvLTg4 +NTktMSIpDQogICAgICAgICAgICAkdGhpcy0+QWRkQ2hhbmdlKCJDaGFyU2V0IiwgJHRoaXMtPk1h +aWwtPkNoYXJTZXQpOw0KICAgICAgICBpZigkdGhpcy0+TWFpbC0+U2VuZGVyICE9ICIiKQ0KICAg +ICAgICAgICAgJHRoaXMtPkFkZENoYW5nZSgiU2VuZGVyIiwgJHRoaXMtPk1haWwtPlNlbmRlcik7 +DQogICAgICAgIGlmKCR0aGlzLT5NYWlsLT5Xb3JkV3JhcCAhPSAwKQ0KICAgICAgICAgICAgJHRo +aXMtPkFkZENoYW5nZSgiV29yZFdyYXAiLCAkdGhpcy0+TWFpbC0+V29yZFdyYXApOw0KICAgICAg +ICBpZigkdGhpcy0+TWFpbC0+TWFpbGVyICE9ICJtYWlsIikNCiAgICAgICAgICAgICR0aGlzLT5B +ZGRDaGFuZ2UoIk1haWxlciIsICR0aGlzLT5NYWlsLT5NYWlsZXIpOw0KICAgICAgICBpZigkdGhp +cy0+TWFpbC0+UG9ydCAhPSAyNSkNCiAgICAgICAgICAgICR0aGlzLT5BZGRDaGFuZ2UoIlBvcnQi +LCAkdGhpcy0+TWFpbC0+UG9ydCk7DQogICAgICAgIGlmKCR0aGlzLT5NYWlsLT5IZWxvICE9ICJs +b2NhbGhvc3QubG9jYWxkb21haW4iKQ0KICAgICAgICAgICAgJHRoaXMtPkFkZENoYW5nZSgiSGVs +byIsICR0aGlzLT5NYWlsLT5IZWxvKTsNCiAgICAgICAgaWYoJHRoaXMtPk1haWwtPlNNVFBBdXRo +KQ0KICAgICAgICAgICAgJHRoaXMtPkFkZENoYW5nZSgiU01UUEF1dGgiLCAidHJ1ZSIpOw0KICAg +IH0NCg0KICAgIC8qKg0KICAgICAqIEFkZHMgYSBjaGFuZ2UgZW50cnkuDQogICAgICogQHByaXZh +dGUNCiAgICAgKiBAcmV0dXJucyB2b2lkDQogICAgICovDQogICAgZnVuY3Rpb24gQWRkQ2hhbmdl +KCRzTmFtZSwgJHNOZXdWYWx1ZSkgew0KICAgICAgICAkY3VyID0gY291bnQoJHRoaXMtPkNoYW5n +ZUxvZyk7DQogICAgICAgICR0aGlzLT5DaGFuZ2VMb2dbJGN1cl1bMF0gPSAkc05hbWU7DQogICAg +ICAgICR0aGlzLT5DaGFuZ2VMb2dbJGN1cl1bMV0gPSAkc05ld1ZhbHVlOw0KICAgIH0NCg0KICAg +IC8qKg0KICAgICAqIEFkZHMgYSBzaW1wbGUgbm90ZSB0byB0aGUgbWVzc2FnZS4NCiAgICAgKiBA +cHVibGljDQogICAgICogQHJldHVybnMgdm9pZA0KICAgICAqLw0KICAgIGZ1bmN0aW9uIEFkZE5v +dGUoJHNWYWx1ZSkgew0KICAgICAgICAkdGhpcy0+Tm90ZUxvZ1tdID0gJHNWYWx1ZTsNCiAgICB9 +DQoNCiAgICAvKioNCiAgICAgKiBBZGRzIGFsbCBvZiB0aGUgYWRkcmVzc2VzDQogICAgICogQHB1 +YmxpYw0KICAgICAqIEByZXR1cm5zIHZvaWQNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBTZXRBZGRy +ZXNzKCRzQWRkcmVzcywgJHNOYW1lID0gIiIsICRzVHlwZSA9ICJ0byIpIHsNCiAgICAgICAgc3dp +dGNoKCRzVHlwZSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FzZSAidG8iOg0KICAgICAgICAg +ICAgICAgICR0aGlzLT5NYWlsLT5BZGRBZGRyZXNzKCRzQWRkcmVzcywgJHNOYW1lKTsNCiAgICAg +ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNjIjoNCiAgICAgICAgICAgICAg +ICAkdGhpcy0+TWFpbC0+QWRkQ0MoJHNBZGRyZXNzLCAkc05hbWUpOw0KICAgICAgICAgICAgICAg +IGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmNjIjoNCiAgICAgICAgICAgICAgICAkdGhpcy0+ +TWFpbC0+QWRkQkNDKCRzQWRkcmVzcywgJHNOYW1lKTsNCiAgICAgICAgICAgICAgICBicmVhazsN +CiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v +Ly8vLy8vLy8vLy8vLy8vLy8NCiAgICAvLyBVTklUIFRFU1RTDQogICAgLy8vLy8vLy8vLy8vLy8v +Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQogICAgLyoqDQogICAgICogVHJ5 +IGEgcGxhaW4gbWVzc2FnZS4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0X1dvcmRXcmFwKCkg +ew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Xb3JkV3JhcCA9IDQwOw0KICAgICAgICAkbXlfYm9k +eSA9ICJIZXJlIGlzIHRoZSBtYWluIGJvZHkgb2YgdGhpcyBtZXNzYWdlLiAgSXQgc2hvdWxkICIg +Lg0KICAgICAgICAgICAgICAgICAgICJiZSBxdWl0ZSBhIGZldyBsaW5lcy4gIEl0IHNob3VsZCBi +ZSB3cmFwcGVkIGF0IHRoZSAiIC4NCiAgICAgICAgICAgICAgICAgICAiNDAgY2hhcmFjdGVycy4g +IE1ha2Ugc3VyZSB0aGF0IGl0IGlzLiI7DQogICAgICAgICRuQm9keUxlbiA9IHN0cmxlbigkbXlf +Ym9keSk7DQogICAgICAgICRteV9ib2R5IC49ICJcblxuVGhpcyBpcyB0aGUgYWJvdmUgYm9keSBs +ZW5ndGg6ICIgLiAkbkJvZHlMZW47DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPkJvZHkgPSAkbXlf +Ym9keTsNCiAgICAgICAgJHRoaXMtPk1haWwtPlN1YmplY3QgLj0gIjogV29yZHdyYXAiOw0KDQog +ICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgkdGhpcy0+ +TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9DQoNCiAgICAvKioN +CiAgICAgKiBUcnkgYSBwbGFpbiBtZXNzYWdlLg0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHRlc3Rf +TG93X1ByaW9yaXR5KCkgew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Qcmlvcml0eSA9IDU7DQog +ICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0gIkhlcmUgaXMgdGhlIG1haW4gYm9keS4gIFRoZXJl +IHNob3VsZCBiZSAiIC4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYSByZXBseSB0byBh +ZGRyZXNzIGluIHRoaXMgbWVzc2FnZS4iOw0KICAgICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCAu +PSAiOiBMb3cgUHJpb3JpdHkiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+QWRkUmVwbHlUbygibm9i +b2R5QG5vYm9keS5jb20iLCAiTm9ib2R5IChVbml0IFRlc3QpIik7DQoNCiAgICAgICAgJHRoaXMt +PkJ1aWxkQm9keSgpOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5kKCks +ICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNpbXBs +ZSBwbGFpbiBmaWxlIGF0dGFjaG1lbnQgdGVzdC4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0 +X011bHRpcGxlX1BsYWluX0ZpbGVBdHRhY2htZW50KCkgew0KDQogICAgICAgICR0aGlzLT5NYWls +LT5Cb2R5ID0gIkhlcmUgaXMgdGhlIHRleHQgYm9keSI7DQogICAgICAgICR0aGlzLT5NYWlsLT5T +dWJqZWN0IC49ICI6IFBsYWluICsgTXVsdGlwbGUgRmlsZUF0dGFjaG1lbnRzIjsNCg0KICAgICAg +ICBpZighJHRoaXMtPk1haWwtPkFkZEF0dGFjaG1lbnQoInJvY2tzLnBuZyIpKQ0KICAgICAgICB7 +DQogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0KGZhbHNlLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZv +KTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmKCEkdGhpcy0+ +TWFpbC0+QWRkQXR0YWNobWVudCgicGhwbWFpbGVyX3Rlc3QucGhwIiwgInRlc3QudHh0IikpDQog +ICAgICAgIHsNCiAgICAgICAgICAgICR0aGlzLT5hc3NlcnQoZmFsc2UsICR0aGlzLT5NYWlsLT5F +cnJvckluZm8pOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgJHRo +aXMtPkJ1aWxkQm9keSgpOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5k +KCksICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNp +bXBsZSBwbGFpbiBzdHJpbmcgYXR0YWNobWVudCB0ZXN0Lg0KICAgICAqLw0KICAgIGZ1bmN0aW9u +IHRlc3RfUGxhaW5fU3RyaW5nQXR0YWNobWVudCgpIHsNCg0KICAgICAgICAkdGhpcy0+TWFpbC0+ +Qm9keSA9ICJIZXJlIGlzIHRoZSB0ZXh0IGJvZHkiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+U3Vi +amVjdCAuPSAiOiBQbGFpbiArIFN0cmluZ0F0dGFjaG1lbnQiOw0KDQogICAgICAgICRzQXR0YWNo +bWVudCA9ICJUaGVzZSBjaGFyYWN0ZXJzIGFyZSB0aGUgY29udGVudCBvZiB0aGUgIiAuDQogICAg +ICAgICAgICAgICAgICAgICAgICJzdHJpbmcgYXR0YWNobWVudC5cblRoaXMgbWlnaHQgYmUgdGFr +ZW4gZnJvbSBhICIuDQogICAgICAgICAgICAgICAgICAgICAgICJkYXRhYmFzZSBvciBzb21lIG90 +aGVyIHN1Y2ggdGhpbmcuICI7DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPkFkZFN0cmluZ0F0dGFj +aG1lbnQoJHNBdHRhY2htZW50LCAic3RyaW5nX2F0dGFjaC50eHQiKTsNCg0KICAgICAgICAkdGhp +cy0+QnVpbGRCb2R5KCk7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNlbmQo +KSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUGxh +aW4gcXVvdGVkLXByaW50YWJsZSBtZXNzYWdlLg0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHRlc3Rf +UXVvdGVkX1ByaW50YWJsZSgpIHsNCg0KICAgICAgICAkdGhpcy0+TWFpbC0+Qm9keSA9ICJIZXJl +IGlzIHRoZSBtYWluIGJvZHkiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCAuPSAiOiBQ +bGFpbiArIFF1b3RlZC1wcmludGFibGUiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+RW5jb2Rpbmcg +PSAicXVvdGVkLXByaW50YWJsZSI7DQoNCiAgICAgICAgJHRoaXMtPkJ1aWxkQm9keSgpOw0KICAg +ICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5kKCksICR0aGlzLT5NYWlsLT5FcnJv +ckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFRyeSBhIHBsYWluIG1lc3NhZ2UuDQog +ICAgICovDQogICAgZnVuY3Rpb24gdGVzdF9IdG1sKCkgew0KDQogICAgICAgICR0aGlzLT5NYWls +LT5Jc0hUTUwodHJ1ZSk7DQogICAgICAgICR0aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IEhUTUwg +b25seSI7DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPkJvZHkgPSAiVGhpcyBpcyBhIDxiPnRlc3Qg +bWVzc2FnZTwvYj4gd3JpdHRlbiBpbiBIVE1MLiA8L2JyPiIgLg0KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICJHbyB0byA8YSBocmVmPVwiaHR0cDovL3BocG1haWxlci5zb3VyY2Vmb3JnZS5u +ZXQvXCI+IiAuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly9waHBtYWlsZXIu +c291cmNlZm9yZ2UubmV0LzwvYT4gZm9yIG5ldyB2ZXJzaW9ucyBvZiAiIC4NCiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAicGhwbWFpbGVyLiAgPHAvPiBUaGFuayB5b3UhIjsNCg0KICAgICAg +ICAkdGhpcy0+QnVpbGRCb2R5KCk7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwt +PlNlbmQoKSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAgfQ0KDQogICAgLyoqDQogICAg +ICogU2ltcGxlIEhUTUwgYW5kIGF0dGFjaG1lbnQgdGVzdA0KICAgICAqLw0KICAgIGZ1bmN0aW9u +IHRlc3RfSFRNTF9BdHRhY2htZW50KCkgew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0g +IlRoaXMgaXMgdGhlIDxiPkhUTUw8L2I+IHBhcnQgb2YgdGhlIGVtYWlsLiI7DQogICAgICAgICR0 +aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IEhUTUwgKyBBdHRhY2htZW50IjsNCiAgICAgICAgJHRo +aXMtPk1haWwtPklzSFRNTCh0cnVlKTsNCg0KICAgICAgICBpZighJHRoaXMtPk1haWwtPkFkZEF0 +dGFjaG1lbnQoInBocG1haWxlcl90ZXN0LnBocCIsICJ0ZXN0X2F0dGFjaC50eHQiKSkNCiAgICAg +ICAgew0KICAgICAgICAgICAgJHRoaXMtPmFzc2VydChmYWxzZSwgJHRoaXMtPk1haWwtPkVycm9y +SW5mbyk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICAkdGhpcy0+ +QnVpbGRCb2R5KCk7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNlbmQoKSwg +JHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQW4gZW1i +ZWRkZWQgYXR0YWNobWVudCB0ZXN0Lg0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHRlc3RfRW1iZWRk +ZWRfSW1hZ2UoKSB7DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPkJvZHkgPSAiRW1iZWRkZWQgSW1h +Z2U6IDxpbWcgYWx0PVwicGhwbWFpbGVyXCIgc3JjPVwiY2lkOm15LWF0dGFjaFwiPiIgLg0KICAg +ICAgICAgICAgICAgICAgICAgIkhlcmUgaXMgYW4gaW1hZ2UhPC9hPiI7DQogICAgICAgICR0aGlz +LT5NYWlsLT5TdWJqZWN0IC49ICI6IEVtYmVkZGVkIEltYWdlIjsNCiAgICAgICAgJHRoaXMtPk1h +aWwtPklzSFRNTCh0cnVlKTsNCg0KICAgICAgICBpZighJHRoaXMtPk1haWwtPkFkZEVtYmVkZGVk +SW1hZ2UoInJvY2tzLnBuZyIsICJteS1hdHRhY2giLCAicm9ja3MucG5nIiwNCiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYXNlNjQiLCAiaW1hZ2UvcG5nIikpDQog +ICAgICAgIHsNCiAgICAgICAgICAgICR0aGlzLT5hc3NlcnQoZmFsc2UsICR0aGlzLT5NYWlsLT5F +cnJvckluZm8pOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgJHRo +aXMtPkJ1aWxkQm9keSgpOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5k +KCksICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIEFu +IGVtYmVkZGVkIGF0dGFjaG1lbnQgdGVzdC4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0X011 +bHRpX0VtYmVkZGVkX0ltYWdlKCkgew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0gIkVt +YmVkZGVkIEltYWdlOiA8aW1nIGFsdD1cInBocG1haWxlclwiIHNyYz1cImNpZDpteS1hdHRhY2hc +Ij4iIC4NCiAgICAgICAgICAgICAgICAgICAgICJIZXJlIGlzIGFuIGltYWdlITwvYT4iOw0KICAg +ICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCAuPSAiOiBFbWJlZGRlZCBJbWFnZSArIEF0dGFjaG1l +bnQiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+SXNIVE1MKHRydWUpOw0KDQogICAgICAgIGlmKCEk +dGhpcy0+TWFpbC0+QWRkRW1iZWRkZWRJbWFnZSgicm9ja3MucG5nIiwgIm15LWF0dGFjaCIsICJy +b2Nrcy5wbmciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJh +c2U2NCIsICJpbWFnZS9wbmciKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRoaXMtPmFzc2Vy +dChmYWxzZSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAgICAgICAgICByZXR1cm47DQog +ICAgICAgIH0NCg0KICAgICAgICBpZighJHRoaXMtPk1haWwtPkFkZEF0dGFjaG1lbnQoInBocG1h +aWxlcl90ZXN0LnBocCIsICJ0ZXN0LnR4dCIpKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGhp +cy0+YXNzZXJ0KGZhbHNlLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICAgICAgICAgIHJl +dHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAg +JHRoaXMtPmFzc2VydCgkdGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZv +KTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBTaW1wbGUgbXVsdGlwYXJ0L2FsdGVybmF0aXZl +IHRlc3QuDQogICAgICovDQogICAgZnVuY3Rpb24gdGVzdF9BbHRCb2R5KCkgew0KDQogICAgICAg +ICR0aGlzLT5NYWlsLT5Cb2R5ID0gIlRoaXMgaXMgdGhlIDxiPkhUTUw8L2I+IHBhcnQgb2YgdGhl +IGVtYWlsLiI7DQogICAgICAgICR0aGlzLT5NYWlsLT5BbHRCb2R5ID0gIkhlcmUgaXMgdGhlIHRl +eHQgYm9keSBvZiB0aGlzIG1lc3NhZ2UuICAiIC4NCiAgICAgICAgICAgICAgICAgICAiSXQgc2hv +dWxkIGJlIHF1aXRlIGEgZmV3IGxpbmVzLiAgSXQgc2hvdWxkIGJlIHdyYXBwZWQgYXQgdGhlICIg +Lg0KICAgICAgICAgICAgICAgICAgICI0MCBjaGFyYWN0ZXJzLiAgTWFrZSBzdXJlIHRoYXQgaXQg +aXMuIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPldvcmRXcmFwID0gNDA7DQogICAgICAgICR0aGlz +LT5BZGROb3RlKCJUaGlzIGlzIGEgbXVsaXBhcnQgYWx0ZXJuYXRpdmUgZW1haWwiKTsNCiAgICAg +ICAgJHRoaXMtPk1haWwtPlN1YmplY3QgLj0gIjogQWx0Qm9keSArIFdvcmQgV3JhcCI7DQoNCiAg +ICAgICAgJHRoaXMtPkJ1aWxkQm9keSgpOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5N +YWlsLT5TZW5kKCksICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0K +ICAgICAqIFNpbXBsZSBIVE1MIGFuZCBhdHRhY2htZW50IHRlc3QNCiAgICAgKi8NCiAgICBmdW5j +dGlvbiB0ZXN0X0FsdEJvZHlfQXR0YWNobWVudCgpIHsNCg0KICAgICAgICAkdGhpcy0+TWFpbC0+ +Qm9keSA9ICJUaGlzIGlzIHRoZSA8Yj5IVE1MPC9iPiBwYXJ0IG9mIHRoZSBlbWFpbC4iOw0KICAg +ICAgICAkdGhpcy0+TWFpbC0+QWx0Qm9keSA9ICJUaGlzIGlzIHRoZSB0ZXh0IHBhcnQgb2YgdGhl +IGVtYWlsLiI7DQogICAgICAgICR0aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IEFsdEJvZHkgKyBB +dHRhY2htZW50IjsNCiAgICAgICAgJHRoaXMtPk1haWwtPklzSFRNTCh0cnVlKTsNCg0KICAgICAg +ICBpZighJHRoaXMtPk1haWwtPkFkZEF0dGFjaG1lbnQoInBocG1haWxlcl90ZXN0LnBocCIsICJ0 +ZXN0X2F0dGFjaC50eHQiKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRoaXMtPmFzc2VydChm +YWxzZSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAgICAgICAgICByZXR1cm47DQogICAg +ICAgIH0NCg0KICAgICAgICAkdGhpcy0+QnVpbGRCb2R5KCk7DQogICAgICAgICR0aGlzLT5hc3Nl +cnQoJHRoaXMtPk1haWwtPlNlbmQoKSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQoNCiAgICAg +ICAgJGZwID0gZm9wZW4oIm1lc3NhZ2UudHh0IiwgInciKTsNCiAgICAgICAgZndyaXRlKCRmcCwg +JHRoaXMtPk1haWwtPkNyZWF0ZUhlYWRlcigpIC4gJHRoaXMtPk1haWwtPkNyZWF0ZUJvZHkoKSk7 +DQogICAgICAgIGZjbG9zZSgkZnApOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHRlc3RfTXVsdGlw +bGVTZW5kKCkgew0KICAgICAgICAkdGhpcy0+TWFpbC0+Qm9keSA9ICJTZW5kaW5nIHR3byBtZXNz +YWdlcyB3aXRob3V0IGtlZXBhbGl2ZSI7DQogICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAg +ICAgICAgJHN1YmplY3QgPSAkdGhpcy0+TWFpbC0+U3ViamVjdDsNCg0KICAgICAgICAkdGhpcy0+ +TWFpbC0+U3ViamVjdCA9ICRzdWJqZWN0IC4gIjogU01UUCAxIjsNCiAgICAgICAgJHRoaXMtPmFz +c2VydCgkdGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCg0KICAg +ICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCA9ICRzdWJqZWN0IC4gIjogU01UUCAyIjsNCiAgICAg +ICAgJHRoaXMtPmFzc2VydCgkdGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJ +bmZvKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiB0ZXN0X1NtdHBLZWVwQWxpdmUoKSB7DQogICAg +ICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0gIlRoaXMgd2FzIGRvbmUgdXNpbmcgdGhlIFNNVFAga2Vl +cC1hbGl2ZS4iOw0KICAgICAgICAkdGhpcy0+QnVpbGRCb2R5KCk7DQogICAgICAgICRzdWJqZWN0 +ID0gJHRoaXMtPk1haWwtPlN1YmplY3Q7DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPlNNVFBLZWVw +QWxpdmUgPSB0cnVlOw0KICAgICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCA9ICRzdWJqZWN0IC4g +IjogU01UUCBrZWVwLWFsaXZlIDEiOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWls +LT5TZW5kKCksICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KDQogICAgICAgICR0aGlzLT5NYWls +LT5TdWJqZWN0ID0gJHN1YmplY3QgLiAiOiBTTVRQIGtlZXAtYWxpdmUgMiI7DQogICAgICAgICR0 +aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNlbmQoKSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7 +DQogICAgICAgICR0aGlzLT5NYWlsLT5TbXRwQ2xvc2UoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlv +biB0ZXN0X0Vycm9yKCkgew0KICAgICAgICAkdGhpcy0+QnVpbGRCb2R5KCk7DQogICAgICAgICR0 +aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IFRoaXMgc2hvdWxkIG5vdCBiZSBzZW50IjsNCiAgICAg +ICAgJHRoaXMtPk1haWwtPkNsZWFyQWxsUmVjaXBpZW50cygpOyAvLyBubyBhZGRyZXNzZXMgc2hv +dWxkIGNhdXNlIGFuIGVycm9yDQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPklz +RXJyb3IoKSA9PSBmYWxzZSwgIkVycm9yIGZvdW5kIik7DQogICAgICAgICR0aGlzLT5hc3NlcnQo +JHRoaXMtPk1haWwtPlNlbmQoKSA9PSBmYWxzZSwgIlNlbmQgc3VjY2VlZGVkIik7DQogICAgICAg +ICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPklzRXJyb3IoKSwgIk5vIGVycm9yIGZvdW5kIik7 +DQogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ1lvdSBtdXN0IHByb3ZpZGUgYXQgbGVhc3Qg +b25lICcgLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWNpcGllbnQgZW1haWwgYWRk +cmVzcy4nLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9DQp9DQoNCi8qKg0KICogQ3Jl +YXRlIGFuZCBydW4gdGVzdCBpbnN0YW5jZS4NCiAqLw0KDQppZihpc3NldCgkSFRUUF9HRVRfVkFS +UykpDQogICAgJGdsb2JhbF92YXJzID0gJEhUVFBfR0VUX1ZBUlM7DQplbHNlDQogICAgJGdsb2Jh +bF92YXJzID0gJF9SRVFVRVNUOw0KDQppZihpc3NldCgkZ2xvYmFsX3ZhcnNbInN1Ym1pdHRlZCJd +KSkNCnsNCiAgICBlY2hvICJUZXN0IHJlc3VsdHM6PGJyPiI7DQogICAgJHN1aXRlID0gbmV3IFRl +c3RTdWl0ZSggInBocG1haWxlclRlc3QiICk7DQoNCiAgICAkdGVzdFJ1bm5lciA9IG5ldyBUZXN0 +UnVubmVyOw0KICAgICR0ZXN0UnVubmVyLT5ydW4oJHN1aXRlKTsNCiAgICBlY2hvICI8aHIgbm9z +aGFkZS8+IjsNCn0NCg0KZnVuY3Rpb24gZ2V0KCRzTmFtZSkgew0KICAgIGdsb2JhbCAkZ2xvYmFs +X3ZhcnM7DQogICAgaWYoaXNzZXQoJGdsb2JhbF92YXJzWyRzTmFtZV0pKQ0KICAgICAgICByZXR1 +cm4gJGdsb2JhbF92YXJzWyRzTmFtZV07DQogICAgZWxzZQ0KICAgICAgICByZXR1cm4gIiI7DQp9 +DQoNCj8+DQoNCjxodG1sPg0KPGJvZHk+DQo8aDM+cGhwbWFpbGVyIFVuaXQgVGVzdDwvaDM+DQpC +eSBlbnRlcmluZyBhIFNNVFAgaG9zdG5hbWUgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IHBlcmZvcm0g +dGVzdHMgd2l0aCBTTVRQLg0KDQo8Zm9ybSBuYW1lPSJwaHBtYWlsZXJfdW5pdCIgYWN0aW9uPSJw +aHBtYWlsZXJfdGVzdC5waHAiIG1ldGhvZD0iZ2V0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h +bWU9InN1Ym1pdHRlZCIgdmFsdWU9IjEiLz4NClRvIEFkZHJlc3M6IDxpbnB1dCB0eXBlPSJ0ZXh0 +IiBzaXplPSI1MCIgbmFtZT0ibWFpbF90byIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0KCJtYWlsX3Rv +Iik7ID8+Ii8+DQo8YnIvPg0KQ2MgQWRkcmVzczogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjUw +IiBuYW1lPSJtYWlsX2NjIiB2YWx1ZT0iPD9waHAgZWNobyBnZXQoIm1haWxfY2MiKTsgPz4iLz4N +Cjxici8+DQpTTVRQIEhvc3RuYW1lOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNTAiIG5hbWU9 +Im1haWxfaG9zdCIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0KCJtYWlsX2hvc3QiKTsgPz4iLz4NCjxw +Lz4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJSdW4gVGVzdCIvPg0KDQo8L2Zvcm0+DQo8 +L2JvZHk+DQo8L2h0bWw+DQo= + + +--b1_a0169dc7929d1c609a827b4d1a0c3f74-- diff --git a/Class/test/phpmailer_test.php b/Class/test/phpmailer_test.php new file mode 100644 index 0000000..4264a4f --- /dev/null +++ b/Class/test/phpmailer_test.php @@ -0,0 +1,558 @@ +TestCase( $name ); + } + + /** + * Run before each test is started. + */ + function setUp() { + global $global_vars; + global $INCLUDE_DIR; + + $this->Mail = new PHPMailer(); + + $this->Mail->Priority = 3; + $this->Mail->Encoding = "8bit"; + $this->Mail->CharSet = "iso-8859-1"; + $this->Mail->From = "unit_test@phpmailer.sf.net"; + $this->Mail->FromName = "Unit Tester"; + $this->Mail->Sender = ""; + $this->Mail->Subject = "Unit Test"; + $this->Mail->Body = ""; + $this->Mail->AltBody = ""; + $this->Mail->WordWrap = 0; + $this->Mail->Host = $global_vars["mail_host"]; + $this->Mail->Port = 25; + $this->Mail->Helo = "localhost.localdomain"; + $this->Mail->SMTPAuth = false; + $this->Mail->Username = ""; + $this->Mail->Password = ""; + $this->Mail->PluginDir = $INCLUDE_DIR; + $this->Mail->AddReplyTo("no_reply@phpmailer.sf.net", "Reply Guy"); + $this->Mail->Sender = "nobody@example.com"; + + if(strlen($this->Mail->Host) > 0) + $this->Mail->Mailer = "smtp"; + else + { + $this->Mail->Mailer = "mail"; + $this->Sender = "unit_test@phpmailer.sf.net"; + } + + global $global_vars; + $this->SetAddress($global_vars["mail_to"], "Test User"); + if(strlen($global_vars["mail_cc"]) > 0) + $this->SetAddress($global_vars["mail_cc"], "Carbon User", "cc"); + } + + /** + * Run after each test is completed. + */ + function tearDown() { + // Clean global variables + $this->Mail = NULL; + $this->ChangeLog = array(); + $this->NoteLog = array(); + } + + + /** + * Build the body of the message in the appropriate format. + * @private + * @returns void + */ + function BuildBody() { + $this->CheckChanges(); + + // Determine line endings for message + if($this->Mail->ContentType == "text/html" || strlen($this->Mail->AltBody) > 0) + { + $eol = "
"; + $bullet = "
  • "; + $bullet_start = "
      "; + $bullet_end = "
    "; + } + else + { + $eol = "\n"; + $bullet = " - "; + $bullet_start = ""; + $bullet_end = ""; + } + + $ReportBody = ""; + + $ReportBody .= "---------------------" . $eol; + $ReportBody .= "Unit Test Information" . $eol; + $ReportBody .= "---------------------" . $eol; + $ReportBody .= "phpmailer version: " . $this->Mail->Version . $eol; + $ReportBody .= "Content Type: " . $this->Mail->ContentType . $eol; + + if(strlen($this->Mail->Host) > 0) + $ReportBody .= "Host: " . $this->Mail->Host . $eol; + + // If attachments then create an attachment list + if(count($this->Mail->attachment) > 0) + { + $ReportBody .= "Attachments:" . $eol; + $ReportBody .= $bullet_start; + for($i = 0; $i < count($this->Mail->attachment); $i++) + { + $ReportBody .= $bullet . "Name: " . $this->Mail->attachment[$i][1] . ", "; + $ReportBody .= "Encoding: " . $this->Mail->attachment[$i][3] . ", "; + $ReportBody .= "Type: " . $this->Mail->attachment[$i][4] . $eol; + } + $ReportBody .= $bullet_end . $eol; + } + + // If there are changes then list them + if(count($this->ChangeLog) > 0) + { + $ReportBody .= "Changes" . $eol; + $ReportBody .= "-------" . $eol; + + $ReportBody .= $bullet_start; + for($i = 0; $i < count($this->ChangeLog); $i++) + { + $ReportBody .= $bullet . $this->ChangeLog[$i][0] . " was changed to [" . + $this->ChangeLog[$i][1] . "]" . $eol; + } + $ReportBody .= $bullet_end . $eol . $eol; + } + + // If there are notes then list them + if(count($this->NoteLog) > 0) + { + $ReportBody .= "Notes" . $eol; + $ReportBody .= "-----" . $eol; + + $ReportBody .= $bullet_start; + for($i = 0; $i < count($this->NoteLog); $i++) + { + $ReportBody .= $bullet . $this->NoteLog[$i] . $eol; + } + $ReportBody .= $bullet_end; + } + + // Re-attach the original body + $this->Mail->Body .= $eol . $eol . $ReportBody; + } + + /** + * Check which default settings have been changed for the report. + * @private + * @returns void + */ + function CheckChanges() { + if($this->Mail->Priority != 3) + $this->AddChange("Priority", $this->Mail->Priority); + if($this->Mail->Encoding != "8bit") + $this->AddChange("Encoding", $this->Mail->Encoding); + if($this->Mail->CharSet != "iso-8859-1") + $this->AddChange("CharSet", $this->Mail->CharSet); + if($this->Mail->Sender != "") + $this->AddChange("Sender", $this->Mail->Sender); + if($this->Mail->WordWrap != 0) + $this->AddChange("WordWrap", $this->Mail->WordWrap); + if($this->Mail->Mailer != "mail") + $this->AddChange("Mailer", $this->Mail->Mailer); + if($this->Mail->Port != 25) + $this->AddChange("Port", $this->Mail->Port); + if($this->Mail->Helo != "localhost.localdomain") + $this->AddChange("Helo", $this->Mail->Helo); + if($this->Mail->SMTPAuth) + $this->AddChange("SMTPAuth", "true"); + } + + /** + * Adds a change entry. + * @private + * @returns void + */ + function AddChange($sName, $sNewValue) { + $cur = count($this->ChangeLog); + $this->ChangeLog[$cur][0] = $sName; + $this->ChangeLog[$cur][1] = $sNewValue; + } + + /** + * Adds a simple note to the message. + * @public + * @returns void + */ + function AddNote($sValue) { + $this->NoteLog[] = $sValue; + } + + /** + * Adds all of the addresses + * @public + * @returns void + */ + function SetAddress($sAddress, $sName = "", $sType = "to") { + switch($sType) + { + case "to": + $this->Mail->AddAddress($sAddress, $sName); + break; + case "cc": + $this->Mail->AddCC($sAddress, $sName); + break; + case "bcc": + $this->Mail->AddBCC($sAddress, $sName); + break; + } + } + + ///////////////////////////////////////////////// + // UNIT TESTS + ///////////////////////////////////////////////// + + /** + * Try a plain message. + */ + function test_WordWrap() { + + $this->Mail->WordWrap = 40; + $my_body = "Here is the main body of this message. It should " . + "be quite a few lines. It should be wrapped at the " . + "40 characters. Make sure that it is."; + $nBodyLen = strlen($my_body); + $my_body .= "\n\nThis is the above body length: " . $nBodyLen; + + $this->Mail->Body = $my_body; + $this->Mail->Subject .= ": Wordwrap"; + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Try a plain message. + */ + function test_Low_Priority() { + + $this->Mail->Priority = 5; + $this->Mail->Body = "Here is the main body. There should be " . + "a reply to address in this message."; + $this->Mail->Subject .= ": Low Priority"; + $this->Mail->AddReplyTo("nobody@nobody.com", "Nobody (Unit Test)"); + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Simple plain file attachment test. + */ + function test_Multiple_Plain_FileAttachment() { + + $this->Mail->Body = "Here is the text body"; + $this->Mail->Subject .= ": Plain + Multiple FileAttachments"; + + if(!$this->Mail->AddAttachment("rocks.png")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Simple plain string attachment test. + */ + function test_Plain_StringAttachment() { + + $this->Mail->Body = "Here is the text body"; + $this->Mail->Subject .= ": Plain + StringAttachment"; + + $sAttachment = "These characters are the content of the " . + "string attachment.\nThis might be taken from a ". + "database or some other such thing. "; + + $this->Mail->AddStringAttachment($sAttachment, "string_attach.txt"); + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Plain quoted-printable message. + */ + function test_Quoted_Printable() { + + $this->Mail->Body = "Here is the main body"; + $this->Mail->Subject .= ": Plain + Quoted-printable"; + $this->Mail->Encoding = "quoted-printable"; + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Try a plain message. + */ + function test_Html() { + + $this->Mail->IsHTML(true); + $this->Mail->Subject .= ": HTML only"; + + $this->Mail->Body = "This is a test message written in HTML.
    " . + "Go to " . + "http://phpmailer.sourceforge.net/ for new versions of " . + "phpmailer.

    Thank you!"; + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Simple HTML and attachment test + */ + function test_HTML_Attachment() { + + $this->Mail->Body = "This is the HTML part of the email."; + $this->Mail->Subject .= ": HTML + Attachment"; + $this->Mail->IsHTML(true); + + if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * An embedded attachment test. + */ + function test_Embedded_Image() { + + $this->Mail->Body = "Embedded Image: \"phpmailer\"" . + "Here is an image!"; + $this->Mail->Subject .= ": Embedded Image"; + $this->Mail->IsHTML(true); + + if(!$this->Mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png", + "base64", "image/png")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * An embedded attachment test. + */ + function test_Multi_Embedded_Image() { + + $this->Mail->Body = "Embedded Image: \"phpmailer\"" . + "Here is an image!"; + $this->Mail->Subject .= ": Embedded Image + Attachment"; + $this->Mail->IsHTML(true); + + if(!$this->Mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png", + "base64", "image/png")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Simple multipart/alternative test. + */ + function test_AltBody() { + + $this->Mail->Body = "This is the HTML part of the email."; + $this->Mail->AltBody = "Here is the text body of this message. " . + "It should be quite a few lines. It should be wrapped at the " . + "40 characters. Make sure that it is."; + $this->Mail->WordWrap = 40; + $this->AddNote("This is a mulipart alternative email"); + $this->Mail->Subject .= ": AltBody + Word Wrap"; + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + /** + * Simple HTML and attachment test + */ + function test_AltBody_Attachment() { + + $this->Mail->Body = "This is the HTML part of the email."; + $this->Mail->AltBody = "This is the text part of the email."; + $this->Mail->Subject .= ": AltBody + Attachment"; + $this->Mail->IsHTML(true); + + if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt")) + { + $this->assert(false, $this->Mail->ErrorInfo); + return; + } + + $this->BuildBody(); + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + + $fp = fopen("message.txt", "w"); + fwrite($fp, $this->Mail->CreateHeader() . $this->Mail->CreateBody()); + fclose($fp); + } + + function test_MultipleSend() { + $this->Mail->Body = "Sending two messages without keepalive"; + $this->BuildBody(); + $subject = $this->Mail->Subject; + + $this->Mail->Subject = $subject . ": SMTP 1"; + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + + $this->Mail->Subject = $subject . ": SMTP 2"; + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + } + + function test_SmtpKeepAlive() { + $this->Mail->Body = "This was done using the SMTP keep-alive."; + $this->BuildBody(); + $subject = $this->Mail->Subject; + + $this->Mail->SMTPKeepAlive = true; + $this->Mail->Subject = $subject . ": SMTP keep-alive 1"; + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + + $this->Mail->Subject = $subject . ": SMTP keep-alive 2"; + $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo); + $this->Mail->SmtpClose(); + } + + function test_Error() { + $this->BuildBody(); + $this->Mail->Subject .= ": This should not be sent"; + $this->Mail->ClearAllRecipients(); // no addresses should cause an error + $this->assert($this->Mail->IsError() == false, "Error found"); + $this->assert($this->Mail->Send() == false, "Send succeeded"); + $this->assert($this->Mail->IsError(), "No error found"); + $this->assertEquals('You must provide at least one ' . + 'recipient email address.', $this->Mail->ErrorInfo); + } +} + +/** + * Create and run test instance. + */ + +if(isset($HTTP_GET_VARS)) + $global_vars = $HTTP_GET_VARS; +else + $global_vars = $_REQUEST; + +if(isset($global_vars["submitted"])) +{ + echo "Test results:
    "; + $suite = new TestSuite( "phpmailerTest" ); + + $testRunner = new TestRunner; + $testRunner->run($suite); + echo "


    "; +} + +function get($sName) { + global $global_vars; + if(isset($global_vars[$sName])) + return $global_vars[$sName]; + else + return ""; +} + +?> + + + +

    phpmailer Unit Test

    +By entering a SMTP hostname it will automatically perform tests with SMTP. + +
    + +To Address: "/> +
    +Cc Address: "/> +
    +SMTP Hostname: "/> +

    + + +

    + + diff --git a/Class/test/phpunit.php b/Class/test/phpunit.php new file mode 100644 index 0000000..45b1bf0 --- /dev/null +++ b/Class/test/phpunit.php @@ -0,0 +1,376 @@ + +// OntoSys, Inc +// +// $Id: phpunit.php,v 1.1 2002/03/30 19:32:17 bmatzelle Exp $ + +// Copyright (c) 2000 Fred Yankowski + +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, copy, +// modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +/*error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | + E_CORE_ERROR | E_CORE_WARNING);*/ + +/* +interface Test { + function run(&$aTestResult); + function countTestCases(); +} +*/ + +function trace($msg) { + return; + print($msg); + flush(); +} + + +/*class Exception { + /* Emulate a Java exception, sort of... */ + /*var $message; + function Exception($message) { + $this->message = $message; + } + function getMessage() { + return $this->message; + } +}*/ + +class Assert { + function assert($boolean, $message=0) { + if (! $boolean) + $this->fail($message); + } + + function assertEquals($expected, $actual, $message=0) { + if ($expected != $actual) { + $this->failNotEquals($expected, $actual, "expected", $message); + } + } + + function assertRegexp($regexp, $actual, $message=false) { + if (! preg_match($regexp, $actual)) { + $this->failNotEquals($regexp, $actual, "pattern", $message); + } + } + + function failNotEquals($expected, $actual, $expected_label, $message=0) { + // Private function for reporting failure to match. + $str = $message ? ($message . ' ') : ''; + $str .= "($expected_label/actual)
    "; + $htmlExpected = htmlspecialchars($expected); + $htmlActual = htmlspecialchars($actual); + $str .= sprintf("
    %s\n--------\n%s
    ", + $htmlExpected, $htmlActual); + $this->fail($str); + } +} + +class TestCase extends Assert /* implements Test */ { + /* Defines context for running tests. Specific context -- such as + instance variables, global variables, global state -- is defined + by creating a subclass that specializes the setUp() and + tearDown() methods. A specific test is defined by a subclass + that specializes the runTest() method. */ + var $fName; + var $fResult; + var $fExceptions = array(); + + function TestCase($name) { + $this->fName = $name; + } + + function run($testResult=0) { + /* Run this single test, by calling the run() method of the + TestResult object which will in turn call the runBare() method + of this object. That complication allows the TestResult object + to do various kinds of progress reporting as it invokes each + test. Create/obtain a TestResult object if none was passed in. + Note that if a TestResult object was passed in, it must be by + reference. */ + if (! $testResult) + $testResult = $this->_createResult(); + $this->fResult = $testResult; + $testResult->run(&$this); + $this->fResult = 0; + return $testResult; + } + + function countTestCases() { + return 1; + } + + function runTest() { + $name = $this->name(); + // Since isset($this->$name) is false, no way to run defensive checks + $this->$name(); + } + + function setUp() /* expect override */ { + //print("TestCase::setUp()
    \n"); + } + + function tearDown() /* possible override */ { + //print("TestCase::tearDown()
    \n"); + } + + //////////////////////////////////////////////////////////////// + + + function _createResult() /* protected */ { + /* override this to use specialized subclass of TestResult */ + return new TestResult; + } + + function fail($message=0) { + //printf("TestCase::fail(%s)
    \n", ($message) ? $message : ''); + /* JUnit throws AssertionFailedError here. We just record the + failure and carry on */ + $this->fExceptions[] = new Exception(&$message); + } + + function error($message) { + /* report error that requires correction in the test script + itself, or (heaven forbid) in this testing infrastructure */ + printf('ERROR: ' . $message . '
    '); + $this->fResult->stop(); + } + + function failed() { + return count($this->fExceptions); + } + + function getExceptions() { + return $this->fExceptions; + } + + function name() { + return $this->fName; + } + + function runBare() { + $this->setup(); + $this->runTest(); + $this->tearDown(); + } +} + + +class TestSuite /* implements Test */ { + /* Compose a set of Tests (instances of TestCase or TestSuite), and + run them all. */ + var $fTests = array(); + + function TestSuite($classname=false) { + if ($classname) { + // Find all methods of the given class whose name starts with + // "test" and add them to the test suite. We are just _barely_ + // able to do this with PHP's limited introspection... Note + // that PHP seems to store method names in lower case, and we + // have to avoid the constructor function for the TestCase class + // superclass. This will fail when $classname starts with + // "Test" since that will have a constructor method that will + // get matched below and then treated (incorrectly) as a test + // method. So don't name any TestCase subclasses as "Test..."! + if (floor(phpversion()) >= 4) { + // PHP4 introspection, submitted by Dylan Kuhn + $names = get_class_methods($classname); + while (list($key, $method) = each($names)) { + if (preg_match('/^test/', $method) && $method != "testcase") { + $this->addTest(new $classname($method)); + } + } + } + else { + $dummy = new $classname("dummy"); + $names = (array) $dummy; + while (list($key, $value) = each($names)) { + $type = gettype($value); + if ($type == "user function" && preg_match('/^test/', $key) + && $key != "testcase") { + $this->addTest(new $classname($key)); + } + } + } + } + } + + function addTest($test) { + /* Add TestCase or TestSuite to this TestSuite */ + $this->fTests[] = $test; + } + + function run(&$testResult) { + /* Run all TestCases and TestSuites comprising this TestSuite, + accumulating results in the given TestResult object. */ + reset($this->fTests); + while (list($na, $test) = each($this->fTests)) { + if ($testResult->shouldStop()) + break; + $test->run(&$testResult); + } + } + + function countTestCases() { + /* Number of TestCases comprising this TestSuite (including those + in any constituent TestSuites) */ + $count = 0; + reset($fTests); + while (list($na, $test_case) = each($this->fTests)) { + $count += $test_case->countTestCases(); + } + return $count; + } +} + + +class TestFailure { + /* Record failure of a single TestCase, associating it with the + exception(s) that occurred */ + var $fFailedTestName; + var $fExceptions; + + function TestFailure(&$test, &$exceptions) { + $this->fFailedTestName = $test->name(); + $this->fExceptions = $exceptions; + } + + function getExceptions() { + return $this->fExceptions; + } + function getTestName() { + return $this->fFailedTestName; + } +} + + +class TestResult { + /* Collect the results of running a set of TestCases. */ + var $fFailures = array(); + var $fRunTests = 0; + var $fStop = false; + + function TestResult() { } + + function _endTest($test) /* protected */ { + /* specialize this for end-of-test action, such as progress + reports */ + } + + function getFailures() { + return $this->fFailures; + } + + function run($test) { + /* Run a single TestCase in the context of this TestResult */ + $this->_startTest($test); + $this->fRunTests++; + + $test->runBare(); + + /* this is where JUnit would catch AssertionFailedError */ + $exceptions = $test->getExceptions(); + if ($exceptions) + $this->fFailures[] = new TestFailure(&$test, &$exceptions); + $this->_endTest($test); + } + + function countTests() { + return $this->fRunTests; + } + + function shouldStop() { + return $this->fStop; + } + + function _startTest($test) /* protected */ { + /* specialize this for start-of-test actions */ + } + + function stop() { + /* set indication that the test sequence should halt */ + $fStop = true; + } + + function countFailures() { + return count($this->fFailures); + } +} + + +class TextTestResult extends TestResult { + /* Specialize TestResult to produce text/html report */ + function TextTestResult() { + $this->TestResult(); // call superclass constructor + } + + function report() { + /* report result of test run */ + $nRun = $this->countTests(); + $nFailures = $this->countFailures(); + printf("

    %s test%s run
    ", $nRun, ($nRun == 1) ? '' : 's'); + printf("%s failure%s.
    \n", $nFailures, ($nFailures == 1) ? '' : 's'); + if ($nFailures == 0) + return; + + print("

      \n"); + $failures = $this->getFailures(); + while (list($i, $failure) = each($failures)) { + $failedTestName = $failure->getTestName(); + printf("
    1. %s\n", $failedTestName); + + $exceptions = $failure->getExceptions(); + print("
        "); + while (list($na, $exception) = each($exceptions)) + printf("
      • %s\n", $exception->getMessage()); + print("
      "); + } + print("
    \n"); + } + + function _startTest($test) { + printf("%s ", $test->name()); + flush(); + } + + function _endTest($test) { + $outcome = $test->failed() + ? "FAIL" + : "ok"; + printf("$outcome
    \n"); + flush(); + } +} + + +class TestRunner { + /* Run a suite of tests and report results. */ + function run($suite) { + $result = new TextTestResult; + $suite->run($result); + $result->report(); + } +} + +?> diff --git a/Class/test/rocks.png b/Class/test/rocks.png new file mode 100644 index 0000000..f1ad755 --- /dev/null +++ b/Class/test/rocks.png @@ -0,0 +1 @@ +‰PNG diff --git a/fermerServeur.php b/fermerServeur.php index 8399e15..10c735d 100644 --- a/fermerServeur.php +++ b/fermerServeur.php @@ -1,9 +1,9 @@ - - -<?php -if (defined('TITLE')) echo TITLE; -else print 'Halo Battle'; -?> - - - - - - - - - - - - - - - -'; -?> - - - \ No newline at end of file diff --git a/info.php b/info.php deleted file mode 100644 index 0f281a1..0000000 --- a/info.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/languages/fr_FR/noms.php b/languages/fr_FR/noms.php deleted file mode 100644 index 9510528..0000000 --- a/languages/fr_FR/noms.php +++ /dev/null @@ -1,260 +0,0 @@ -Malheureusement, un manque d\'espace empêche l\'installation de générateur énergétique plus puissant qui pourrait supporter des boucliers standards ou même de faible intensité.', - 'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de débarquement « Spirit ». Il possède trois tourelles plasma particulièrement puissantes et peut laisser tomber ses occupants à terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus résistant que son prédécesseur, une puissance de feu accrue et peut transporter tout type d’équipage comme des hunters.
    Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut éliminer un bon nombre de marines.', - '~#DESCRIPTION MANQUANTE#~ Boarding craft', - 'Le ghost est un véhicule de reconnaissance et d\'attaque rapide déployée par les Covenants dans tout combat terrestre. Cet engin, très souvent piloté par les Elites, est très maniable. Il est capable de tirer des doubles décharges de plasma surchauffées d\'une puissance de 100-250 kW. Le ghost peut également effectuer des pointes de vitesse soutenues.', - 'Le Shadow est le principal moyen de transport terrestre des troupes covenantes. Ce véhicule peut accueillir un pilote, un artilleur et jusqu\'à huit passagers en fonction du type de Covenants qui monte à bord. Il est en outre équipé pour transporter des Elites, des Brutes, des Grunts ou des Jackals. Si le Shadow est équipé d\'un canon à plasma, sa vocation reste le déploiement de troupes.', - 'Le Spectre est un transport multi troupes blindé de petite taille. Quoique relativement lent, il est tout à fait maniable et se meut avec aisance dans les espaces confinés. Ses principales faiblesses étant son manque de vitesse et d\'accélération, ses occupants demeurent tout de même relativement exposés. Le canon à plasma monté à l\'arrière représente un grand danger pour l\'ennemi et le véhicule offre par ailleurs diverses positions de tir.', - 'Lent, massif et constituant une cible de taille, ce véhicule n\'en demeure pas moins le blindé covenant le plus destructeur. Ce géant de métal est bien protégé. Le tir de couverture qu\'il peut effectuer grâce à ses mortiers à plasma redoutables en fait un ennemi incroyablement dangereux. Le fait qu\'il soit piloté par une seule personne qui contrôle le véhicule et le système d\'armement limite quelque peu son champ de manoeuvre.', - 'Les tourelles shades sont des canons stationnaires énergétiques covenant composés de deux parties, la première étant une base stable à trois pieds pour la stabilité de l’appareil, la deuxième, un siège où le canon est fixé retenu par un champ gravitationnel artificiel. Ce canon lorsqu’il tire, envoie 3 « éclairs » relativement lents et d’efficacité moyenne.', - 'Cette tourelle est une version améliorée de la shade standard. Dans les modifications de la tourelle, le système d’accélération magnétique a été révisé pour le rendre plus performant, aboutissant à des rayons plus rapides. Également, un bouclier a été ajouté à l’avant, protégeant ainsi l’utilisateur des attaques aux armes à projectiles de petit et moyen calibre pendant une période de quelques secondes lors de feux nourris.', - 'La tourelle à barreau de combustible est une version fixe de ceux des hunters avec un système de visé amélioré et de condensateur ionique permettent de tirer trois rafales à la suite sans surcharger les relais du générateur. De puissance moyenne, elle est capable de détruire facilement des warthogs et autres véhicules légers avec une facilité hors norme.', - 'Le canon à plasma n’a pas besoin de canonnier pour tirer puisque équipé d’un système de visée automatisé, il utilise une technologie d’intelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauffé à haute vitesse carbonisant tout sur son passage.', - 'Utilisant un principe similaire de la tourelle à plasma, le lanceur de torpilles plasma utilise un condensateur de matière pour condenser le flux de plasma surchauffé en une masse de destruction pure. Ce système est le système de défense terrestre le plus évolué jamais construit. Son défaut majeur reste sa cadence de tire lente, limitant sa défense face à de multiples adversaires.'); - } - elseif (md5($race) == '34c19b21bd4a3dda389e767d32fe9779' && $auth_level >= 6) { - $ressourc = array('Métal','Cristal','Hydrogène','Energie'); - $casernen = array('Constructor','Sentinelle Légère','Sentinelle Lourde','Enforcer Léger','Enforcer Lourd','Monitor','~#PAS DE NOM#~ Médecin','~#PAS DE NOM#~ Ingénieur','~#PAS DE NOM#~ Brute'); - $casernde = array( 'Les Constructors sont des minis sentinelles capable d\'effectuer certaine reparation mineur, ils peuvent réparés les sentinelles endommager ainsi que les chasseurs légers.', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Légère', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Lourde', - 'Les Enforcers Léger, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie, mais il semble seulement protéger que l\'avant de la machine. Il est armé de faisceaux laser à impulsion rapides.', - 'Les Enforcers Lourd, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie qui recouvre toute la machine. Il est armé de mortiers.', - 'Les monitors ont été placés sur les mondes-forteresse par les Forruner pour entretenir et maintenir leurs systèmes, et pour s\'assurer que les Floods reste emprisonné.', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ '); - $casernea = array('constructor(s)','sentinelle(s) légère(s)','sentinelle(s) lourde(s)','enforcer(s) léger(s)','enforcer(s) lourd(s)','monitor(s)','médecin(s)','ingénieur(s)','brute(s)'); - $casernei = array('scoutma3.jpg','sentinellelegerecn4.jpg','nanw9.jpg','defenseurlegerhs8.jpg','defenseurlourdhr3.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info'); - $batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdenergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg','chantierterrestrehg1.jpg','chantierspatialff8.jpg',0,'nanw9.jpg',0); - $batiment = array('Générateur de Métal','Générateur de Cristal','Générateur d\'Hydrogène','Générateur d\'Energie',0,0,'Centre de recherches','Chantier terrestre','Chantier spatial',0,'Entrepôt',0); - $batimede = array( 'Le générateur de métal vous fournie les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos générateurs, plus uls vous rapportera. Les générateurs plus développés ont aussi besoin de plus d\'énergie.', - 'Le générateur de cristal vous fourni les ressources pour vos installations électroniques et pour les alliages. Le générateur consomme deux fois plus d\'énergie que celui du métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leur composant électronique. La production augmente avec le développement du générateur ainsi que sa consommation.', - 'L\'hydrogène n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste à faire passer un courant électrique dans de l\'eau pour que les molécules se séparent et forme du dihydrogène. Mais cette technique utilise de trop grande quantitée d\'énergie.', - 'Pour assurer l\'approvisionnement des générateurs, des générateurs énergie géantes sont nécessaires. Plus ces installations sont développées, plus vous obtiendrez d’énergie pour vos générateurs. Les générateurs d\'énergies sont la base de l\'approvisionnement pour votre planète en énergie.', - 0, - 0, - 'Le centre de recherche est nécessaire pour développer de nouvelles technologies. Le niveau du centre détermine la vitesse de la recherche. Chaque planète que vous coloniserez devra être équipée d’un centre de recherche.', - '~#DESCRIPTION MANQUANTE#~ Chantier terrestre', - 'Le chantier spatial vous permet de construire des vaisseaux, de l’infanterie et vos installations de défense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de l’infanterie et la création d’installations de défense est rapide.', - 0, - 'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l’entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d’infrastructure.', - 0); - $technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'énergie','Réacteur à antigravité','Réacteur à fusion','Réacteur à fusion Forruner','Médecine','Commandement militaire',0); - $technode = array( 'L’informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réactions qui dans les combats peuvent s’avérer fatales.', - 'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « œil des prophètes » qui repèrera les vaisseaux s’approchant de votre planète.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'Le bouclier est un champ de force qui entoure vos vaisseaux et les protège. Ainsi il permet à vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'avérant peut être décisif dans l’issue de la bataille.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et vaisseaux ; vos chercheurs vous permettront également d\'accéder à de nouveaux types d\'énergies, beaucoup plus intéressants.', - 'Les réacteurs à antigravité sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques créant un champ gravitationnel inverse annulant ainsi la gravité présente. Le principe fonctionne également dans l\'espace puisque l\'absence de gravité dans l\'espace, sans compter les étoiles et les autres anomalies spatiales, permet une projection plus puissante du champ.', - 'Après la combustion, voici la fusion. Ce type de réacteur est beaucoup plus puissant que la combustion utilisée depuis déjà des centaines d\'années. Il génère une énergie cinétique de grande envergure. Aucun dirigeant politique désirant voyager dans le cosmos ne pourrait s’en passer.', - 'Les covenants ont découvert d’anciens réacteurs à fusion utilisant la technologie d’hyperpropulsion Forruner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.', - 'La médecine vous permet d’avoir moins de pertes au combat et ainsi d’avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.'); - $technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg'); - $nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('nanw9.jpg','nanw9.jpg','nanw9.jpg',0,'nanw9.jpg','croiseurforrunerns4.jpg','superdestroyerwa6.jpg','nanw9.jpg','chasseurlourdfk8.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $nomvaisn = array('Transporteur Leger','Transporteur Lourd','Colonisateur',0,'Recycleur','Croiseur Forruner','Super-Destroyer','Chasseur Leger','Chasseur Lourd','Porte-Vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( '~#DESCRIPTION MANQUANTE#~ Transporteur Leger', - '~#DESCRIPTION MANQUANTE#~ Transporteur Lourd', - '~#DESCRIPTION MANQUANTE#~ Colonisateur', - 0, - '~#DESCRIPTION MANQUANTE#~ Recycleur', - '~#DESCRIPTION MANQUANTE#~ Croiseur Forruner', - '~#DESCRIPTION MANQUANTE#~ Super-Destroyer', - '~#DESCRIPTION MANQUANTE#~ Chasseur Leger', - '~#DESCRIPTION MANQUANTE#~ Chasseur Lourd', - '~#DESCRIPTION MANQUANTE#~ Porte-Vaisseaux', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - '~#DESCRIPTION MANQUANTE#~ Super porte-Vaisseaux'); - $nomterra = array(0,0,0,0,0,0,0,0,'tour(s) à plasma','tour(s) ion','canon(s) Orbital','drone(s)','station(s) de defense'); - $nomterri = array(0,0,0,0,0,0,0,0,'tourplasmasl4.jpg','tourioniquegr6.jpg','nanw9.jpg','nanw9.jpg','stationdedefensent8.jpg'); - $nomterrn = array(0,0,0,0,0,0,0,0,'Tour à plasma','Tour Ion','Canon Orbital','Drone','Station de defense'); - $nomterde = array( 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - '~#DESCRIPTION MANQUANTE#~ Tour à plasma', - '~#DESCRIPTION MANQUANTE#~ Tour Ion', - '~#DESCRIPTION MANQUANTE#~ Canon Orbital', - '~#DESCRIPTION MANQUANTE#~ Drone', - '~#DESCRIPTION MANQUANTE#~ Station de defense'); - } - else { - $ressourc = array('Métal','Cristal','Hydrogène','Energie'); - $casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squellette'); - $casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de résistance plutôt médiocre, ils rivalisent avec les unités covenants standard. Ils sont équipés d\'une armure de kevlar renforcée et d\'un MA5B.', - 'Les fusillers sont équipés de fusils d\'assaut avec zoom intégré. Plus puissants que les marines standards, ils peuvent rivaliser avec des escouades entières de grunts dirigées par des élites hauts gradés.', - 'Les grenadiers sont les spécialistes en explosifs du CSNU sur le terrain. Ils peuvent détruire les véhicules légers grâce à leurs grenades et leurs lances missiles.', - 'Les TCAO sont des soldats d\'assauts largués depuis l\'espace directement sur les champs de batailles grâce à des modules spéciaux. Ces soldats sont surentraînés et très chevronnés, risquant leur vie à chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.', - 'Les snipers sont dotés de fusils de précision SA 2M capable de descendre un covenant à plusieurs centaines de mètres grâce à son zoom maximum de 10x. Grande portée de tir mais à courte portée, ils sont inutiles.', - 'Les spartans sont les unités d\'infanterie militaires les plus évoluées militairement du CSNU mais également des Covenants. Ils sont équipés d\'une armure de type Mjolnir améliorant leurs capacités de combat, déjà exceptionnelles grâce à leur entraînement militaire depuis leur plus jeune âge, ainsi qu\'à leurs implants cybernétiques, les rendants d\'une grande efficacité inégalée au sein de l\'infanterie.', - 'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés et ainsi peut être changer l’issue de la bataille.', - 'Les ingénieurs sont là pour réparer vos véhicules endommagés lors des affrontements. Ils peuvent réduire le nombre de vos pertes de véhicules lorsqu\'ils sont bien utilisés.', - 'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.'); - $casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squellette'); - $casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','img_na_ig.jpg'); - $batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique'); - $batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.', - 'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.', - 'Ce bâtiment use de l\'eau pour la décomposer et en extraire l\'hydrogène, la base de toutes vos productions énergétiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.', - 'La centrale solaire produit l’énergie nécessaire au fonctionnement de vos usines. Elle fonctionne à partir d’une technologie Forruner qui consiste à envoyer un rayon à la verticale pour capter tous les rayons du soleil qui le croise.', - 'La centrale énergétique fonctionne avec un principe assez dépassé. En effet, l’énergie est produite par un réacteur à fusion qui en tournant produit de l’énergie comme le ferait une dynamo. Bien que ce principe fût révolutionnaire à l’époque, il fût rapidement dépassé par la centrale solaire qui permet de produire d’avantage d’énergie.', - 'Base radar', - 'Le centre de recherches est certainement l\'une des bâtisses les plus importantes que vous puissiez construire dans votre colonie. Vos chercheurs travailleront sans relâche aucun afin de mettre au point de nouvelles technologies vous assurant suprématie et victoire sur les champs de bataille. Chaque niveau dévellopé augmente la vitesse de recherche de vos technologies.', - 'Le chantier terrestre vous permet de construire tous les véhicules atmosphérique du type warthog ou scorpion. Il permet ainsi à vos troupes d’accéder plus rapidement à un endroit et d’avoir un avantage avec l’armement de ces véhicules.', - 'Le chantier spatial permet de construire vôtre flotte de vaisseaux spatiaux. Généralement à la limite de l’atmosphère d’une planète il ne peut cependant se déplacer et doit impérativement rester en orbite. Le chantier spatial, bien que ressemblant à une station spatial, ne peut être détruit grâce à sa position qui lui confère un camouflage total.', - 'L\'académie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes expérimentés vous aideront à choisir de meilleures stratégies défensives ou offensives ou encore même économiques face aux différentes situations qui vous seront imposées. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs tâches.', - 'Comme toutes choses, vos ressources ont besoin d\'espace pour être stockées ; c\'est pourquoi ces énormes silos vous seront d\'une aide précieuse afin d\'y renfermer une grande quantité de matières premières pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources supplémentaires.', - 'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.'); - $batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info'); - $batimeni = array('mine_m.png','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg'); - $technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'énergie','Réacteur à combustion','Réacteur à fusion','Réacteur à fusion de type II','Médecine','Tactiques de combats','Spartan'); - $technode = array( 'Le résultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le résultat d\'années de travail acharné pour pouvoir en arriver à cette grande performance technique. Les IA sont des entités non biologiques dotées du pouvoir de la pensée. Développer cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, créatives et réactives.', - 'Ce système très ancien et usé par bien des militaires est utilisé pour la détection et l\'imagerie d\'objets faisant appel à des impulsions d\'ondes électromagnétiques à haute fréquence et sert à déterminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa précision.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'La résistance de la coque de vos vaisseaux est plus que primordiale si vous tenez à remporter vos batailles, et encore plus avec les armes Covenantes capables de réduire en miettes même les plus résistants des vaisseaux spatiaux. C\'est la raison pour laquelle vos scientifiques, si vous leur en donnez l\'ordre, travailleront avec application à l\'élaboration de nouvelles formules pour créer des alliages métalliques les plus résistants.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations tout simplement. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et les propulseurs de vos vaisseaux.', - 'Le plus simple de tout les réacteurs, aussi vieux que le monde lui-même ! Equipés sur presque tout vos vaisseaux de base, cette technologie, certes basique, vous aidera à explorer l\'univers mais aussi, se trouvant être bien évidemment la base de la propulsion, vous permettra de découvrir de nouvelles techniques de propulsion irrémédiablement toujours plus puissantes et efficaces.', - 'Bien plus efficaces que de simples réacteurs à combustion, la fusion nucléaire est un processus où deux noyaux atomiques s\'assemblent pour former un noyau plus lourd. La fusion de noyaux légers dégage d\'énormes quantités d\'énergie provenant de l\'attraction entre les nucléons due à une forte interaction. Personne ne pourrait se passer de ce type d\'énergie lors de ses voyages dans le cosmos.', - 'Cette technologie basée sur les réacteurs Covenants utilise la force électromagnétique résultant de l\'interaction entre un courant électrique et un champ magnétique pour accélérer un gaz ionisé appelé plasma. Bien plus efficace que tous les moyens de propulsions possibles, cette technologie révolutionnaire, très coûteuse, est un moyen efficace de parcourir de grandes distances en peu de temps.', - 'Depuis l\'aube des temps, chaque être vivant et pensant n\'a jamais cessé de chercher de nouvelles solutions en dévellopant les sciences médicales pour tenter d\'échapper à la mort et aux épidémies qui s\'abbatent sur lui. Seulement, aujourd\'hui, ce ne sont plus les maladies qui importent, mais plutot les blessures de guerre. Plus votre médecine sera éclatante, plus vos hommes de soins connaîtront de choses pour soigner vos blessés.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.', - 'Ces formidables combattants constituent l\'élite de vos forces terrestres. Entraînés au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont également subis plusieurs séries de modifications biologiques afin d\'améliorer leurs capacités physiques.'); - $technoli = array('IA4.jpg','radar7zr.jpg','techarmes1jk1.jpg','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg'); - $nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones d’espionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Frégate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Porte vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( 'Ces cargos de taille conséquente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, très manœuvrables mais peu résistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.', - 'Ces cargos de taille massive permettent le transport d’une énorme quantité de ressources. Ils sont plus résistants que leurs homologues de classe Parabola, mais sont néanmoins les cibles prioritaires des chasseurs ennemis visant à faire le plus de pertes dans le camp adverse.', - '~#DESCRIPTION MANQUANTE#~ Vaisseaux de colonisation de classe Odyssey', - 'Drones extrêmement rapides et manœuvrables permettant la surveillance et l’espionnage des planètes alentours avec un risque moins élevé de repérage qu’avec un vaisseau furtif standard. Ils sont utilisés lors de l’espionnage de planètes ennemies et sont très fragiles, si bien que lorsqu’ils traversent un champ de débris, ils sont réduits en de vulgaires morceaux de métal.', - 'Les guerres sont de plus en plus nombreuses et les pertes de plus en plus grandes laissant à chaque fois des champs de débris immenses limitant les routes des voies commerciales. Des recycleurs ont donc été créés afin de déblayer ces zones et de vous faire profiter de ces ressources gratuites. Lors du voyage de retour, le recycleur transforme les débris pour vous les redonner sous forme de ressources primaires.', - 'Vaisseau orbital et atmosphérique lourd, apte au combat spatial, atmosphérique, et au bombardement lourd sur des positions stratégiques. Ces vaisseaux sont capable de bombarder une vaste position adverse, grâce à leurs bombes au Napalm, mais sont aussi capables de cibler précisément leurs cibles et de les détruire grâce à leurs nombreux missiles air-air air-sol.', - 'Cette classe de vaisseau est la plus répandue dans le CSNU. Ces vaisseaux sont très manœuvrables du fait de leur petite taille, mais sont aussi très faibles, à cause de leur blindage et de leur armement moindre. Ces vaisseaux sont peu coûteux mais également peu efficaces et sont surtout utilisés pour des patrouilles. Ils forment les éléments principaux des différentes flottes du CSNU. ', - 'Ces croiseurs sont des vaisseaux d’attaque, dépassés technologiquement, très peu répandus, très coûteux mais résistants : leur architecture interne leur permet de résister à de nombreux tirs de plasma. Cette architecture complexe à produire et à maintenir en état, en font des vaisseaux extrêmement rares et chers. Ils ont été très récemment remis à neuf et améliorés, avec un tout nouvel armement.', - 'Ces grands vaisseaux (2 fois et demie la longueur d’une frégate), sont des descendants de la lignée des croiseurs Halcyon. Ces vaisseaux ont une très grande puissance de feu (1 CAM lourd), un fort blindage (5 mètres 50 de Titane-A), et sont très rapides. Ils sont assez peu communs, mais restent des vaisseaux d’attaque très redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.', - 'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, d’Albatross, et tout autres types d’unités. Ces vaisseaux leurs permettent de se défendre contre une éventuelle attaque de chasseurs ennemis, mais sont également très lourdement armés. Ils sont usités lors d’attaques massives de planètes nécessitant un fort appui aérien et une très grosse puissance de feu. ', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - 'Ces vaisseaux sont sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacité de transport. Ces vaisseaux sont très peu vus sur le terrain, leur rôle principal est de déployer des Longswords afin de fournir aux vaisseaux alliés un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre d’unités terrestres et aériennes.'); - $nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','drone(s) d\'espionnage de classe Clarion','recycleur(s) de classe Minotaur','C709 Longsword Interceptor','Frégates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','vaisseaucolonisationmm4.jpg','drone_clarion.jpg','img_na_ig.jpg','longsword.jpg','fregatewz5.jpg','croiseurclassealcyon130om6.jpg','croiseurmarathonke3.jpg','csnuportevaisseauxgy3.jpg','station.jpg','.jpg'); - $nomterra = array('sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','mitrailleuse(s) automatique M247 GP','DCA légère(s)','DCA lourde(s)','canon(s) Gauss','lanceur(s) de missiles'); - $nomterrn = array('Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','Mitrailleuse automatique M247 GP','DCA légère','DCA lourde','Canon Gauss','Lanceur de missiles'); - $nomterde = array( 'Véhicule à propulsion verticale permettant des attaques extrêmement rapides et destructrices grâce à ses six tubes lance-missiles, ses deux mitrailleuses légères, et sa mitrailleuse lourde frontale. Ces vaisseaux d’assaut rapide sont de véritables broyeurs de tôle grâce à leurs 6 tubes lance-missiles et sont capables de détruire des véhicules et des positions fortement blindées.', - 'Véhicule aérien de transport léger permettant le transport rapide de troupes à des endroits stratégiques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l’acheminement de troupes et de munitions rapidement.', - 'Vaisseau suborbital très rapide apte tant au combat aérien rapproché qu’au bombardement ciblé. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou aériennes. Ils sont néanmoins capables de combattre en combat aérien rapproché grâce à leurs missiles thermo guidés et sont utilisés lors de bombardements de cibles mineures.', - 'Véhicule aérien de transport lourd permettant le transport en masse de troupes ou de véhicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces véhicules de soutien aérien lourd sont surtout utilisés lors d’offensives nécessitant un déploiement en masse d’unités blindées et de munitions au plus près des lignes adverses.', - 'Véhicule d’attaque léger permettant des assauts rapides et efficaces, ainsi que le transport léger de troupes. Ces véhicules sont la base des véhicules terrestres du CSNU.', - 'Véhicule léger équipé d’un canon à accélération magnétique (CAM), très efficace contre du personnel, des véhicules moyennement blindés, ou bien contre des véhicules aériens légers. Les Warthog M12G1 sont très répandus et surtout utilisés lors d\'offensives sur des cibles disposant d’un appui aérien ou terrestre léger.', - 'Véhicule léger, armé d’un lance-missiles anti-véhicule permettant des assauts rapides contre des véhicules blindés ou contre des positions fortifiées. Ils sont surtout utilisés en cas d’attaques de postes avancés.', - 'Tank blindé anti-véhicules. Permet l’attaque de cibles fortifiées grâce à ses balles perforantes de gros calibre. Ces tanks sont utilisés lors d’assauts massifs sur des bases fortifiées et vitales à l’ennemi.', - 'La mitrailleuse M247 est une arme de calibre moyen envoyant des balles de calibre 30 à une cadence de tir de 6 balles par seconde. Généralement positionnée dans des endroits fixes, cette tourelle, efficace contre l\'infanterie et les véhicules légers de petite taille est de précision moyenne suffisante pour éliminer une menace de quelques soldats covenants.', - 'Les DCA légères sont des canons anti-aérien de puissance moyenne mais de cadence de tir et de calibre de munitions à tête explosive élevée permettant de détruire la plupart des chasseurs légers avec aisance. Ce modèle est équipé d\'un emplacement spécial lui permettant de tirer également sur des cibles au sol.', - 'Les DCA lourdes sont quasi-similaires aux légères mais possèdent tout de même une différence au niveau du calibre des balles qui, plus élevé avec une tête explosif supérieure est comparable à une explosion de mine lotus. Il a en contre partie une capacité de tir plus limitée question cadence et une quantité de munitions moindre dans chaque chargeur.', - 'Le canon gauss est l\'équivalent du Super CAM mais en version miniature tirant des projectiles à haute densité et à grande vitesse sur ses cibles. Il est capable, en outre, de détruire des véhicules à blindage lourd tel des wraith\'s covenants, véritables chars d\'assaut à longue portée. Malheureusement, il est moins efficace contre l\'infanterie dû à sa cadence de tir plutôt faible et sa précision moindre.', - 'Les lance-missiles du CSNU sont équipés de missiles balistiques hautement explosifs capables de réduire aisément en miettes les chars covenants ou les chasseurs Séraphins. Ce lance-missiles, une fois ses salves tirées, nécessite plusieures minutes de réarmement pour être de nouveau opérationnel.'); - $nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg','tourelle_fixe.jpg','dca_legere.jpg','dca_lourde.jpg','tourelle_gauss.jpg','csnulancemissileol5.jpg'); - } - - //Nombre maximal de ressources embarqué - $nomvais_rs = array(5000,25000,7500,10,20000,50,800,1500,3000,10000,0,30000); - - //Coefficient vitesse courte distance : temps pour parcourir un système - $nomvais_dc = array(108,108,108,25,108,108,108,0,0,0,0,0); - //Temps de préparation courte distance : temps de préparation à compter avant tout déplacement - $nomvais_pdc = array(900,900,900,35,900,900,900,0,0,0,0,0); - //Coefficient vitesse longue distance : temps pour parcourir un système - $nomvais_dl = array(0,54,54,0,54,0,54,54,54,54,0,54); - //Temps de préparation longue distance - $nomvais_pdl = array(0,0,0,0,0,0,0,0,0,0,0,0); - //Temps de chauffe - $nomvais_cdl = array(0,20,20,0,20,0,0,20,20,20,0,20); - - //Attaque - $nomvais_at = array(1,1,1,0.1,10,150,500,800,1200,500,1000); - //Coque (pv) - $nomvais_pv = array(20,60,50,10,100,40,250,400,600,1500,600); - //Défense (bouclier) - $nomvais_bc = array(20,60,100,1,100,100,400,500,600,700,400); - //Rapide fire (nombre d'attaque par phase envers un vaisseau) - $nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(40,40,40,40,40,40,1,1,2,1,1,1), - array(10,10,10,10,10,10,30,1,1,2,1,1), - array(30,30,30,30,30,30,1,1,10,2,1,1), - array(20,20,20,20,20,20,2,1,1,1,1,1), - array(80,80,80,80,80,80,25,12,8,4,1,2), - array(100,100,100,100,100,100,20,10,5,2,1,1)); -?> \ No newline at end of file diff --git a/pages/Copie de flotte_dep.php b/pages/Copie de flotte_dep.php deleted file mode 100644 index 289be1c..0000000 --- a/pages/Copie de flotte_dep.php +++ /dev/null @@ -1,94 +0,0 @@ -= $resultat['start_time'] + $resultat['end_time'] && !empty($resultat['end_time'])) { - $mission = $resultat['mission']; - $end_galaxie = $resultat['end_galaxie']; - $end_ss = $resultat['end_ss']; - $end_position = $resultat['end_position']; - if ($mission == 1) { - $reqd = mysql_query("SELECT * FROM planete WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - $resultatd = mysql_fetch_array($reqd); - $ATvaisseau_1 = $resultat['vaisseau_1']; $ATvaisseau_2 = $resultat['vaisseau_2']; $ATvaisseau_3 = $resultat['vaisseau_3']; $ATvaisseau_4 = $resultat['vaisseau_4']; $ATvaisseau_5 = $resultat['vaisseau_5']; $ATvaisseau_6 = $resultat['vaisseau_6']; $ATvaisseau_7 = $resultat['vaisseau_7']; $ATvaisseau_8 = $resultat['vaisseau_8']; $ATvaisseau_9 = $resultat['vaisseau_9']; $ATvaisseau_10 = $resultat['vaisseau_10']; $ATvaisseau_11 = $resultat['vaisseau_11']; $ATvaisseau_12 = $resultat['vaisseau_12']; - $ATnbvais = $ATvaisseau_1 + $ATvaisseau_2 + $ATvaisseau_3 + $ATvaisseau_4 + $ATvaisseau_5 + $ATvaisseau_6 + $ATvaisseau_7 + $ATvaisseau_8 + $ATvaisseau_9 + $ATvaisseau_10 + $ATvaisseau_11 + $ATvaisseau_12; - $ENvaisseau_1 = $resultatd['vaisseau_1']; $ENvaisseau_2 = $resultatd['vaisseau_2']; $ENvaisseau_3 = $resultatd['vaisseau_3']; $ENvaisseau_4 = $resultatd['vaisseau_4']; $ENvaisseau_5 = $resultatd['vaisseau_5']; $ENvaisseau_6 = $resultatd['vaisseau_6']; $ENvaisseau_7 = $resultatd['vaisseau_7']; $ENvaisseau_8 = $resultatd['vaisseau_8']; $ENvaisseau_9 = $resultatd['vaisseau_9']; $ENvaisseau_10 = $resultatd['vaisseau_10']; $ENvaisseau_11 = $resultatd['vaisseau_11']; $ENvaisseau_12 = $resultatd['vaisseau_12']; - $ENnbvais = $ENvaisseau_1 + $ENvaisseau_2 + $ENvaisseau_3 + $ENvaisseau_4 + $ENvaisseau_5 + $ENvaisseau_6 + $ENvaisseau_7 + $ENvaisseau_8 + $ENvaisseau_9 + $ENvaisseau_10 + $ENvaisseau_11 + $ENvaisseau_12; - - $ATvais = ''; $ENvais = ''; $ATvais_pv = ''; $ENvais_pv = ''; - for ($i = 1; $i <= 12; $i++) { - for ($j = 1; $j <= $resultat['vaisseau_'.$i]; $j++) { $ATvais .= $i.' '; $ATvais_pv .= $nomvais_pv[$i].' '; } - for ($j = 1; $j <= $resultatd['vaisseau_'.$i]; $j++) { $ENvais .= $i.' '; $ENvais_pv .= $nomvais_pv[$i].' '; } - } - - //Calcul de la puissance d'attaque - $ATpuissance = 0; $ENpuissance = 0; - for ($i = 1; $i <= 12; $i++) { - $ATpuissance += $resultat['vaisseau_'.$i] * $nomvais_at[$i-1]; - $ENpuissance += $resultatd['vaisseau_'.$i] * $nomvais_at[$i-1]; - } - //Calcul de la puissance de défense - $ATdefense = 0; $ENdefense = 0; - for ($i = 1; $i <= 12; $i++) { - $ATdefense += $resultat['vaisseau_'.$i] * $nomvais_bc[$i-1]; - $ENdefense += $resultatd['vaisseau_'.$i] * $nomvais_bc[$i-1]; - } - //Calcul des pv - $ATresistance = 0; $ENresistance = 0; - for ($i = 1; $i <= 12; $i++) { - $ATresistance += $resultat['vaisseau_'.$i] * $nomvais_pv[$i-1]; - $ENresistance += $resultatd['vaisseau_'.$i] * $nomvais_pv[$i-1]; - } - print '
    puissance d\'attaque attaquant : '.$ATpuissance; - print '
    puissance d\'attaque défenseur : '.$ENpuissance; - print '
    puissance de défense attaquant : '.$ATdefense; - print '
    puissance de défense défenseur : '.$ENdefense; - print '
    PV de l\'attaquant : '.$ATresistance; - print '
    PV du défenseur : '.$ENresistance; - $gagne = false; - while($gagne == false) { - if ($ATpuissance >= $ENdefense + $ENresistance) { - $gagne = true; - } - else { - while($ATpuissance > 0){ - $vaisAT_type = rand(1,12); - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - $vaisAT_pv = $nomvais_pv[$vaisAT_type]; - - } - } - } - } - elseif ($mission == 2) { - $Cmetal = $resultat['contenu_metal']; - $Ccristal = $resultat['contenu_cristal']; - $Chydrogene = $resultat['contenu_hydrogene']; - mysql_query("UPDATE `planete` SET `metal` = '$Cmetal', `cristal` = '$Ccristal', `hydrogene` = '$Chydrogene', WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - } - } - if (time() >= $resultat['start_time'] + $resultat['end_time'] * 2 && !empty($resultat['end_time']) && $mission != 0) { - $start_galaxie = $resultat['start_galaxie']; - $start_ss = $resultat['start_ss']; - $start_position = $resultat['start_position']; - $id_flotte = $resultat['id']; - $reqP = mysql_query("SELECT * FROM planete WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - $resultatP = mysql_fetch_array($reqP); - for($i = 1; $i <= 11; $i++) { - ${'Pvaisseaux_'.$i} = $resultatP['vaisseau_'.$i] + $resultat['vaisseau_'.$i]; - mysql_query("UPDATE `planete` SET `vaisseau_$i` = '${'Pvaisseaux_'.$i}' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - } - mysql_query("DELETE FROM `flottes` WHERE `id_user` = '$id' AND `id` = '$id_flotte'"); - } -} -?> \ No newline at end of file diff --git a/pages/ajax_flotte.php b/pages/ajax_flotte.php index 75f4a11..702cdb6 100644 --- a/pages/ajax_flotte.php +++ b/pages/ajax_flotte.php @@ -53,7 +53,7 @@ else { 'root' => array( 'temps' => affTemp(floor($temps)), 'deblok' => 'Nom de la flotte incorrect !', - 'conso' => separerNombres(floor($conso*($_POST['vitesse']/100)*$nbtrajet)) + 'conso' => separerNombres(ceil($conso*($_POST['vitesse']/100)*$nbtrajet)) ) ); /*elseif (empty($_POST['hyd']) || $_POST['hyd'] < $conso * 2) @@ -67,11 +67,12 @@ else { else { $cds = sha1('flotte'.$conso.'ß10'.time().'|HB;'.rand(10,99).$temps); $_SESSION['flotte_cdsL'] = $cds; + if ($id == '46') setHistorique('Rapport Frederic PREP','Génération code : SESSION : '.$_SESSION['flotte_cdsL'].' - cds : '.$cds); $datas = array( 'root' => array( 'temps' => affTemp(floor($temps)), 'deblok' => '', - 'conso' => separerNombres(floor($conso*($_POST['vitesse']/100)*$nbtrajet)) + 'conso' => separerNombres(ceil($conso*($_POST['vitesse']/100)*$nbtrajet)) ) ); } diff --git a/pages/ajout_terrestre.php b/pages/ajout_terrestre.php deleted file mode 100644 index 955d665..0000000 --- a/pages/ajout_terrestre.php +++ /dev/null @@ -1,30 +0,0 @@ -= $temps_t && !empty($temps_t)) { - switch ($unit_t) { - case 1: $vaisseau_att += $cons_terrestre; mysql_query("UPDATE planete SET vais_0='$vaisseau_att' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 2: $vaisseau_1 += $cons_terrestre; mysql_query("UPDATE planete SET vais_1='$vaisseau_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 3: $vaisseau_2 += $cons_terrestre; mysql_query("UPDATE planete SET vais_2='$vaisseau_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 4: $vaisseau_3 += $cons_terrestre; mysql_query("UPDATE planete SET vais_3='$vaisseau_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 5: $vcl_1 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_1='$vcl_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 6: $vcl_2 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_2='$vcl_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 7: $vcl_3 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_3='$vcl_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 8: $vcl_4 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_4='$vcl_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 9: $def_1 += $cons_terrestre; mysql_query("UPDATE planete SET def_1='$def_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 10: $def_2 += $cons_terrestre; mysql_query("UPDATE planete SET def_2='$def_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 11: $def_3 += $cons_terrestre; mysql_query("UPDATE planete SET def_3='$def_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 12: $def_4 += $cons_terrestre; mysql_query("UPDATE planete SET def_4='$def_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 13: $def_5 += $cons_terrestre; mysql_query("UPDATE planete SET def_5='$def_5' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - } - mysql_query("UPDATE planete SET temps_t='0', unit_t='0', cons_terrestre='0' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); -// if ($unit_t < 9 && $unit_t > 0) header("Location: chantier_terrestre.php"); -// else if ($unit_t >= 9) header("Location: defense.php"); -} -?> \ No newline at end of file diff --git a/pages/annul_bat.php b/pages/annul_bat.php index 885503d..16e116a 100644 --- a/pages/annul_bat.php +++ b/pages/annul_bat.php @@ -37,29 +37,30 @@ $pos=$_SESSION['pos']; } if ($_GET['bat'] == 1) { - $metal += ceil(exp(0.4*$mine_m)*190); - $cristal += ceil(exp(0.4*$mine_m)*90); + $metal += ceil(pow(1.5,($mine_m-1))*68); + $cristal += ceil(pow(1.5,($mine_m-1))*17); mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_b='$temps_b', bat='$bat' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); } elseif ($_GET['bat'] == 2) { - $metal += ceil(exp(0.43*$mine_c)*205); - $cristal += ceil(exp(0.43*$mine_c)*110); + $metal += ceil(pow(1.6,($mine_c-1))*53); + $cristal += ceil(pow(1.6,($mine_c-1))*27); mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_b='$temps_b', bat='$bat' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); } elseif ($_GET['bat'] == 3) { - $metal += ceil(exp(0.445*$mine_h)*235); - $cristal += ceil(exp(0.445*$mine_h)*150); + $metal += ceil(pow(1.5,($mine_h-1))*242); + $cristal += ceil(pow(1.5,($mine_h-1))*72); mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_b='$temps_b', bat='$bat' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); } elseif ($_GET['bat'] == 4) { - $metal += ceil(exp(0.442*$centrale_s)*165); - $cristal += ceil(exp(0.442*$centrale_s)*99); + $metal += ceil(pow(1.5,($centrale_s-1))*92); + $cristal += ceil(pow(1.5,($centrale_s-1))*37); mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_b='$temps_b', bat='$bat' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); } elseif ($_GET['bat'] == 5) { - $metal += ceil(pow(1.8,$centrale_s)*300); - $cristal += ceil(pow(1.82,$centrale_s)*230); - mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_b='$temps_b', bat='$bat' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); + $metal += ceil(pow(1.73,($centrale_f-1))*800); + $cristal += ceil(pow(1.73,($centrale_f-1))*420); + $hydrogene += ceil(pow(1.68,($centrale_f-1))*285); + mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', hydrogene='$hydrogene', temps_b='$temps_b', bat='$bat' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); } elseif ($_GET['bat'] == 6) { $metal += ceil(pow(2,$radar)*750); diff --git a/pages/arbre_bat_covenant.php b/pages/arbre_bat_covenant.php index 7beb8a2..c6ede95 100644 --- a/pages/arbre_bat_covenant.php +++ b/pages/arbre_bat_covenant.php @@ -65,7 +65,7 @@ else } } -include 'bdd.php'; +include 'common.php'; echo' diff --git a/pages/batiment.php b/pages/batiment.php index 6265d6a..a87e73b 100644 --- a/pages/batiment.php +++ b/pages/batiment.php @@ -29,14 +29,14 @@ function ressources($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro) { if ($need_cristal > 0) { if ($cristal <= $need_cristal) { $z=floor($cristal)-$need_cristal; - $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; + $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; } else $return .= $ressourc[1].' : '.separerNombres($need_cristal).' '; } if ($need_ro > 0) { if ($ro <= $need_ro) { $z=floor($ro)-$need_ro; - $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; + $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; } else $return .= $ressourc[2].' : '.separerNombres($need_ro).''; } @@ -96,62 +96,62 @@ $a=0; $b=0; $c=0; $i = 0; $nom_bdd = 'mine_m'; if (${$nom_bdd} > 0) $niveau = '(Niveau '.${$nom_bdd}.')'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=ceil(exp(0.4*$mine_m)*190); $b=ceil(exp(0.4*$mine_m)*90); + $n=(${$nom_bdd}-1); $a = ceil(pow(1.5,$n)*68); $b = ceil(pow(1.5,$n)*17); $c = 0; if (is_array($fileBat) && $bat == $i+1) { $tr=$fileTemps_b[0]+$fileTemps_b[1]-time(); $action = 'Construction en cours, temps restant :
    '; } elseif (is_array($fileBat) && ereg(','.($i+1).',',','.implode(',', $fileBat).',')) $action = 'Bâtiment dans la file d\'attente'; elseif ($case <= 0) $action = 'Planète pleine'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if ($action == 'Bâtiment dans la file d\'attente' || $action == 'Construction en cours, temps restant :
    ') { $ACT = 'stop'; $lien = 'annul_bat.php?bat='.($i+1); } elseif ($action == 'Construire') $ACT = 'none'; else { $ACT = ''; $lien = 'batiment_validation.php?bat='.($i+1); } - if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(1.7,$mine_m)*120)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); + if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec((ceil(1.02*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.5,$n))*(1/(1+$ingenieur*0.005)))*60), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); // Batiment n°2 : Purificateur de cristal/Générateur de Cristal/Usine de cristal ; planete.mine_m $i = 1; $nom_bdd = 'mine_c'; if (${$nom_bdd} > 0) $niveau = '(Niveau '.${$nom_bdd}.')'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=ceil(exp(0.43*$mine_c)*205); $b=ceil(exp(0.43*$mine_c)*110); + $n=(${$nom_bdd}-1); $a = ceil(pow(1.6,$n)*53); $b = ceil(pow(1.6,$n)*27); $c = 0; if (is_array($fileBat) && $bat == $i+1) { $tr=$fileTemps_b[0]+$fileTemps_b[1]-time(); $action = 'Construction en cours, temps restant :
    '; } elseif (is_array($fileBat) && ereg(','.($i+1).',',','.implode(',', $fileBat).',')) $action = 'Bâtiment dans la file d\'attente'; elseif ($case <= 0) $action = 'Planète pleine'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if ($action == 'Bâtiment dans la file d\'attente' || $action == 'Construction en cours, temps restant :
    ') { $ACT = 'stop'; $lien = 'annul_bat.php?bat='.($i+1); } elseif ($action == 'Construire') $ACT = 'none'; else { $ACT = ''; $lien = 'batiment_validation.php?bat='.($i+1); } - if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(1.72,$mine_c)*160)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); + if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec((ceil(1.2*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.55,$n))*(1/(1+$ingenieur*0.005)))*60), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); // Batiment n°3 : Ionisateur/Générateur d'Hydrogène/Synchronisateur d'hydrogène ; planete.mine_h $i = 2; $nom_bdd = 'mine_h'; if (${$nom_bdd} > 0) $niveau = '(Niveau '.${$nom_bdd}.')'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=ceil(exp(0.445*$mine_h)*235); $b=ceil(exp(0.445*$mine_h)*150); + $n=(${$nom_bdd}-1); $a = ceil(pow(1.5,$n)*242); $b = ceil(pow(1.5,$n)*72); $c = 0; if (is_array($fileBat) && $bat == $i+1) { $tr=$fileTemps_b[0]+$fileTemps_b[1]-time(); $action = 'Construction en cours, temps restant :
    '; } elseif (is_array($fileBat) && ereg(','.($i+1).',',','.implode(',', $fileBat).',')) $action = 'Bâtiment dans la file d\'attente'; elseif ($case <= 0) $action = 'Planète pleine'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if ($action == 'Bâtiment dans la file d\'attente' || $action == 'Construction en cours, temps restant :
    ') { $ACT = 'stop'; $lien = 'annul_bat.php?bat='.($i+1); } elseif ($action == 'Construire') $ACT = 'none'; else { $ACT = ''; $lien = 'batiment_validation.php?bat='.($i+1); } - if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(1.75,$mine_h)*180)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); + if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec((ceil(1.5*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.624,$n))*(1/(1+$ingenieur*0.005)))*60), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); // Batiment n°4 : Centrale solaire/Générateur d'Energie/Centrale solaire ; planete.centrale_s $i = 3; $nom_bdd = 'centrale_s'; if (${$nom_bdd} > 0) $niveau = '(Niveau '.${$nom_bdd}.')'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=ceil(exp(0.442*$centrale_s)*165); $b=ceil(exp(0.442*$centrale_s)*99); + $n=(${$nom_bdd}-1); $a = ceil(pow(1.5,$n)*92); $b = ceil(pow(1.5,$n)*37); $c = 0; if (is_array($fileBat) && $bat == $i+1) { $tr=$fileTemps_b[0]+$fileTemps_b[1]-time(); $action = 'Construction en cours, temps restant :
    '; } elseif (is_array($fileBat) && ereg(','.($i+1).',',','.implode(',', $fileBat).',')) $action = 'Bâtiment dans la file d\'attente'; elseif ($case <= 0) $action = 'Planète pleine'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if ($action == 'Bâtiment dans la file d\'attente' || $action == 'Construction en cours, temps restant :
    ') { $ACT = 'stop'; $lien = 'annul_bat.php?bat='.($i+1); } elseif ($action == 'Construire') $ACT = 'none'; else { $ACT = ''; $lien = 'batiment_validation.php?bat='.($i+1); } - if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(1.68,$centrale_s)*190)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); + if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec((ceil(1.36*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.597,$n))*(1/(1+$ingenieur*0.005)))*60), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); // Batiment n°5 : Centrale de fusion/0/Centrale énergétique ; planete.centrale_f if ($centrale_s >= 12 && $energie_t >= 5) { $i = 4; $nom_bdd = 'centrale_f'; if (${$nom_bdd} > 0) $niveau = '(Niveau '.${$nom_bdd}.')'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=ceil(pow(1.8,$centrale_f)*300); $b=ceil(pow(1.82,$centrale_f)*230); + $n=(${$nom_bdd}-1); $a = ceil(pow(1.73,$n)*800); $b = ceil(pow(1.73,$n)*420); $c = ceil(pow(1.68,$n)*285); if (is_array($fileBat) && $bat == $i+1) { $tr=$fileTemps_b[0]+$fileTemps_b[1]-time(); $action = 'Construction en cours, temps restant :
    '; } elseif (is_array($fileBat) && ereg(','.($i+1).',',','.implode(',', $fileBat).',')) $action = 'Bâtiment dans la file d\'attente'; elseif ($case <= 0) $action = 'Planète pleine'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if ($action == 'Bâtiment dans la file d\'attente' || $action == 'Construction en cours, temps restant :
    ') { $ACT = 'stop'; $lien = 'annul_bat.php?bat='.($i+1); } elseif ($action == 'Construire') $ACT = 'none'; else { $ACT = ''; $lien = 'batiment_validation.php?bat='.($i+1); } - if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(1.8,$centrale_f)*300)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); + if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec((ceil(1.8*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.7,$n))*(1/(1+$ingenieur*0.005)))*60), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); } // Batiment n°6 : Oeil des prophètes/0/Base radar ; planete.centrale_f @@ -206,7 +206,7 @@ $a=0; $b=0; $c=0; if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(2,$chantier_spatial)*600)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); } - // Batiment n°10 : Caserne/0/Ecole militaire ; planete.caserne +/* // Batiment n°10 : Caserne/0/Ecole militaire ; planete.caserne $i = 9; $nom_bdd = 'caserne'; if (${$nom_bdd} > 0) $niveau = '(Niveau '.${$nom_bdd}.')'; else $niveau = ''; @@ -217,7 +217,7 @@ $a=0; $b=0; $c=0; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if ($action == 'Bâtiment dans la file d\'attente' || $action == 'Construction en cours, temps restant :
    ') { $ACT = 'stop'; $lien = 'annul_bat.php?bat='.($i+1); } elseif ($action == 'Construire') $ACT = 'none'; else { $ACT = ''; $lien = 'batiment_validation.php?bat='.($i+1); } if (!empty($batimeni[$i])) $template->assign_block_vars('batiment', array('IMAGE' => $batimeni[$i], 'NOM' => $batiment[$i], 'NUM' => $i, 'LIEN' => $lien, 'NIVEAU' => $niveau, 'DESCRIPTION' => $batimede[$i], 'DESCRIPTIONE' => addslashes($batimede[$i]), 'BESOIN' => ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h), 'TEMPS' => sec(ceil((pow(2,$caserne)*300)/(pow(1.23,$centre_info)+0.0025*$ingenieur))), 'ACTION' => $action, 'NEC_METAL' => separerNombres($a), 'NEC_CRISTAL' => separerNombres($b), 'NEC_HYDROGENE' => separerNombres($c), 'ACT' => $ACT, 'NOME' => addslashes($batiment[$i]))); - +*/ // Batiment n°11 : Entrepôt/Entrepôt/Silo de stockage ; planete.silo $i = 10; $nom_bdd = 'silo'; diff --git a/pages/batiment_ajout.php b/pages/batiment_ajout.php deleted file mode 100644 index a5e1cee..0000000 --- a/pages/batiment_ajout.php +++ /dev/null @@ -1,75 +0,0 @@ -= $temps_b) { - $anc = $bat; - $anc_temps_bat = $temps_b; - - switch ($bat) { - case 1: $mine_m++; mysql_query("UPDATE planete SET mine_m='$mine_m' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 2: $mine_c++; mysql_query("UPDATE planete SET mine_c='$mine_c' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 3: $mine_h++; mysql_query("UPDATE planete SET mine_h='$mine_h' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 4: $centrale_s++; mysql_query("UPDATE planete SET centrale_s='$centrale_s' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 5: $centrale_f++; mysql_query("UPDATE planete SET centrale_f='$centrale_f' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 6: $radar++; mysql_query("UPDATE planete SET radar='$radar' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 7: $labo++; mysql_query("UPDATE planete SET labo='$labo' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 8: $chantier_terrestre++; mysql_query("UPDATE planete SET chantier_terrestre='$chantier_terrestre' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 9: $chantier_spatial++; mysql_query("UPDATE planete SET chantier_spatial='$chantier_spatial' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 10: $caserne++; mysql_query("UPDATE planete SET caserne='$caserne' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 11: $silo++; mysql_query("UPDATE planete SET silo='$silo' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 12: $centre_info++; mysql_query("UPDATE planete SET centre_info='$centre_info' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - } - - if ($centrale_f > 0 ) $energie_f = ceil((($centrale_f*80+(exp($centrale_f*0.38)*11))*$coeff)); else $energie_f =0; - if ($centrale_s > 0 ) $energie_s = ceil((($centrale_s*20+(exp($centrale_s*0.3)*10))*$coeff)); else $energie_s =0; - $energie = $energie_s + $energie_f; - mysql_query("UPDATE planete SET energie='".$energie."' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - - - $pos = strpos(implode(',', $fileBat).',', $anc.','); - if (!($pos === false)) { - $newArray_bat = ''; $newArray_temps_b = $fileTemps_b[0].' '; - for ($i=0 ; $i \ No newline at end of file diff --git a/pages/batiment_anul.php b/pages/batiment_anul.php deleted file mode 100644 index 16bd70f..0000000 --- a/pages/batiment_anul.php +++ /dev/null @@ -1,101 +0,0 @@ - \ No newline at end of file diff --git a/pages/batiment_validation.php b/pages/batiment_validation.php index e2bc7a9..0ea0591 100644 --- a/pages/batiment_validation.php +++ b/pages/batiment_validation.php @@ -21,33 +21,34 @@ else { if (ereg('e,', implode(',',$fileBat).',')) { header('Location: annul_bat.php?bat=e&go='.$_GET['bat']); exit; } if ($_GET['bat'] == 1) { - $metal -= ceil(exp(0.4*$mine_m)*190); - $cristal -= ceil(exp(0.4*$mine_m)*90); - $temps_bat = ceil((pow(1.7,$mine_m)*120)/(pow(1.23,$centre_info)+0.0025*$ingenieur)); + $metal -= ceil(pow(1.5,($mine_m-1))*68); + $cristal -= ceil(pow(1.5,($mine_m-1))*17); + $temps_bat = ceil(ceil(1.02*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.5,$mine_m-1))*(1/(1+$ingenieur*0.005)))*60; $bat = 1; } elseif ($_GET['bat'] == 2) { - $metal -= ceil(exp(0.43*$mine_c)*205); - $cristal -= ceil(exp(0.43*$mine_c)*110); - $temps_bat = ceil((pow(1.72,$mine_c)*160)/(pow(1.23,$centre_info)+0.0025*$ingenieur)); + $metal -= ceil(pow(1.6,($mine_c-1))*53); + $cristal -= ceil(pow(1.6,($mine_c-1))*27); + $temps_bat = ceil(ceil(1.2*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.55,$mine_c-1))*(1/(1+$ingenieur*0.005)))*60; $bat = 2; } elseif ($_GET['bat'] == 3) { - $metal -= ceil(exp(0.445*$mine_h)*235); - $cristal -= ceil(exp(0.445*$mine_h)*150); - $temps_bat = ceil((pow(1.75,$mine_h)*180)/(pow(1.23,$centre_info)+0.0025*$ingenieur)); + $metal -= ceil(pow(1.5,($mine_h-1))*242); + $cristal -= ceil(pow(1.5,($mine_h-1))*72); + $temps_bat = ceil(ceil(1.5*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.624,$mine_h-1))*(1/(1+$ingenieur*0.005)))*60; $bat = 3; } elseif ($_GET['bat'] == 4) { - $metal -= ceil(exp(0.442*$centrale_s)*165); - $cristal -= ceil(exp(0.442*$centrale_s)*99); - $temps_bat = ceil((pow(1.68,$centrale_s)*190)/(pow(1.23,$centre_info)+0.0025*$ingenieur)); + $metal -= ceil(pow(1.5,($centrale_s-1))*92); + $cristal -= ceil(pow(1.5,($centrale_s-1))*37); + $temps_bat = ceil(ceil(1.36*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.597,$centrale_s-1))*(1/(1+$ingenieur*0.005)))*60; $bat = 4; } elseif ($_GET['bat'] == 5 && $centrale_s >= 12 && $energie_t >= 5) { - $metal -= ceil(pow(1.8,$centrale_f)*300); - $cristal -= ceil(pow(1.82,$centrale_f)*230); - $temps_bat = ceil((pow(1.8,$centrale_f)*300)/(pow(1.23,$centre_info)+0.0025*$ingenieur)); + $metal -= ceil(pow(1.73,($centrale_f-1))*800); + $cristal -= ceil(pow(1.73,($centrale_f-1))*420); + $hydrogene -= ceil(pow(1.68,($centrale_f-1))*285); + $temps_bat = ceil(ceil(1.8*(1/(1+$nanite))*(3/(1+$centre_info))*pow(1.7,$centrale_f-1))*(1/(1+$ingenieur*0.005)))*60; $bat = 5; } elseif ($_GET['bat'] == 6 && $detection >= 1) { @@ -109,6 +110,7 @@ if (isset($bat) && $bat != '' && (!empty($batiment[$bat-1]) || $bat == 'e' || (i } mysql_close(); $bat = $fileBat[0]; -if (isset($_GET['go']) && $_GET['go'] == 1) header('Location: batiment.php?err=2'); +if (isset($_GET['page'])) header('Location: depart.php'); +elseif (isset($_GET['go']) && $_GET['go'] == 1) header('Location: batiment.php?err=2'); else header('Location: batiment.php'); ?> \ No newline at end of file diff --git a/pages/batimenta.php b/pages/batimenta.php deleted file mode 100644 index 89511e7..0000000 --- a/pages/batimenta.php +++ /dev/null @@ -1,447 +0,0 @@ -set_filenames(array('bati' => '../templates/bati.tpl')); - -$id=$_SESSION['id']; -$galaxy=$_SESSION['galaxy']; -$ss=$_SESSION['ss']; -$pos=$_SESSION['pos']; - -require_once 'bdd.php'; -require_once 'ressource.php'; -require_once 'batiment_ajout.php'; -require_once 'noms.php'; - -function sec($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - return $output; -} - -function verification_des_ress($num, $fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro) { - if ($fer >= $need_fer && $cristal >= $need_cristal && $ro >= $need_ro) return "


    Construire"; - else return "


    Construire"; -} - -function ressources($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro, $mine_m, $mine_c, $mine_h) { -require 'noms.php'; - if ($need_fer > 0) { - if ($fer <= $need_fer) { - $z=floor($fer)-$need_fer; - return ''.$ressourc[0].' : '.$need_fer.' '; - } - else return $ressourc[0].' : '.$need_fer.' '; - } - if ($need_cristal > 0) { - if ($cristal <= $need_cristal) { - $z=floor($cristal)-$need_cristal; - return ''.$ressourc[1].' : '.$need_cristal.' '; - } - else return $ressourc[1].' : '.$need_cristal.' '; - } - if ($need_ro > 0) { - if ($ro <= $need_ro) { - $z=floor($ro)-$need_ro; - return ''.$ressourc[2].' : '.$need_ro.''; - } - else return $ressourc[2].' : '.$need_ro.''; - } -} - -function ress_tem($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro, $mine_m, $mine_c, $mine_h) { - if ($mine_m < 0) $prod_met = 40; - else $prod_metal = ceil((($mine_m*32)+(pow(1.41,$mine_m)*exp(0.066*$mine_m))*$coeff)*3.7) + 40; - if ($mine_c < 0) $prod_cri = 20; - else $prod_cristal = (floor(($mine_c*13)+(pow(1.36,$mine_c)*exp(0.0675*$mine_c))*$coeff)*7) + 20; - if ($centrale_f > 0) $conso_hy = ceil(($centrale_f*5+(exp($mine_m*0.3)*10))*$coeff); - else $conso_hy=0; - if ($mine_h < 0) $prod_hydrogene = 0.0000000001; - else $prod_hydrogene = (ceil((($mine_h*12)+(pow(1.394,$mine_h)*exp(0.072*$mine_h))*$coeff)*5)); - $w = $prod_hydrogene - $conso_hy; - if ($mine_h == 0) { $w=1; $ro=0; $need_ro=0; } - if ($prod_hydrogene - $conso_hy < 0) { $w= 1; $ro=0; $need_ro=0; } - - $tem1 = abs(floor($fer)-$need_fer)/$prod_metal; - $tem2 = abs(floor($cristal)-$need_cristal)/$prod_cristal; - $tem3 = abs(floor($ro)-$need_ro)/$w; - - $tem = max($tem1,$tem2,$tem3); - - return ceil($tem); -} - -$case = $cases - ($mine_m + $mine_c + $mine_h + $centrale_s + $centrale_f + $radar + $labo + $chantier_terrestre + $chantier_spatial + $caserne + $silo); - -// Usine de métallurgie -if ($mine_m > 0) $niveau = '(Niveau '.$mine_m.')'; else $niveau = ''; -$description = 'Toute construction demande des quantités énormes de fer, pour cela des centaines de milliers d\'ouvriers -travaillent dans ces mines afin d\'assurer le bon fonctionnement de votre empire.'; -$a=ceil(exp(0.4*$mine_m)*190); $b=ceil(exp(0.4*$mine_m)*90); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.7,$mine_m)*120)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat==1) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(1, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[0], 'NOMR' => $batimend[0], 'NOM' => $batiment[0], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - -// Usine de cristal -if ($mine_c > 0) $niveau = '(Niveau '.$mine_c.')'; else $niveau = ''; -$description = 'DESCRIPTION'; -$a=ceil(exp(0.43*$mine_c)*205); $b=ceil(exp(0.43*$mine_c)*110); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.72,$mine_c)*160)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat==2) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(2, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[1], 'NOMR' => $batimend[1], 'NOM' => $batiment[1], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - -// Synchronisateur d'hydrogène -if ($mine_h > 0) $niveau = '(Niveau '.$mine_h.')'; else $niveau = ''; -$description = 'DESCRIPTION'; -$a=ceil(exp(0.445*$mine_h)*235); $b=ceil(exp(0.445*$mine_h)*150); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.75,$mine_h)*180)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat == 3) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(3, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[2], 'NOMR' => $batimend[2], 'NOM' => $batiment[2], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - -// -if ($centrale_s > 0) $niveau = '(Niveau '.$centrale_s.')'; else $niveau = ''; -$description = 'DESCRIPTION'; -$a=ceil(exp(0.442*$centrale_s)*165); $b=ceil(exp(0.442*$centrale_s)*99); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.68,$centrale_s)*190)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat == 4) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(4, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[3], 'NOMR' => $batimend[3], 'NOM' => $batiment[3], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - - $template->assign_vars(array('RACE' => $race)); - $template->pparse('bati'); -exit; - -echo ' -
    -
    - -
    -
    -'.$batiment[3].' '; if ($centrale_s > 0) echo '(Niveau '.$centrale_s.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(exp(0.442*$centrale_s)*165); $b=ceil(exp(0.442*$centrale_s)*99); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(1.68,$centrale_s)*190)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==4) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(4, $metal, $cristal, $hydrogene, $a, $b, 0); -} -echo '

    '; - -if ($centrale_s >= 12 && $energie_t >= 5) { - echo '
    - -
    -
    - '.$batiment[4].' '; if ($centrale_f > 0) echo '(Niveau '.$centrale_f.')'; echo '
    - Description.
    - Besoin de : '; - $a=ceil(pow(1.8,$centrale_s)*300); - $b=ceil(pow(1.82,$centrale_s)*230); - ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    - Temps de construction : '; sec(ceil((pow(1.8,$centrale_f)*300)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); - //if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } - echo '
    -
    '; - if ($temps_b > 0) { - if ($bat==5) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } - } - else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(5, $metal, $cristal, $hydrogene, $a, $b, 0); - } - echo '

    '; -} - -if ($detection >= 1) { - echo '
    - -
    -
    - '.$batiment[5].' '; if ($radar > 0) echo '(Niveau '.$radar.')'; echo '
    - Description.
    - Besoin de : '; - $a=ceil(pow(2,$radar)*750); - $b=ceil(pow(2,$radar)*500); - $c=ceil(pow(2,$radar)*50); - ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h); echo '
    - Temps de construction : '; sec(ceil((pow(2,$radar)*720)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); - //if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,$c, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } - echo '
    -
    '; - if ($temps_b > 0) { - if ($bat==6) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } - } - else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(6, $metal, $cristal, $hydrogene, $a, $b, $c); - } - echo '

    '; -} - -echo '
    - -
    -
    -'.$batiment[6].' '; if ($labo > 0) echo '(Niveau '.$labo.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$labo)*200); -$b=ceil(pow(2,$labo)*150); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$labo)*720)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==7) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo "Planète pleine"; - else { - if($tec > 0) echo '

    Recherche en cours dans le
    laboratoire'; - else verification_des_ress(7, $metal, $cristal, $hydrogene, $a, $b, 0); - } -} -echo '
    -
    -
    - -
    -
    -'.$batiment[7].' '; if ($chantier_terrestre > 0) echo '(Niveau '.$chantier_terrestre.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$chantier_terrestre)*520); -$b=ceil(pow(2,$chantier_terrestre)*380); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$chantier_terrestre)*420)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==8) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else { - if($unit_t > 0 && unit_t <= 8) { echo '

    Construction en cours dans le
    chantier terrestre'; } - elseif($unit_t > 8) { echo'

    Construction en cours dans le
    centre de défenses'; } - else verification_des_ress(8, $metal, $cristal, $hydrogene, $a, $b, 0); - } -} -echo '
    -
    '; - -if ($chantier_terrestre >= 2) { - echo '
    - -
    -
    - '.$batiment[8].' '; if ($chantier_spatial > 0) echo '(Niveau '.$chantier_spatial.')'; echo '
    - Description.
    - Besoin de : '; - $a=ceil(pow(2,$chantier_spatial)*600); - $b=ceil(pow(2,$chantier_spatial)*450); - ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    - Temps de construction : '; sec(ceil((pow(2,$chantier_spatial)*600)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); - //if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } - echo '
    -
    '; - if ($temps_b > 0) { - if ($bat==9) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } - } - else { - if ($case <= 0) echo "Planète pleine"; - else { - if($unit_s > 0) echo "

    Construction en cours dans le
    chantier terrestre"; - else verification_des_ress(9, $metal, $cristal, $hydrogene, $a, $b, 0); - } - } - echo '

    '; -} - - -echo '
    - -
    -
    -'.$batiment[9].' '; if ($caserne > 0) echo '(Niveau '.$caserne.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$caserne)*200); -$b=ceil(pow(2,$caserne)*100); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$caserne)*300)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==10) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else { - if($unit > 0) echo '

    Entrainement en cours dans la
    caserne'; - else verification_des_ress(10, $metal, $cristal, $hydrogene, $a, $b, 0); - } -} - -echo '
    -
    -
    - -
    -
    -'.$batiment[10].' '; if ($silo > 0) echo '(Niveau '.$silo.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$silo)*400); -$b=ceil(pow(2,$silo)*260); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$silo)*1200)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==11) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(11, $metal, $cristal, $hydrogene, $a, $b, 0); -} -echo '
    '; - -if ($informatique >= 2) { -echo'
    -
    - -
    -
    -'.$batiment[11].' '; if ($centre_info > 0) echo '(Niveau '.$centre_info.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(1.7,$centre_info)*600); -$b=ceil(pow(1.7,$centre_info)*420); -$c=ceil(pow(1.7,$centre_info)*100); -ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(1.9,$centre_info)*800)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,$c, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==12) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(12, $metal, $cristal, $hydrogene, $a, $b, $c); -} -echo '
    '; } -echo ''; -echo' -'; -?> \ No newline at end of file diff --git a/pages/bdd.php b/pages/bdd.php deleted file mode 100644 index a85231c..0000000 --- a/pages/bdd.php +++ /dev/null @@ -1,175 +0,0 @@ -= 6) $templates = strtolower($race).'/'; -else $templates = 'humain/'; -?> \ No newline at end of file diff --git a/pages/caserne.php b/pages/caserne.php deleted file mode 100644 index 399ac61..0000000 --- a/pages/caserne.php +++ /dev/null @@ -1,247 +0,0 @@ - - -Halo battle - - - - -"; - -require_once 'bdd.php'; -require_once 'ressource.php'; -require_once 'caserne_ajout.php'; -require_once 'noms.php'; - -function sec($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - echo $output; -} - -function cons_max($fer,$cristal,$hydrogene,$need_fer,$need_cristal,$need_hydrogene) { -if (need_fer > 0) { -$m1 = floor($fer)/$need_fer; } -if (need_cristal > 0) { -$m2 = floor($cristal)/$need_cristal; } -if (need_hydrogene > 0) { -$m3 = floor($hydrogene)/$need_hydrogene; } -if (isset($m1) && isset($m2) && isset($m3)) { $m = min($m1,$m2,$m3); echo floor($m);} -elseif (isset($m1) && isset($m2) && !isset($m3)) { $m = min($m1,$m2); echo floor($m);} -} //(maximum ";cons_max($fer,$cristal,$hydrogene,80,45,0);echo" unitées)
    - -$f = ceil(60/pow(1.25,($caserne-1))); -$g = ceil(240/pow(1.25,($caserne-2))); -$h = ceil(240/pow(1.25,($caserne-3))); -$i = ceil(720/pow(1.25,($caserne-5))); -$j = ceil(300/pow(1.25,($caserne-3))); -$k = ceil(29700/pow(1.25,($caserne-10))); -$l = ceil(90/pow(1.25,($caserne-2))); -$m = ceil(90/pow(1.25,($caserne-2))); -$n = ceil(900/pow(1.25,($caserne-5))); - - -if ($temps_caserne>0) $unit = $casernea[--$unit]; -?> - - - -
    Prochainement dans Halo-Battle
    '; -exit; - - -if ($caserne > 0) { - if ($temps_caserne >0) { - echo "
    Entrainement terminé dans : "; - $tr=$temps_caserne-time(); - echo ''; - echo ''; - echo "
    Entrainement de : ".$cons_caserne." ".$unit."

    "; - } - - -if ($caserne >= 1) { -echo'
    -
    -
    - -
    -
    -'.$casernen[0].''; if ($soldat1 > 0) { echo" (".$soldat1." unités)"; } -echo '
    '.$casernde[0].'
    Besoin de : Métal : 80 Cristal : 45
    -Temps de construction : '; sec($f); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 2) { -echo'
    - -
    -
    -'.$casernen[1].''; if ($soldat2 > 0) { echo" (".$soldat2." unités)"; } -echo '
    '.$casernde[1].'
    Besoin de : Métal : 110 Cristal : 90
    -Temps de construction : '; sec($g); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 110 && $cristal >= 90) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 3 && $armement >= 2) { -echo'
    - -
    -
    -'.$casernen[2].''; if ($soldat3 > 0) { echo" (".$soldat3." unités)"; } -echo '
    '.$casernde[2].'
    Besoin de : Métal : 150 Cristal : 105
    -'.$ressourc[2].' : 20
    -Temps de construction : '; sec($h); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 150 && $cristal >= 105 && $hydrogene >= 20) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 5 && $armement >= 3 && $tactique >= 2) { -echo'
    - -
    -
    -'.$casernen[3].''; if ($soldat4 > 0) { echo" (".$soldat4." unités)"; } -echo '
    '.$casernde[3].'
    Besoin de : Métal : 220 Cristal : 150
    -Temps de construction : '; sec($i); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 220 && $cristal >= 150) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 3 && $armement >= 1) { -echo'
    - -
    -
    -'.$casernen[4].''; if ($sniper > 0) { echo" (".$sniper." unités)"; } -echo '
    '.$casernde[4].'
    Besoin de : Métal : 180 Cristal : 100
    -Temps de construction : '; sec($j); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 180 && $cristal >= 100) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 10 && $armement >= 5 && $blindage >= 5 && $spartan >= 3) { -echo'
    - -
    -
    -'.$casernen[5].''; if ($spartam > 0) { echo" (".$spartam." unités)"; } -echo '
    '.$casernde[5].'
    Besoin de : Métal : 25.000 Cristal : 10.000
    -Temps de construction : '; sec($k); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 25000 && $cristal >= 10000) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 2 && $medecine >= 2) { -echo'
    - -
    -
    -'.$casernen[6].''; if ($medecin > 0) { echo" (".$medecin." unités)"; } -echo '
    '.$casernde[6].'
    Besoin de : Métal : 100 Cristal : 100
    -Temps de construction : '; sec($l); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 100 && $cristal >= 100) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 2) { -echo'
    - -
    -
    -'.$casernen[7].''; if ($ingenieur > 0) { echo" (".$ingenieur." unités)"; } -echo '
    '.$casernde[7].'
    Besoin de : Métal : 90 Cristal : 105
    -Temps de construction : '; sec($m); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 90 && $cristal >= 105) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 5 && $armement >= 4 && $blindage >= 2) { -echo'
    - -
    -
    -'.$casernen[8].''; if ($soldat_lourd > 0) { echo" (".$soldat_lourd." unités)"; } -echo '
    '.$casernde[8].'
    Besoin de : Métal : 300 Cristal : 250
    -Temps de construction : '; sec($n); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 300 && $cristal >= 250) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - - -} else { echo'
    Vous devez d\'abord construire une caserne !
    '; } - -?> -
    - - \ No newline at end of file diff --git a/pages/caserne_ajout.php b/pages/caserne_ajout.php deleted file mode 100644 index 7197b82..0000000 --- a/pages/caserne_ajout.php +++ /dev/null @@ -1,27 +0,0 @@ -= $temps_caserne && !empty($temps_caserne)) { - switch ($unit) { - case 1: $soldat1 += $cons_caserne; mysql_query("UPDATE planete SET soldat1='$soldat1' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - case 2: $soldat2 += $cons_caserne; mysql_query("UPDATE planete SET soldat2='$soldat2' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 3: $soldat3 += $cons_caserne; mysql_query("UPDATE planete SET soldat3='$soldat3' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 4: $soldat4 += $cons_caserne; mysql_query("UPDATE planete SET soldat4='$soldat4' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 5: $sniper += $cons_caserne; mysql_query("UPDATE planete SET sniper='$sniper' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 6: $spartam += $cons_caserne; mysql_query("UPDATE planete SET spartam='$spartam' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 7: $medecin += $cons_caserne; mysql_query("UPDATE planete SET medecin='$medecin' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 8: $ingenieur += $cons_caserne; mysql_query("UPDATE planete SET ingenieur='$ingenieur' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 9: $soldat_lourd += $cons_caserne; mysql_query("UPDATE planete SET soldat_lourd='$soldat_lourd' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - } - - mysql_query("UPDATE planete SET cas_contruct_time='0', cas_contruct='0', cas_contruct_nb='0' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); -// @header("Location: troupes.php"); -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/caserne_covenant.php b/pages/caserne_covenant.php deleted file mode 100644 index 767988b..0000000 --- a/pages/caserne_covenant.php +++ /dev/null @@ -1,190 +0,0 @@ - '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - echo $output; -} - -$f = ceil((60 - (0.1*$caserne*60))); -$g = ceil((240 - (0.1*$caserne*240))); -$h = ceil((240 - (0.1*$caserne*240))); -$i = ceil((720 - (0.1*$caserne*720))); -$j = ceil((300 - (0.1*$caserne*300))); -$k = ceil((29700 - (0.1*$caserne*29700))); -$l = ceil((90 - (0.1*$caserne*90))); -$m = ceil((90 - (0.1*$caserne*90))); -$n = ceil((900 - (0.1*$caserne*900))); - -if ($temps_caserne > 0) { - switch ($unit) { - case 1: $unit= "grunts"; break; - case 2: $unit= "jackals"; break; - case 3: $unit= "drones"; break; - case 4: $unit= "élites"; break; - case 5: $unit= "snipers"; break; - case 6: $unit= "hunters"; break; - case 7: $unit= "médecins"; break; - case 8: $unit= "ingénieurs"; break; - case 9: $unit= "brutes"; break; - } -} -?> - - - 0) { - if ($temps_caserne >0) { - echo "
    Entrainement terminé dans : "; - $tr=$temps_caserne-time(); - echo ''; - echo ''; - echo "
    Entrainement de : ".$cons_caserne." ".$unit."

    "; - } - - echo""; - - if ($caserne >= 1) { - echo " - - - - "; - } - - if ($caserne >= 2) { - echo " - - - - "; - } - - if ($caserne >= 3 && $armement >= 2) { - echo " - - - - "; - } - - if ($caserne >= 5 && $armement >= 3 && $tactique >= 2) { - echo " - - - - "; - } - - if ($caserne >= 3 && $armement >= 1) { - echo " - - - - "; - } - - if ($caserne >= 10 && $armement >= 5 && $blindage >= 5 && $spartan >= 3) { - echo " - - - - "; - } - - if ($caserne >= 2 && $medecine >= 2) { - echo " - - - - "; - } - - if ($caserne >= 2) { - echo " - - - - "; - } - - if ($caserne >= 5 && $armement >= 4 && $blindage >= 2) { - echo " - - - - "; - } - -} else { ?>
    lmagesDescriptionNombre
    Grunt"; if ($soldat1 > 0) { echo"( ".$soldat1." unités )"; } echo"
    Métal : 80
    Cristal : 45
    Temps : "; sec($f); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Jackal "; if ($soldat2 > 0) { echo"( ".$soldat2." unités )"; } echo"
    Métal : 110
    Cristal : 90
    Temps : "; sec($g); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 110 && $cristal >= 90) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo "
    Drones"; if ($soldat3 > 0) { echo"( ".$soldat3." unités )"; } echo"
    Métal : 150
    Cristal : 105
    Hydrogène : 20
    Temps : "; sec($h); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 150 && $cristal >= 105) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Elites"; if ($soldat4 > 0) { echo"( ".$soldat4." unités )"; } echo"
    Métal : 220
    Cristal : 150
    Temps : "; sec($i); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 220 && $cristal >= 150) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Sniper"; if ($sniper > 0) { echo"( ".$sniper." unités )"; } echo"
    Métal : 180
    Cristal : 100
    Temps : "; sec($j); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 180 && $cristal >= 100) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Hunter"; if ($spartam > 0) { echo"( ".$spartam." unités )"; } echo"
    Métal : 25000
    Cristal : 10000
    Temps : "; sec($k); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 25000 && $cristal >= 10000) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Médecin"; if ($medecin > 0) { echo"( ".$medecin." unités )"; } echo"
    Métal : 100
    Cristal : 100
    Temps : "; sec($l); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 100 && $cristal >= 100) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Ingenieur"; if ($ingenieur > 0) { echo"( ".$ingenieur." unités )"; } echo"
    Métal : 90
    Cristal : 105
    Temps : "; sec($m); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Brute"; if ($soldat_lourd > 0) { echo"( ".$soldat_lourd." unités )"; } echo"
    Métal : 300
    Cristal : 250
    Temps : "; sec($n); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Vous devez d'abord construire une caserne !
    "; ?> - - \ No newline at end of file diff --git a/pages/chantier_spacial_ajout.php b/pages/chantier_spacial_ajout.php deleted file mode 100644 index 624f212..0000000 --- a/pages/chantier_spacial_ajout.php +++ /dev/null @@ -1,66 +0,0 @@ -= $temps_spatial) { - switch ($unit_s) { - case 1: $vaisseau_1++; mysql_query("UPDATE planete SET vaisseau_1='$vaisseau_1' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 2: $vaisseau_2++; mysql_query("UPDATE planete SET vaisseau_2='$vaisseau_2' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 3: $vaisseau_3++; mysql_query("UPDATE planete SET vaisseau_3='$vaisseau_3' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 4: $vaisseau_4++; mysql_query("UPDATE planete SET vaisseau_4='$vaisseau_4' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 5: $vaisseau_5++; mysql_query("UPDATE planete SET vaisseau_5='$vaisseau_5' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 6: $vaisseau_6++; mysql_query("UPDATE planete SET vaisseau_6='$vaisseau_6' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 7: $vaisseau_7++; mysql_query("UPDATE planete SET vaisseau_7='$vaisseau_7' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 8: $vaisseau_8++; mysql_query("UPDATE planete SET vaisseau_8='$vaisseau_8' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 9: $vaisseau_9++; mysql_query("UPDATE planete SET vaisseau_9='$vaisseau_9' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 10: $vaisseau_10++; mysql_query("UPDATE planete SET vaisseau_10='$vaisseau_10' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 11: $vaisseau_11++; mysql_query("UPDATE planete SET vaisseau_11='$vaisseau_11' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - } - - $pos = strpos(implode(',', $fileVai).',', $vai.','); - if (!($pos === false)) { - $depart = 0; - $nb = 1; - $eff = 0; - $newArray_vai = ''; $newArray_temps_v = $temps_spatial.' '; - for ($i=0 ; $i= $nb || $i < $depart) { - $newArray_vai .= $fileVai[$i].' '; - $newArray_temps_v .= $fileTemps_s[$i+1].' '; - } - elseif ($i == 0) { $newArray_temps_v = ($fileTemps_s[0] + $fileTemps_s[1]).' '; $eff++; } - else $eff++; - } - $fileVai = split(' ', trim($newArray_vai)); - $fileTemps_s = split(' ', trim($newArray_temps_v)); - $temps_s = implode(' ', $fileTemps_s); - $vai = implode(' ', $fileVai); - $pos=$_SESSION['pos']; - - if (count($fileTemps_s) == 0 || count($fileTemps_s) == 1 || count($fileVai) == 0) { - mysql_query("UPDATE planete SET temps_spatial='', unit_s='' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - $continue = false; - } - else mysql_query("UPDATE planete SET temps_spatial='$temps_s', unit_s='$vai' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - - if (!is_array($fileTemps_s)) $temps_s = 0; - else $temps_s = $fileTemps_s[0] + $fileTemps_s[1]; - $temps_spatial = $temps_s; - if (!is_array($fileVai)) $unit_s = 0; - else $unit_s = $fileVai[0]; - if (ereg('e;',implode(',',$fileVai).';')) $vai_boucle = true; - else $vai_boucle = false; - $vai = null; - } - } - else $continue = false; -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/chantier_spatial.php b/pages/chantier_spatial.php index bc01d7d..e8c75e4 100644 --- a/pages/chantier_spatial.php +++ b/pages/chantier_spatial.php @@ -40,14 +40,14 @@ function ressources($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro) { if ($need_cristal > 0) { if ($cristal <= $need_cristal) { $z=floor($cristal)-$need_cristal; - $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; + $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; } else $return .= $ressourc[1].' : '.$need_cristal.' '; } if ($need_ro > 0) { if ($ro <= $need_ro) { $z=floor($ro)-$need_ro; - $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; + $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; } else $return .= $ressourc[2].' : '.separerNombres($need_ro).''; } @@ -104,7 +104,7 @@ $a=0; $b=0; $c=0; $i = 0; $nom_bdd = 'vaisseau_'.($i+1); if (${$nom_bdd} > 0) $niveau = '('.${$nom_bdd}.' vaisseau(x))'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=1000; $b=800; + $n=(${$nom_bdd}-1); $a=1000; $b=800; $c=0; if($bat == 9) $action = 'Le chantier spatial est en cours d\'évolution'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if (verification_des_ressvf($i+1, $metal, $cristal, $hydrogene, $a, $b, $c)) { $ACT = ''; $lien = 'chantier_spatial_validation.php?type='.($i+1); } else { $ACT = 'none'; $lien = ''; } @@ -116,7 +116,7 @@ $a=0; $b=0; $c=0; $i = 1; $nom_bdd = 'vaisseau_'.($i+1); if (${$nom_bdd} > 0) $niveau = '('.${$nom_bdd}.' vaisseau(x))'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=4000; $b=3000; + $n=(${$nom_bdd}-1); $a=4000; $b=3000; $c=0; if($bat == 9) $action = 'Le chantier spatial est en cours d\'évolution'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if (verification_des_ressvf($i+1, $metal, $cristal, $hydrogene, $a, $b, $c)) { $ACT = ''; $lien = 'chantier_spatial_validation.php?type='.($i+1); } else { $ACT = 'none'; $lien = ''; } @@ -164,7 +164,7 @@ $a=0; $b=0; $c=0; $i = 5; $nom_bdd = 'vaisseau_'.($i+1); if (${$nom_bdd} > 0) $niveau = '('.${$nom_bdd}.' vaisseau(x))'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=1700; $b=1220; + $n=(${$nom_bdd}-1); $a=1700; $b=1220; $c=0; if($bat == 9) $action = 'Le chantier spatial est en cours d\'évolution'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if (verification_des_ressvf($i+1, $metal, $cristal, $hydrogene, $a, $b, $c)) { $ACT = ''; $lien = 'chantier_spatial_validation.php?type='.($i+1); } else { $ACT = 'none'; $lien = ''; } @@ -176,7 +176,7 @@ $a=0; $b=0; $c=0; $i = 6; $nom_bdd = 'vaisseau_'.($i+1); if (${$nom_bdd} > 0) $niveau = '('.${$nom_bdd}.' vaisseau(x))'; else $niveau = ''; - $n=(${$nom_bdd}-1); $a=5800; $b=1400; + $n=(${$nom_bdd}-1); $a=5800; $b=1400; $c=0; if($bat == 9) $action = 'Le chantier spatial est en cours d\'évolution'; else $action = verification_des_ress($i+1, $metal, $cristal, $hydrogene, $a, $b, $c); if (verification_des_ressvf($i+1, $metal, $cristal, $hydrogene, $a, $b, $c)) { $ACT = ''; $lien = 'chantier_spatial_validation.php?type='.($i+1); } else { $ACT = 'none'; $lien = ''; } diff --git a/pages/chantier_terrestre.php b/pages/chantier_terrestre.php deleted file mode 100644 index 5db4fe2..0000000 --- a/pages/chantier_terrestre.php +++ /dev/null @@ -1,242 +0,0 @@ - - -Halo battle - - - - -"; - -require_once 'bdd.php'; -require_once 'ressource.php'; -require_once 'chantier_terrestre_ajout.php'; -require_once 'noms.php'; - -function sec ($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - echo $output; -} - - -$f = ceil(720/pow(1.25,($chantier_terrestre-1))); -$g = ceil(2040/pow(1.25,($chantier_terrestre-3))); -$h = ceil(7200/pow(1.25,($chantier_terrestre-4))); -$i = ceil(3960/pow(1.25,($chantier_terrestre-6))); -$j = ceil(600/pow(1.25,($chantier_terrestre-1))); -$k = ceil(1080/pow(1.25,($chantier_terrestre-2))); -$l = ceil(2160/pow(1.25,($chantier_terrestre-3))); -$m = ceil(4680/pow(1.25,($chantier_terrestre-5))); - - - -if ($temps_t > 0) $unit = $nomterra[--$unit_t]; -?> - - - -
    Prochainement dans Halo-Battle
    '; -exit; - -if ($chantier_terrestre > 0) { - if ($temps_t > 0) { - echo '
    Construction terminé dans : '; - $tr=$temps_t-time(); - echo ''; - echo ''; - echo '
    Entrainement de : '.$cons_terrestre.' '.$unit.'

    '; - } - -if ($chantier_terrestre >= 1) { -echo'
    -
    -
    - -
    -
    -'.$nomterrn[0].''; if ($vais_0 > 0) { echo" (".$vais_0." vaisseaux)"; } -echo '
    '.$nomterde[0].'
    Besoin de : '.$ressourc[0].' : 500 '.$ressourc[1].' : 300
    -Temps de construction : '; sec($f); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 500 && $cristal >= 300) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 3 && $armement >= 1) { -echo'
    - -
    -
    -'.$nomterrn[1].''; if ($vais_1 > 0) { echo" (".$vais_1." vaisseaux)"; } -echo '
    '.$nomterde[1].'
    Besoin de : '.$ressourc[0].' : 680 '.$ressourc[1].' : 420
    -Temps de construction : '; sec($g); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 680 && $cristal >= 420) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 4 && $reacteur >= 1) { -echo'
    - -
    -
    -'.$nomterrn[2].''; if ($vais_2 > 0) { echo" (".$vais_2." vaisseaux)"; } -echo '
    '.$nomterde[2].'
    Besoin de : '.$ressourc[0].' : 1.000 '.$ressourc[1].' : 600
    -Temps de construction : '; sec($h); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 1000 && $cristal >= 600) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 6 && $reacteur >= 3) { -echo'
    - -
    -
    -'.$nomterrn[3].''; if ($vais_3 > 0) { echo" (".$vais_3." vaisseaux)"; } -echo '
    '.$nomterde[3].'
    Besoin de : '.$ressourc[0].' : 1.400 '.$ressourc[1].' : 950
    -Temps de construction : '; sec($i); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 1400 && $cristal >= 950) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 1) { -echo'
    - -
    -
    -'.$nomterrn[4].''; if ($vcl_1 > 0) { echo" (".$vcl_1." véhicules)"; } -echo '
    '.$nomterde[4].'
    Besoin de : '.$ressourc[0].' : 400 '.$ressourc[1].' : 240
    -Temps de construction : '; sec($j); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 400 && $cristal >= 240) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 2) { -echo'
    - -
    -
    -'.$nomterrn[5].''; if ($vcl_2 > 0) { echo" (".$vcl_2." véhicules)"; } -echo '
    '.$nomterde[5].'
    Besoin de : '.$ressourc[0].' : 480 '.$ressourc[1].' : 260
    -Temps de construction : '; sec($k); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 480 && $cristal >= 260) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 3 && $armement >= 1) { -echo'
    - -
    -
    -'.$nomterrn[6].''; if ($vcl_3 > 0) { echo" (".$vcl_3." véhicules)"; } -echo '
    '.$nomterde[6].'
    Besoin de : '.$ressourc[0].' : 600 '.$ressourc[1].' : 420
    -Temps de construction : '; sec($l); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 600 && $cristal >= 420) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 5 && $blindage >=2 && $armement >=2) { -echo'
    - -
    -
    -'.$nomterrn[7].''; if ($vcl_4 > 0) { echo" (".$vcl_4." véhicules)"; } -echo '
    '.$nomterde[7].'
    Besoin de : '.$ressourc[0].' : 1.000 '.$ressourc[1].' : 500
    -Temps de construction : '; sec($m); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 1000 && $cristal >= 500) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - - - -} -else { echo '
    Vous devez d\'abord construire un chantier terrestre !
    '; } ?> -
    - - \ No newline at end of file diff --git a/pages/chantier_terrestre_ajout.php b/pages/chantier_terrestre_ajout.php deleted file mode 100644 index 5e7bdc0..0000000 --- a/pages/chantier_terrestre_ajout.php +++ /dev/null @@ -1,31 +0,0 @@ -= $temps_terrestre && !empty($temps_terrestre)) { - switch ($unit_t) { - case 1: $vais_0 += $cons_terrestre; mysql_query("UPDATE planete SET vais_0='$vais_0' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 2: $vais_1 += $cons_terrestre; mysql_query("UPDATE planete SET vais_1='$vais_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 3: $vais_2 += $cons_terrestre; mysql_query("UPDATE planete SET vais_2='$vais_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 4: $vais_3 += $cons_terrestre; mysql_query("UPDATE planete SET vais_3='$vais_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 5: $vcl_1 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_1='$vcl_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 6: $vcl_2 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_2='$vcl_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 7: $vcl_3 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_3='$vcl_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 8: $vcl_4 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_4='$vcl_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 9: $def_1 += $cons_terrestre; mysql_query("UPDATE planete SET def_1='$def_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 10: $def_2 += $cons_terrestre; mysql_query("UPDATE planete SET def_2='$def_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 11: $def_3 += $cons_terrestre; mysql_query("UPDATE planete SET def_3='$def_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 12: $def_4 += $cons_terrestre; mysql_query("UPDATE planete SET def_4='$def_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 13: $def_5 += $cons_terrestre; mysql_query("UPDATE planete SET def_5='$def_5' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - } - mysql_query("UPDATE planetes SET terr_contruct_time='0', terr_contruct='0', terr_contruct_nb='0' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); - $cons_terrestre = 0; $unit_t = 0; $temps_terrestre = 0; -// if ($unit_t < 9 && $unit_t > 0) header("Location: chantier_terrestre.php"); -// else if ($unit_t >= 9) header("Location: defense.php"); -} -?> \ No newline at end of file diff --git a/pages/chantier_terrestre_validation.php b/pages/chantier_terrestre_validation.php deleted file mode 100644 index ffa97e8..0000000 --- a/pages/chantier_terrestre_validation.php +++ /dev/null @@ -1,94 +0,0 @@ -= 1 && !ereg('e,', implode(',',$fileVai).',')) { - $temps_s = ''; - $veh = 'e'; -} -else { - // Annulation de la production en chaîne si elle existe - //if (ereg('e,', implode(',',$fileVai).',')) { header('Location: annul_bat.php?bat=e&go='.$_POST['type']); exit; } - - if (!isset($_POST['sa'])) exit; - else $sa = abs(floor($_POST['sa'])); - - if ($_POST['type'] == 9) { - $metal -= ($sa*500); - $cristal -= ($sa*200); - $temps_s = $sa*ceil(480/pow(1.25,($chantier_terrestre-1))); - $veh = 9; - } - elseif ($_POST['type'] == 10) { - $metal -= ($sa*4000); - $cristal -= ($sa*2000); - $temps_s = $sa*ceil(1560/pow(1.25,($chantier_terrestre-3))); - $veh = 10; - } - elseif ($_POST['type'] == 11) { - $metal -= ($sa*4500); - $cristal -= ($sa*800); - $hydrogene -= ($sa*600); - $temps_s = $sa*ceil(1800/pow(1.25,($chantier_terrestre-4))); - $veh = 11; - } - elseif ($_POST['type'] == 12) { - $metal -= ($sa*12000); - $cristal -= ($sa*10000); - $hydrogene -= ($sa*1000); - $temps_s = $sa*ceil(6720/pow(1.25,($chantier_terrestre-4))); - $veh = 12; - } - elseif ($_POST['type'] == 13) { - $metal -= ($sa*15000); - $cristal -= ($sa*9500); - $hydrogene -= ($sa*1500); - $temps_s = $sa*ceil(12960/pow(1.25,($chantier_terrestre-8))); - $veh = 13; - } -} - -if (isset($veh) && $veh != '' && (!empty($nomvaisn[$veh-1]) || $veh == 'e' || (isset($_GET['act']) && $_GET['act'] == 'e'))) { - if ($metal >= 0 && $cristal >= 0 && $hydrogene >= 0) { - for ($c=0 ; $c < $sa ; $c++){ - $fileVai = explode(' ',implode(' ',$fileVai).' '.$veh); - } - $veh = implode(' ',$fileVai); - if (count($fileTemps_s) == 0 || count($fileTemps_s) == 1) { - $temps_ss = time(); - for ($c=0 ; $c < $sa ; $c++){ - $temps_ss .= ' '.$temps_s; - } - $temps_s = $temps_ss; - } - else { - $temps_ss = implode(' ',$fileTemps_s); - for ($c=0 ; $c < $sa ; $c++){ - $temps_ss .= ' '.$temps_s; - } - $temps_s = $temps_ss; - } - - mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_spatial='$temps_s', unit_s='$veh' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - } - else { - if ($veh >= 9 ) header('Location: chantier_terrestre.php?err=3'); - else header('Location: chantier_terrestre.php?err=3'); - mysql_close(); - exit; - } -} -mysql_close(); -$veh = $fileVai[0]; -if ($veh >= 9 ) header('Location: defense.php'); -else header('Location: chantier_terrestre.php'); -?> \ No newline at end of file diff --git a/pages/construction.php b/pages/construction.php deleted file mode 100644 index 21ed428..0000000 --- a/pages/construction.php +++ /dev/null @@ -1,122 +0,0 @@ -= 1 && !ereg('e,', implode(',',$fileTec).',')) { - $temps_tec = ''; - $tec = 'e'; -} -else { - // Annulation de la production en chaîne si elle existe - if (ereg('e,', implode(',',$fileTec).',')) { header('Location: annul_tec.php?tec=e&go='.$_GET['tec']); exit; } - - if ($_GET['tec'] == 1 && $labo >= 1) { - $n=($informatique-1); - $cristal -= ceil(pow(2,$n)*500); - $hydrogene -= ceil(pow(2,$n)*150); - $temps_tec = ceil((420*2*($informatique+1))/pow(1.25,($labo-1))); - $tec = 1; - } - elseif ($_GET['tec'] == 2 && $labo >= 2 && $informatique >=2) { - $n=($detection-1); - $metal -= ceil(pow(2,$n)*500); - $cristal -= ceil(pow(2,$n)*750); - $hydrogene -= ceil(pow(2,$n)*100); - $temps_tec = ceil((600*2*($detection+1))/pow(1.25,($labo-2))); - $tec = 2; - } - elseif ($_GET['tec'] == 3 && $labo >= 5) { - $n=($armement-1); - $metal -= ceil(pow(2,$n)*2500); - $cristal -= ceil(pow(2,$n)*500); - $temps_tec = ceil((1500*2*($armement+1))/pow(1.25,($labo-5))); - $tec = 3; - } - elseif ($_GET['tec'] == 4 && $labo >= 4) { - $n=($blindage-1); - $metal -= ceil(pow(2,$n)*4000); - $cristal -= ceil(pow(2,$n)*1500); - $temps_tec = ceil((1710*2*($blindage+1))/pow(1.25,($labo-4))); - $tec = 4; - } - elseif ($_GET['tec'] == 5 && $labo >= 2) { - $n=($energie_t-1); - $metal -= ceil(pow(2,$n)*2000); - $cristal -= ceil(pow(2,$n)*1500); - $hydrogene -= ceil(pow(2,$n)*300); - $temps_tec = ceil((900*2*($energie_t+1))/pow(1.25,($labo-2))); - $tec = 5; - } - elseif ($_GET['tec'] == 6 && $labo >= 2) { - $n=($reacteur-1); - $metal -= ceil(pow(2,$n)*1400); - $cristal -= ceil(pow(2,$n)*400); - $temps_tec = ceil((510*2*($reacteur+1))/pow(1.25,($labo-2))); - $tec = 6; - } - elseif ($_GET['tec'] == 7 && $labo >= 4 && $energie_t >= 2 && $reacteur >= 4) { - $n=($reacteur_f-1); - $metal -= ceil(pow(2,$n)*3000); - $cristal -= ceil(pow(2,$n)*2100); - $hydrogene -= ceil(pow(2,$n)*750); - $temps_tec = ceil((1650*2*($reacteur_f+1))/pow(1.25,($labo-4))); - $tec = 7; - } - elseif ($_GET['tec'] == 8 && $labo >= 6 && $energie_t >= 5 && $reacteur_f >= 4) { - $n=($reacteur_ff-1); - $metal -= ceil(pow(2,$n)*5000); - $cristal -= ceil(pow(2,$n)*4000); - $hydrogene -= ceil(pow(2,$n)*1500); - $temps_tec = ceil((2400*2*($reacteur_ff+1))/pow(1.25,($labo-6))); - $tec = 8; - } - elseif ($_GET['tec'] == 9 && $labo >= 1) { - $n=($medecine-1); - $metal -= ceil(pow(2,$n)*800); - $cristal -= ceil(pow(2,$n)*1000); - $temps_tec = ceil((360*2*($medecine+1))/pow(1.25,($labo-1))); - $tec = 9; - } - elseif ($_GET['tec'] == 10 && $labo >= 3) { - $n=($tactique-1); - $metal -= ceil(pow(2,$n)*2600); - $cristal -= ceil(pow(2,$n)*2600); - $temps_tec = ceil((4410*2*($tactique+1))/pow(1.25,($labo-3))); - $tec = 10; - } - elseif ($_GET['tec'] == 11 && $labo >= 8 && $medecine >= 5 && $informatique >= 8) { - $n=($spartan-1); - $metal -= ceil(pow(3,$n)*5200); - $cristal -= ceil(pow(3,$n)*4250); - $hydrogene -= ceil(pow(3,$n)*850); - $temps_tec = ceil((5000*2*($spartan+1))/pow(1.25,($labo-8))); - $tec = 11; - } -} - -if (isset($tec) && $tec != '' && (!empty($technolo[$tec-1]) || $tec == 'e')) { - if ($metal >= 0 && $cristal >= 0 && $hydrogene >= 0) { - $tec = implode(' ',$fileTec).' '.$tec.' '; - if ((count($fileTemps_t) == 0 || count($fileTemps_t) == 1) && isset($_GET['act']) && $_GET['act'] == 'e' && isset($_GET['temps_tec'])) $temps_tec = $_GET['temps_tec'].' '.$temps_tec.' '; - elseif (count($fileTemps_t) == 0 || count($fileTemps_t) == 1) $temps_tec = time().' '.$temps_tec.' '; - else $temps_tec = implode(' ',$fileTemps_t).' '.$temps_tec.''; - mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', hydrogene='$hydrogene' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - if (isset($_GET['act']) && $_GET['act'] == 'e') { $tec .= 'e'; mysql_query("UPDATE user SET temps_t='$temps_tec', tec='$tec' WHERE id='$id'"); } - else mysql_query("UPDATE user SET temps_t='$temps_tec', tec='$tec' WHERE id='$id'"); - } -} -mysql_close(); -if (isset($_GET['go']) && $_GET['go'] == 1) header('Location: laboratoire.php?err=2'); -else header('Location: laboratoire.php'); -?> \ No newline at end of file diff --git a/pages/creerflotte.php b/pages/creerflotte.php index f3cdf52..096d928 100644 --- a/pages/creerflotte.php +++ b/pages/creerflotte.php @@ -149,10 +149,11 @@ require('../connectBDD.php'); exit; } - $conso = vais_conso($timeDep,count($AvaisType))*($_POST['speed']/100)*2; + $conso = ceil(vais_conso($timeDep,count($AvaisType))*($_POST['speed']/100)*2); //Vérification des codes transmi if (!isset($_POST['cds']) || empty($_POST['cds']) || $_SESSION['flotte_cdsL'] != $_POST['cds']) { + setHistorique('Rapport Frederic','Décalage Code : SESSION : '.$_SESSION['flotte_cdsL'].' - POST : '.$_POST['cds']); header('Location: flotte.php?err=12'); exit; } diff --git a/pages/defense.php b/pages/defense.php index a71e59a..948e774 100644 --- a/pages/defense.php +++ b/pages/defense.php @@ -37,14 +37,14 @@ function ressources($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro) { if ($need_cristal > 0) { if ($cristal <= $need_cristal) { $z=floor($cristal)-$need_cristal; - $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; + $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; } else $return .= $ressourc[1].' : '.separerNombres($need_cristal).' '; } if ($need_ro > 0) { if ($ro <= $need_ro) { $z=floor($ro)-$need_ro; - $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; + $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; } else $return .= $ressourc[2].' : '.separerNombres($need_ro).''; } diff --git a/pages/defense_ajout.php b/pages/defense_ajout.php deleted file mode 100644 index fa2490b..0000000 --- a/pages/defense_ajout.php +++ /dev/null @@ -1,61 +0,0 @@ -= $temps_v) { - switch ($unit_v) { - case 9: $def_1++; mysql_query("UPDATE planete SET def_1='$def_1' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - case 10: $def_2++; mysql_query("UPDATE planete SET def_2='$def_2' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - case 11: $def_3++; mysql_query("UPDATE planete SET def_3='$def_3' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - case 12: $def_4++; mysql_query("UPDATE planete SET def_4='$def_4' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - case 13: $def_5++; mysql_query("UPDATE planete SET def_5='$def_5' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - } - - $pos = strpos(implode(',', $fileVeh).',', $veh.','); - if (!($pos === false)) { - $depart = 0; - $nb = 1; - $eff = 0; - $newArray_veh = ''; $newArray_temps_v = $fileTemps_v[0].' '; - for ($i=0 ; $i= $nb || $i < $depart) { - $newArray_veh .= $fileVeh[$i].' '; - $newArray_temps_v .= $fileTemps_v[$i+1].' '; - } - elseif ($i == 0) { $newArray_temps_v = $temps_v.' '; $eff++; } - else $eff++; - } - $fileVeh = split(' ', trim($newArray_veh)); - $fileTemps_v = split(' ', trim($newArray_temps_v)); - $temps_v = implode(' ', $fileTemps_v); - $veh = implode(' ', $fileVeh); - $pos=$_SESSION['pos']; - - $combien = count($fileTemps_v); - if (count($fileTemps_s) == 0 || $combien == 1 || count($fileVeh) == 0) { - mysql_query("UPDATE planete SET temps_t='', unit_t='' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - $continue = false; - } - else mysql_query("UPDATE planete SET temps_t='$temps_v', unit_t='$veh' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - - if (!is_array($fileTemps_v)) $temps_v = 0; - else $temps_v = $fileTemps_v[0] + $fileTemps_v[1]; - if (!is_array($fileVeh)) $unit_v = 0; - else $unit_v = $fileVeh[0]; - if (ereg('e;',implode(',',$fileVeh).';')) $veh_boucle = true; - else $veh_boucle = false; - $veh = null; - } - } - else $continue = false; -} - -mysql_close(); -?> \ No newline at end of file diff --git a/pages/depart.php b/pages/depart.php index f807fcf..6a4451f 100644 --- a/pages/depart.php +++ b/pages/depart.php @@ -12,6 +12,7 @@ $galaxy=$_SESSION['galaxy']; $ss=$_SESSION['ss']; $pos=$_SESSION['pos']; $race=$_SESSION['race']; +if (!isset($_SESSION['PL_abandonne'])) $_SESSION['PL_abandonne'] = false; if (isset($_SESSION['dernPage']) && $_SESSION['dernPage'] != '' && !isset($_GET['pas'])) { header('Location: '.$_SESSION['dernPage']); $_SESSION['dernPage'] = ''; @@ -25,6 +26,21 @@ require('../connectBDD.php'); require('../template.php'); $template = new Template('../templates/'.$templates); +if ($_SESSION['PL_abandonne'] && isset($_GET['act']) && $_GET['act'] == 'del') { + mysql_query("DELETE FROM `planete` WHERE `id_user` = '$id' AND `galaxie` = '$galaxy' AND `ss` = '$ss' AND `position` = '$pos' LIMIT 1;") or die ('mysql'); + + $req = mysql_query("SELECT galaxie, ss, position FROM `planete` WHERE `id_user` = '$id'"); + $resultat = mysql_fetch_array($req); + + $_SESSION['galaxy'] = $resultat['galaxie']; + $_SESSION['ss'] = $resultat['ss']; + $_SESSION['pos'] = $resultat['position']; + + $_SESSION['dernPage'] = ''; + header('Location: depart.php?erreur=0'); + exit; +} + /* Page départ * */ @@ -43,7 +59,7 @@ $data = mysql_fetch_array($ee); //Format de date courant //$DATEHEURE = date('H:i:s d/m/Y'); //Format de date Halo -$DATEHEURE = dateFR(date('/D d M Y/Hi/')); +$DATEHEURE = dateFR(date('/D d M Y/Hi:s/')); if (mysql_num_rows($nbr) == 1) $MESSAGERIE = 'Vous avez 1 nouveau message'; elseif (mysql_num_rows($nbr) > 1) $MESSAGERIE = 'Vous avez '.mysql_num_rows($nbr).' nouveaux messages'; @@ -69,7 +85,7 @@ while ($resultat = mysql_fetch_array($req)) { } if ($FLOTTE != '') $FLOTTE = ''.$FLOTTE.'
    TempsEvénement
    '; -$template->assign_vars(array('DATEHEURE' => $DATEHEURE, 'MESSAGERIE' => $MESSAGERIE, 'NOM_PLANETE' => $nom_planete, 'PSEUDO_PLANETE' => trouvNom($id), 'PSEUDO' => $data['pseudo'], 'IMAGE' => $image, 'DESC_DIAMETRE' => $diametre, 'DESC_CASES' => $case, 'DESC_CASESMAX' => $cases, 'RACE' => $race, 'GALAXIE' => $galaxy, 'SYSTEME' => $ss, 'POSITION' => $pos, 'POINTS' => $data['points'], 'PLACE' => $data['place_points'], 'FLOTTE' => $FLOTTE)); +$template->assign_vars(array('DATEHEURE' => $DATEHEURE, 'MESSAGERIE' => $MESSAGERIE, 'NOM_PLANETE' => $nom_planete, 'PSEUDO_PLANETE' => trouvNom($id), 'PSEUDO' => $data['pseudo'], 'IMAGE' => $image, 'DESC_DIAMETRE' => $diametre, 'DESC_CASES' => $case, 'DESC_CASESMAX' => $cases, 'RACE' => $race, 'GALAXIE' => $galaxy, 'SYSTEME' => $ss, 'POSITION' => $pos, 'POINTS' => separerNombres($data['points']), 'PLACE' => separerNombres($data['place_points']).'ème', 'FLOTTE' => $FLOTTE)); /* FIN Page départ * */ diff --git a/pages/descriptions.php b/pages/descriptions.php index 78f96a2..f068301 100644 --- a/pages/descriptions.php +++ b/pages/descriptions.php @@ -19,7 +19,7 @@ $template = new Template('../templates/'.$templates); function tableauProd($ibat,$nivo){ $dejadefi = 1; -require('bdd.php'); +require('common.php'); $return = ''; $c = $nivo-2 < 1 ? 1 : $nivo-2; $a = $c + 7; if ($ibat == 0) { diff --git a/pages/descriptions/bdd.php b/pages/diz/descriptions/bdd.php similarity index 100% rename from pages/descriptions/bdd.php rename to pages/diz/descriptions/bdd.php diff --git a/pages/descriptions/description.php b/pages/diz/descriptions/description.php similarity index 100% rename from pages/descriptions/description.php rename to pages/diz/descriptions/description.php diff --git a/pages/descriptions/description_bat.php b/pages/diz/descriptions/description_bat.php similarity index 100% rename from pages/descriptions/description_bat.php rename to pages/diz/descriptions/description_bat.php diff --git a/pages/descriptions/description_pt.php b/pages/diz/descriptions/description_pt.php similarity index 100% rename from pages/descriptions/description_pt.php rename to pages/diz/descriptions/description_pt.php diff --git a/pages/descriptions/diz/1720.jpg b/pages/diz/descriptions/diz/1720.jpg similarity index 100% rename from pages/descriptions/diz/1720.jpg rename to pages/diz/descriptions/diz/1720.jpg diff --git a/pages/descriptions/diz/1782.jpg b/pages/diz/descriptions/diz/1782.jpg similarity index 100% rename from pages/descriptions/diz/1782.jpg rename to pages/diz/descriptions/diz/1782.jpg diff --git a/pages/descriptions/diz/1783.jpg b/pages/diz/descriptions/diz/1783.jpg similarity index 100% rename from pages/descriptions/diz/1783.jpg rename to pages/diz/descriptions/diz/1783.jpg diff --git a/pages/descriptions/diz/180.jpg b/pages/diz/descriptions/diz/180.jpg similarity index 100% rename from pages/descriptions/diz/180.jpg rename to pages/diz/descriptions/diz/180.jpg diff --git a/pages/descriptions/diz/180p.jpg b/pages/diz/descriptions/diz/180p.jpg similarity index 100% rename from pages/descriptions/diz/180p.jpg rename to pages/diz/descriptions/diz/180p.jpg diff --git a/pages/descriptions/diz/181.jpg b/pages/diz/descriptions/diz/181.jpg similarity index 100% rename from pages/descriptions/diz/181.jpg rename to pages/diz/descriptions/diz/181.jpg diff --git a/pages/descriptions/diz/182.jpg b/pages/diz/descriptions/diz/182.jpg similarity index 100% rename from pages/descriptions/diz/182.jpg rename to pages/diz/descriptions/diz/182.jpg diff --git a/pages/descriptions/diz/183.jpg b/pages/diz/descriptions/diz/183.jpg similarity index 100% rename from pages/descriptions/diz/183.jpg rename to pages/diz/descriptions/diz/183.jpg diff --git a/pages/descriptions/diz/205.jpg b/pages/diz/descriptions/diz/205.jpg similarity index 100% rename from pages/descriptions/diz/205.jpg rename to pages/diz/descriptions/diz/205.jpg diff --git a/pages/descriptions/diz/Copy of fond.jpg b/pages/diz/descriptions/diz/Copy of fond.jpg similarity index 100% rename from pages/descriptions/diz/Copy of fond.jpg rename to pages/diz/descriptions/diz/Copy of fond.jpg diff --git a/pages/descriptions/diz/Thumbs.db b/pages/diz/descriptions/diz/Thumbs.db similarity index 100% rename from pages/descriptions/diz/Thumbs.db rename to pages/diz/descriptions/diz/Thumbs.db diff --git a/pages/descriptions/diz/admin.css b/pages/diz/descriptions/diz/admin.css similarity index 100% rename from pages/descriptions/diz/admin.css rename to pages/diz/descriptions/diz/admin.css diff --git a/pages/descriptions/diz/base.anc.css b/pages/diz/descriptions/diz/base.anc.css similarity index 100% rename from pages/descriptions/diz/base.anc.css rename to pages/diz/descriptions/diz/base.anc.css diff --git a/pages/descriptions/diz/base.css b/pages/diz/descriptions/diz/base.css similarity index 100% rename from pages/descriptions/diz/base.css rename to pages/diz/descriptions/diz/base.css diff --git a/pages/descriptions/diz/fond.jpg b/pages/diz/descriptions/diz/fond.jpg similarity index 100% rename from pages/descriptions/diz/fond.jpg rename to pages/diz/descriptions/diz/fond.jpg diff --git a/pages/descriptions/diz/fond/Thumbs.db b/pages/diz/descriptions/diz/fond/Thumbs.db similarity index 100% rename from pages/descriptions/diz/fond/Thumbs.db rename to pages/diz/descriptions/diz/fond/Thumbs.db diff --git a/pages/descriptions/diz/fond/apb.jpg b/pages/diz/descriptions/diz/fond/apb.jpg similarity index 100% rename from pages/descriptions/diz/fond/apb.jpg rename to pages/diz/descriptions/diz/fond/apb.jpg diff --git a/pages/descriptions/diz/fond/apc.jpg b/pages/diz/descriptions/diz/fond/apc.jpg similarity index 100% rename from pages/descriptions/diz/fond/apc.jpg rename to pages/diz/descriptions/diz/fond/apc.jpg diff --git a/pages/descriptions/diz/fond/apfin.jpg b/pages/diz/descriptions/diz/fond/apfin.jpg similarity index 100% rename from pages/descriptions/diz/fond/apfin.jpg rename to pages/diz/descriptions/diz/fond/apfin.jpg diff --git a/pages/descriptions/diz/fond/apmenu.jpg b/pages/diz/descriptions/diz/fond/apmenu.jpg similarity index 100% rename from pages/descriptions/diz/fond/apmenu.jpg rename to pages/diz/descriptions/diz/fond/apmenu.jpg diff --git a/pages/descriptions/diz/fondf.jpg b/pages/diz/descriptions/diz/fondf.jpg similarity index 100% rename from pages/descriptions/diz/fondf.jpg rename to pages/diz/descriptions/diz/fondf.jpg diff --git a/pages/descriptions/diz/fondfp.jpg b/pages/diz/descriptions/diz/fondfp.jpg similarity index 100% rename from pages/descriptions/diz/fondfp.jpg rename to pages/diz/descriptions/diz/fondfp.jpg diff --git a/pages/descriptions/diz/m.gif b/pages/diz/descriptions/diz/m.gif similarity index 100% rename from pages/descriptions/diz/m.gif rename to pages/diz/descriptions/diz/m.gif diff --git a/pages/descriptions/diz/panel/Thumbs.db b/pages/diz/descriptions/diz/panel/Thumbs.db similarity index 100% rename from pages/descriptions/diz/panel/Thumbs.db rename to pages/diz/descriptions/diz/panel/Thumbs.db diff --git a/pages/descriptions/diz/panel/background.jpg b/pages/diz/descriptions/diz/panel/background.jpg similarity index 100% rename from pages/descriptions/diz/panel/background.jpg rename to pages/diz/descriptions/diz/panel/background.jpg diff --git a/pages/descriptions/diz/planete/1.jpg b/pages/diz/descriptions/diz/planete/1.jpg similarity index 100% rename from pages/descriptions/diz/planete/1.jpg rename to pages/diz/descriptions/diz/planete/1.jpg diff --git a/pages/descriptions/diz/planete/10.jpg b/pages/diz/descriptions/diz/planete/10.jpg similarity index 100% rename from pages/descriptions/diz/planete/10.jpg rename to pages/diz/descriptions/diz/planete/10.jpg diff --git a/pages/descriptions/diz/planete/11.jpg b/pages/diz/descriptions/diz/planete/11.jpg similarity index 100% rename from pages/descriptions/diz/planete/11.jpg rename to pages/diz/descriptions/diz/planete/11.jpg diff --git a/pages/descriptions/diz/planete/12.jpg b/pages/diz/descriptions/diz/planete/12.jpg similarity index 100% rename from pages/descriptions/diz/planete/12.jpg rename to pages/diz/descriptions/diz/planete/12.jpg diff --git a/pages/descriptions/diz/planete/13.jpg b/pages/diz/descriptions/diz/planete/13.jpg similarity index 100% rename from pages/descriptions/diz/planete/13.jpg rename to pages/diz/descriptions/diz/planete/13.jpg diff --git a/pages/descriptions/diz/planete/14.jpg b/pages/diz/descriptions/diz/planete/14.jpg similarity index 100% rename from pages/descriptions/diz/planete/14.jpg rename to pages/diz/descriptions/diz/planete/14.jpg diff --git a/pages/descriptions/diz/planete/15.jpg b/pages/diz/descriptions/diz/planete/15.jpg similarity index 100% rename from pages/descriptions/diz/planete/15.jpg rename to pages/diz/descriptions/diz/planete/15.jpg diff --git a/pages/descriptions/diz/planete/2.jpg b/pages/diz/descriptions/diz/planete/2.jpg similarity index 100% rename from pages/descriptions/diz/planete/2.jpg rename to pages/diz/descriptions/diz/planete/2.jpg diff --git a/pages/descriptions/diz/planete/3.jpg b/pages/diz/descriptions/diz/planete/3.jpg similarity index 100% rename from pages/descriptions/diz/planete/3.jpg rename to pages/diz/descriptions/diz/planete/3.jpg diff --git a/pages/descriptions/diz/planete/4.jpg b/pages/diz/descriptions/diz/planete/4.jpg similarity index 100% rename from pages/descriptions/diz/planete/4.jpg rename to pages/diz/descriptions/diz/planete/4.jpg diff --git a/pages/descriptions/diz/planete/5.jpg b/pages/diz/descriptions/diz/planete/5.jpg similarity index 100% rename from pages/descriptions/diz/planete/5.jpg rename to pages/diz/descriptions/diz/planete/5.jpg diff --git a/pages/descriptions/diz/planete/6.jpg b/pages/diz/descriptions/diz/planete/6.jpg similarity index 100% rename from pages/descriptions/diz/planete/6.jpg rename to pages/diz/descriptions/diz/planete/6.jpg diff --git a/pages/descriptions/diz/planete/7.jpg b/pages/diz/descriptions/diz/planete/7.jpg similarity index 100% rename from pages/descriptions/diz/planete/7.jpg rename to pages/diz/descriptions/diz/planete/7.jpg diff --git a/pages/descriptions/diz/planete/8.jpg b/pages/diz/descriptions/diz/planete/8.jpg similarity index 100% rename from pages/descriptions/diz/planete/8.jpg rename to pages/diz/descriptions/diz/planete/8.jpg diff --git a/pages/descriptions/diz/planete/9.jpg b/pages/diz/descriptions/diz/planete/9.jpg similarity index 100% rename from pages/descriptions/diz/planete/9.jpg rename to pages/diz/descriptions/diz/planete/9.jpg diff --git a/pages/descriptions/diz/planete/Thumbs.db b/pages/diz/descriptions/diz/planete/Thumbs.db similarity index 100% rename from pages/descriptions/diz/planete/Thumbs.db rename to pages/diz/descriptions/diz/planete/Thumbs.db diff --git a/pages/descriptions/diz/planete/anneaux1.jpg b/pages/diz/descriptions/diz/planete/anneaux1.jpg similarity index 100% rename from pages/descriptions/diz/planete/anneaux1.jpg rename to pages/diz/descriptions/diz/planete/anneaux1.jpg diff --git a/pages/descriptions/diz/planete/asteroide1.jpg b/pages/diz/descriptions/diz/planete/asteroide1.jpg similarity index 100% rename from pages/descriptions/diz/planete/asteroide1.jpg rename to pages/diz/descriptions/diz/planete/asteroide1.jpg diff --git a/pages/descriptions/diz/planete/asteroide2.jpg b/pages/diz/descriptions/diz/planete/asteroide2.jpg similarity index 100% rename from pages/descriptions/diz/planete/asteroide2.jpg rename to pages/diz/descriptions/diz/planete/asteroide2.jpg diff --git a/pages/descriptions/diz/planete/asteroide4.jpg b/pages/diz/descriptions/diz/planete/asteroide4.jpg similarity index 100% rename from pages/descriptions/diz/planete/asteroide4.jpg rename to pages/diz/descriptions/diz/planete/asteroide4.jpg diff --git a/pages/descriptions/diz/planete/asteroide5.jpg b/pages/diz/descriptions/diz/planete/asteroide5.jpg similarity index 100% rename from pages/descriptions/diz/planete/asteroide5.jpg rename to pages/diz/descriptions/diz/planete/asteroide5.jpg diff --git a/pages/descriptions/diz/planete/desert2.jpg b/pages/diz/descriptions/diz/planete/desert2.jpg similarity index 100% rename from pages/descriptions/diz/planete/desert2.jpg rename to pages/diz/descriptions/diz/planete/desert2.jpg diff --git a/pages/descriptions/diz/planete/etrange1.jpg b/pages/diz/descriptions/diz/planete/etrange1.jpg similarity index 100% rename from pages/descriptions/diz/planete/etrange1.jpg rename to pages/diz/descriptions/diz/planete/etrange1.jpg diff --git a/pages/descriptions/diz/planete/etrange3.jpg b/pages/diz/descriptions/diz/planete/etrange3.jpg similarity index 100% rename from pages/descriptions/diz/planete/etrange3.jpg rename to pages/diz/descriptions/diz/planete/etrange3.jpg diff --git a/pages/descriptions/diz/planete/etrange6.jpg b/pages/diz/descriptions/diz/planete/etrange6.jpg similarity index 100% rename from pages/descriptions/diz/planete/etrange6.jpg rename to pages/diz/descriptions/diz/planete/etrange6.jpg diff --git a/pages/descriptions/diz/planete/fusion2.jpg b/pages/diz/descriptions/diz/planete/fusion2.jpg similarity index 100% rename from pages/descriptions/diz/planete/fusion2.jpg rename to pages/diz/descriptions/diz/planete/fusion2.jpg diff --git a/pages/descriptions/diz/planete/normal3.jpg b/pages/diz/descriptions/diz/planete/normal3.jpg similarity index 100% rename from pages/descriptions/diz/planete/normal3.jpg rename to pages/diz/descriptions/diz/planete/normal3.jpg diff --git a/pages/descriptions/diz/planete/normal4.jpg b/pages/diz/descriptions/diz/planete/normal4.jpg similarity index 100% rename from pages/descriptions/diz/planete/normal4.jpg rename to pages/diz/descriptions/diz/planete/normal4.jpg diff --git a/pages/descriptions/diz/planete/normal5.jpg b/pages/diz/descriptions/diz/planete/normal5.jpg similarity index 100% rename from pages/descriptions/diz/planete/normal5.jpg rename to pages/diz/descriptions/diz/planete/normal5.jpg diff --git a/pages/descriptions/diz/planete/ocean2.jpg b/pages/diz/descriptions/diz/planete/ocean2.jpg similarity index 100% rename from pages/descriptions/diz/planete/ocean2.jpg rename to pages/diz/descriptions/diz/planete/ocean2.jpg diff --git a/pages/descriptions/diz/planete/rien1.jpg b/pages/diz/descriptions/diz/planete/rien1.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien1.jpg rename to pages/diz/descriptions/diz/planete/rien1.jpg diff --git a/pages/descriptions/diz/planete/rien10.jpg b/pages/diz/descriptions/diz/planete/rien10.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien10.jpg rename to pages/diz/descriptions/diz/planete/rien10.jpg diff --git a/pages/descriptions/diz/planete/rien2.jpg b/pages/diz/descriptions/diz/planete/rien2.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien2.jpg rename to pages/diz/descriptions/diz/planete/rien2.jpg diff --git a/pages/descriptions/diz/planete/rien3.jpg b/pages/diz/descriptions/diz/planete/rien3.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien3.jpg rename to pages/diz/descriptions/diz/planete/rien3.jpg diff --git a/pages/descriptions/diz/planete/rien4.jpg b/pages/diz/descriptions/diz/planete/rien4.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien4.jpg rename to pages/diz/descriptions/diz/planete/rien4.jpg diff --git a/pages/descriptions/diz/planete/rien5.jpg b/pages/diz/descriptions/diz/planete/rien5.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien5.jpg rename to pages/diz/descriptions/diz/planete/rien5.jpg diff --git a/pages/descriptions/diz/planete/rien6.jpg b/pages/diz/descriptions/diz/planete/rien6.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien6.jpg rename to pages/diz/descriptions/diz/planete/rien6.jpg diff --git a/pages/descriptions/diz/planete/rien7.jpg b/pages/diz/descriptions/diz/planete/rien7.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien7.jpg rename to pages/diz/descriptions/diz/planete/rien7.jpg diff --git a/pages/descriptions/diz/planete/rien8.jpg b/pages/diz/descriptions/diz/planete/rien8.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien8.jpg rename to pages/diz/descriptions/diz/planete/rien8.jpg diff --git a/pages/descriptions/diz/planete/rien9.jpg b/pages/diz/descriptions/diz/planete/rien9.jpg similarity index 100% rename from pages/descriptions/diz/planete/rien9.jpg rename to pages/diz/descriptions/diz/planete/rien9.jpg diff --git a/pages/descriptions/diz/planete/soleil.jpg b/pages/diz/descriptions/diz/planete/soleil.jpg similarity index 100% rename from pages/descriptions/diz/planete/soleil.jpg rename to pages/diz/descriptions/diz/planete/soleil.jpg diff --git a/pages/descriptions/flotte_dep.php b/pages/diz/descriptions/flotte_dep.php similarity index 100% rename from pages/descriptions/flotte_dep.php rename to pages/diz/descriptions/flotte_dep.php diff --git a/pages/diz/forerunner/base.css b/pages/diz/forerunner/base.css new file mode 100644 index 0000000..612b9ec --- /dev/null +++ b/pages/diz/forerunner/base.css @@ -0,0 +1,381 @@ +* +{ +margin: 0; +padding: 0; +border: 0; +} + +a +{ +text-decoration: none; +font-weight: bold; +color: #FF3B01; +} + +a:hover,a:visited:hover +{ +text-decoration: underline; +} + +a:visited +{ +text-decoration: none; +} + +body, html +{ +background-color: #000000; +text-align: center; +font-family: "arial"; +font-size: 10px; +color: #585858; +} + +.all +{ +background-color: #161616; +width: 930px; +margin-top: 30px; +margin-bottom: 70px; +margin-left: auto; +margin-right: auto; +padding: 16px; +} + +.header +{ +background-color: #1C1C1C; +border: #222222 solid 1px; +color: #FF3B01; +margin-bottom: 20px; +} + +.header_link +{ +text-align: left; +margin-left: 30px; +} + +.buttons +{ +margin-top: 5px; +margin-left: auto; +margin-right: auto; +width: 890px; +text-align: center; +} + +.buttons a +{ +display: block; +float: left; +width: 105px; +height: 30px; +text-align: center; +padding-top: 10px; +margin-right: 15px; +color: #FFFFFF; +border: #373737 solid 1px; +background: #232323 url(images/button.gif) repeat-x bottom; +} + +.buttons a:hover +{ +color: #FF3B01; +background: #414141 url(images/button_hover.gif) repeat-x bottom; +text-decoration: none; +} + +.pub +{ +background-color: transparent; +border: none; +} + +.corps +{ +background-color: #1C1C1C; +border: #222222 solid 1px; +padding: 30px; +line-height: 18px; +} + +.cadre +{ +background-color: #222222; +border: #303030 solid 1px; +padding: 20px; +margin-bottom: 50px; +} + +.titre_cadre +{ +background-color: #1C1C1C; +border: #303030 solid 1px; +padding: 5px; +margin-bottom: 30px; +} + +.titre +{ +border: #303030 solid 1px; +padding: 15px; +margin-bottom: 10px; +} + +.accueil_planete +{ +border: #3E3E3E solid 1px; +margin: 20px; +} + +.contour +{ +background-color: #1C1C1C; +border: #303030 solid 1px; +padding: 5px; +} + +.accueil +{ +border: #303030 solid 1px; +padding: 15px; +margin-top: 20px; +} + +.footer +{ +background-color: #FFFFFF; +padding: 15px; +font-size: 11px; +color: #925F46; +} + +.hightlight +{ +color: #C2671E; +font-family: sans-serif; +font-size: 12px; +word-spacing: 2px; +} + +.construction +{ +margin-left: auto; +margin-right: auto; +text-align: center; +border-collapse: separate; +border-spacing: 20px; +} + +.constructionD +{ +width: 130px; +height: 132px; +border: #464646 solid 1px; +cursor: pointer; +float: left; +} + +.constructionI +{ +height: 150px; +width: 20px; +float: left; +border: none; +} + +.espace +{ +width: 450px; +text-align: right; +} + +input[type="text"] +{ +color: #E88607; +width: 60px; +background-color: #DFDFDF; +border: #4F4F4F solid 1px; +} + +input[type="text"]:focus +{ +background-color: #FFD49D; +color: #000000; +} + +input[type="text"]:hover +{ +color: #8F5100; +} + +input[type="submit"] +{ +color: #F26701; +background-color:#FFFFFF; +font-weight: bold; +font-size: 12px; +border: outset #3A3A3A 2px; +margin: 8px; +padding: 2px; +} + +input[type="submit"]:focus +{ +border: inset #3A3A3A 2px; +} + +.espace a +{ +font-size: 22px; +font-family: sans-serif; +} + +.systeme +{ +margin-left: auto; +margin-right: auto; +text-align: center; +border-collapse: separate; +border-spacing: 4px; +empty-cells: show; +} + +.systeme td +{ +border: #614F3E solid 1px; +padding: 4px 10px; +font-size: 11px; +font-weight: bold; +color: #93846F; +} + +#arbre +{ +position:absolute; +bottom: 60px; +left: 20px; +width: 220px; +display: none; +} + +#menu +{ +float: left; +width: 50px; +height: 15px; +background-color: #C05B01; +color: #FFFFFF; +border: outset #3A3A3A 1px; +margin: 20px; +cursor: pointer; +} + +#arbre a +{ +display: block; +background-color: #7A7A7A; +width: 220px; +height: 15px; +margin-bottom: 1px; +color: #FFFFFF; +font-size: 11px; +font-weight: bold; +} + +#arbre a:hover +{ +background-color: #373737; +color: #FF3B01; +} + +#arbre .space +{ +background-color: transparent; +height: 3px; +} + +.bulle +{ +position: absolute; +width: 200px; +height: 250px; +background-color: #000000; +filter: alpha(opacity=70); +-moz-opacity: 0.70; +opacity: 0.70; +padding: 5px; +} + +.bulle a +{ +font-size: 13px; +} + +#barre +{ +position: fixed; +left: 0px; +bottom: 0px; +z-index: 50; +width: 100%; +height: 65px; +background-color: #2B2B2B; +} + +#barre span +{ +float: left; +display: block; +padding: 4px; +margin: 15px 20px; +font-size: 12px; +border: #E28500 ridge 2px; +background-color: #A8A8A8; +} + +#barre .planetes img +{ +width: 55px; +height: 55px; +padding: 2px; +} + +#barre a.planetes +{ +display: block; +margin: 0 10px; +float: right; +display: block; +color: #FFFFFF; +filter: alpha(opacity=50); +-moz-opacity: 0.50; +opacity: 0.50; +border: #2B2B2B 1px dashed; +} + +#barre a.planetes:hover +{ +filter: alpha(opacity=100); +-moz-opacity: 1; +opacity: 1; +border: #E14C03 1px dashed; +} + +.versions +{ +font-size: 12px; +} + +.versions th +{ +background-color: #222222; +border: #3C3C3C solid 1px; +} + +.versions td +{ +background-color: #222222; +border: #3C3C3C solid 1px; +} \ No newline at end of file diff --git a/pages/diz/forerunner/images/IA.jpg b/pages/diz/forerunner/images/IA.jpg new file mode 100644 index 0000000..11fc9e9 Binary files /dev/null and b/pages/diz/forerunner/images/IA.jpg differ diff --git a/pages/diz/forerunner/images/armement.jpg b/pages/diz/forerunner/images/armement.jpg new file mode 100644 index 0000000..a8a9f65 Binary files /dev/null and b/pages/diz/forerunner/images/armement.jpg differ diff --git a/pages/diz/forerunner/images/button.gif b/pages/diz/forerunner/images/button.gif new file mode 100644 index 0000000..b092f34 Binary files /dev/null and b/pages/diz/forerunner/images/button.gif differ diff --git a/pages/diz/forerunner/images/button_hover.gif b/pages/diz/forerunner/images/button_hover.gif new file mode 100644 index 0000000..fa21899 Binary files /dev/null and b/pages/diz/forerunner/images/button_hover.gif differ diff --git a/pages/diz/forerunner/images/cargo.jpg b/pages/diz/forerunner/images/cargo.jpg new file mode 100644 index 0000000..35f9242 Binary files /dev/null and b/pages/diz/forerunner/images/cargo.jpg differ diff --git a/pages/diz/forerunner/images/cristal.png b/pages/diz/forerunner/images/cristal.png new file mode 100644 index 0000000..ebee289 Binary files /dev/null and b/pages/diz/forerunner/images/cristal.png differ diff --git a/pages/diz/forerunner/images/dca_legere.jpg b/pages/diz/forerunner/images/dca_legere.jpg new file mode 100644 index 0000000..1b068ef Binary files /dev/null and b/pages/diz/forerunner/images/dca_legere.jpg differ diff --git a/pages/diz/forerunner/images/dca_lourde.jpg b/pages/diz/forerunner/images/dca_lourde.jpg new file mode 100644 index 0000000..28f9206 Binary files /dev/null and b/pages/diz/forerunner/images/dca_lourde.jpg differ diff --git a/pages/diz/forerunner/images/drone.jpg b/pages/diz/forerunner/images/drone.jpg new file mode 100644 index 0000000..5314d0d Binary files /dev/null and b/pages/diz/forerunner/images/drone.jpg differ diff --git a/pages/diz/forerunner/images/fregate.jpg b/pages/diz/forerunner/images/fregate.jpg new file mode 100644 index 0000000..0e1a4c8 Binary files /dev/null and b/pages/diz/forerunner/images/fregate.jpg differ diff --git a/pages/diz/forerunner/images/header.jpg b/pages/diz/forerunner/images/header.jpg new file mode 100644 index 0000000..05053fd Binary files /dev/null and b/pages/diz/forerunner/images/header.jpg differ diff --git a/pages/diz/forerunner/images/hydrogene.jpg b/pages/diz/forerunner/images/hydrogene.jpg new file mode 100644 index 0000000..11eba9a Binary files /dev/null and b/pages/diz/forerunner/images/hydrogene.jpg differ diff --git a/pages/diz/forerunner/images/metal.png b/pages/diz/forerunner/images/metal.png new file mode 100644 index 0000000..dfe823e Binary files /dev/null and b/pages/diz/forerunner/images/metal.png differ diff --git a/pages/diz/forerunner/images/msg.gif b/pages/diz/forerunner/images/msg.gif new file mode 100644 index 0000000..f6592ef Binary files /dev/null and b/pages/diz/forerunner/images/msg.gif differ diff --git a/pages/diz/forerunner/images/planete.jpg b/pages/diz/forerunner/images/planete.jpg new file mode 100644 index 0000000..04c12d2 Binary files /dev/null and b/pages/diz/forerunner/images/planete.jpg differ diff --git a/pages/diz/forerunner/images/planete2.jpg b/pages/diz/forerunner/images/planete2.jpg new file mode 100644 index 0000000..9bb4f55 Binary files /dev/null and b/pages/diz/forerunner/images/planete2.jpg differ diff --git a/pages/diz/forerunner/images/planete3.jpg b/pages/diz/forerunner/images/planete3.jpg new file mode 100644 index 0000000..09bfb41 Binary files /dev/null and b/pages/diz/forerunner/images/planete3.jpg differ diff --git a/pages/diz/forerunner/images/planete4.jpg b/pages/diz/forerunner/images/planete4.jpg new file mode 100644 index 0000000..c11b419 Binary files /dev/null and b/pages/diz/forerunner/images/planete4.jpg differ diff --git a/pages/diz/forerunner/images/radar.jpg b/pages/diz/forerunner/images/radar.jpg new file mode 100644 index 0000000..bebf37e Binary files /dev/null and b/pages/diz/forerunner/images/radar.jpg differ diff --git a/pages/diz/forerunner/images/tourelle_fixe.jpg b/pages/diz/forerunner/images/tourelle_fixe.jpg new file mode 100644 index 0000000..f377955 Binary files /dev/null and b/pages/diz/forerunner/images/tourelle_fixe.jpg differ diff --git a/pages/diz/forerunner/menu.js b/pages/diz/forerunner/menu.js new file mode 100644 index 0000000..fe29ab2 --- /dev/null +++ b/pages/diz/forerunner/menu.js @@ -0,0 +1,149 @@ + +var view = false; + +function menu() +{ +/* + var x = 0; + var y = -15; + var menu1 = document.getElementById("menu"); + var menu2 = document.getElementById("menu"); + var xmenu = menu1.offsetLeft; + var ymenu = menu1.offsetBottom; + while (menu1 && menu1.tagName != 'BODY') + { + x += xmenu; + menu1 = menu1.offsetParent; + xmenu = menu1.offsetLeft; + } + + while (menu2 && menu2.tagName != 'BODY') + { + y += ymenu; + menu2 = menu2.offsetParent; + ymenu = menu2.offsetBottom; + } + +if (document.getElementById("arbre").style.display=="none" || !view) + {*/ + document.getElementById("arbre").style.display = "block"; + view = true; +/* } + +else + { + document.getElementById("arbre").style.display = "none"; + } +*/ + return true; +} + +function hidemenu() +{ + setTimeout("hidemenuV()",750); + view = false; +} +function hidemenuV() +{ + if (view == false) { + document.getElementById("arbre").style.display = "none"; + } +} +var info_var; + +var onclick_var; + +var kill = false; + +function view_info(objet,nom,metal,cristal,hydrogene,temps,info,lien,display,form) + { + + if(document.getElementById("bulle")) + { + var bulle = document.getElementById("bulle").parentNode; + + bulle.innerHTML = info_var; + + bulle.setAttribute("onclick",onclick_var); + + info_var= false; + + return(view_info(objet,nom,metal,cristal,hydrogene,temps,info,lien,display,form)); + } + + if (!info_var) + { + + var x = 20; + var y = 80; + var menu1 = objet; + var menu2 = objet; + var xmenu = menu1.offsetLeft; + var ymenu = menu1.offsetTop; + while (menu1 && menu1.tagName != 'BODY') + { + x += xmenu; + menu1 = menu1.offsetParent; + xmenu = menu1.offsetLeft; + } + + while (menu2 && menu2.tagName != 'BODY') + { + y += ymenu; + menu2 = menu2.offsetParent; + ymenu = menu2.offsetTop; + } + + info_var = objet.innerHTML; + + onclick_var = objet.getAttribute("onclick"); + + objet.setAttribute("onclick", "hide_info(this,\'"+nom+"\')"); + + var envoi = form?'
    '+(display=="none"?"Ressources insuffisantes
    ":"")+'nombre:
    ':(display=='none'?'Ressources insuffisantes':''+(display=="stop"?"Stopper":"Construire")+''); + + objet.innerHTML += '
    nom: '+nom+'
    Coût métal: '+metal+'
    Coût crisal: '+cristal+'
    Coût hydrogène: '+hydrogene+'
    Temps de construction: '+temps+'
    Description: '+info+'

    '+envoi+'
    '; + + } + + return true; + } + +function hide_info(objet,nom) + { + + if(kill) + { + return; + } + + + if (info_var) + { + objet.innerHTML = info_var; + + objet.setAttribute("onclick",onclick_var); + + info_var= false; + return true; + } + else return false; + } + +function reste(zetime) { + if (zetime>0) { + var heures = Math.floor(zetime / 3600); + var minutes = Math.floor(((zetime / 3600) - Math.floor(zetime / 3600)) * 60); + var secondes = zetime - ((Math.floor(zetime / 60)) * 60); + if (heures < 10) heures = "0" + heures; + if (minutes < 10) minutes = "0" + minutes; + if (secondes < 10) secondes = "0" + secondes; + document.getElementById("axion").innerHTML = heures + ":" + minutes + ":" + secondes; + var restant = zetime - 1; + setTimeout("reste(" + restant + ")", 1000); + } + else { + document.getElementById("axion").innerHTML = "Terminé"; + setTimeout(window.document.location.reload(),3000); + } +} \ No newline at end of file diff --git a/pages/diz/humain/1720.jpg b/pages/diz/humain/1720.jpg new file mode 100644 index 0000000..5e1fb7d Binary files /dev/null and b/pages/diz/humain/1720.jpg differ diff --git a/pages/diz/humain/Thumbs.db b/pages/diz/humain/Thumbs.db new file mode 100644 index 0000000..b6f69c8 Binary files /dev/null and b/pages/diz/humain/Thumbs.db differ diff --git a/pages/diz/humain/base.css b/pages/diz/humain/base.css new file mode 100644 index 0000000..4ef18ba --- /dev/null +++ b/pages/diz/humain/base.css @@ -0,0 +1,270 @@ +body +{ +color: #7093DB; +background-color: #040e1e; +background-image: url('1720.jpg'); +background-attachment: fixed; +background-repeat: no-repeat; +background-position: top left; +scrollbar-arrow-color: #E6EBFB; +scrollbar-base-color: #344566; +scrollbar-track-color: #344566; +scrollbar-face-color: #344566; +scrollbar-highlight-color: #344566; +scrollbar-3dlight-color: #465673; +scrollbar-darkshadow-color: #344566; +scrollbar-shadow-color: #465673; +font-size: 13px; +font-family: Tahoma,sans-serif; +margin-left: 68px; +margin-bottom: 20px; +} + +u { +font-style: underline; +} + +i { +font-style: italic; +} + +a { +color: #4080ff; +font-size: 12px; +font-family: verdana, serif; +text-decoration: underline; +border: none; +} + +img { +border: none; +} + +a:hover { +cursor: pointer; +} + +a:active, a:focus { +cursor: wait; +} + +a:visited { +cursor: pointer; +} + +.zone_texte { +background-color: #000031; +color: #4080ff; +border: 1px solid #1256C6; +font-family: verdana, serif; +} + +.bouton { +background-color: navy; +color: #afbdff; +font-family: verdana, serif; +BORDER-LEFT-COLOR: white; +BORDER-BOTTOM-COLOR: navy; +BORDER-TOP-COLOR: white; +BACKGROUND-COLOR: navy; +BORDER-RIGHT-COLOR: navy; +BORDER-STYLE: outset; +} + +.bouton:hover { +color: red; +} + +.bouton:active { +BORDER-STYLE: inset; +color: red; +} + +div { +border: 1px solid #004080; +float: left; +margin: 1 1 1 1; +} + +div.centre { +border: none; +float: none; +margin: auto; +text-align: center; +} + +div.a { +height: 132px; +width: 130px; +} + +div.b { +height: 132px; +width: 400px; +text-align: justify; +background-image: url(fond/apb.jpg); +} + +div.c { +height: 132px; +width: 149px; +text-align: center; +background-image: url(fond/apc.jpg); +} + +div.d { +background-color: #00024A; +border: 1px solid #02058A; +margin-bottom: 20; +margin-left: 450; +} + +div.fin { +height: 20px; +width: 339px; +text-align: center; +background-image: url(fond/apfin.jpg); +} + +div.long { +font-weight: bold; +color: #ff8040; +width: 550px; +text-align: center; +margin-left: 90px; +} + +div.ensemble { +width: 550; +height: 300; +margin-left: 90px; +} + +div.e { +height: 280px; +width: 125px; +text-align: justify; +background-color: #000151; +border: 0; +border-right: 1px solid #004080; +float: left; +margin: 0; +margin-right: 8px; +padding: 15 10 5 10; +} + +#axion { +color: white; +font-weight: bold; +border: none; +background-color: transparent; +margin-top: 50px; +} + +.description { +width: 99%; +font-style: italic; +border: none; +} + +br.a { +clear: both; +} + +span.rc { +font-size: 13px; +font-family: Tahoma,sans-serif; +font-weight: bold; +color: #ffc080; +} + +table { +border-collapse: separate; +empty-cells: show; +text-align: center; +border: 0px; +font-size: 12px; +vertical-align: middle; +} + +table#ressource { +margin-bottom: 35px; +} + +TD { +background-color: #00024A; +border: 1px solid #02058A; +} + +TD.a { +background-color: #000151; +border: 1px solid #040e1e; +width: 210px; +} + +TD.b { +background-color: #000151; +border: 1px solid #040e1e; +width: 150px; +} + +TD.xyz { +background-color: #000151; +border: 1px solid #000170; +} + + +td.bla { +height: 132px; +width: 130px; +border: 1px solid #004080; +background-repeat: no-repeat; +} + +td.blb { +height: 132px; +width: 400px; +text-align: justify; +background-image: url(fond/apb.jpg); +border: 1px solid #004080; +} + +td.blc { +height: 132px; +width: 149px; +text-align: center; +background-image: url(fond/apc.jpg); +border: 1px solid #004080; +} + +td.bld { +background-color: #00024A; +border: 1px solid #02058A; +margin-bottom: 20; +margin-left: 450; +} + +.versions +{ +font-size: 12px; +} + +.versions th +{ +background-color: black; +border: 1px solid #7093DB; +} + +.versions td +{ +border: 1px solid; +background-color: black; +} + + +/*attaque { +color: #CC0000; +} + +filter: alpha(opacity=10); +-moz-opacity: 0.9; */ diff --git a/pages/envoyer_message.php b/pages/envoyer_message.php deleted file mode 100644 index 108e22f..0000000 --- a/pages/envoyer_message.php +++ /dev/null @@ -1,32 +0,0 @@ -set_filenames(array('mp_env' => 'mp_env.tpl')); - -if (isset($_GET['pseudo'])) $p=$_GET['pseudo']; else $p=''; -if (isset($_GET['ok'])) $_GET['ok']=1; else $_GET['ok']=0; -if (!isset($_GET['err'])) $_GET['err']=0; - -if (isset($_POST)) { - if (isset($_POST['message_destinataire']) && $_POST['message_destinataire'] != '') { - $resultat = mysql_query("SELECT pseudo FROM user WHERE pseudo='".mysql_real_escape_string($_POST['message_destinataire'])."'"); // on vérifie l'existance - if(mysql_num_rows($resultat)>=1) { // si c'est bon on passe a la suite - if (isset($_POST['sujet_message']) && $_POST['sujet_message'] !='' ) { mysql_query("INSERT INTO mail VALUES('', '1', '".mysql_real_escape_string(htmlspecialchars($_POST['message_destinataire']))."', '".mysql_real_escape_string($pseudo)."', '".mysql_real_escape_string(htmlspecialchars($_POST['sujet_message']))."', '".mysql_real_escape_string(htmlspecialchars($_POST['message']))."', '".$temps."')"); header('Location: envoyer_message.php?ok=1'); exit; } - else $_GET['err'] = 3; - } - else $_GET['err'] = 4; - } - elseif (isset($_POST['message_destinataire'])) $_GET['err'] = 2; -} - -if ($_GET['ok'] == 1) $ERREUR = 'Message envoyé'; -elseif ($_GET['err'] == 4) $ERREUR = 'Ce joueur n\'existe pas'; -elseif ($_GET['err'] == 2) $ERREUR = 'Votre message n\'a pas de contenu'; -elseif ($_GET['err'] == 3) $ERREUR = 'Précisez le sujet du message'; - -$template->assign_vars( array('PUB' => $PUB, 'ERREUR' => $ERREUR, 'PSEUDO' => $p)); - -$template->pparse('mp_env'); -?> \ No newline at end of file diff --git a/pages/flotte_dep.php b/pages/flotte_dep.php deleted file mode 100644 index 13dd1a1..0000000 --- a/pages/flotte_dep.php +++ /dev/null @@ -1,319 +0,0 @@ -= $resultat['start_time'] + $resultat['end_time'] && !empty($resultat['end_time'])) { - - //Mission attaquer - if ($mission == 1) { - $reqd = mysql_query("SELECT * FROM planete WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - $resultatd = mysql_fetch_array($reqd); - - $ATvais = ''; $ENvais = ''; $ENdef = ''; $ATvais_pv = ''; $ENvais_pv = ''; $ENdef_pv = ''; - for ($i = 1; $i <= 12; $i++) { - for ($j = 1; $j <= $resultat['vaisseau_'.$i]; $j++) { $ATvais .= $i.' '; $ATvais_pv .= $nomvais_pv[$i].' '; } - for ($j = 1; $j <= $resultatd['vaisseau_'.$i]; $j++) { $ENvais .= $i.' '; $ENvais_pv .= $nomvais_pv[$i].' '; } - } - - for ($i = 1; $i <= 5; $i++) { - for ($j = 1; $j <= $resultatd['def_'.$i]; $j++) { $ENdef .= $i.' '; $ENdef_pv .= $def_pv[$i].' '; } - } - - $ATvais = split(' ', trim($ATvais)); $ENvais = split(' ', trim($ENvais)); $ENdef = split(' ', trim($ENdef)); $ATvais_pv = split(' ', trim($ATvais_pv)); $ENvais_pv = split(' ', trim($ENvais_pv)); $ENdef_pv = split(' ', trim($ENdef_pv)); - - while(resteVaisseau($ATvais) && (resteVaisseau($ENvais) || resteVaisseau($ENdef))) { - for ($i = 0; $i < count($ATvais); $i++) { - //Définition des paramètres du vaisseau qui va attaquer - $vaisAT_id = $i; - $vaisAT_type = $ATvais[$vaisAT_id] - 1; - $vaisAT_pv = $ATvais_pv[$vaisAT_id]; - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - $vaisAT_at = $nomvais_at[$vaisAT_type]; - - - while($vaisAT_at > 0 && (resteVaisseau($ENvais) || resteVaisseau($ENdef)) && $vaisAT_pv > 0) { - $ENnbvais = count($ENvais)+count($ENdef)-2; - $vaisEN_id = rand(0,$ENnbvais); //Sélection du vaisseau qui va être attaqué - - if ($vaisEN_id < count($ENvais)) { - $vaisEN_type = $ENvais[$vaisEN_id] - 1; - $vaisEN_pv = $ENvais_pv[$vaisEN_id]; - $vaisEN_bc = $nomvais_bc[$vaisEN_type]; - - if ($ENvais_pv[$vaisEN_id] <= 0) continue; - - $vaisAT_rf = $nomvais_rf[$vaisAT_type][$vaisEN_type]; //Recherche du rapide fire pour le vaisseau attaqué - - if ($vaisEN_pv + $vaisEN_bc <= $vaisAT_at) { - $ENvais[$vaisEN_id] = ''; - $ENvais_pv[$vaisEN_id] = 0; - $vaisAT_at -= $vaisEN_pv + $vaisEN_bc; - $deb_met += $nomvais_md[$vaisEN_type]; - $deb_cri += $nomvais_cd[$vaisEN_type]; - } - else { - $atarr = $vaisEN_bc - $vaisAT_at; - if ($atarr < 0) $ENvais_pv[$vaisEN_id] += $atarr; - $vaisAT_at -= $vaisEN_pv + $vaisEN_bc; - } - } - //Attaque d'une défense - else { - $defEN_id = $vaisEN_id-count($ENvais); - $defEN_type = $ENdef[$defEN_id] - 1; - $defEN_pv = $ENdef_pv[$defEN_id]; - $defEN_bc = $defense_bc[$defEN_type]; - - if ($defEN_pv <= 0) continue; - - $vaisAT_rf = $nomvais_rfD[$vaisAT_type][$defEN_type]; //Recherche du rapide fire pour le vaisseau attaqué - - if ($defEN_pv + $defEN_bc <= $vaisAT_at) { - $ENdef[$defEN_id] = ''; - $ENdef_pv[$defEN_id] = 0; - $vaisAT_at -= $defEN_pv + $defEN_bc; - } - else { - $atarr = $defEN_bc - $vaisAT_at; - if ($atarr < 0) $ENdef_pv[$defEN_id] += $atarr; - $vaisAT_at -= $defEN_pv + $defEN_bc; - } - } - } - } - $comp = count($ENvais) /*+ count($ENdef)*/; - for ($i = 0; $i < $comp; $i++) { - //Définition des paramètres du vaisseau qui va attaquer - $vaisEN_id = $i; - $vaisEN_type = $ENvais[$vaisEN_id] - 1; - $vaisEN_pv = $ENvais_pv[$vaisEN_id]; - $vaisEN_bc = $nomvais_bc[$vaisEN_type]; - $vaisEN_at = $nomvais_at[$vaisEN_type]; - - while($vaisEN_at > 0 && resteVaisseau($ATvais) && $vaisEN_pv > 0) { - $ATnbvais = count($ATvais)-1; - $vaisAT_id = rand(0,$ATnbvais); //Sélection du vaisseau qui va être attaqué - - $vaisAT_type = $ATvais[$vaisAT_id]; - $vaisAT_pv = $ATvais_pv[$vaisAT_id]; - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - - if ($ATvais_pv[$vaisAT_id] <= 0) continue; - - $vaisEN_rf = $nomvais_rf[$vaisEN_type][$vaisAT_type]; //Recherche du rapide fire pour le vaisseau attaqué - - if ($vaisAT_pv + $vaisAT_bc <= $vaisEN_at) { - $ATvais[$vaisAT_id] = ''; - $ATvais_pv[$vaisAT_id] = 0; - $vaisEN_at -= $vaisAT_pv + $vaisAT_bc; - $deb_met += $nomvais_md[$vaisAT_type]; - $deb_cri += $nomvais_cd[$vaisAT_type]; - } - else { - $atarr = $vaisAT_bc - $vaisEN_at; - if ($atarr < 0) $ATvais_pv[$vaisAT_id] += $atarr; - $vaisEN_at -= $vaisAT_pv + $vaisAT_bc; - } - } - } - //Attaque des défenses - $comp = count($ENdef); - for ($i = 0; $i < $comp; $i++) { - //Définition des paramètres de la défense qui va attaquer - $defEN_id = $i; - $defEN_type = $ENdef[$defEN_id] - 1; - $defEN_pv = $ENvais_pv[$defEN_id]; - $defEN_bc = $defense_bc[$defEN_type]; - $defEN_at = $defense_at[$defEN_type]; - - while($vaisEN_at > 0 && (resteVaisseau($ATvais) || resteVaisseau($ATdef)) && $vaisEN_pv > 0) { - $ATnbvais = count($ATvais)-1; - $vaisAT_id = rand(0,count($ATvais)); //Sélection du vaisseau qui va être attaqué - - $vaisAT_type = $ATvais[$vaisAT_id]; - $vaisAT_pv = $ATvais_pv[$vaisAT_id]; - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - - if ($vaisAT_pv <= 0) continue; - - $defEN_rf = $defense_rf[$defEN_type][$vaisAT_type]; //Recherche du rapide fire pour le vaisseau attaqué - - if ($vaisAT_pv + $vaisAT_bc <= $defEN_at) { - $ATvais[$vaisAT_id] = ''; - $ATvais_pv[$vaisAT_id] = 0; - $defEN_at -= $vaisAT_pv + $vaisAT_bc; - $deb_met += $nomvais_md[$vaisAT_type]; - $deb_cri += $nomvais_cd[$vaisAT_type]; - } - else { - $atarr = $vaisAT_bc - $vaisEN_at; - if ($atarr < 0) $ATvais_pv[$vaisAT_id] += $atarr; - $defEN_at -= $vaisAT_pv + $vaisAT_bc; - } - } - } - - $message = 'L\'attaque que vous avez lancé contre la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.' s\'est terminée.'; - $pseudo = trouvNom($resultat['id_user']); - $temps = $resultat['start_time'] + $resultat['end_time']; - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')"); - $message = 'Vous venez de subir une attaque sur la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.''; - $pseudo = trouvNom($resultatd['id_user']); - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')"); - } - $ATvaisseaux = array_count_values($ATvais); - $ATvaisseau_1 = $ATvaisseaux['1']; $ATvaisseau_2 = $ATvaisseaux['2']; $ATvaisseau_3 = $ATvaisseaux['3']; $ATvaisseau_4 = $ATvaisseaux['4']; $ATvaisseau_5 = $ATvaisseaux['5']; $ATvaisseau_6 = $ATvaisseaux['6']; $ATvaisseau_7 = $ATvaisseaux['7']; $ATvaisseau_8 = $ATvaisseaux['8']; $ATvaisseau_9 = $ATvaisseaux['9']; $ATvaisseau_10 = $ATvaisseaux['10']; $ATvaisseau_11 = $ATvaisseaux['11']; $ATvaisseau_12 = $ATvaisseaux['12']; - $AT_nbvais = $ATvaisseau_1 + $ATvaisseau_2 + $ATvaisseau_3 + $ATvaisseau_4 + $ATvaisseau_5 + $ATvaisseau_6 + $ATvaisseau_7 + $ATvaisseau_8 + $ATvaisseau_9 + $ATvaisseau_10 + $ATvaisseau_11 + $ATvaisseau_12; - $contenu_max = $nomvais_rs[0]*$ATvaisseau_1 + $nomvais_rs[1]*$ATvaisseau_2 + $nomvais_rs[2]*$ATvaisseau_3 + $nomvais_rs[3]*$ATvaisseau_4 + $nomvais_rs[4]*$ATvaisseau_5 + $nomvais_rs[5]*$ATvaisseau_6 + $nomvais_rs[6]*$ATvaisseau_7 + $nomvais_rs[7]*$ATvaisseau_8 + $nomvais_rs[8]*$ATvaisseau_9 + $nomvais_rs[9]*$ATvaisseau_10 + $nomvais_rs[10]*$ATvaisseau_11 + $nomvais_rs[11]*$ATvaisseau_12; - $ENvaisseaux = array_count_values($ENvais); - $ENvaisseau_1 = $ENvaisseaux['1']; $ENvaisseau_2 = $ENvaisseaux['2']; $ENvaisseau_3 = $ENvaisseaux['3']; $ENvaisseau_4 = $ENvaisseaux['4']; $ENvaisseau_5 = $ENvaisseaux['5']; $ENvaisseau_6 = $ENvaisseaux['6']; $ENvaisseau_7 = $ENvaisseaux['7']; $ENvaisseau_8 = $ENvaisseaux['8']; $ENvaisseau_9 = $ENvaisseaux['9']; $ENvaisseau_10 = $ENvaisseaux['10']; $ENvaisseau_11 = $ENvaisseaux['11']; $ENvaisseau_12 = $ENvaisseaux['12']; - $ENdefenses = array_count_values($ENdef); - $ENdefense_1 = $ENdefenses['1']; $ENdefense_2 = $ENdefenses['2']; $ENdefense_3 = $ENdefenses['3']; $ENdefense_4 = $ENdefenses['4']; $ENdefense_5 = $ENdefenses['5']; - if (!resteVaisseau($ATvais)) mysql_query("DELETE FROM `flottes` WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - else { - $pillage = pillage($resultatd['metal'], $resultatd['cristal'], $resultatd['hydrogene'], $contenu_max-$resultat['contenu_metal']-$resultat['contenu_cristal']-$resultat['contenu_hydrogene']); - $Cmetal = $resultat['contenu_metal'] + $pillage[0]; - $Ccristal = $resultat['contenu_cristal'] + $pillage[1]; - $Chydrogene = $resultat['contenu_hydrogene'] + $pillage[2]; - mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal', `contenu_hydrogene` = '$Chydrogene', `nb_vais` = '$AT_nbvais', `vaisseau_1` = '$ATvaisseau_1', `vaisseau_2` = '$ATvaisseau_2', `vaisseau_3` = '$ATvaisseau_3', `vaisseau_4` = '$ATvaisseau_4', `vaisseau_5` = '$ATvaisseau_5', `vaisseau_6` = '$ATvaisseau_6', `vaisseau_7` = '$ATvaisseau_7', `vaisseau_8` = '$ATvaisseau_8', `vaisseau_9` = '$ATvaisseau_9', `vaisseau_10` = '$ATvaisseau_10', `vaisseau_11` = '$ATvaisseau_11', `vaisseau_12` = '$ATvaisseau_12' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - } - mysql_query("UPDATE `planete` SET `debris_met` = '$deb_met', `debris_cri` = '$deb_cri', `vaisseau_1` = '$ENvaisseau_1', `vaisseau_2` = '$ENvaisseau_2', `vaisseau_3` = '$ENvaisseau_3', `vaisseau_4` = '$ENvaisseau_4', `vaisseau_5` = '$ENvaisseau_5', `vaisseau_6` = '$ENvaisseau_6', `vaisseau_7` = '$ENvaisseau_7', `vaisseau_8` = '$ENvaisseau_8', `vaisseau_9` = '$ENvaisseau_9', `vaisseau_10` = '$ENvaisseau_10', `vaisseau_11` = '$ENvaisseau_11', `vaisseau_12` = '$ENvaisseau_12', `def_1` = '$ENdefense_1', `def_2` = '$ENdefense_2', `def_3` = '$ENdefense_3', `def_4` = '$ENdefense_4', `def_5` = '$ENdefense_5' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - } - //Mission Transporter - elseif ($mission == 2) { - $reqT = mysql_query("SELECT metal,cristal,hydrogene FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - $resultatT = mysql_fetch_array($reqT); - $Cmetal = $resultat['contenu_metal'] + $resultatT['metal']; - $Ccristal = $resultat['contenu_cristal'] + $resultatT['cristal']; - $Chydrogene = $resultat['contenu_hydrogene'] + $resultatT['hydrogene']; - mysql_query("UPDATE `planete` SET `metal` = '$Cmetal', `cristal` = '$Ccristal', `hydrogene` = '$Chydrogene' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '0', `contenu_cristal` = '0', `contenu_hydrogene` = '0' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - - $message = 'Vos vaisseaux ont déposés '.$resultat['contenu_metal'].' de métal, '.$resultat['contenu_cristal'].' de cristal et '.$resultat['contenu_hydrogene'].' d\'hydrogène aux coordonnées '.$end_galaxie.':'.$end_ss.':'.$end_position; - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Transport', '$message', '$temps')"); - } - //Mission Coloniser - elseif ($mission == 3) { - $reqT = mysql_query("SELECT * FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - if (!mysql_num_rows($reqT) > 0) { - $time = time(); - $temps = time(); - $cases = mt_rand(125,222); - $image = mt_rand(1,15); - $reqIsol = mysql_query("SELECT * FROM planete WHERE id_user='$id'"); - if (mysql_num_rows($reqIsol) >= 11) $isolement = time() + rand(9000,170000); - else $isolement = 0; - mysql_query("INSERT INTO planete (`id_user`, `isolement`, `nom_planete`, `galaxie`, `ss`, `position`, `image`, `cases`, `timestamp`, `metal`, `cristal`) VALUES ('$id', '$isolement', 'Planète colonisée', '$end_galaxie', '$end_ss', '$end_position', '$image', '$cases', '$time', '1000', '700')") or die ("erreur sql ".mysql_error()); - mysql_query("UPDATE `flottes` SET `effectue` = '1', `vaisseau_3` = '0' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - - $message = 'Votre vaisseau a atteint la planète ['.$end_galaxie.':'.$end_ss.':'.$end_position.'] et commence la colonisation'; - $pseudo = trouvNom($resultat['id_user']); - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Colonisation', '$message', '$temps')") or die ("erreur sql ".mysql_error()); - - $reqP = mysql_query("SELECT * FROM `planete` WHERE `id_user` = '$id'") or die ("erreur sql ".mysql_error()); - $reqPM = mysql_query("SELECT `planeteMere` FROM `user` WHERE `id` = '$id'") or die ("erreur sql ".mysql_error()); - $resultatPM = mysql_fetch_array($reqPM); - $c=0; - for ($m=0 ; $m 0) { - $resultatT = mysql_fetch_array($reqT); - $resultat['contenu_max'] -= vais_conso($resultat['end_time'],count($resultat['nbvais'])) + $resultat['contenu_metal'] + $resultat['contenu_cristal'] + $resultat['contenu_hydrogene']; - - $debris_met = $resultatT['debris_met']; - $debris_cri = $resultatT['debris_cri']; - if ($debris_met+$debris_cri > $resultat['contenu_max']) { - $a=pow($capacite/2); - $b=pow($capacite/2); - if ($a > $debris_met && $b > $debris_cri) { - $a = $debris_met; - $b = $debris_cri; - } - else if ($a > $debris_met) { - $a = $debris_met; - $b = ($capacite - $a); - } - else if ($b > $debris_cri) { - $b = $debris_cri; - $a = ($capacite - $b); - } - } - else { - $a = $debris_met; - $b = $debris_cri; - print '
    pam'.$a; - } - $Cmetal += $a + $resultat['contenu_metal']; - $Ccristal += $b + $resultat['contenu_cristal']; - $debris_met -= $a; - $debris_cri -= $b; - - mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - mysql_query("UPDATE `planete` SET `debris_met` = '$debris_met', `debris_cri` = '$debris_cri' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - - $message = 'Vos vaisseaux récoltent '.$a.' de métal et '.$b.' de cristal aux coordonnées '.$end_galaxie.':'.$end_ss.':'.$end_position; - $pseudo = trouvNom($resultat['id_user']); - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Transport', '$message', '$temps')") or die ("erreur sql ".mysql_error()); - } - } - } - if (time() >= $resultat['start_time'] + $resultat['end_time'] * 2 && !empty($resultat['end_time']) && $resultat['mission'] != 0) { - $start_galaxie = $resultat['start_galaxie']; - $start_ss = $resultat['start_ss']; - $start_position = $resultat['start_position']; - $id_flotte = $resultat['id']; - $reqP = mysql_query("SELECT * FROM planete WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'") or die ("erreur sql ".mysql_error()); - $resultatP = mysql_fetch_array($reqP); - $metal = $resultat['contenu_metal'] + $resultatP['metal']; - $cristal = $resultat['contenu_cristal'] + $resultatP['cristal']; - $hydrogene = $resultat['contenu_hydrogene'] + $resultatP['hydrogene']; - for($i = 1; $i <= 12; $i++) { - ${'Pvaisseaux_'.$i} = $resultatP['vaisseau_'.$i] + $resultat['vaisseau_'.$i]; - mysql_query("UPDATE `planete` SET `vaisseau_$i` = '${'Pvaisseaux_'.$i}' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - } - mysql_query("UPDATE `planete` SET `metal` = '$metal', `cristal` = '$cristal', `hydrogene` = '$hydrogene' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - mysql_query("DELETE FROM `flottes` WHERE `id_user` = '$id' AND `id` = '$id_flotte'"); - } -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/flotte_detail.php b/pages/flotte_detail.php index 15c5adc..a884924 100644 --- a/pages/flotte_detail.php +++ b/pages/flotte_detail.php @@ -1,3 +1,60 @@ set_filenames(array('flotte' => 'flotte3.tpl')); + +if (!isset($_GET['ref']) || !is_numeric($_GET['ref'])) { + header('Location: flotte.php'); + exit; +} +else $ref = $_GET['ref']; + +$req = mysql_query("SELECT * FROM flottes WHERE `id_user` = '$id' AND `id` = '$ref'"); + +if (mysql_num_rows($req) != 1) { + header('Location: flotte.php'); + exit; +} +else { + $resultat = mysql_fetch_array($req); + if (isset($_GET['act']) && $_GET['act'] == 'ret') { + //Calcul du temps passé depuis le lancement de la flotte + $tpsDD = time()-$resultat['start_time']; + if ($resultat['end_time'] < $tpsDD) { + $tpsDD = $resultat['end_time'] - ($tpsDD - $resultat['end_time']); + } + mysql_query("UPDATE `flottes` SET `mission` = '6', `end_time` = '$tpsDD' WHERE `id_user` = '$id' AND `id` = '$ref';"); + } + $template->assign_vars(array('NOM' => $resultat['nom'], 'MISSION' => txtmission($resultat['mission']), 'NOMBRE' => $resultat['nb_vais'], 'DATEDEP' => dateFR(date('/D d M Y/Hi/',$resultat['start_time'])), 'DATEARR' => dateFR(date('/D d M Y/Hi/',$resultat['start_time']+$resultat['end_time'])), 'DATERET' => dateFR(date('/D d M Y/Hi/',$resultat['start_time']+$resultat['end_time']*2)), 'LIEUDEP' => $resultat['start_galaxie'].':'.$resultat['start_ss'].':'.$resultat['start_position'], 'LIEUARR' => $resultat['end_galaxie'].':'.$resultat['end_ss'].':'.$resultat['end_position'], 'RETOUR' => '
    ')); +} +/* FIN Page Flotte + * + */ + +$result = mysql_query("SELECT * FROM version ORDER BY temps DESC"); +$data = mysql_fetch_array($result); +$version = $data['version']; +mysql_close(); + +$template->set_filenames(array('base' => 'base.tpl')); +$template->assign_vars(array('PUB' => $PUB, 'VERSION' => $version, 'RES_IMAGE' => $RES_IMAGE, 'NOM_METAL' => strtolower($NOM_METAL), 'NOM_CRISTAL' => strtolower($NOM_CRISTAL), 'NOM_HYDROGENE' => strtolower($NOM_HYDROGENE), 'NOM_ENERGIE' => strtolower($NOM_ENERGIE), 'RES_METAL' => $RES_METAL, 'RES_CRISTAL' => $RES_CRISTAL, 'RES_HYDROGENE' => $RES_HYDROGENE, 'RES_ENERGIE' => $RES_ENERGIE)); +for ($i=0 ; $iassign_block_vars('planetes',array('RES_VALUE' => $Aplan_value[$i], 'RES_MORE' => $Aplan_more[$i], 'RES_IMG' => $Aplan_img[$i], 'RES_NOM' => $Aplan_nom[$i], 'RES_REF' => $Aplan_ref[$i])); +} +$template->assign_var_from_handle('CONTENU', 'flotte'); +$template->pparse('base'); ?> \ No newline at end of file diff --git a/pages/includes/batiment_ajout.php b/pages/includes/batiment_ajout.php index a5e1cee..29ef17d 100644 --- a/pages/includes/batiment_ajout.php +++ b/pages/includes/batiment_ajout.php @@ -58,7 +58,7 @@ while($continue) { else mysql_query("UPDATE planete SET temps_b='$temps_b', bat='$bat' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); if ($bat_boucle == true) { - header('Location: batiment_validation.php?temps_bat='.$anc_temps_bat.'&act=e&bat='.$anc); + @header('Location: batiment_validation.php?temps_bat='.$anc_temps_bat.'&act=e&bat='.$anc) or print ''; exit; } diff --git a/pages/includes/bdd.php b/pages/includes/bdd.php index cafa325..df4216f 100644 --- a/pages/includes/bdd.php +++ b/pages/includes/bdd.php @@ -93,6 +93,7 @@ $chantier_spatial = $donnees['chantier_spatial']; $caserne = $donnees['caserne']; $silo = $donnees['silo']; $centre_info = $donnees['centre_info']; +$nanite = 0; $temps_caserne = $donnees['cas_contruct_time']; $cons_caserne = $donnees['cas_contruct_nb']; diff --git a/pages/includes/laboratoire_ajout.php b/pages/includes/laboratoire_ajout.php index 21af741..501fed0 100644 --- a/pages/includes/laboratoire_ajout.php +++ b/pages/includes/laboratoire_ajout.php @@ -44,7 +44,7 @@ $anc_temps_tec = $temps_tec; else mysql_query("UPDATE user SET temps_t='$temps_t', tec='$tec' WHERE id='$id'") or die ("erreur sql ".mysql_error()); if ($tec_boucle == true) { - header('Location: construction.php?temps_tec='.$anc_temps_tec.'&act=e&tec='.$anc); + @header('Location: laboratoire_validation.php?temps_tec='.$anc_temps_tec.'&act=e&tec='.$anc) or print ''; exit; } } diff --git a/pages/includes/ressources.php b/pages/includes/ressources.php index 2e34b7e..7bc657f 100644 --- a/pages/includes/ressources.php +++ b/pages/includes/ressources.php @@ -48,11 +48,11 @@ $conso_h = 0; //---------------Productions-------- -if ($mine_m > 0) $energie_m = ceil((exp($mine_m*0.28)*10)); else $energie_m= 0; -if ($mine_c > 0) $energie_c = ceil((exp($mine_c*0.28)*10)); else $energie_c= 0; -if ($mine_h > 0) $energie_h = ceil((exp($mine_h*0.31)*10)); else $energie_h= 0; -if ($centrale_f > 0) $energie_f = ceil((($centrale_f*80+(exp($centrale_f*0.38)*11)))); else $energie_f = 0; -if ($centrale_s > 0) $energie_s = ceil((($centrale_s*20+(exp($centrale_s*0.3)*10)))); else $energie_s = 0; +if ($mine_m > 0) $energie_m = ceil(exp(0.28*$mine_m)*10); else $energie_m= 0; +if ($mine_c > 0) $energie_c = ceil(exp(0.28*$mine_c)*10); else $energie_c= 0; +if ($mine_h > 0) $energie_h = ceil(exp(0.2849*$mine_h)*13); else $energie_h= 0; +if ($centrale_f > 0) $energie_f = ceil(exp(0.297*$centrale_f)*25); else $energie_f = 0; +if ($centrale_s > 0) $energie_s = ceil(exp(0.28*$centrale_s)*22); else $energie_s = 0; //Calcul de la consomation d'énergie $nrj = $energie_m + $energie_c + $energie_h; @@ -60,7 +60,8 @@ $nrj = $energie_m + $energie_c + $energie_h; //Calcul de la production d'énergie $t = $energie_s * $coeff_centrale_s + $energie_f * $coeff_centrale_f; -$coeff = $t / $nrj; +if ($nrj == 0) $coeff = 0; +else $coeff = $t / $nrj; if ($coeff < 0) $coeff = 0; elseif ($coeff == 0) $coeff = 0; @@ -109,7 +110,7 @@ if ($metal >= $cap) { } else { if ($mine_m < 0) $prod_met = 0.011*$temps_ecoule; - else $prod_met = ((ceil(((($mine_m*32)+(pow(1.41,$mine_m)*exp(0.066*$mine_m)))/0.36)*$temps_ecoule)/10000)*3.7 + 0.011*$temps_ecoule)*$coeff_mine_m; + else $prod_met = ((ceil(pow(1.1,$mine_m)*35*$mine_m)/3600)*$temps_ecoule)*$coeff_mine_m; } $alert_cristal = false; @@ -120,7 +121,7 @@ if ($cristal >= $cap) { } else { if ($mine_c < 0) $prod_cri = 0.0055*$temps_ecoule; - else $prod_cri = (((ceil(((($mine_c*13)+(pow(1.36,$mine_c)*exp(0.0675*$mine_c)))/0.36)*$temps_ecoule)/10000)*7) + 0.0055*$temps_ecoule)*$coeff_mine_c; + else $prod_cri = ((ceil(pow(1.1,$mine_c)*23*$mine_c)/3600)*$temps_ecoule)*$coeff_mine_c; } $alert_hydrogene = false; @@ -131,12 +132,12 @@ if ($hydrogene >= $cap) { } else { if ($mine_h < 0) $prod_hy = 0; - else $prod_hy = ((((floor(((($mine_h*12)+(pow(1.394,$mine_h)*exp(0.072*$mine_h)))/0.36)*$temps_ecoule)/10000)*5)) - $conso_h)*$coeff_mine_h; + else $prod_hy = (((ceil(pow(1.1,$mine_h)*14*($mine_h+0.7))/3600)*$temps_ecoule) - $conso_h) * $coeff_mine_h; if ($mine_h == 0) $prod_hy=0; if ($prod_hy < 0) $prod_hy = 0; } -if ($centrale_f > 0) $conso_h = ((ceil((($centrale_f*5+(exp($centrale_f*0.3)*10)))/0.36)/10000)*$temps_ecoule)*$coeff_energie_f; +if ($centrale_f > 0) $conso_h = ((ceil(pow(1.34,($centrale_f-1))*9)/3600)*$temps_ecoule) * $coeff_energie_f; else $conso_h = 0; $prod_mineh = $prod_hy; $prod_hysv = $prod_hy; @@ -147,7 +148,7 @@ if ($hydrogene+$prod_hy < 0) { $conso_h = 0; $coeff_energie_f = 0; } -elseif ((ceil((($centrale_f*5+(exp($centrale_f*0.3)*10)))/0.36)/10000)*3600 <= $hydrogene/5 && $coeff_energie_f == 0) { +elseif (ceil(pow(1.34,($centrale_f-1))*9) <= $hydrogene/5 && $coeff_energie_f == 0) { $coeff_energie_f = 1; } @@ -164,7 +165,7 @@ $reqIsol = mysql_query("SELECT id FROM planete WHERE id_user='$id' AND isolement $RES_IMAGE = $image; $Aplan_ref = ''; $Aplan_value = ''; $Aplan_img = ''; $Aplan_more = ''; $Aplan_nom = ''; - for ($i=0; $i < mysql_num_rows($req); $i++) { + for ($i=0; $i < mysql_num_rows($req); $i++) { $x = mysql_query("SELECT * FROM planete WHERE id_user='$id' ORDER BY id DESC LIMIT $i,1"); $d = mysql_fetch_array($x); @@ -174,7 +175,7 @@ $Aplan_ref = ''; $Aplan_value = ''; $Aplan_img = ''; $Aplan_more = ''; $Aplan_no if ($d['galaxie'] == $_SESSION['galaxy'] && $d['ss'] == $_SESSION['ss'] && $d['position'] == $_SESSION['pos']) $Aplan_more .= ' selected="selected";'; else $Aplan_more .= ';'; $Aplan_ref .= '['.$d['galaxie'].':'.$d['ss'].':'.$d['position'].'];'; - $Aplan_nom .= $d['nom_planete'].';'; + $Aplan_nom .= $d['nom_planete'].'|'; $nextIsol = $d['isolement'] + (mysql_num_rows($req)-10)*7200 + rand(83000,170000); mysql_query("UPDATE planete SET isolement='$nextIsol' WHERE id_user='$id' AND galaxie='".$d['galaxie']."' AND ss='".$d['ss']."'AND position='".$d['position']."'"); } @@ -184,7 +185,7 @@ $Aplan_ref = ''; $Aplan_value = ''; $Aplan_img = ''; $Aplan_more = ''; $Aplan_no if ($d['galaxie'] == $_SESSION['galaxy'] && $d['ss'] == $_SESSION['ss'] && $d['position'] == $_SESSION['pos']) $Aplan_more .= ' selected="selected";'; else $Aplan_more .= ';'; $Aplan_ref .= '['.$d['galaxie'].':'.$d['ss'].':'.$d['position'].'];'; - $Aplan_nom .= $d['nom_planete'].';'; + $Aplan_nom .= $d['nom_planete'].'|'; } elseif ($d['galaxie'] == $_SESSION['galaxy'] && $d['ss'] == $_SESSION['ss'] && $d['position'] == $_SESSION['pos']) { $time = time(); @@ -195,7 +196,7 @@ $Aplan_ref = ''; $Aplan_value = ''; $Aplan_img = ''; $Aplan_more = ''; $Aplan_no $Aplan_value = split(' ',trim($Aplan_value)); $Aplan_img = split(' ',trim($Aplan_img)); $Aplan_more = split(';',trim($Aplan_more)); - $Aplan_nom = split(';',trim($Aplan_nom)); + $Aplan_nom = explode('|',trim($Aplan_nom)); $Aplan_ref = split(';',trim($Aplan_ref)); $NOM_METAL = $ressourc[0]; diff --git a/pages/laboratoire.php b/pages/laboratoire.php index f00af49..46acb22 100644 --- a/pages/laboratoire.php +++ b/pages/laboratoire.php @@ -37,14 +37,14 @@ function ressources($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro) { if ($need_cristal > 0) { if ($cristal <= $need_cristal) { $z=floor($cristal)-$need_cristal; - $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; + $return .= ''.$ressourc[1].' : '.separerNombres($need_cristal).' '; } else $return .= $ressourc[1].' : '.separerNombres($need_cristal).' '; } if ($need_ro > 0) { if ($ro <= $need_ro) { $z=floor($ro)-$need_ro; - $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; + $return .= ''.$ressourc[2].' : '.separerNombres($need_ro).''; } else $return .= $ressourc[2].' : '.separerNombres($need_ro).''; } diff --git a/pages/laboratoire_ajout.php b/pages/laboratoire_ajout.php deleted file mode 100644 index 21af741..0000000 --- a/pages/laboratoire_ajout.php +++ /dev/null @@ -1,53 +0,0 @@ -= $temps_tec && !empty($temps_tec)) { -$anc = $tec; -$anc_temps_tec = $temps_tec; - - switch ($tec) { - case 1: $informatique++; mysql_query("UPDATE user SET informatique='$informatique' WHERE id='$id'"); break; - case 2: $detection++; mysql_query("UPDATE user SET detection='$detection' WHERE id='$id'"); break; - case 3: $armement++; mysql_query("UPDATE user SET armement='$armement' WHERE id='$id'"); break; - case 4: $blindage++; mysql_query("UPDATE user SET blindage='$blindage' WHERE id='$id'"); break; - case 5: $energie_t++; mysql_query("UPDATE user SET energie_t='$energie_t' WHERE id='$id'"); break; - case 6: $reacteur++; mysql_query("UPDATE user SET reacteur='$reacteur' WHERE id='$id'"); break; - case 7: $reacteur_f++; mysql_query("UPDATE user SET reacteur_f='$reacteur_f' WHERE id='$id'"); break; - case 8: $reacteur_ff++; mysql_query("UPDATE user SET reacteur_ff='$reacteur_ff' WHERE id='$id'"); break; - case 9: $medecine++; mysql_query("UPDATE user SET medecine='$medecine' WHERE id='$id'"); break; - case 10: $tactique++; mysql_query("UPDATE user SET tactique='$tactique' WHERE id='$id'"); break; - case 11: $spartan++; mysql_query("UPDATE user SET tech_spartan='$spartan' WHERE id='$id'"); break; - } - - $pos = strpos(implode(',', $fileTec).',', $tec.','); - if (!($pos === false)) { - $newArray_tec = ''; $newArray_temps_t = $fileTemps_t[0].' '; - for ($i=0 ; $i \ No newline at end of file diff --git a/pages/laboratoire_validation.php b/pages/laboratoire_validation.php index cc43773..8025962 100644 --- a/pages/laboratoire_validation.php +++ b/pages/laboratoire_validation.php @@ -116,6 +116,7 @@ if (isset($tec) && $tec != '' && (!empty($technolo[$tec-1]) || $tec == 'e')) { } } mysql_close(); -if (isset($_GET['go']) && $_GET['go'] == 1) header('Location: laboratoire.php?err=2'); +if (isset($_GET['page'])) header('Location: depart.php'); +elseif (isset($_GET['go']) && $_GET['go'] == 1) header('Location: laboratoire.php?err=2'); else header('Location: laboratoire.php'); ?> \ No newline at end of file diff --git a/pages/lancer_flotte.php b/pages/lancer_flotte.php index d0792c6..fb00a73 100644 --- a/pages/lancer_flotte.php +++ b/pages/lancer_flotte.php @@ -17,6 +17,7 @@ $template = new Template('../templates/'.$templates); */ $template->set_filenames(array('flotte' => 'flotte2.tpl')); $_SESSION['FL_time'] = time(); +$ACTIONSUPP =''; $nombreVaisseau = 0; for ($i=1 ; $i<=12 ; $i++) { @@ -26,6 +27,8 @@ for ($i=1 ; $i<=12 ; $i++) { $_SESSION['FL_vaisseau'.$i] = $_POST['vaisseau'.$i]; $nombreVaisseau += $_POST['vaisseau'.$i]; } + if ($i == 5 && $_POST['vaisseau'.$i] >= 1) $ACTIONSUPP .= ''; + if ($i == 3 && $_POST['vaisseau'.$i] >= 1) $ACTIONSUPP .= ''; } // On vérifie que l'utilisateur ait bien envoyé au moins un vaisseau @@ -61,18 +64,7 @@ else { $_SESSION['FL_chauffe'] = 0; } -/* Ancien système -if (min($AvaisVitesseL) != 0) { - $_SESSION['FL_vitesse'] = min($AvaisVitesseL); - $_SESSION['FL_preparation'] = min($AvaisPrepL); - $_SESSION['FL_chauffe'] = min($AvaisChauffe); -} -else { - $_SESSION['FL_vitesse'] = min($AvaisVitesseC); - $_SESSION['FL_preparation'] = min($AvaisPrepC); - $_SESSION['FL_chauffe'] = 0; -}*/ - +$template->assign_vars(array('ACTIONSUPP' => $ACTIONSUPP, 'GALAXIE' => $galaxy, 'SYSTEME' => $ss, 'POS' => $pos)); /* FIN Page Création de flottes * */ diff --git a/pages/lire_message.php b/pages/lire_message.php deleted file mode 100644 index 55868e6..0000000 --- a/pages/lire_message.php +++ /dev/null @@ -1,62 +0,0 @@ - - - -Halo Battle - - - - - - 25) $t = 25; else $t = $nbre_non['nbre']; - -echo "
    Ecrire un message

    "; -if ($nbre_non['nbre'] >0) { -echo "
    -"; -for ($i=0;$i<$t;$i++) { - -$x = mysql_query("SELECT id, vu, expediteur, sujet, temps, contenu FROM mail WHERE destinataire='$pseudo' OR destinataire='$id' ORDER BY id DESC LIMIT $i,25") or die ("erreur sql ".mysql_error()); -$donnees = mysql_fetch_array($x); - -mysql_query("UPDATE mail SET vu='0' WHERE id='".$donnees['id']."'") or die(mysql_error()); - -echo " - - - - -"; -} -echo "
    ActionDateExpéditeurObjet
    "; convert_ts_fr($donnees['temps']); echo"".$donnees['expediteur']." ".$donnees['sujet']."
    ".bbcode($donnees['contenu'])."
    "; } -else echo '
    Aucun message
    '; - -?> - - \ No newline at end of file diff --git a/pages/logout.php b/pages/logout.php deleted file mode 100644 index 26d9062..0000000 --- a/pages/logout.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/pages/menu.php b/pages/menu.php index 63695a7..4e690e3 100644 --- a/pages/menu.php +++ b/pages/menu.php @@ -367,7 +367,7 @@ echo ' - Déconnexion + Déconnexion diff --git a/pages/message.php b/pages/message.php deleted file mode 100644 index 81fa777..0000000 --- a/pages/message.php +++ /dev/null @@ -1,44 +0,0 @@ -=1) { // si c'est bon on passe a la suite - if (isset($_POST['sujet_message']) && $_POST['sujet_message'] !='' ) { - $message_destinataire = mysql_real_escape_string(htmlspecialchars($_POST['message_destinataire'])); - $sujet_message = mysql_real_escape_string(htmlspecialchars($_POST['sujet_message'])); - $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); - mysql_query("INSERT INTO mail VALUES('', '1', '$message_destinataire', '$pseudodes', '$sujet_message', '$message', '$temps')") or die ("erreur sql ".mysql_error()); - } - else { - header("Location: envoyer_message.php?err=3"); - exit; - } - } - else { - header("Location: envoyer_message.php?err=2"); - exit; - } - } - else { - header("Location: envoyer_message.php?err=4"); - exit; - } -mysql_close(); -@header("Location: envoyer_message.php?ok=1"); -?> \ No newline at end of file diff --git a/pages/messagerie.php b/pages/messagerie.php index d1573c7..23331fa 100644 --- a/pages/messagerie.php +++ b/pages/messagerie.php @@ -5,7 +5,7 @@ $id=$_SESSION['id']; $galaxy=$_SESSION['galaxy']; $ss=$_SESSION['ss']; $pos=$_SESSION['pos']; -$_SESSION['dernPage'] = 'batiment.php'; +$_SESSION['dernPage'] = 'messagerie.php'; include_once('common.php'); require('../template.php'); @@ -30,6 +30,7 @@ if (isset($_GET['act']) && $_GET['act'] == 'nouv') { } } $template->set_filenames(array('messagerie' => 'messagerie_nouveau.tpl')); + if (isset($_GET['joueur'])) $template->assign_var('DESTIN',$_GET['joueur']); } elseif (isset($_GET['act']) && $_GET['act'] == 'lire' && isset($_GET['id'])) { $idM = floor($_GET['id']); @@ -39,7 +40,7 @@ $donnees = mysql_fetch_array($x); if (empty($donnees['expediteur'])) $template->set_filenames(array('messagerie' => 'messagerie_lirerapport.tpl')); else $template->set_filenames(array('messagerie' => 'messagerie_lire.tpl')); - $template->assign_vars(array('EMETTEUR' => $donnees['expediteur'], 'DESTINATAIRE' => $donnees['destinataire'], 'DATEHEURE' => dateFR(date('/D d M Y/Hi/'), $donnees['temps']), 'SUJET' => $donnees['sujet'], 'CORPS' => $donnees['contenu'])); + $template->assign_vars(array('EMETTEUR' => ''.$donnees['expediteur'].'', 'DESTINATAIRE' => $donnees['destinataire'], 'DATEHEURE' => dateFR(date('/D d M Y/Hi/'), $donnees['temps']), 'SUJET' => $donnees['sujet'], 'CORPS' => $donnees['contenu'])); mysql_query("UPDATE mail SET vu='0' WHERE id='$idM'"); } @@ -50,8 +51,8 @@ else { $Nmes=true; while($resultat = mysql_fetch_array($req)) { $Nmes = false; - if ($resultat['vu'] == '1') $template->assign_block_vars('messages',array('SPECIAL' => ' style="background: #44AA00"', 'ID' => $resultat['id'], 'EXPEDITEUR' => $resultat['expediteur'], 'SUJET' => $resultat['sujet'], 'EXTRAIT' => substr($resultat['contenu'], 0, 50).'...', 'DATEHEURE' => dateFR(date('/D d M Y/Hi/',$resultat['temps'])))); - else $template->assign_block_vars('messages',array('ID' => $resultat['id'], 'EXPEDITEUR' => $resultat['expediteur'], 'SUJET' => $resultat['sujet'], 'EXTRAIT' => substr($resultat['contenu'], 0, 50).'...', 'DATEHEURE' => dateFR(date('/D d M Y/Hi/',$resultat['temps'])))); + if ($resultat['vu'] == '1') $template->assign_block_vars('messages',array('SPECIAL' => ' style="background: #44AA00"', 'ID' => $resultat['id'], 'EXPEDITEUR' => ''.$resultat['expediteur'].'', 'SUJET' => $resultat['sujet'], 'EXTRAIT' => substr($resultat['contenu'], 0, 50).'...', 'DATEHEURE' => dateFR(date('/D d M Y/Hi/',$resultat['temps'])))); + else $template->assign_block_vars('messages',array('ID' => $resultat['id'], 'EXPEDITEUR' => ''.$resultat['expediteur'].'', 'SUJET' => $resultat['sujet'], 'EXTRAIT' => substr($resultat['contenu'], 0, 50).'...', 'DATEHEURE' => dateFR(date('/D d M Y/Hi/',$resultat['temps'])))); } if ($Nmes) $template->assign_var('MESS','Aucun message privé actuellement'); diff --git a/pages/nn/Copie de flotte_dep.php b/pages/nn/Copie de flotte_dep.php deleted file mode 100644 index 289be1c..0000000 --- a/pages/nn/Copie de flotte_dep.php +++ /dev/null @@ -1,94 +0,0 @@ -= $resultat['start_time'] + $resultat['end_time'] && !empty($resultat['end_time'])) { - $mission = $resultat['mission']; - $end_galaxie = $resultat['end_galaxie']; - $end_ss = $resultat['end_ss']; - $end_position = $resultat['end_position']; - if ($mission == 1) { - $reqd = mysql_query("SELECT * FROM planete WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - $resultatd = mysql_fetch_array($reqd); - $ATvaisseau_1 = $resultat['vaisseau_1']; $ATvaisseau_2 = $resultat['vaisseau_2']; $ATvaisseau_3 = $resultat['vaisseau_3']; $ATvaisseau_4 = $resultat['vaisseau_4']; $ATvaisseau_5 = $resultat['vaisseau_5']; $ATvaisseau_6 = $resultat['vaisseau_6']; $ATvaisseau_7 = $resultat['vaisseau_7']; $ATvaisseau_8 = $resultat['vaisseau_8']; $ATvaisseau_9 = $resultat['vaisseau_9']; $ATvaisseau_10 = $resultat['vaisseau_10']; $ATvaisseau_11 = $resultat['vaisseau_11']; $ATvaisseau_12 = $resultat['vaisseau_12']; - $ATnbvais = $ATvaisseau_1 + $ATvaisseau_2 + $ATvaisseau_3 + $ATvaisseau_4 + $ATvaisseau_5 + $ATvaisseau_6 + $ATvaisseau_7 + $ATvaisseau_8 + $ATvaisseau_9 + $ATvaisseau_10 + $ATvaisseau_11 + $ATvaisseau_12; - $ENvaisseau_1 = $resultatd['vaisseau_1']; $ENvaisseau_2 = $resultatd['vaisseau_2']; $ENvaisseau_3 = $resultatd['vaisseau_3']; $ENvaisseau_4 = $resultatd['vaisseau_4']; $ENvaisseau_5 = $resultatd['vaisseau_5']; $ENvaisseau_6 = $resultatd['vaisseau_6']; $ENvaisseau_7 = $resultatd['vaisseau_7']; $ENvaisseau_8 = $resultatd['vaisseau_8']; $ENvaisseau_9 = $resultatd['vaisseau_9']; $ENvaisseau_10 = $resultatd['vaisseau_10']; $ENvaisseau_11 = $resultatd['vaisseau_11']; $ENvaisseau_12 = $resultatd['vaisseau_12']; - $ENnbvais = $ENvaisseau_1 + $ENvaisseau_2 + $ENvaisseau_3 + $ENvaisseau_4 + $ENvaisseau_5 + $ENvaisseau_6 + $ENvaisseau_7 + $ENvaisseau_8 + $ENvaisseau_9 + $ENvaisseau_10 + $ENvaisseau_11 + $ENvaisseau_12; - - $ATvais = ''; $ENvais = ''; $ATvais_pv = ''; $ENvais_pv = ''; - for ($i = 1; $i <= 12; $i++) { - for ($j = 1; $j <= $resultat['vaisseau_'.$i]; $j++) { $ATvais .= $i.' '; $ATvais_pv .= $nomvais_pv[$i].' '; } - for ($j = 1; $j <= $resultatd['vaisseau_'.$i]; $j++) { $ENvais .= $i.' '; $ENvais_pv .= $nomvais_pv[$i].' '; } - } - - //Calcul de la puissance d'attaque - $ATpuissance = 0; $ENpuissance = 0; - for ($i = 1; $i <= 12; $i++) { - $ATpuissance += $resultat['vaisseau_'.$i] * $nomvais_at[$i-1]; - $ENpuissance += $resultatd['vaisseau_'.$i] * $nomvais_at[$i-1]; - } - //Calcul de la puissance de défense - $ATdefense = 0; $ENdefense = 0; - for ($i = 1; $i <= 12; $i++) { - $ATdefense += $resultat['vaisseau_'.$i] * $nomvais_bc[$i-1]; - $ENdefense += $resultatd['vaisseau_'.$i] * $nomvais_bc[$i-1]; - } - //Calcul des pv - $ATresistance = 0; $ENresistance = 0; - for ($i = 1; $i <= 12; $i++) { - $ATresistance += $resultat['vaisseau_'.$i] * $nomvais_pv[$i-1]; - $ENresistance += $resultatd['vaisseau_'.$i] * $nomvais_pv[$i-1]; - } - print '
    puissance d\'attaque attaquant : '.$ATpuissance; - print '
    puissance d\'attaque défenseur : '.$ENpuissance; - print '
    puissance de défense attaquant : '.$ATdefense; - print '
    puissance de défense défenseur : '.$ENdefense; - print '
    PV de l\'attaquant : '.$ATresistance; - print '
    PV du défenseur : '.$ENresistance; - $gagne = false; - while($gagne == false) { - if ($ATpuissance >= $ENdefense + $ENresistance) { - $gagne = true; - } - else { - while($ATpuissance > 0){ - $vaisAT_type = rand(1,12); - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - $vaisAT_pv = $nomvais_pv[$vaisAT_type]; - - } - } - } - } - elseif ($mission == 2) { - $Cmetal = $resultat['contenu_metal']; - $Ccristal = $resultat['contenu_cristal']; - $Chydrogene = $resultat['contenu_hydrogene']; - mysql_query("UPDATE `planete` SET `metal` = '$Cmetal', `cristal` = '$Ccristal', `hydrogene` = '$Chydrogene', WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - } - } - if (time() >= $resultat['start_time'] + $resultat['end_time'] * 2 && !empty($resultat['end_time']) && $mission != 0) { - $start_galaxie = $resultat['start_galaxie']; - $start_ss = $resultat['start_ss']; - $start_position = $resultat['start_position']; - $id_flotte = $resultat['id']; - $reqP = mysql_query("SELECT * FROM planete WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - $resultatP = mysql_fetch_array($reqP); - for($i = 1; $i <= 11; $i++) { - ${'Pvaisseaux_'.$i} = $resultatP['vaisseau_'.$i] + $resultat['vaisseau_'.$i]; - mysql_query("UPDATE `planete` SET `vaisseau_$i` = '${'Pvaisseaux_'.$i}' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - } - mysql_query("DELETE FROM `flottes` WHERE `id_user` = '$id' AND `id` = '$id_flotte'"); - } -} -?> \ No newline at end of file diff --git a/pages/nn/ajout_terrestre.php b/pages/nn/ajout_terrestre.php deleted file mode 100644 index 955d665..0000000 --- a/pages/nn/ajout_terrestre.php +++ /dev/null @@ -1,30 +0,0 @@ -= $temps_t && !empty($temps_t)) { - switch ($unit_t) { - case 1: $vaisseau_att += $cons_terrestre; mysql_query("UPDATE planete SET vais_0='$vaisseau_att' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 2: $vaisseau_1 += $cons_terrestre; mysql_query("UPDATE planete SET vais_1='$vaisseau_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 3: $vaisseau_2 += $cons_terrestre; mysql_query("UPDATE planete SET vais_2='$vaisseau_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 4: $vaisseau_3 += $cons_terrestre; mysql_query("UPDATE planete SET vais_3='$vaisseau_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 5: $vcl_1 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_1='$vcl_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 6: $vcl_2 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_2='$vcl_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 7: $vcl_3 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_3='$vcl_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 8: $vcl_4 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_4='$vcl_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 9: $def_1 += $cons_terrestre; mysql_query("UPDATE planete SET def_1='$def_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 10: $def_2 += $cons_terrestre; mysql_query("UPDATE planete SET def_2='$def_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 11: $def_3 += $cons_terrestre; mysql_query("UPDATE planete SET def_3='$def_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 12: $def_4 += $cons_terrestre; mysql_query("UPDATE planete SET def_4='$def_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 13: $def_5 += $cons_terrestre; mysql_query("UPDATE planete SET def_5='$def_5' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - } - mysql_query("UPDATE planete SET temps_t='0', unit_t='0', cons_terrestre='0' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); -// if ($unit_t < 9 && $unit_t > 0) header("Location: chantier_terrestre.php"); -// else if ($unit_t >= 9) header("Location: defense.php"); -} -?> \ No newline at end of file diff --git a/pages/nn/batiment_anul.php b/pages/nn/batiment_anul.php deleted file mode 100644 index 16bd70f..0000000 --- a/pages/nn/batiment_anul.php +++ /dev/null @@ -1,101 +0,0 @@ - \ No newline at end of file diff --git a/pages/nn/batimenta.php b/pages/nn/batimenta.php deleted file mode 100644 index 89511e7..0000000 --- a/pages/nn/batimenta.php +++ /dev/null @@ -1,447 +0,0 @@ -set_filenames(array('bati' => '../templates/bati.tpl')); - -$id=$_SESSION['id']; -$galaxy=$_SESSION['galaxy']; -$ss=$_SESSION['ss']; -$pos=$_SESSION['pos']; - -require_once 'bdd.php'; -require_once 'ressource.php'; -require_once 'batiment_ajout.php'; -require_once 'noms.php'; - -function sec($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - return $output; -} - -function verification_des_ress($num, $fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro) { - if ($fer >= $need_fer && $cristal >= $need_cristal && $ro >= $need_ro) return "


    Construire"; - else return "


    Construire"; -} - -function ressources($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro, $mine_m, $mine_c, $mine_h) { -require 'noms.php'; - if ($need_fer > 0) { - if ($fer <= $need_fer) { - $z=floor($fer)-$need_fer; - return ''.$ressourc[0].' : '.$need_fer.' '; - } - else return $ressourc[0].' : '.$need_fer.' '; - } - if ($need_cristal > 0) { - if ($cristal <= $need_cristal) { - $z=floor($cristal)-$need_cristal; - return ''.$ressourc[1].' : '.$need_cristal.' '; - } - else return $ressourc[1].' : '.$need_cristal.' '; - } - if ($need_ro > 0) { - if ($ro <= $need_ro) { - $z=floor($ro)-$need_ro; - return ''.$ressourc[2].' : '.$need_ro.''; - } - else return $ressourc[2].' : '.$need_ro.''; - } -} - -function ress_tem($fer, $cristal, $ro, $need_fer, $need_cristal, $need_ro, $mine_m, $mine_c, $mine_h) { - if ($mine_m < 0) $prod_met = 40; - else $prod_metal = ceil((($mine_m*32)+(pow(1.41,$mine_m)*exp(0.066*$mine_m))*$coeff)*3.7) + 40; - if ($mine_c < 0) $prod_cri = 20; - else $prod_cristal = (floor(($mine_c*13)+(pow(1.36,$mine_c)*exp(0.0675*$mine_c))*$coeff)*7) + 20; - if ($centrale_f > 0) $conso_hy = ceil(($centrale_f*5+(exp($mine_m*0.3)*10))*$coeff); - else $conso_hy=0; - if ($mine_h < 0) $prod_hydrogene = 0.0000000001; - else $prod_hydrogene = (ceil((($mine_h*12)+(pow(1.394,$mine_h)*exp(0.072*$mine_h))*$coeff)*5)); - $w = $prod_hydrogene - $conso_hy; - if ($mine_h == 0) { $w=1; $ro=0; $need_ro=0; } - if ($prod_hydrogene - $conso_hy < 0) { $w= 1; $ro=0; $need_ro=0; } - - $tem1 = abs(floor($fer)-$need_fer)/$prod_metal; - $tem2 = abs(floor($cristal)-$need_cristal)/$prod_cristal; - $tem3 = abs(floor($ro)-$need_ro)/$w; - - $tem = max($tem1,$tem2,$tem3); - - return ceil($tem); -} - -$case = $cases - ($mine_m + $mine_c + $mine_h + $centrale_s + $centrale_f + $radar + $labo + $chantier_terrestre + $chantier_spatial + $caserne + $silo); - -// Usine de métallurgie -if ($mine_m > 0) $niveau = '(Niveau '.$mine_m.')'; else $niveau = ''; -$description = 'Toute construction demande des quantités énormes de fer, pour cela des centaines de milliers d\'ouvriers -travaillent dans ces mines afin d\'assurer le bon fonctionnement de votre empire.'; -$a=ceil(exp(0.4*$mine_m)*190); $b=ceil(exp(0.4*$mine_m)*90); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.7,$mine_m)*120)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat==1) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(1, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[0], 'NOMR' => $batimend[0], 'NOM' => $batiment[0], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - -// Usine de cristal -if ($mine_c > 0) $niveau = '(Niveau '.$mine_c.')'; else $niveau = ''; -$description = 'DESCRIPTION'; -$a=ceil(exp(0.43*$mine_c)*205); $b=ceil(exp(0.43*$mine_c)*110); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.72,$mine_c)*160)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat==2) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(2, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[1], 'NOMR' => $batimend[1], 'NOM' => $batiment[1], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - -// Synchronisateur d'hydrogène -if ($mine_h > 0) $niveau = '(Niveau '.$mine_h.')'; else $niveau = ''; -$description = 'DESCRIPTION'; -$a=ceil(exp(0.445*$mine_h)*235); $b=ceil(exp(0.445*$mine_h)*150); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.75,$mine_h)*180)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat == 3) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(3, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[2], 'NOMR' => $batimend[2], 'NOM' => $batiment[2], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - -// -if ($centrale_s > 0) $niveau = '(Niveau '.$centrale_s.')'; else $niveau = ''; -$description = 'DESCRIPTION'; -$a=ceil(exp(0.442*$centrale_s)*165); $b=ceil(exp(0.442*$centrale_s)*99); -$ressources = ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); -$temps = sec(ceil((pow(1.68,$centrale_s)*190)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -if ($temps_b > 0) { - if ($bat == 4) { - $tr=$temps_b-time(); - $blockC = '
    Annuler
    '; - } -} -else { - if ($case <= 0) $blockC = 'Planète pleine'; - else $blockC = verification_des_ress(4, $metal, $cristal, $hydrogene, $a, $b, 0); -} - $template->assign_block_vars('batiment',array('IMAGE' => $batimeni[3], 'NOMR' => $batimend[3], 'NOM' => $batiment[3], 'NIVEAU' => $niveau, 'DESCRIPTION' => $description, 'RESSOURCES' => $ressources, 'TEMPS' => $temps, 'BLOCKC' => $blockC)); - - $template->assign_vars(array('RACE' => $race)); - $template->pparse('bati'); -exit; - -echo ' -
    -
    - -
    -
    -'.$batiment[3].' '; if ($centrale_s > 0) echo '(Niveau '.$centrale_s.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(exp(0.442*$centrale_s)*165); $b=ceil(exp(0.442*$centrale_s)*99); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(1.68,$centrale_s)*190)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==4) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(4, $metal, $cristal, $hydrogene, $a, $b, 0); -} -echo '

    '; - -if ($centrale_s >= 12 && $energie_t >= 5) { - echo '
    - -
    -
    - '.$batiment[4].' '; if ($centrale_f > 0) echo '(Niveau '.$centrale_f.')'; echo '
    - Description.
    - Besoin de : '; - $a=ceil(pow(1.8,$centrale_s)*300); - $b=ceil(pow(1.82,$centrale_s)*230); - ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    - Temps de construction : '; sec(ceil((pow(1.8,$centrale_f)*300)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); - //if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } - echo '
    -
    '; - if ($temps_b > 0) { - if ($bat==5) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } - } - else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(5, $metal, $cristal, $hydrogene, $a, $b, 0); - } - echo '

    '; -} - -if ($detection >= 1) { - echo '
    - -
    -
    - '.$batiment[5].' '; if ($radar > 0) echo '(Niveau '.$radar.')'; echo '
    - Description.
    - Besoin de : '; - $a=ceil(pow(2,$radar)*750); - $b=ceil(pow(2,$radar)*500); - $c=ceil(pow(2,$radar)*50); - ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h); echo '
    - Temps de construction : '; sec(ceil((pow(2,$radar)*720)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); - //if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,$c, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } - echo '
    -
    '; - if ($temps_b > 0) { - if ($bat==6) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } - } - else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(6, $metal, $cristal, $hydrogene, $a, $b, $c); - } - echo '

    '; -} - -echo '
    - -
    -
    -'.$batiment[6].' '; if ($labo > 0) echo '(Niveau '.$labo.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$labo)*200); -$b=ceil(pow(2,$labo)*150); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$labo)*720)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==7) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo "Planète pleine"; - else { - if($tec > 0) echo '

    Recherche en cours dans le
    laboratoire'; - else verification_des_ress(7, $metal, $cristal, $hydrogene, $a, $b, 0); - } -} -echo '
    -
    -
    - -
    -
    -'.$batiment[7].' '; if ($chantier_terrestre > 0) echo '(Niveau '.$chantier_terrestre.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$chantier_terrestre)*520); -$b=ceil(pow(2,$chantier_terrestre)*380); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$chantier_terrestre)*420)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==8) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else { - if($unit_t > 0 && unit_t <= 8) { echo '

    Construction en cours dans le
    chantier terrestre'; } - elseif($unit_t > 8) { echo'

    Construction en cours dans le
    centre de défenses'; } - else verification_des_ress(8, $metal, $cristal, $hydrogene, $a, $b, 0); - } -} -echo '
    -
    '; - -if ($chantier_terrestre >= 2) { - echo '
    - -
    -
    - '.$batiment[8].' '; if ($chantier_spatial > 0) echo '(Niveau '.$chantier_spatial.')'; echo '
    - Description.
    - Besoin de : '; - $a=ceil(pow(2,$chantier_spatial)*600); - $b=ceil(pow(2,$chantier_spatial)*450); - ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    - Temps de construction : '; sec(ceil((pow(2,$chantier_spatial)*600)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); - //if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } - echo '
    -
    '; - if ($temps_b > 0) { - if ($bat==9) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } - } - else { - if ($case <= 0) echo "Planète pleine"; - else { - if($unit_s > 0) echo "

    Construction en cours dans le
    chantier terrestre"; - else verification_des_ress(9, $metal, $cristal, $hydrogene, $a, $b, 0); - } - } - echo '

    '; -} - - -echo '
    - -
    -
    -'.$batiment[9].' '; if ($caserne > 0) echo '(Niveau '.$caserne.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$caserne)*200); -$b=ceil(pow(2,$caserne)*100); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$caserne)*300)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==10) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else { - if($unit > 0) echo '

    Entrainement en cours dans la
    caserne'; - else verification_des_ress(10, $metal, $cristal, $hydrogene, $a, $b, 0); - } -} - -echo '
    -
    -
    - -
    -
    -'.$batiment[10].' '; if ($silo > 0) echo '(Niveau '.$silo.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(2,$silo)*400); -$b=ceil(pow(2,$silo)*260); -ressources($metal, $cristal, $hydrogene, $a, $b, 0, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(2,$silo)*1200)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,0, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==11) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(11, $metal, $cristal, $hydrogene, $a, $b, 0); -} -echo '
    '; - -if ($informatique >= 2) { -echo'
    -
    - -
    -
    -'.$batiment[11].' '; if ($centre_info > 0) echo '(Niveau '.$centre_info.')'; echo '
    -Description.
    -Besoin de : '; -$a=ceil(pow(1.7,$centre_info)*600); -$b=ceil(pow(1.7,$centre_info)*420); -$c=ceil(pow(1.7,$centre_info)*100); -ressources($metal, $cristal, $hydrogene, $a, $b, $c, $mine_m, $mine_c, $mine_h); echo '
    -Temps de construction : '; sec(ceil((pow(1.9,$centre_info)*800)/(pow(1.23,$centre_info)+0.0025*$ingeneieur))); -//if (sec(ress_tem($fer, $cristal, $ro, $a, $nb,$c, $mine_m, $mine_c, $mine_h)) <= 0) { echo '
    Temps avant construction : maintenant'; } else { echo'
    Temps avant construction : ';sec($tem); } -echo '
    -
    '; -if ($temps_b > 0) { - if ($bat==12) { - $tr=$temps_b-time(); - echo ''; - echo ''; - echo "
    Annuler
    "; - } -} -else { - if ($case <= 0) echo 'Planète pleine'; - else verification_des_ress(12, $metal, $cristal, $hydrogene, $a, $b, $c); -} -echo '
    '; } -echo ''; -echo' -'; -?> \ No newline at end of file diff --git a/pages/nn/caserne.php b/pages/nn/caserne.php deleted file mode 100644 index 399ac61..0000000 --- a/pages/nn/caserne.php +++ /dev/null @@ -1,247 +0,0 @@ - - -Halo battle - - - - -"; - -require_once 'bdd.php'; -require_once 'ressource.php'; -require_once 'caserne_ajout.php'; -require_once 'noms.php'; - -function sec($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - echo $output; -} - -function cons_max($fer,$cristal,$hydrogene,$need_fer,$need_cristal,$need_hydrogene) { -if (need_fer > 0) { -$m1 = floor($fer)/$need_fer; } -if (need_cristal > 0) { -$m2 = floor($cristal)/$need_cristal; } -if (need_hydrogene > 0) { -$m3 = floor($hydrogene)/$need_hydrogene; } -if (isset($m1) && isset($m2) && isset($m3)) { $m = min($m1,$m2,$m3); echo floor($m);} -elseif (isset($m1) && isset($m2) && !isset($m3)) { $m = min($m1,$m2); echo floor($m);} -} //(maximum ";cons_max($fer,$cristal,$hydrogene,80,45,0);echo" unitées)
    - -$f = ceil(60/pow(1.25,($caserne-1))); -$g = ceil(240/pow(1.25,($caserne-2))); -$h = ceil(240/pow(1.25,($caserne-3))); -$i = ceil(720/pow(1.25,($caserne-5))); -$j = ceil(300/pow(1.25,($caserne-3))); -$k = ceil(29700/pow(1.25,($caserne-10))); -$l = ceil(90/pow(1.25,($caserne-2))); -$m = ceil(90/pow(1.25,($caserne-2))); -$n = ceil(900/pow(1.25,($caserne-5))); - - -if ($temps_caserne>0) $unit = $casernea[--$unit]; -?> - - - -
    Prochainement dans Halo-Battle
    '; -exit; - - -if ($caserne > 0) { - if ($temps_caserne >0) { - echo "
    Entrainement terminé dans : "; - $tr=$temps_caserne-time(); - echo ''; - echo ''; - echo "
    Entrainement de : ".$cons_caserne." ".$unit."

    "; - } - - -if ($caserne >= 1) { -echo'
    -
    -
    - -
    -
    -'.$casernen[0].''; if ($soldat1 > 0) { echo" (".$soldat1." unités)"; } -echo '
    '.$casernde[0].'
    Besoin de : Métal : 80 Cristal : 45
    -Temps de construction : '; sec($f); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 2) { -echo'
    - -
    -
    -'.$casernen[1].''; if ($soldat2 > 0) { echo" (".$soldat2." unités)"; } -echo '
    '.$casernde[1].'
    Besoin de : Métal : 110 Cristal : 90
    -Temps de construction : '; sec($g); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 110 && $cristal >= 90) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 3 && $armement >= 2) { -echo'
    - -
    -
    -'.$casernen[2].''; if ($soldat3 > 0) { echo" (".$soldat3." unités)"; } -echo '
    '.$casernde[2].'
    Besoin de : Métal : 150 Cristal : 105
    -'.$ressourc[2].' : 20
    -Temps de construction : '; sec($h); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 150 && $cristal >= 105 && $hydrogene >= 20) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 5 && $armement >= 3 && $tactique >= 2) { -echo'
    - -
    -
    -'.$casernen[3].''; if ($soldat4 > 0) { echo" (".$soldat4." unités)"; } -echo '
    '.$casernde[3].'
    Besoin de : Métal : 220 Cristal : 150
    -Temps de construction : '; sec($i); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 220 && $cristal >= 150) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 3 && $armement >= 1) { -echo'
    - -
    -
    -'.$casernen[4].''; if ($sniper > 0) { echo" (".$sniper." unités)"; } -echo '
    '.$casernde[4].'
    Besoin de : Métal : 180 Cristal : 100
    -Temps de construction : '; sec($j); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 180 && $cristal >= 100) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 10 && $armement >= 5 && $blindage >= 5 && $spartan >= 3) { -echo'
    - -
    -
    -'.$casernen[5].''; if ($spartam > 0) { echo" (".$spartam." unités)"; } -echo '
    '.$casernde[5].'
    Besoin de : Métal : 25.000 Cristal : 10.000
    -Temps de construction : '; sec($k); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 25000 && $cristal >= 10000) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 2 && $medecine >= 2) { -echo'
    - -
    -
    -'.$casernen[6].''; if ($medecin > 0) { echo" (".$medecin." unités)"; } -echo '
    '.$casernde[6].'
    Besoin de : Métal : 100 Cristal : 100
    -Temps de construction : '; sec($l); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 100 && $cristal >= 100) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 2) { -echo'
    - -
    -
    -'.$casernen[7].''; if ($ingenieur > 0) { echo" (".$ingenieur." unités)"; } -echo '
    '.$casernde[7].'
    Besoin de : Métal : 90 Cristal : 105
    -Temps de construction : '; sec($m); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 90 && $cristal >= 105) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - -if ($caserne >= 5 && $armement >= 4 && $blindage >= 2) { -echo'
    - -
    -
    -'.$casernen[8].''; if ($soldat_lourd > 0) { echo" (".$soldat_lourd." unités)"; } -echo '
    '.$casernde[8].'
    Besoin de : Métal : 300 Cristal : 250
    -Temps de construction : '; sec($n); -echo '
    -
    '; -echo'
    '; -if ($bat == 10) echo "


    Caserne en construction"; -else { -if ($metal >= 300 && $cristal >= 250) { if ($temps_caserne < time()) { echo "



    "; }} -} -echo '

    '; } - - -} else { echo'
    Vous devez d\'abord construire une caserne !
    '; } - -?> -
    - - \ No newline at end of file diff --git a/pages/nn/caserne_ajout.php b/pages/nn/caserne_ajout.php deleted file mode 100644 index 7197b82..0000000 --- a/pages/nn/caserne_ajout.php +++ /dev/null @@ -1,27 +0,0 @@ -= $temps_caserne && !empty($temps_caserne)) { - switch ($unit) { - case 1: $soldat1 += $cons_caserne; mysql_query("UPDATE planete SET soldat1='$soldat1' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); break; - case 2: $soldat2 += $cons_caserne; mysql_query("UPDATE planete SET soldat2='$soldat2' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 3: $soldat3 += $cons_caserne; mysql_query("UPDATE planete SET soldat3='$soldat3' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 4: $soldat4 += $cons_caserne; mysql_query("UPDATE planete SET soldat4='$soldat4' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 5: $sniper += $cons_caserne; mysql_query("UPDATE planete SET sniper='$sniper' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 6: $spartam += $cons_caserne; mysql_query("UPDATE planete SET spartam='$spartam' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 7: $medecin += $cons_caserne; mysql_query("UPDATE planete SET medecin='$medecin' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 8: $ingenieur += $cons_caserne; mysql_query("UPDATE planete SET ingenieur='$ingenieur' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - case 9: $soldat_lourd += $cons_caserne; mysql_query("UPDATE planete SET soldat_lourd='$soldat_lourd' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); break; - } - - mysql_query("UPDATE planete SET cas_contruct_time='0', cas_contruct='0', cas_contruct_nb='0' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); -// @header("Location: troupes.php"); -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/nn/caserne_covenant.php b/pages/nn/caserne_covenant.php deleted file mode 100644 index 767988b..0000000 --- a/pages/nn/caserne_covenant.php +++ /dev/null @@ -1,190 +0,0 @@ - '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - echo $output; -} - -$f = ceil((60 - (0.1*$caserne*60))); -$g = ceil((240 - (0.1*$caserne*240))); -$h = ceil((240 - (0.1*$caserne*240))); -$i = ceil((720 - (0.1*$caserne*720))); -$j = ceil((300 - (0.1*$caserne*300))); -$k = ceil((29700 - (0.1*$caserne*29700))); -$l = ceil((90 - (0.1*$caserne*90))); -$m = ceil((90 - (0.1*$caserne*90))); -$n = ceil((900 - (0.1*$caserne*900))); - -if ($temps_caserne > 0) { - switch ($unit) { - case 1: $unit= "grunts"; break; - case 2: $unit= "jackals"; break; - case 3: $unit= "drones"; break; - case 4: $unit= "élites"; break; - case 5: $unit= "snipers"; break; - case 6: $unit= "hunters"; break; - case 7: $unit= "médecins"; break; - case 8: $unit= "ingénieurs"; break; - case 9: $unit= "brutes"; break; - } -} -?> - - - 0) { - if ($temps_caserne >0) { - echo "
    Entrainement terminé dans : "; - $tr=$temps_caserne-time(); - echo ''; - echo ''; - echo "
    Entrainement de : ".$cons_caserne." ".$unit."

    "; - } - - echo""; - - if ($caserne >= 1) { - echo " - - - - "; - } - - if ($caserne >= 2) { - echo " - - - - "; - } - - if ($caserne >= 3 && $armement >= 2) { - echo " - - - - "; - } - - if ($caserne >= 5 && $armement >= 3 && $tactique >= 2) { - echo " - - - - "; - } - - if ($caserne >= 3 && $armement >= 1) { - echo " - - - - "; - } - - if ($caserne >= 10 && $armement >= 5 && $blindage >= 5 && $spartan >= 3) { - echo " - - - - "; - } - - if ($caserne >= 2 && $medecine >= 2) { - echo " - - - - "; - } - - if ($caserne >= 2) { - echo " - - - - "; - } - - if ($caserne >= 5 && $armement >= 4 && $blindage >= 2) { - echo " - - - - "; - } - -} else { ?>
    lmagesDescriptionNombre
    Grunt"; if ($soldat1 > 0) { echo"( ".$soldat1." unités )"; } echo"
    Métal : 80
    Cristal : 45
    Temps : "; sec($f); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Jackal "; if ($soldat2 > 0) { echo"( ".$soldat2." unités )"; } echo"
    Métal : 110
    Cristal : 90
    Temps : "; sec($g); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 110 && $cristal >= 90) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo "
    Drones"; if ($soldat3 > 0) { echo"( ".$soldat3." unités )"; } echo"
    Métal : 150
    Cristal : 105
    Hydrogène : 20
    Temps : "; sec($h); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 150 && $cristal >= 105) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Elites"; if ($soldat4 > 0) { echo"( ".$soldat4." unités )"; } echo"
    Métal : 220
    Cristal : 150
    Temps : "; sec($i); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 220 && $cristal >= 150) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Sniper"; if ($sniper > 0) { echo"( ".$sniper." unités )"; } echo"
    Métal : 180
    Cristal : 100
    Temps : "; sec($j); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 180 && $cristal >= 100) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Hunter"; if ($spartam > 0) { echo"( ".$spartam." unités )"; } echo"
    Métal : 25000
    Cristal : 10000
    Temps : "; sec($k); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 25000 && $cristal >= 10000) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Médecin"; if ($medecin > 0) { echo"( ".$medecin." unités )"; } echo"
    Métal : 100
    Cristal : 100
    Temps : "; sec($l); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 100 && $cristal >= 100) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Ingenieur"; if ($ingenieur > 0) { echo"( ".$ingenieur." unités )"; } echo"
    Métal : 90
    Cristal : 105
    Temps : "; sec($m); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Brute"; if ($soldat_lourd > 0) { echo"( ".$soldat_lourd." unités )"; } echo"
    Métal : 300
    Cristal : 250
    Temps : "; sec($n); echo"
    "; - if ($bat == 10) echo "Caserne en construction"; - else { - if ($metal >= 80 && $cristal >= 45) { if ($temps_caserne < time()) { echo "
    "; }} - } - echo"
    Vous devez d'abord construire une caserne !
    "; ?> - - \ No newline at end of file diff --git a/pages/nn/chantier_terrestre.php b/pages/nn/chantier_terrestre.php deleted file mode 100644 index 5db4fe2..0000000 --- a/pages/nn/chantier_terrestre.php +++ /dev/null @@ -1,242 +0,0 @@ - - -Halo battle - - - - -"; - -require_once 'bdd.php'; -require_once 'ressource.php'; -require_once 'chantier_terrestre_ajout.php'; -require_once 'noms.php'; - -function sec ($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - echo $output; -} - - -$f = ceil(720/pow(1.25,($chantier_terrestre-1))); -$g = ceil(2040/pow(1.25,($chantier_terrestre-3))); -$h = ceil(7200/pow(1.25,($chantier_terrestre-4))); -$i = ceil(3960/pow(1.25,($chantier_terrestre-6))); -$j = ceil(600/pow(1.25,($chantier_terrestre-1))); -$k = ceil(1080/pow(1.25,($chantier_terrestre-2))); -$l = ceil(2160/pow(1.25,($chantier_terrestre-3))); -$m = ceil(4680/pow(1.25,($chantier_terrestre-5))); - - - -if ($temps_t > 0) $unit = $nomterra[--$unit_t]; -?> - - - -
    Prochainement dans Halo-Battle
    '; -exit; - -if ($chantier_terrestre > 0) { - if ($temps_t > 0) { - echo '
    Construction terminé dans : '; - $tr=$temps_t-time(); - echo ''; - echo ''; - echo '
    Entrainement de : '.$cons_terrestre.' '.$unit.'

    '; - } - -if ($chantier_terrestre >= 1) { -echo'
    -
    -
    - -
    -
    -'.$nomterrn[0].''; if ($vais_0 > 0) { echo" (".$vais_0." vaisseaux)"; } -echo '
    '.$nomterde[0].'
    Besoin de : '.$ressourc[0].' : 500 '.$ressourc[1].' : 300
    -Temps de construction : '; sec($f); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 500 && $cristal >= 300) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 3 && $armement >= 1) { -echo'
    - -
    -
    -'.$nomterrn[1].''; if ($vais_1 > 0) { echo" (".$vais_1." vaisseaux)"; } -echo '
    '.$nomterde[1].'
    Besoin de : '.$ressourc[0].' : 680 '.$ressourc[1].' : 420
    -Temps de construction : '; sec($g); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 680 && $cristal >= 420) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 4 && $reacteur >= 1) { -echo'
    - -
    -
    -'.$nomterrn[2].''; if ($vais_2 > 0) { echo" (".$vais_2." vaisseaux)"; } -echo '
    '.$nomterde[2].'
    Besoin de : '.$ressourc[0].' : 1.000 '.$ressourc[1].' : 600
    -Temps de construction : '; sec($h); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 1000 && $cristal >= 600) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 6 && $reacteur >= 3) { -echo'
    - -
    -
    -'.$nomterrn[3].''; if ($vais_3 > 0) { echo" (".$vais_3." vaisseaux)"; } -echo '
    '.$nomterde[3].'
    Besoin de : '.$ressourc[0].' : 1.400 '.$ressourc[1].' : 950
    -Temps de construction : '; sec($i); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 1400 && $cristal >= 950) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 1) { -echo'
    - -
    -
    -'.$nomterrn[4].''; if ($vcl_1 > 0) { echo" (".$vcl_1." véhicules)"; } -echo '
    '.$nomterde[4].'
    Besoin de : '.$ressourc[0].' : 400 '.$ressourc[1].' : 240
    -Temps de construction : '; sec($j); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 400 && $cristal >= 240) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 2) { -echo'
    - -
    -
    -'.$nomterrn[5].''; if ($vcl_2 > 0) { echo" (".$vcl_2." véhicules)"; } -echo '
    '.$nomterde[5].'
    Besoin de : '.$ressourc[0].' : 480 '.$ressourc[1].' : 260
    -Temps de construction : '; sec($k); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 480 && $cristal >= 260) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 3 && $armement >= 1) { -echo'
    - -
    -
    -'.$nomterrn[6].''; if ($vcl_3 > 0) { echo" (".$vcl_3." véhicules)"; } -echo '
    '.$nomterde[6].'
    Besoin de : '.$ressourc[0].' : 600 '.$ressourc[1].' : 420
    -Temps de construction : '; sec($l); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 600 && $cristal >= 420) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - -if ($chantier_terrestre >= 5 && $blindage >=2 && $armement >=2) { -echo'
    - -
    -
    -'.$nomterrn[7].''; if ($vcl_4 > 0) { echo" (".$vcl_4." véhicules)"; } -echo '
    '.$nomterde[7].'
    Besoin de : '.$ressourc[0].' : 1.000 '.$ressourc[1].' : 500
    -Temps de construction : '; sec($m); -echo '
    -
    '; -echo'
    '; -if ($bat == 8) echo '


    Chantier terrestre en construction'; -else { -if ($metal >= 1000 && $cristal >= 500) { if ($temps_t < time()) { echo '



    '; }} -else { -if ($unit_t > 9) echo '
    Construction en cours dans le centre de défenses'; -} -} -echo '

    '; } - - - -} -else { echo '
    Vous devez d\'abord construire un chantier terrestre !
    '; } ?> -
    - - \ No newline at end of file diff --git a/pages/nn/chantier_terrestre_ajout.php b/pages/nn/chantier_terrestre_ajout.php deleted file mode 100644 index 5e7bdc0..0000000 --- a/pages/nn/chantier_terrestre_ajout.php +++ /dev/null @@ -1,31 +0,0 @@ -= $temps_terrestre && !empty($temps_terrestre)) { - switch ($unit_t) { - case 1: $vais_0 += $cons_terrestre; mysql_query("UPDATE planete SET vais_0='$vais_0' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 2: $vais_1 += $cons_terrestre; mysql_query("UPDATE planete SET vais_1='$vais_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 3: $vais_2 += $cons_terrestre; mysql_query("UPDATE planete SET vais_2='$vais_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 4: $vais_3 += $cons_terrestre; mysql_query("UPDATE planete SET vais_3='$vais_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 5: $vcl_1 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_1='$vcl_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 6: $vcl_2 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_2='$vcl_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 7: $vcl_3 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_3='$vcl_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 8: $vcl_4 += $cons_terrestre; mysql_query("UPDATE planete SET vcl_4='$vcl_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 9: $def_1 += $cons_terrestre; mysql_query("UPDATE planete SET def_1='$def_1' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 10: $def_2 += $cons_terrestre; mysql_query("UPDATE planete SET def_2='$def_2' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 11: $def_3 += $cons_terrestre; mysql_query("UPDATE planete SET def_3='$def_3' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 12: $def_4 += $cons_terrestre; mysql_query("UPDATE planete SET def_4='$def_4' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - case 13: $def_5 += $cons_terrestre; mysql_query("UPDATE planete SET def_5='$def_5' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); break; - } - mysql_query("UPDATE planetes SET terr_contruct_time='0', terr_contruct='0', terr_contruct_nb='0' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos' AND id_user='$id'"); - $cons_terrestre = 0; $unit_t = 0; $temps_terrestre = 0; -// if ($unit_t < 9 && $unit_t > 0) header("Location: chantier_terrestre.php"); -// else if ($unit_t >= 9) header("Location: defense.php"); -} -?> \ No newline at end of file diff --git a/pages/nn/chantier_terrestre_validation.php b/pages/nn/chantier_terrestre_validation.php deleted file mode 100644 index ffa97e8..0000000 --- a/pages/nn/chantier_terrestre_validation.php +++ /dev/null @@ -1,94 +0,0 @@ -= 1 && !ereg('e,', implode(',',$fileVai).',')) { - $temps_s = ''; - $veh = 'e'; -} -else { - // Annulation de la production en chaîne si elle existe - //if (ereg('e,', implode(',',$fileVai).',')) { header('Location: annul_bat.php?bat=e&go='.$_POST['type']); exit; } - - if (!isset($_POST['sa'])) exit; - else $sa = abs(floor($_POST['sa'])); - - if ($_POST['type'] == 9) { - $metal -= ($sa*500); - $cristal -= ($sa*200); - $temps_s = $sa*ceil(480/pow(1.25,($chantier_terrestre-1))); - $veh = 9; - } - elseif ($_POST['type'] == 10) { - $metal -= ($sa*4000); - $cristal -= ($sa*2000); - $temps_s = $sa*ceil(1560/pow(1.25,($chantier_terrestre-3))); - $veh = 10; - } - elseif ($_POST['type'] == 11) { - $metal -= ($sa*4500); - $cristal -= ($sa*800); - $hydrogene -= ($sa*600); - $temps_s = $sa*ceil(1800/pow(1.25,($chantier_terrestre-4))); - $veh = 11; - } - elseif ($_POST['type'] == 12) { - $metal -= ($sa*12000); - $cristal -= ($sa*10000); - $hydrogene -= ($sa*1000); - $temps_s = $sa*ceil(6720/pow(1.25,($chantier_terrestre-4))); - $veh = 12; - } - elseif ($_POST['type'] == 13) { - $metal -= ($sa*15000); - $cristal -= ($sa*9500); - $hydrogene -= ($sa*1500); - $temps_s = $sa*ceil(12960/pow(1.25,($chantier_terrestre-8))); - $veh = 13; - } -} - -if (isset($veh) && $veh != '' && (!empty($nomvaisn[$veh-1]) || $veh == 'e' || (isset($_GET['act']) && $_GET['act'] == 'e'))) { - if ($metal >= 0 && $cristal >= 0 && $hydrogene >= 0) { - for ($c=0 ; $c < $sa ; $c++){ - $fileVai = explode(' ',implode(' ',$fileVai).' '.$veh); - } - $veh = implode(' ',$fileVai); - if (count($fileTemps_s) == 0 || count($fileTemps_s) == 1) { - $temps_ss = time(); - for ($c=0 ; $c < $sa ; $c++){ - $temps_ss .= ' '.$temps_s; - } - $temps_s = $temps_ss; - } - else { - $temps_ss = implode(' ',$fileTemps_s); - for ($c=0 ; $c < $sa ; $c++){ - $temps_ss .= ' '.$temps_s; - } - $temps_s = $temps_ss; - } - - mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', temps_spatial='$temps_s', unit_s='$veh' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - } - else { - if ($veh >= 9 ) header('Location: chantier_terrestre.php?err=3'); - else header('Location: chantier_terrestre.php?err=3'); - mysql_close(); - exit; - } -} -mysql_close(); -$veh = $fileVai[0]; -if ($veh >= 9 ) header('Location: defense.php'); -else header('Location: chantier_terrestre.php'); -?> \ No newline at end of file diff --git a/pages/nn/construction.php b/pages/nn/construction.php deleted file mode 100644 index 21ed428..0000000 --- a/pages/nn/construction.php +++ /dev/null @@ -1,122 +0,0 @@ -= 1 && !ereg('e,', implode(',',$fileTec).',')) { - $temps_tec = ''; - $tec = 'e'; -} -else { - // Annulation de la production en chaîne si elle existe - if (ereg('e,', implode(',',$fileTec).',')) { header('Location: annul_tec.php?tec=e&go='.$_GET['tec']); exit; } - - if ($_GET['tec'] == 1 && $labo >= 1) { - $n=($informatique-1); - $cristal -= ceil(pow(2,$n)*500); - $hydrogene -= ceil(pow(2,$n)*150); - $temps_tec = ceil((420*2*($informatique+1))/pow(1.25,($labo-1))); - $tec = 1; - } - elseif ($_GET['tec'] == 2 && $labo >= 2 && $informatique >=2) { - $n=($detection-1); - $metal -= ceil(pow(2,$n)*500); - $cristal -= ceil(pow(2,$n)*750); - $hydrogene -= ceil(pow(2,$n)*100); - $temps_tec = ceil((600*2*($detection+1))/pow(1.25,($labo-2))); - $tec = 2; - } - elseif ($_GET['tec'] == 3 && $labo >= 5) { - $n=($armement-1); - $metal -= ceil(pow(2,$n)*2500); - $cristal -= ceil(pow(2,$n)*500); - $temps_tec = ceil((1500*2*($armement+1))/pow(1.25,($labo-5))); - $tec = 3; - } - elseif ($_GET['tec'] == 4 && $labo >= 4) { - $n=($blindage-1); - $metal -= ceil(pow(2,$n)*4000); - $cristal -= ceil(pow(2,$n)*1500); - $temps_tec = ceil((1710*2*($blindage+1))/pow(1.25,($labo-4))); - $tec = 4; - } - elseif ($_GET['tec'] == 5 && $labo >= 2) { - $n=($energie_t-1); - $metal -= ceil(pow(2,$n)*2000); - $cristal -= ceil(pow(2,$n)*1500); - $hydrogene -= ceil(pow(2,$n)*300); - $temps_tec = ceil((900*2*($energie_t+1))/pow(1.25,($labo-2))); - $tec = 5; - } - elseif ($_GET['tec'] == 6 && $labo >= 2) { - $n=($reacteur-1); - $metal -= ceil(pow(2,$n)*1400); - $cristal -= ceil(pow(2,$n)*400); - $temps_tec = ceil((510*2*($reacteur+1))/pow(1.25,($labo-2))); - $tec = 6; - } - elseif ($_GET['tec'] == 7 && $labo >= 4 && $energie_t >= 2 && $reacteur >= 4) { - $n=($reacteur_f-1); - $metal -= ceil(pow(2,$n)*3000); - $cristal -= ceil(pow(2,$n)*2100); - $hydrogene -= ceil(pow(2,$n)*750); - $temps_tec = ceil((1650*2*($reacteur_f+1))/pow(1.25,($labo-4))); - $tec = 7; - } - elseif ($_GET['tec'] == 8 && $labo >= 6 && $energie_t >= 5 && $reacteur_f >= 4) { - $n=($reacteur_ff-1); - $metal -= ceil(pow(2,$n)*5000); - $cristal -= ceil(pow(2,$n)*4000); - $hydrogene -= ceil(pow(2,$n)*1500); - $temps_tec = ceil((2400*2*($reacteur_ff+1))/pow(1.25,($labo-6))); - $tec = 8; - } - elseif ($_GET['tec'] == 9 && $labo >= 1) { - $n=($medecine-1); - $metal -= ceil(pow(2,$n)*800); - $cristal -= ceil(pow(2,$n)*1000); - $temps_tec = ceil((360*2*($medecine+1))/pow(1.25,($labo-1))); - $tec = 9; - } - elseif ($_GET['tec'] == 10 && $labo >= 3) { - $n=($tactique-1); - $metal -= ceil(pow(2,$n)*2600); - $cristal -= ceil(pow(2,$n)*2600); - $temps_tec = ceil((4410*2*($tactique+1))/pow(1.25,($labo-3))); - $tec = 10; - } - elseif ($_GET['tec'] == 11 && $labo >= 8 && $medecine >= 5 && $informatique >= 8) { - $n=($spartan-1); - $metal -= ceil(pow(3,$n)*5200); - $cristal -= ceil(pow(3,$n)*4250); - $hydrogene -= ceil(pow(3,$n)*850); - $temps_tec = ceil((5000*2*($spartan+1))/pow(1.25,($labo-8))); - $tec = 11; - } -} - -if (isset($tec) && $tec != '' && (!empty($technolo[$tec-1]) || $tec == 'e')) { - if ($metal >= 0 && $cristal >= 0 && $hydrogene >= 0) { - $tec = implode(' ',$fileTec).' '.$tec.' '; - if ((count($fileTemps_t) == 0 || count($fileTemps_t) == 1) && isset($_GET['act']) && $_GET['act'] == 'e' && isset($_GET['temps_tec'])) $temps_tec = $_GET['temps_tec'].' '.$temps_tec.' '; - elseif (count($fileTemps_t) == 0 || count($fileTemps_t) == 1) $temps_tec = time().' '.$temps_tec.' '; - else $temps_tec = implode(' ',$fileTemps_t).' '.$temps_tec.''; - mysql_query("UPDATE planete SET metal='$metal', cristal='$cristal', hydrogene='$hydrogene' WHERE id_user='$id' AND galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - if (isset($_GET['act']) && $_GET['act'] == 'e') { $tec .= 'e'; mysql_query("UPDATE user SET temps_t='$temps_tec', tec='$tec' WHERE id='$id'"); } - else mysql_query("UPDATE user SET temps_t='$temps_tec', tec='$tec' WHERE id='$id'"); - } -} -mysql_close(); -if (isset($_GET['go']) && $_GET['go'] == 1) header('Location: laboratoire.php?err=2'); -else header('Location: laboratoire.php'); -?> \ No newline at end of file diff --git a/pages/nn/envoyer_message.php b/pages/nn/envoyer_message.php deleted file mode 100644 index d6a0686..0000000 --- a/pages/nn/envoyer_message.php +++ /dev/null @@ -1,32 +0,0 @@ -set_filenames(array('mp_env' => 'mp_env.tpl')); - -if (isset($_GET['pseudo'])) $p=$_GET['pseudo']; else $p=''; -if (isset($_GET['ok'])) $_GET['ok']=1; else $_GET['ok']=0; -if (!isset($_GET['err'])) $_GET['err']=0; - -if (isset($_POST)) { - if (isset($_POST['message_destinataire']) && $_POST['message_destinataire'] != '') { - $resultat = mysql_query("SELECT pseudo FROM user WHERE pseudo='".mysql_real_escape_string($_POST['message_destinataire'])."'"); // on vérifie l'existance - if(mysql_num_rows($resultat)>=1) { // si c'est bon on passe a la suite - if (isset($_POST['sujet_message']) && $_POST['sujet_message'] !='' ) { mysql_query("INSERT INTO mail VALUES('', '1', '".mysql_real_escape_string(htmlspecialchars($_POST['message_destinataire']))."', '".mysql_real_escape_string($pseudo)."', '".mysql_real_escape_string(htmlspecialchars($_POST['sujet_message']))."', '".mysql_real_escape_string(htmlspecialchars($_POST['message']))."', '".$temps."')"); header('Location: envoyer_message.php?ok=1'); exit; } - else $_GET['err'] = 3; - } - else $_GET['err'] = 4; - } - elseif (isset($_POST['message_destinataire'])) $_GET['err'] = 2; -} - -if ($_GET['ok'] == 1) $ERREUR = 'Message envoyé'; -elseif ($_GET['err'] == 4) $ERREUR = 'Ce joueur n\'existe pas'; -elseif ($_GET['err'] == 2) $ERREUR = 'Votre message n\'a pas de contenu'; -elseif ($_GET['err'] == 3) $ERREUR = 'Précisez le sujet du message'; - -$template->assign_vars( array('PUB' => $PUB, 'ERREUR' => $ERREUR, 'PSEUDO' => $p)); - -$template->pparse('mp_env'); -?> \ No newline at end of file diff --git a/pages/nn/flotte_dep.php b/pages/nn/flotte_dep.php deleted file mode 100644 index 0c1ac52..0000000 --- a/pages/nn/flotte_dep.php +++ /dev/null @@ -1,379 +0,0 @@ -= $resultat['start_time'] + $resultat['end_time'] && !empty($resultat['end_time'])) { - - //Mission attaquer - if ($mission == 1) { - $reqd = mysql_query("SELECT * FROM planete WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - $resultatd = mysql_fetch_array($reqd); - - $ATvais = ''; $ENvais = ''; $ENdef = ''; $ATvais_pv = ''; $ENvais_pv = ''; $ENdef_pv = ''; - for ($i = 1; $i <= 12; $i++) { - for ($j = 1; $j <= $resultat['vaisseau_'.$i]; $j++) { $ATvais .= $i.' '; $ATvais_pv .= $nomvais_pv[$i-1].' '; } - for ($j = 1; $j <= $resultatd['vaisseau_'.$i]; $j++) { $ENvais .= $i.' '; $ENvais_pv .= $nomvais_pv[$i-1].' '; } - } - - for ($i = 1; $i <= 5; $i++) { - for ($j = 1; $j <= $resultatd['def_'.$i]; $j++) { $ENdef .= $i.' '; $ENdef_pv .= $defense_pv[$i-1].' '; } - } - - print 'ATvais : '.$ATvais.' ;
    ENvais : '.$ENvais.' ;
    ENdef : '.$ENdef.' ;
    ATvais_pv : '.$ATvais_pv.' ;
    ENvais_pv : '.$ENvais_pv.' ;
    ENdef_pv : '.$ENdef_pv.'

    '; - - $ATvais = split(' ', trim($ATvais)); $ENvais = split(' ', trim($ENvais)); $ENdef = split(' ', trim($ENdef)); $ATvais_pv = split(' ', trim($ATvais_pv)); $ENvais_pv = split(' ', trim($ENvais_pv)); $ENdef_pv = split(' ', trim($ENdef_pv)); - - while(resteVaisseau($ATvais) && (resteVaisseau($ENvais) || resteVaisseau($ENdef))) { -// print '
    PASSAGE AU ATTAQUANT'; - for ($i = 0; $i < count($ATvais); $i++) { - //Définition des paramètres du vaisseau qui va attaquer - $vaisAT_id = $i; - $vaisAT_type = $ATvais[$vaisAT_id] - 1; - $vaisAT_pv = $ATvais_pv[$vaisAT_id]; - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - $vaisAT_at = $nomvais_at[$vaisAT_type]; - -// print '
    Vaisseau attaquant : '.$vaisAT_id.'
    Type : '.$ATvais[$vaisAT_id].'
    PV : '.$ATvais_pv[$vaisAT_id].'
    Bouclier : '.$nomvais_bc[$vaisAT_type].'
    Attaque : '.$nomvais_at[$vaisAT_type].'
    '; - - while($vaisAT_at > 0 && (resteVaisseau($ENvais) || resteVaisseau($ENdef)) && $vaisAT_pv > 0) { - $ENnbvais = count($ENvais)+count($ENdef)-1; - $vaisEN_id = rand(0,$ENnbvais); //Sélection du vaisseau qui va être attaqué -// print '
    $ENnbvais : '.$ENnbvais.' ; $vaisEN_id : '.$vaisEN_id; - - if ($vaisEN_id < count($ENvais)) { - $vaisEN_type = $ENvais[$vaisEN_id] - 1; - $vaisEN_pv = $ENvais_pv[$vaisEN_id]; - $vaisEN_bc = $nomvais_bc[$vaisEN_type]; - - if ($ENvais_pv[$vaisEN_id] <= 0) continue; - -// print '
    Vaisseau attaquant : '.$vaisAT_id.'
    Type : '.$ATvais[$vaisAT_id].'
    PV : '.$ATvais_pv[$vaisAT_id].'
    Bouclier : '.$nomvais_bc[$vaisAT_type].'
    Attaque : '.$vaisAT_at.'
    '; -// print '
    Vaisseau attaqué : '.$vaisEN_id.'/'.$ENnbvais.'
    '; - - $vaisAT_rf = $nomvais_rf[$vaisAT_type][$vaisEN_type]; //Recherche du rapide fire pour le vaisseau attaqué - -// print 'Type : '.$ENvais[$vaisEN_id].' : '.$nomvaisn[$vaisEN_type].'
    PV : '.$ENvais_pv[$vaisEN_id].'
    Bouclier : '.$nomvais_bc[$vaisEN_type].'
    Attaque : '.$nomvais_at[$vaisEN_type].'
    '; -// print 'rf :'.$vaisAT_rf.'
    '; - - if ($vaisEN_pv + $vaisEN_bc <= $vaisAT_at) { - $ENvais[$vaisEN_id] = ''; - $ENvais_pv[$vaisEN_id] = 0; -// print $vaisAT_at; - $vaisAT_at -= $vaisEN_pv + $vaisEN_bc; -// print ' : '.$vaisAT_at.'
    vaisEN_pv : '.$vaisEN_pv.' ; vaisEN_pv[] : '.$ENvais_pv[$vaisEN_id].' ; vaisEN_bc : '.$vaisEN_bc.'
    Vaisseau détruit
    '; - $deb_met += $nomvais_md[$vaisEN_type]; - $deb_cri += $nomvais_cd[$vaisEN_type]; - } - else { - $atarr = $vaisEN_bc - $vaisAT_at; - if ($atarr < 0) $ENvais_pv[$vaisEN_id] += $atarr; -// print $vaisAT_at; - $vaisAT_at -= $vaisEN_pv + $vaisEN_bc; -// print ' : '.$vaisAT_at.'
    vaisEN_pv : '.$vaisEN_pv.' ; vaisEN_pv[] : '.$ENvais_pv[$vaisEN_id].' ; vaisEN_bc : '.$atarr.'
    Vaisseau endommagé
    '; - } - } - //Attaque d'une défense - else { - print 'Script défense'; - print '
    $vaisEN_id : '.$vaisEN_id.' ; count($ENvais) : '.count($ENvais); - $defEN_id = $vaisEN_id-count($ENvais); -// print ' ; $defEN_id : '.$defEN_id; - $defEN_type = $ENdef[$defEN_id]; - $defEN_pv = $ENdef_pv[$defEN_id]; - $defEN_bc = $defense_bc[$defEN_type-1]; - - if ($defEN_pv <= 0) continue; - -// print '
    Vaisseau attaquant : '.$vaisAT_id.'
    Type : '.$ATvais[$vaisAT_id].'
    PV : '.$ATvais_pv[$vaisAT_id].'
    Bouclier : '.$nomvais_bc[$vaisAT_type].'
    Attaque : '.$vaisAT_at.'
    '; -// print '
    DEFENSE attaquée : '.$vaisEN_id.':'.$defEN_id.'/'.$ENnbvais.'
    '; - - $vaisAT_rf = $nomvais_rfD[$vaisAT_type][$defEN_type-1]; //Recherche du rapide fire pour le vaisseau attaqué - -// print 'Type : '.$defEN_type.'
    PV : '.$ENdef_pv[$defEN_id].'
    Bouclier : '.$defense_bc[$defEN_type-1].'
    Attaque : '.$defense_at[$defEN_type-1].'
    '; -// print 'rf :'.$vaisAT_rf.'
    '; - - if ($defEN_pv + $defEN_bc <= $vaisAT_at) { - $ENdef[$defEN_id] = ''; - $ENdef_pv[$defEN_id] = 0; - $vaisAT_at -= $defEN_pv + $defEN_bc; - } - else { - $atarr = $defEN_bc - $vaisAT_at; - if ($atarr < 0) $ENdef_pv[$defEN_id] += $atarr; -// print $vaisAT_at; - $vaisAT_at -= $defEN_pv + $defEN_bc; -// print ' : '.$vaisAT_at.'
    vaisEN_pv : '.$defEN_pv.' ; vaisEN_pv[] : '.$ENdef_pv[$defEN_id].' ; vaisEN_bc : '.$atarr.'
    DEFENSE endommagée
    '; - } -// //Condition de débogage -// if ($vaisAT_at <= 0) print 'Plus d\'attaque disponible, passage au vaisseau attaquant suivant
    '; -// else print 'Attaque restante, passage au vaisseau attaqué suivant
    '; - } - } - } - print '
    PASSAGE AU DEFENSEUR'; - $comp = count($ENvais) /*+ count($ENdef)*/; - for ($i = 0; $i < $comp; $i++) { - //Définition des paramètres du vaisseau qui va attaquer - $vaisEN_id = $i; - $vaisEN_type = $ENvais[$vaisEN_id] - 1; - $vaisEN_pv = $ENvais_pv[$vaisEN_id]; - $vaisEN_bc = $nomvais_bc[$vaisEN_type]; - $vaisEN_at = $nomvais_at[$vaisEN_type]; - - print '
    Vaisseau attaquant : '.$vaisEN_id.'
    Type : '.$ENvais[$vaisEN_id].'
    PV : '.$ENvais_pv[$vaisEN_id].'
    Bouclier : '.$nomvais_bc[$vaisEN_type].'
    Attaque : '.$nomvais_at[$vaisEN_type].'
    '; - - while($vaisEN_at > 0 && resteVaisseau($ATvais) && $vaisEN_pv > 0) { - $ATnbvais = count($ATvais)-1; - $vaisAT_id = rand(0,$ATnbvais); //Sélection du vaisseau qui va être attaqué - - $vaisAT_type = $ATvais[$vaisAT_id]; - $vaisAT_pv = $ATvais_pv[$vaisAT_id]; - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - -// print_r($ATvais); -// print '
    '; -// print_r($ATvais_pv); -// print 'ID : '.$vaisAT_id.' ; VV : '.$ATvais_pv[$vaisAT_id].'
    '; - - if ($ATvais_pv[$vaisAT_id] <= 0) continue; - -// print '
    Vaisseau attaquant : '.$vaisEN_id.'
    Type : '.$ENvais[$vaisEN_id].'
    PV : '.$ENvais_pv[$vaisEN_id].'
    Bouclier : '.$nomvais_bc[$vaisEN_type].'
    Attaque : '.$vaisEN_at.'
    '; -// print '
    Vaisseau attaqué : '.$vaisAT_id.'/'.$ATnbvais.'
    '; - - $vaisEN_rf = $nomvais_rf[$vaisEN_type][$vaisAT_type]; //Recherche du rapide fire pour le vaisseau attaqué - -// print 'Type : '.$ATvais[$vaisAT_id].'
    PV : '.$ATvais_pv[$vaisAT_id].'
    Bouclier : '.$nomvais_bc[$vaisAT_type].'
    Attaque : '.$nomvais_at[$vaisAT_type].'
    '; -// print 'rf :'.$vaisEN_rf.'
    '; - - if ($vaisAT_pv + $vaisAT_bc <= $vaisEN_at) { - $ATvais[$vaisAT_id] = ''; - $ATvais_pv[$vaisAT_id] = 0; -// print $vaisEN_at; - $vaisEN_at -= $vaisAT_pv + $vaisAT_bc; -// print ' : '.$vaisEN_at.'
    vaisAT_pv : '.$vaisAT_pv.' ; vaisAT_pv[] : '.$ATvais_pv[$vaisAT_id].' ; vaisAT_bc : '.$vaisAT_bc.'
    Vaisseau détruit
    '; - $deb_met += $nomvais_md[$vaisAT_type]; - $deb_cri += $nomvais_cd[$vaisAT_type]; - } - else { - $atarr = $vaisAT_bc - $vaisEN_at; - if ($atarr < 0) $ATvais_pv[$vaisAT_id] += $atarr; - $vaisEN_at -= $vaisAT_pv + $vaisAT_bc; - } -// //Condition de débogage -// if ($vaisEN_at <= 0) print 'Plus d\'attaque disponible, passage au vaisseau attaquant suivant
    '; -// else print 'Attaque restante, passage au vaisseau attaqué suivant
    '; - } - } - //Attaque des défenses - $comp = count($ENdef); - for ($i = 0; $i < $comp; $i++) { - //Définition des paramètres de la défense qui va attaquer - $defEN_id = $i; - $defEN_type = $ENdef[$defEN_id]; - $defEN_pv = $ENvais_pv[$defEN_id]; - $defEN_bc = $defense_bc[$defEN_type - 1]; - $defEN_at = $defense_at[$defEN_type - 1]; - -// print '
    Défense attaquante : '.$defEN_id.'
    Type : '.$defEN_type.'
    PV : '.$defEN_pv.'
    Bouclier : '.$defEN_bc.'
    Attaque : '.$defEN_at.'
    '; - - while($vaisEN_at > 0 && (resteVaisseau($ATvais) || resteVaisseau($ATdef)) && $vaisEN_pv > 0) { - $ATnbvais = count($ATvais)-1; - $vaisAT_id = rand(0,count($ATvais)); //Sélection du vaisseau qui va être attaqué - - $vaisAT_type = $ATvais[$vaisAT_id]; - $vaisAT_pv = $ATvais_pv[$vaisAT_id]; - $vaisAT_bc = $nomvais_bc[$vaisAT_type]; - - if ($vaisAT_pv <= 0) continue; - -// print '
    DEFENSE attaquante : '.$defEN_id.'
    Type : '.$defEN_type.'
    PV : '.$defEN_pv.'
    Bouclier : '.$defEN_bc.'
    Attaque : '.$defEN_at.'
    '; -// print '
    Vaisseau attaqué : '.$vaisAT_id.'/'.$ATnbvais.'
    '; - - $defEN_rf = $defense_rf[$defEN_type - 1][$vaisAT_type]; //Recherche du rapide fire pour le vaisseau attaqué - -// print 'Type : '.$ATvais[$vaisAT_id].'
    PV : '.$ATvais_pv[$vaisAT_id].'
    Bouclier : '.$nomvais_bc[$vaisAT_type].'
    Attaque : '.$nomvais_at[$vaisAT_type].'
    '; -// print 'rf :'.$defEN_rf.'
    '; - - if ($vaisAT_pv + $vaisAT_bc <= $defEN_at) { - $ATvais[$vaisAT_id] = ''; - $ATvais_pv[$vaisAT_id] = 0; - $defEN_at -= $vaisAT_pv + $vaisAT_bc; - $deb_met += $nomvais_md[$vaisAT_type]; - $deb_cri += $nomvais_cd[$vaisAT_type]; - } - else { - $atarr = $vaisAT_bc - $vaisEN_at; - if ($atarr < 0) $ATvais_pv[$vaisAT_id] += $atarr; - $defEN_at -= $vaisAT_pv + $vaisAT_bc; - } -// //Condition de débogage -// if ($defEN_at <= 0) print 'Plus d\'attaque disponible, passage à la défense attaquante suivante
    '; -// else print 'Attaque restante, passage au vaisseau attaqué suivant
    '; - } - } - - $message = 'L\'attaque que vous avez lancé contre la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.' s\'est terminée.'; - $pseudo = trouvNom($resultat['id_user']); - $temps = $resultat['start_time'] + $resultat['end_time']; - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')"); - $message = 'Vous venez de subir une attaque sur la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.''; - $pseudo = trouvNom($resultatd['id_user']); - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')"); - } - $ATvaisseaux = array_count_values($ATvais); - $ATvaisseau_1 = $ATvaisseaux['1']; $ATvaisseau_2 = $ATvaisseaux['2']; $ATvaisseau_3 = $ATvaisseaux['3']; $ATvaisseau_4 = $ATvaisseaux['4']; $ATvaisseau_5 = $ATvaisseaux['5']; $ATvaisseau_6 = $ATvaisseaux['6']; $ATvaisseau_7 = $ATvaisseaux['7']; $ATvaisseau_8 = $ATvaisseaux['8']; $ATvaisseau_9 = $ATvaisseaux['9']; $ATvaisseau_10 = $ATvaisseaux['10']; $ATvaisseau_11 = $ATvaisseaux['11']; $ATvaisseau_12 = $ATvaisseaux['12']; - $AT_nbvais = $ATvaisseau_1 + $ATvaisseau_2 + $ATvaisseau_3 + $ATvaisseau_4 + $ATvaisseau_5 + $ATvaisseau_6 + $ATvaisseau_7 + $ATvaisseau_8 + $ATvaisseau_9 + $ATvaisseau_10 + $ATvaisseau_11 + $ATvaisseau_12; - $contenu_max = $nomvais_rs[0]*$ATvaisseau_1 + $nomvais_rs[1]*$ATvaisseau_2 + $nomvais_rs[2]*$ATvaisseau_3 + $nomvais_rs[3]*$ATvaisseau_4 + $nomvais_rs[4]*$ATvaisseau_5 + $nomvais_rs[5]*$ATvaisseau_6 + $nomvais_rs[6]*$ATvaisseau_7 + $nomvais_rs[7]*$ATvaisseau_8 + $nomvais_rs[8]*$ATvaisseau_9 + $nomvais_rs[9]*$ATvaisseau_10 + $nomvais_rs[10]*$ATvaisseau_11 + $nomvais_rs[11]*$ATvaisseau_12; - $ENvaisseaux = array_count_values($ENvais); - $ENvaisseau_1 = $ENvaisseaux['1']; $ENvaisseau_2 = $ENvaisseaux['2']; $ENvaisseau_3 = $ENvaisseaux['3']; $ENvaisseau_4 = $ENvaisseaux['4']; $ENvaisseau_5 = $ENvaisseaux['5']; $ENvaisseau_6 = $ENvaisseaux['6']; $ENvaisseau_7 = $ENvaisseaux['7']; $ENvaisseau_8 = $ENvaisseaux['8']; $ENvaisseau_9 = $ENvaisseaux['9']; $ENvaisseau_10 = $ENvaisseaux['10']; $ENvaisseau_11 = $ENvaisseaux['11']; $ENvaisseau_12 = $ENvaisseaux['12']; - $ENdefenses = array_count_values($ENdef); - $ENdefense_1 = $ENdefenses['1']; $ENdefense_2 = $ENdefenses['2']; $ENdefense_3 = $ENdefenses['3']; $ENdefense_4 = $ENdefenses['4']; $ENdefense_5 = $ENdefenses['5']; - if (!resteVaisseau($ATvais)) mysql_query("DELETE FROM `flottes` WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - else { - $pillage = pillage($resultatd['metal'], $resultatd['cristal'], $resultatd['hydrogene'], $contenu_max-$resultat['contenu_metal']-$resultat['contenu_cristal']-$resultat['contenu_hydrogene']); - $Cmetal = $resultat['contenu_metal'] + $pillage[0]; - $Ccristal = $resultat['contenu_cristal'] + $pillage[1]; - $Chydrogene = $resultat['contenu_hydrogene'] + $pillage[2]; - mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal', `contenu_hydrogene` = '$Chydrogene', `nb_vais` = '$AT_nbvais', `vaisseau_1` = '$ATvaisseau_1', `vaisseau_2` = '$ATvaisseau_2', `vaisseau_3` = '$ATvaisseau_3', `vaisseau_4` = '$ATvaisseau_4', `vaisseau_5` = '$ATvaisseau_5', `vaisseau_6` = '$ATvaisseau_6', `vaisseau_7` = '$ATvaisseau_7', `vaisseau_8` = '$ATvaisseau_8', `vaisseau_9` = '$ATvaisseau_9', `vaisseau_10` = '$ATvaisseau_10', `vaisseau_11` = '$ATvaisseau_11', `vaisseau_12` = '$ATvaisseau_12' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - } - mysql_query("UPDATE `planete` SET `debris_met` = '$deb_met', `debris_cri` = '$deb_cri', `vaisseau_1` = '$ENvaisseau_1', `vaisseau_2` = '$ENvaisseau_2', `vaisseau_3` = '$ENvaisseau_3', `vaisseau_4` = '$ENvaisseau_4', `vaisseau_5` = '$ENvaisseau_5', `vaisseau_6` = '$ENvaisseau_6', `vaisseau_7` = '$ENvaisseau_7', `vaisseau_8` = '$ENvaisseau_8', `vaisseau_9` = '$ENvaisseau_9', `vaisseau_10` = '$ENvaisseau_10', `vaisseau_11` = '$ENvaisseau_11', `vaisseau_12` = '$ENvaisseau_12', `def_1` = '$ENdefense_1', `def_2` = '$ENdefense_2', `def_3` = '$ENdefense_3', `def_4` = '$ENdefense_4', `def_5` = '$ENdefense_5' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - } - //Mission Transporter - elseif ($mission == 2) { - $reqT = mysql_query("SELECT metal,cristal,hydrogene FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - $resultatT = mysql_fetch_array($reqT); - $Cmetal = $resultat['contenu_metal'] + $resultatT['metal']; - $Ccristal = $resultat['contenu_cristal'] + $resultatT['cristal']; - $Chydrogene = $resultat['contenu_hydrogene'] + $resultatT['hydrogene']; - mysql_query("UPDATE `planete` SET `metal` = '$Cmetal', `cristal` = '$Ccristal', `hydrogene` = '$Chydrogene' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '0', `contenu_cristal` = '0', `contenu_hydrogene` = '0' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - - $message = 'Vos vaisseaux ont déposés '.$resultat['contenu_metal'].' de métal, '.$resultat['contenu_cristal'].' de cristal et '.$resultat['contenu_hydrogene'].' d\'hydrogène aux coordonnées '.$end_galaxie.':'.$end_ss.':'.$end_position; - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Transport', '$message', '$temps')"); - } - //Mission Coloniser - elseif ($mission == 3) { - $reqT = mysql_query("SELECT * FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - if (!mysql_num_rows($reqT) > 0) { - $time = time(); - $temps = time(); - $cases = mt_rand(125,222); - $image = mt_rand(1,15); - $reqIsol = mysql_query("SELECT * FROM planete WHERE id_user='$id'"); - if (mysql_num_rows($reqIsol) >= 11) $isolement = time() + rand(9000,170000); - else $isolement = 0; - mysql_query("INSERT INTO planete (`id_user`, `isolement`, `nom_planete`, `galaxie`, `ss`, `position`, `image`, `cases`, `timestamp`, `metal`, `cristal`) VALUES ('$id', '$isolement', 'Planète colonisée', '$end_galaxie', '$end_ss', '$end_position', '$image', '$cases', '$time', '1000', '700')") or die ("erreur sql ".mysql_error()); - mysql_query("UPDATE `flottes` SET `effectue` = '1', `vaisseau_3` = '0' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - - $message = 'Votre vaisseau a atteint la planète ['.$end_galaxie.':'.$end_ss.':'.$end_position.'] et commence la colonisation'; - $pseudo = trouvNom($resultat['id_user']); - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Colonisation', '$message', '$temps')") or die ("erreur sql ".mysql_error()); - - $reqP = mysql_query("SELECT * FROM `planete` WHERE `id_user` = '$id'") or die ("erreur sql ".mysql_error()); - $reqPM = mysql_query("SELECT `planeteMere` FROM `user` WHERE `id` = '$id'") or die ("erreur sql ".mysql_error()); - $resultatPM = mysql_fetch_array($reqPM); - $c=0; - for ($m=0 ; $m 0) { - $resultatT = mysql_fetch_array($reqT); - $resultat['contenu_max'] -= vais_conso($resultat['end_time'],count($resultat['nbvais'])) + $resultat['contenu_metal'] + $resultat['contenu_cristal'] + $resultat['contenu_hydrogene']; - - $debris_met = $resultatT['debris_met']; - $debris_cri = $resultatT['debris_cri']; - if ($debris_met+$debris_cri > $resultat['contenu_max']) { - $a=pow($capacite/2); - $b=pow($capacite/2); - if ($a > $debris_met && $b > $debris_cri) { - $a = $debris_met; - $b = $debris_cri; - } - else if ($a > $debris_met) { - $a = $debris_met; - $b = ($capacite - $a); - } - else if ($b > $debris_cri) { - $b = $debris_cri; - $a = ($capacite - $b); - } - } - else { - $a = $debris_met; - $b = $debris_cri; - } - $Cmetal += $a + $resultat['contenu_metal']; - $Ccristal += $b + $resultat['contenu_cristal']; - $debris_met -= $a; - $debris_cri -= $b; - - mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error()); - mysql_query("UPDATE `planete` SET `debris_met` = '$debris_met', `debris_cri` = '$debris_cri' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error()); - - $message = 'Vos vaisseaux récoltent '.$a.' de métal et '.$b.' de cristal aux coordonnées '.$end_galaxie.':'.$end_ss.':'.$end_position; - $pseudo = trouvNom($resultat['id_user']); - mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Transport', '$message', '$temps')") or die ("erreur sql ".mysql_error()); - } - } - } - if (time() >= $resultat['start_time'] + $resultat['end_time'] * 2 && !empty($resultat['end_time']) && $resultat['mission'] != 0) { - $start_galaxie = $resultat['start_galaxie']; - $start_ss = $resultat['start_ss']; - $start_position = $resultat['start_position']; - $id_flotte = $resultat['id']; - $reqP = mysql_query("SELECT * FROM planete WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'") or die ("erreur sql ".mysql_error()); - $resultatP = mysql_fetch_array($reqP); - $metal = $resultat['contenu_metal'] + $resultatP['metal']; - $cristal = $resultat['contenu_cristal'] + $resultatP['cristal']; - $hydrogene = $resultat['contenu_hydrogene'] + $resultatP['hydrogene']; - for($i = 1; $i <= 12; $i++) { - ${'Pvaisseaux_'.$i} = $resultatP['vaisseau_'.$i] + $resultat['vaisseau_'.$i]; - mysql_query("UPDATE `planete` SET `vaisseau_$i` = '${'Pvaisseaux_'.$i}' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - } - mysql_query("UPDATE `planete` SET `metal` = '$metal', `cristal` = '$cristal', `hydrogene` = '$hydrogene' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'"); - mysql_query("DELETE FROM `flottes` WHERE `id_user` = '$id' AND `id` = '$id_flotte'"); - } -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/nn/i.php b/pages/nn/i.php deleted file mode 100644 index 342e759..0000000 --- a/pages/nn/i.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -Hello ! -Test - - - \ No newline at end of file diff --git a/pages/nn/lire_message.php b/pages/nn/lire_message.php deleted file mode 100644 index f74dcf8..0000000 --- a/pages/nn/lire_message.php +++ /dev/null @@ -1,60 +0,0 @@ - - - -Halo Battle - - - - - - 25) $t = 25; else $t = $nbre_non['nbre']; - -echo "
    Ecrire un message

    "; -if ($nbre_non['nbre'] >0) { -echo "
    -"; -for ($i=0;$i<$t;$i++) { - -$x = mysql_query("SELECT id, vu, expediteur, sujet, temps, contenu FROM mail WHERE destinataire='$pseudo' OR destinataire='$id' ORDER BY id DESC LIMIT $i,25") or die ("erreur sql ".mysql_error()); -$donnees = mysql_fetch_array($x); - -mysql_query("UPDATE mail SET vu='0' WHERE id='".$donnees['id']."'") or die(mysql_error()); - -echo " - - - - -"; -} -echo "
    ActionDateExpéditeurObjet
    "; convert_ts_fr($donnees['temps']); echo"".$donnees['expediteur']." ".$donnees['sujet']."
    ".bbcode($donnees['contenu'])."
    "; } -else echo '
    Aucun message
    '; - -?> - - \ No newline at end of file diff --git a/pages/nn/logout.php b/pages/nn/logout.php deleted file mode 100644 index 26d9062..0000000 --- a/pages/nn/logout.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/pages/nn/message.php b/pages/nn/message.php deleted file mode 100644 index cec62dd..0000000 --- a/pages/nn/message.php +++ /dev/null @@ -1,44 +0,0 @@ -=1) { // si c'est bon on passe a la suite - if (isset($_POST['sujet_message']) && $_POST['sujet_message'] !='' ) { - $message_destinataire = mysql_real_escape_string(htmlspecialchars($_POST['message_destinataire'])); - $sujet_message = mysql_real_escape_string(htmlspecialchars($_POST['sujet_message'])); - $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); - mysql_query("INSERT INTO mail VALUES('', '1', '$message_destinataire', '$pseudodes', '$sujet_message', '$message', '$temps')") or die ("erreur sql ".mysql_error()); - } - else { - header("Location: envoyer_message.php?err=3"); - exit; - } - } - else { - header("Location: envoyer_message.php?err=2"); - exit; - } - } - else { - header("Location: envoyer_message.php?err=4"); - exit; - } -mysql_close(); -@header("Location: envoyer_message.php?ok=1"); -?> \ No newline at end of file diff --git a/pages/nn/noms-1.php b/pages/nn/noms-1.php deleted file mode 100644 index 4150a43..0000000 --- a/pages/nn/noms-1.php +++ /dev/null @@ -1,262 +0,0 @@ -Malheureusement, un manque d\'espace empêche l\'installation de générateur énergétique plus puissant qui pourrait supporter des boucliers standards ou même de faible intensité.', - 'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de débarquement « Spirit ». Il possède trois tourelles plasma particulièrement puissantes et peut laisser tomber ses occupants à terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus résistant que son prédécesseur, une puissance de feu accrue et peut transporter tout type d’équipage comme des hunters.
    Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut éliminer un bon nombre de marines.', - '~#DESCRIPTION MANQUANTE#~ Boarding craft', - 'Le ghost est un véhicule de reconnaissance et d\'attaque rapide déployée par les Covenants dans tout combat terrestre. Cet engin, très souvent piloté par les Elites, est très maniable. Il est capable de tirer des doubles décharges de plasma surchauffées d\'une puissance de 100-250 kW. Le ghost peut également effectuer des pointes de vitesse soutenues.', - 'Le Shadow est le principal moyen de transport terrestre des troupes covenantes. Ce véhicule peut accueillir un pilote, un artilleur et jusqu\'à huit passagers en fonction du type de Covenants qui monte à bord. Il est en outre équipé pour transporter des Elites, des Brutes, des Grunts ou des Jackals. Si le Shadow est équipé d\'un canon à plasma, sa vocation reste le déploiement de troupes.', - 'Le Spectre est un transport multi troupes blindé de petite taille. Quoique relativement lent, il est tout à fait maniable et se meut avec aisance dans les espaces confinés. Ses principales faiblesses étant son manque de vitesse et d\'accélération, ses occupants demeurent tout de même relativement exposés. Le canon à plasma monté à l\'arrière représente un grand danger pour l\'ennemi et le véhicule offre par ailleurs diverses positions de tir.', - 'Lent, massif et constituant une cible de taille, ce véhicule n\'en demeure pas moins le blindé covenant le plus destructeur. Ce géant de métal est bien protégé. Le tir de couverture qu\'il peut effectuer grâce à ses mortiers à plasma redoutables en fait un ennemi incroyablement dangereux. Le fait qu\'il soit piloté par une seule personne qui contrôle le véhicule et le système d\'armement limite quelque peu son champ de manoeuvre.', - 'Les tourelles shades sont des canons stationnaires énergétiques covenant composés de deux parties, la première étant une base stable à trois pieds pour la stabilité de l’appareil, la deuxième, un siège où le canon est fixé retenu par un champ gravitationnel artificiel. Ce canon lorsqu’il tire, envoie 3 « éclairs » relativement lents et d’efficacité moyenne.', - 'Cette tourelle est une version améliorée de la shade standard. Dans les modifications de la tourelle, le système d’accélération magnétique a été révisé pour le rendre plus performant, aboutissant à des rayons plus rapides. Également, un bouclier a été ajouté à l’avant, protégeant ainsi l’utilisateur des attaques aux armes à projectiles de petit et moyen calibre pendant une période de quelques secondes lors de feux nourris.', - 'La tourelle à barreau de combustible est une version fixe de ceux des hunters avec un système de visé amélioré et de condensateur ionique permettent de tirer trois rafales à la suite sans surcharger les relais du générateur. De puissance moyenne, elle est capable de détruire facilement des warthogs et autres véhicules légers avec une facilité hors norme.', - 'La tourelle plasma n’a pas besoin de canonnier pour tirer puisque équipée d’un système de visée automatisé, elle utilise une technologie d’intelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauffé à haute vitesse carbonisant tout sur son passage.', - 'Utilisant un principe similaire de la tourelle à plasma, le lanceur de torpilles plasma utilise un condensateur de matière pour condenser le flux de plasma surchauffé en une masse de destruction pure. Ce système est le système de défense terrestre le plus évolué jamais construit. Son défaut majeur reste sa cadence de tire lente, limitant sa défense face à de multiples adversaires.'); - $nomterri = array('bansheeqp0.jpg','spirit1.jpg','phantomfu2.jpg','boardingcraft.jpg','ghostic1.jpg','shadow.jpg','apparition.jpg','shade.jpg','strongshade.jpg','tourellebarreau.jpg','tourelle_plasma.jpg','lanceur_torpilles.jpg'); - } - elseif (md5($race) == '34c19b21bd4a3dda389e767d32fe9779') { - $ressourc = array('Titane','Cristal','Plasma','Puissance'); - $casernen = array('Constructor','Sentinelle Légère','Sentinelle Lourde','Enforcer Léger','Enforcer Lourd','Monitor','~#PAS DE NOM#~ Médecin','~#PAS DE NOM#~ Ingénieur','~#PAS DE NOM#~ Brute'); - $casernde = array( 'Les Constructors sont des minis sentinelles capable d\'effectuer certaine reparation mineur, ils peuvent réparés les sentinelles endommager ainsi que les chasseurs légers.', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Légère', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Lourde', - 'Les Enforcers Léger, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie, mais il semble seulement protéger que l\'avant de la machine. Il est armé de faisceaux laser à impulsion rapides.', - 'Les Enforcers Lourd, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie qui recouvre toute la machine. Il est armé de mortiers.', - 'Les monitors ont été placés sur les mondes-forteresse par les Forerunners pour entretenir et maintenir leurs systèmes, et pour s\'assurer que les Floods reste emprisonné.', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ '); - $casernea = array('constructor(s)','sentinelle(s) légère(s)','sentinelle(s) lourde(s)','enforcer(s) léger(s)','enforcer(s) lourd(s)','monitor(s)','médecin(s)','ingénieur(s)','brute(s)'); - $casernei = array('scoutma3.jpg','sentinellelegerecn4.jpg','nanw9.jpg','defenseurlegerhs8.jpg','defenseurlourdhr3.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info'); - $batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdenergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg',0,'chantierspatialff8.jpg',0,'nanw9.jpg',0); - $batiment = array('Générateur de Titane','Générateur de Cristal','Générateur de Plasma','Générateur d\'Energie',Générateur à Fusion ,Centrale Radar,'Centre de recherches',Chantier terrestre,'Chantier spatial',Caserne,'Entrepôt',Arche); - $batimede = array( 'Le générateur de métal vous fournie les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos générateurs, plus uls vous rapportera. Les générateurs plus développés ont aussi besoin de plus d\'énergie.', - 'Le générateur de cristal vous fourni les ressources pour vos installations électroniques et pour les alliages. Le générateur consomme deux fois plus d\'énergie que celui du métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leur composant électronique. La production augmente avec le développement du générateur ainsi que sa consommation.', - 'L\'hydrogène n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste à faire passer un courant électrique dans de l\'eau pour que les molécules se séparent et forme du dihydrogène. Mais cette technique utilise de trop grande quantitée d\'énergie.', - 'Pour assurer l\'approvisionnement des générateurs, des générateurs énergie géantes sont nécessaires. Plus ces installations sont développées, plus vous obtiendrez d’énergie pour vos générateurs. Les générateurs d\'énergies sont la base de l\'approvisionnement pour votre planète en énergie.', - 0, - 0, - 'Le centre de recherche est nécessaire pour développer de nouvelles technologies. Le niveau du centre détermine la vitesse de la recherche. Chaque planète que vous coloniserez devra être équipée d’un centre de recherche.', - 0, - 'Le chantier spatial vous permet de construire des vaisseaux, de l’infanterie et vos installations de défense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de l’infanterie et la création d’installations de défense est rapide.', - 0, - 'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l’entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d’infrastructure.', - 0); - $technolo = array('Informatique','Detection','Armement','Bouclier','Energie','Réacteur antigravité','Réacteur à fusion T1','Réacteur à fusion T2','Monitor','Coordination Monitor',0); - $technode = array( 'L’informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réactions qui dans les combats peuvent s’avérer fatales.', - 'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « œil des prophètes » qui repèrera les vaisseaux s’approchant de votre planète.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'Le bouclier est un champ de force qui entoure vos vaisseaux et les protège. Ainsi il permet à vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'avérant peut être décisif dans l’issue de la bataille.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et vaisseaux ; vos chercheurs vous permettront également d\'accéder à de nouveaux types d\'énergies, beaucoup plus intéressants.', - 'Les réacteurs à antigravité sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques créant un champ gravitationnel inverse annulant ainsi la gravité présente. Le principe fonctionne également dans l\'espace puisque l\'absence de gravité dans l\'espace, sans compter les étoiles et les autres anomalies spatiales, permet une projection plus puissante du champ.', - 'Après la combustion, voici la fusion. Ce type de réacteur est beaucoup plus puissant que la combustion utilisée depuis déjà des centaines d\'années. Il génère une énergie cinétique de grande envergure. Aucun dirigeant politique désirant voyager dans le cosmos ne pourrait s’en passer.', - 'Les covenants ont découvert d’anciens réacteurs à fusion utilisant la technologie d’hyperpropulsion Forerunner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.', - 'La médecine vous permet d’avoir moins de pertes au combat et ainsi d’avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.'); - $technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg'); - $nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseaux de colo','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('nanw9.jpg','nanw9.jpg','nanw9.jpg',0,'nanw9.jpg','croiseurforrunerns4.jpg','superdestroyerwa6.jpg','nanw9.jpg','chasseurlourdfk8.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $nomvaisn = array('Cargo Classe Ceran','Super-Cargo Aventis','Colonisateur de classe Resin',Sentinelle d'Espionnage,'Recycleur Resing','Croiseur Forruner','Fregate à Ion','Croiseur de classe Centor','Super-Destroyer Ozymendias','Porte-Vaisseaux','Canon Orbitale','Super porte-vaisseaux'); - $nomvaisd = array( '~#DESCRIPTION MANQUANTE#~ Transporteur Leger', - '~#DESCRIPTION MANQUANTE#~ Transporteur Lourd', - '~#DESCRIPTION MANQUANTE#~ Colonisateur', - 0, - '~#DESCRIPTION MANQUANTE#~ Recycleur', - '~#DESCRIPTION MANQUANTE#~ Croiseur Forruner', - '~#DESCRIPTION MANQUANTE#~ Super-Destroyer', - '~#DESCRIPTION MANQUANTE#~ Chasseur Leger', - '~#DESCRIPTION MANQUANTE#~ Chasseur Lourd', - '~#DESCRIPTION MANQUANTE#~ Porte-Vaisseaux', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - '~#DESCRIPTION MANQUANTE#~ Super porte-Vaisseaux'); - $nomterra = array(0,0,0,0,0,0,0,0,'tour(s) à plasma','tour(s) ion','canon(s) Orbital','drone(s)','station(s) de defense'); - $nomterri = array(0,0,0,0,0,0,0,0,'tourplasmasl4.jpg','tourioniquegr6.jpg','nanw9.jpg','nanw9.jpg','stationdedefensent8.jpg'); - $nomterrn = array(0,0,0,0,0,0,0,0,'Tour à Ion','Tour à Plasma','Enforcer Orbitale','Drone','Station de defense'); - $nomterde = array( 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - '~#DESCRIPTION MANQUANTE#~ Tour à plasma', - '~#DESCRIPTION MANQUANTE#~ Tour Ion', - '~#DESCRIPTION MANQUANTE#~ Canon Orbital', - '~#DESCRIPTION MANQUANTE#~ Drone', - '~#DESCRIPTION MANQUANTE#~ Station de defense'); - } - else { - $ressourc = array('Métal','Cristal','Hydrogène','Energie'); - $casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squellette'); - $casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de résistance plutôt médiocre, ils rivalisent avec les unités covenants standard. Ils sont équipés d\'une armure de kevlar renforcée et d\'un MA5B.', - 'Les fusillers sont équipés de fusils d\'assaut avec zoom intégré. Plus puissants que les marines standards, ils peuvent rivaliser avec des escouades entières de grunts dirigées par des élites hauts gradés.', - 'Les grenadiers sont les spécialistes en explosifs du CSNU sur le terrain. Ils peuvent détruire les véhicules légers grâce à leurs grenades et leurs lances missiles.', - 'Les TCAO sont des soldats d\'assauts largués depuis l\'espace directement sur les champs de batailles grâce à des modules spéciaux. Ces soldats sont surentraînés et très chevronnés, risquant leur vie à chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.', - 'Les snipers sont dotés de fusils de précision SA 2M capable de descendre un covenant à plusieurs centaines de mètres grâce à son zoom maximum de 10x. Grande portée de tir mais à courte portée, ils sont inutiles.', - 'Les spartans sont les unités d\'infanterie militaires les plus évoluées militairement du CSNU mais également des Covenants. Ils sont équipés d\'une armure de type Mjolnir améliorant leurs capacités de combat, déjà exceptionnelles grâce à leur entraînement militaire depuis leur plus jeune âge, ainsi qu\'à leurs implants cybernétiques, les rendants d\'une grande efficacité inégalée au sein de l\'infanterie.', - 'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés et ainsi peut être changer l’issue de la bataille.', - 'Les ingénieurs sont là pour réparer vos véhicules endommagés lors des affrontements. Ils peuvent réduire le nombre de vos pertes de véhicules lorsqu\'ils sont bien utilisés.', - 'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.'); - $casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squellette'); - $casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','img_na_ig.jpg'); - $batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique'); - $batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.', - 'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.', - 'Ce bâtiment use de l\'eau pour la décomposer et en extraire l\'hydrogène, la base de toutes vos productions énergétiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.', - 'La centrale solaire produit l’énergie nécessaire au fonctionnement de vos usines. Elle fonctionne à partir d’une technologie Forerunner qui consiste à envoyer un rayon à la verticale pour capter tous les rayons du soleil qui le croise.', - 'La centrale énergétique fonctionne avec un principe assez dépassé. En effet, l’énergie est produite par un réacteur à fusion qui en tournant produit de l’énergie comme le ferait une dynamo. Bien que ce principe fût révolutionnaire à l’époque, il fût rapidement dépassé par la centrale solaire qui permet de produire d’avantage d’énergie.', - 'Base radar', - 'Le centre de recherches est certainement l\'une des bâtisses les plus importantes que vous puissiez construire dans votre colonie. Vos chercheurs travailleront sans relâche aucun afin de mettre au point de nouvelles technologies vous assurant suprématie et victoire sur les champs de bataille. Chaque niveau dévellopé augmente la vitesse de recherche de vos technologies.', - 'Le chantier terrestre vous permet de construire tous les véhicules atmosphérique du type warthog ou scorpion. Il permet ainsi à vos troupes d’accéder plus rapidement à un endroit et d’avoir un avantage avec l’armement de ces véhicules.', - 'Le chantier spatial permet de construire vôtre flotte de vaisseaux spatiaux. Généralement à la limite de l’atmosphère d’une planète il ne peut cependant se déplacer et doit impérativement rester en orbite. Le chantier spatial, bien que ressemblant à une station spatial, ne peut être détruit grâce à sa position qui lui confère un camouflage total.', - 'L\'académie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes expérimentés vous aideront à choisir de meilleures stratégies défensives ou offensives ou encore même économiques face aux différentes situations qui vous seront imposées. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs tâches.', - 'Comme toutes choses, vos ressources ont besoin d\'espace pour être stockées ; c\'est pourquoi ces énormes silos vous seront d\'une aide précieuse afin d\'y renfermer une grande quantité de matières premières pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources supplémentaires.', - 'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.'); - $batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info'); - $batimeni = array('mine_m.png','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','search0yp.jpg','recherches.jpg','chantierterrestrenz5.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','informatique.jpg'); - $technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'énergie','Réacteur à combustion','Réacteur à fusion','Réacteur à fusion de type II','Médecine','Tactiques de combats','Spartan'); - $technode = array( 'Le résultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le résultat d\'années de travail acharné pour pouvoir en arriver à cette grande performance technique. Les IA sont des entités non biologiques dotées du pouvoir de la pensée. Développer cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, créatives et réactives.', - 'Ce système très ancien et usé par bien des militaires est utilisé pour la détection et l\'imagerie d\'objets faisant appel à des impulsions d\'ondes électromagnétiques à haute fréquence et sert à déterminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa précision.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'La résistance de la coque de vos vaisseaux est plus que primordiale si vous tenez à remporter vos batailles, et encore plus avec les armes Covenantes capables de réduire en miettes même les plus résistants des vaisseaux spatiaux. C\'est la raison pour laquelle vos scientifiques, si vous leur en donnez l\'ordre, travailleront avec application à l\'élaboration de nouvelles formules pour créer des alliages métalliques les plus résistants.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations tout simplement. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et les propulseurs de vos vaisseaux.', - 'Le plus simple de tout les réacteurs, aussi vieux que le monde lui-même ! Equipés sur presque tout vos vaisseaux de base, cette technologie, certes basique, vous aidera à explorer l\'univers mais aussi, se trouvant être bien évidemment la base de la propulsion, vous permettra de découvrir de nouvelles techniques de propulsion irrémédiablement toujours plus puissantes et efficaces.', - 'Bien plus efficaces que de simples réacteurs à combustion, la fusion nucléaire est un processus où deux noyaux atomiques s\'assemblent pour former un noyau plus lourd. La fusion de noyaux légers dégage d\'énormes quantités d\'énergie provenant de l\'attraction entre les nucléons due à une forte interaction. Personne ne pourrait se passer de ce type d\'énergie lors de ses voyages dans le cosmos.', - 'Cette technologie basée sur les réacteurs Covenants utilise la force électromagnétique résultant de l\'interaction entre un courant électrique et un champ magnétique pour accélérer un gaz ionisé appelé plasma. Bien plus efficace que tous les moyens de propulsions possibles, cette technologie révolutionnaire, très coûteuse, est un moyen efficace de parcourir de grandes distances en peu de temps.', - 'Depuis l\'aube des temps, chaque être vivant et pensant n\'a jamais cessé de chercher de nouvelles solutions en dévellopant les sciences médicales pour tenter d\'échapper à la mort et aux épidémies qui s\'abbatent sur lui. Seulement, aujourd\'hui, ce ne sont plus les maladies qui importent, mais plutot les blessures de guerre. Plus votre médecine sera éclatante, plus vos hommes de soins connaîtront de choses pour soigner vos blessés.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.', - 'Ces formidables combattants constituent l\'élite de vos forces terrestres. Entraînés au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont également subis plusieurs séries de modifications biologiques afin d\'améliorer leurs capacités physiques.'); - $technoli = array('IA4.jpg','radar7zr.jpg','arme.jpg','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg'); - $nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones d’espionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Frégate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Porte vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( 'Ces cargos de taille conséquente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, très manœuvrables mais peu résistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.', - 'Ces cargos de taille massive permettent le transport d’une énorme quantité de ressources. Ils sont plus résistants que leurs homologues de classe Parabola, mais sont néanmoins les cibles prioritaires des chasseurs ennemis visant à faire le plus de pertes dans le camp adverse.', - '~#DESCRIPTION MANQUANTE#~ Vaisseaux de colonisation de classe Odyssey', - 'Drones extrêmement rapides et manœuvrables permettant la surveillance et l’espionnage des planètes alentours avec un risque moins élevé de repérage qu’avec un vaisseau furtif standard. Ils sont utilisés lors de l’espionnage de planètes ennemies et sont très fragiles, si bien que lorsqu’ils traversent un champ de débris, ils sont réduits en de vulgaires morceaux de métal.', - 'Les guerres sont de plus en plus nombreuses et les pertes de plus en plus grandes laissant à chaque fois des champs de débris immenses limitant les routes des voies commerciales. Des recycleurs ont donc été créés afin de déblayer ces zones et de vous faire profiter de ces ressources gratuites. Lors du voyage de retour, le recycleur transforme les débris pour vous les redonner sous forme de ressources primaires.', - 'Vaisseau orbital et atmosphérique lourd, apte au combat spatial, atmosphérique, et au bombardement lourd sur des positions stratégiques. Ces vaisseaux sont capable de bombarder une vaste position adverse, grâce à leurs bombes au Napalm, mais sont aussi capables de cibler précisément leurs cibles et de les détruire grâce à leurs nombreux missiles air-air air-sol.', - 'Cette classe de vaisseau est la plus répandue dans le CSNU. Ces vaisseaux sont très manœuvrables du fait de leur petite taille, mais sont aussi très faibles, à cause de leur blindage et de leur armement moindre. Ces vaisseaux sont peu coûteux mais également peu efficaces et sont surtout utilisés pour des patrouilles. Ils forment les éléments principaux des différentes flottes du CSNU. ', - 'Ces croiseurs sont des vaisseaux d’attaque, dépassés technologiquement, très peu répandus, très coûteux mais résistants : leur architecture interne leur permet de résister à de nombreux tirs de plasma. Cette architecture complexe à produire et à maintenir en état, en font des vaisseaux extrêmement rares et chers. Ils ont été très récemment remis à neuf et améliorés, avec un tout nouvel armement.', - 'Ces grands vaisseaux (2 fois et demie la longueur d’une frégate), sont des descendants de la lignée des croiseurs Halcyon. Ces vaisseaux ont une très grande puissance de feu (1 CAM lourd), un fort blindage (5 mètres 50 de Titane-A), et sont très rapides. Ils sont assez peu communs, mais restent des vaisseaux d’attaque très redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.', - 'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, d’Albatross, et tout autres types d’unités. Ces vaisseaux leurs permettent de se défendre contre une éventuelle attaque de chasseurs ennemis, mais sont également très lourdement armés. Ils sont usités lors d’attaques massives de planètes nécessitant un fort appui aérien et une très grosse puissance de feu. ', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - 'Ces vaisseaux sont sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacité de transport. Ces vaisseaux sont très peu vus sur le terrain, leur rôle principal est de déployer des Longswords afin de fournir aux vaisseaux alliés un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre d’unités terrestres et aériennes.'); - $nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','drone(s) d\'espionnage de classe Clarion','recycleur(s) de classe Minotaur','C709 Longsword Interceptor','Frégates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','drone_clarion.jpg','img_na_ig.jpg','longsword.jpg','csnufregatedk7.jpg','croiseurclassealcyon130om6.jpg','croiseurclassemarathon1oc0.jpg','csnuportevaisseauxgy3.jpg','station.jpg','.jpg'); - $nomterra = array('sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','mitrailleuse(s) automatique M247 GP','DCA légère(s)','DCA lourde(s)','canon(s) Gauss','lanceur(s) de missiles'); - $nomterrn = array('Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','Mitrailleuse automatique M247 GP','DCA légère','DCA lourde','Canon Gauss','Lanceur de missiles'); - $nomterde = array( 'Véhicule à propulsion verticale permettant des attaques extrêmement rapides et destructrices grâce à ses six tubes lance-missiles, ses deux mitrailleuses légères, et sa mitrailleuse lourde frontale. Ces vaisseaux d’assaut rapide sont de véritables broyeurs de tôle grâce à leurs 6 tubes lance-missiles et sont capables de détruire des véhicules et des positions fortement blindées.', - 'Véhicule aérien de transport léger permettant le transport rapide de troupes à des endroits stratégiques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l’acheminement de troupes et de munitions rapidement.', - 'Vaisseau suborbital très rapide apte tant au combat aérien rapproché qu’au bombardement ciblé. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou aériennes. Ils sont néanmoins capables de combattre en combat aérien rapproché grâce à leurs missiles thermo guidés et sont utilisés lors de bombardements de cibles mineures.', - 'Véhicule aérien de transport lourd permettant le transport en masse de troupes ou de véhicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces véhicules de soutien aérien lourd sont surtout utilisés lors d’offensives nécessitant un déploiement en masse d’unités blindées et de munitions au plus près des lignes adverses.', - 'Véhicule d’attaque léger permettant des assauts rapides et efficaces, ainsi que le transport léger de troupes. Ces véhicules sont la base des véhicules terrestres du CSNU.', - 'Véhicule léger équipé d’un canon à accélération magnétique (CAM), très efficace contre du personnel, des véhicules moyennement blindés, ou bien contre des véhicules aériens légers. Les Warthog M12G1 sont très répandus et surtout utilisés lors d\'offensives sur des cibles disposant d’un appui aérien ou terrestre léger.', - 'Véhicule léger, armé d’un lance-missiles anti-véhicule permettant des assauts rapides contre des véhicules blindés ou contre des positions fortifiées. Ils sont surtout utilisés en cas d’attaques de postes avancés.', - 'Tank blindé anti-véhicules. Permet l’attaque de cibles fortifiées grâce à ses balles perforantes de gros calibre. Ces tanks sont utilisés lors d’assauts massifs sur des bases fortifiées et vitales à l’ennemi.', - 'La mitrailleuse M247 est une arme de calibre moyen envoyant des balles de calibre 30 à une cadence de tir de 6 balles par seconde. Généralement positionnée dans des endroits fixes, cette tourelle, efficace contre l\'infanterie et les véhicules légers de petite taille est de précision moyenne suffisante pour éliminer une menace de quelques soldats covenants.', - 'Les DCA légères sont des canons anti-aérien de puissance moyenne mais de cadence de tir et de calibre de munitions à tête explosive élevée permettant de détruire la plupart des chasseurs légers avec aisance. Ce modèle est équipé d\'un emplacement spécial lui permettant de tirer également sur des cibles au sol.', - 'Les DCA lourdes sont quasi-similaires aux légères mais possèdent tout de même une différence au niveau du calibre des balles qui, plus élevé avec une tête explosif supérieure est comparable à une explosion de mine lotus. Il a en contre partie une capacité de tir plus limitée question cadence et une quantité de munitions moindre dans chaque chargeur.', - 'Le canon gauss est l\'équivalent du Super CAM mais en version miniature tirant des projectiles à haute densité et à grande vitesse sur ses cibles. Il est capable, en outre, de détruire des véhicules à blindage lourd tel des wraith\'s covenants, véritables chars d\'assaut à longue portée. Malheureusement, il est moins efficace contre l\'infanterie dû à sa cadence de tir plutôt faible et sa précision moindre.', - 'Les lance-missiles du CSNU sont équipés de missiles balistiques hautement explosifs capables de réduire aisément en miettes les chars covenants ou les chasseurs Séraphins. Ce lance-missiles, une fois ses salves tirées, nécessite plusieures minutes de réarmement pour être de nouveau opérationnel.'); - $nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg','tourelle_fixe.jpg','dca_legere.jpg','dca_lourde.jpg','tourelle_gauss.jpg','csnulancemissileol5.jpg'); - } - - //Nombre maximal de ressources embarqué - $nomvais_rs = array(5000,25000,7500,10,20000,50,800,1500,3000,10000,0,30000); - - //Coefficient vitesse courte distance : temps pour parcourir un système - $nomvais_dc = array(108,108,108,25,108,108,108,0,0,0,0,0); - //Temps de préparation courte distance : temps de préparation à compter avant tout déplacement - $nomvais_pdc = array(900,900,900,35,900,900,900,0,0,0,0,0); - //Coefficient vitesse longue distance : temps pour parcourir un système - $nomvais_dl = array(0,54,54,0,54,0,54,54,54,54,0,54); - //Temps de préparation longue distance - $nomvais_pdl = array(0,0,0,0,0,0,0,0,0,0,0,0); - //Temps de chauffe - $nomvais_cdl = array(0,20,20,0,20,0,0,20,20,20,0,20); - - //Attaque - $nomvais_at = array(1,1,1,0.1,10,150,500,800,1200,500,1000); - //Coque (pv) - $nomvais_pv = array(20,60,50,10,100,40,250,400,600,1500,600); - //Défense (bouclier) - $nomvais_bc = array(20,60,100,1,100,100,400,500,600,700,400); - //Rapide fire (nombre d'attaque par phase envers un vaisseau) - $nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(40,40,40,40,40,40,1,1,2,1,1,1), - array(10,10,10,10,10,10,30,1,1,2,1,1), - array(30,30,30,30,30,30,1,1,10,2,1,1), - array(20,20,20,20,20,20,2,1,1,1,1,1), - array(80,80,80,80,80,80,25,12,8,4,1,2), - array(100,100,100,100,100,100,20,10,5,2,1,1)); -?> \ No newline at end of file diff --git a/pages/nn/server.php b/pages/nn/server.php deleted file mode 100644 index 141b710..0000000 --- a/pages/nn/server.php +++ /dev/null @@ -1,14 +0,0 @@ - array( -'data' => 'Donnee 1', -'otherData' => array( -'sub1' => 'Donnee 2', -'sub2' => 'Donnee 3' -) -) -); -require_once('../Class/JSON.php'); -$json = new Services_JSON(); -header("X-JSON: " . $json->encode($datas)); -?> \ No newline at end of file diff --git a/pages/nn/validation_def.php b/pages/nn/validation_def.php deleted file mode 100644 index a2dbcea..0000000 --- a/pages/nn/validation_def.php +++ /dev/null @@ -1,113 +0,0 @@ - 0) { - if ($metal - ($sa*500) >= 0) { - if ($cristal - ($sa*200) >= 0) { - $temps_caserne = time() + $sa*ceil(480/pow(1.25,($chantier_terrestre-1))); - $unit = 9; - $metal -= ($sa*500); - $cristal -= ($sa*200); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - header("Location: defense.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_2']) && $sa > 0) { - if ($metal - ($sa*4000) >= 0) { - if ($cristal - ($sa*2000) >= 0) { - $temps_caserne = time() + $sa*ceil(1560/pow(1.25,($chantier_terrestre-3))); - $unit = 10; - $metal -= ($sa*4000); - $cristal -= ($sa*2000); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_3']) && $sa > 0) { - if ($metal - ($sa*4500) >= 0) { - if ($cristal - ($sa*800) >= 0) { - if($hydrogene - ($sa*600) >= 0) { - $temps_caserne = time() + $sa*ceil(1800/pow(1.25,($chantier_terrestre-4))); - $unit = 11; - $metal -= ($sa*4500); - $cristal -= ($sa*800); - $hydrogene -= ($sa*600); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_4']) && $sa > 0) { - if ($metal - ($sa*12000) >= 0) { - if ($cristal - ($sa*10000) >= 0) { - if($hydrogene - ($sa*1000) >= 0) { - $temps_caserne = time() + $sa*ceil(6720/pow(1.25,($chantier_terrestre-4))); - $unit = 12; - $metal -= ($sa*12000); - $cristal -= ($sa*10000); - $hydrogene -= ($sa*1000); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_5']) && $sa > 0) { - if ($metal - ($sa*15000) >= 0) { - if ($cristal - ($sa*9500) >= 0) { - if($hydrogene - ($sa*1500) >= 0) { - $temps_caserne = time() + $sa*ceil(12960/pow(1.25,($chantier_terrestre-8))); - $unit = 13; - $metal -= ($sa*15000); - $cristal -= ($sa*9500); - $hydrogene -= ($sa*1500); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - else header("Location: defense.php"); -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/nn/validation_soldat.php b/pages/nn/validation_soldat.php deleted file mode 100644 index 6f34d4b..0000000 --- a/pages/nn/validation_soldat.php +++ /dev/null @@ -1,162 +0,0 @@ - 0) { - if ($metal - ($sa*80) >= 0) { - if ($cristal - ($sa*45) >= 0) { - $temps_caserne = time() + $sa*ceil(60/pow(1.25,($caserne-1))); - $unit = 1; - $metal -= ($sa*80); - $cristal -= ($sa*45); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'") or die ("erreur sql ".mysql_error()); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat2']) && $sa > 0) { - if ($metal - ($sa*110) >= 0) { - if ($cristal - ($sa*90) >= 0) { - $temps_caserne = time() + $sa*ceil(240/pow(1.25,($caserne-2))); - $unit = 2; - $metal -= ($sa*110); - $cristal -= ($sa*90); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat3']) && $sa > 0) { - if ($metal - ($sa*150) >= 0) { - if ($cristal - ($sa*105) >= 0) { - $temps_caserne = time() + $sa*ceil(240/pow(1.25,($caserne-3))); - $unit = 3; - $metal -= ($sa*150); - $cristal -= ($sa*105); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat4']) && $sa > 0) { - if ($metal - ($sa*220) >= 0) { - if ($cristal - ($sa*150) >= 0) { - $temps_caserne = time() + $sa*ceil(720/pow(1.25,($caserne-5))); - $unit = 4; - $metal -= ($sa*220); - $cristal -= ($sa*150); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_sniper']) && $sa > 0) { - if ($metal - ($sa*180) >= 0) { - if ($cristal - ($sa*100) >= 0) { - $temps_caserne = time() + $sa*ceil(300/pow(1.25,($caserne-3))); - $unit = 5; - $metal -= ($sa*180); - $cristal -= ($sa*100); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_spartan']) && $sa > 0) { - if ($metal - ($sa*25000) >= 0) { - if ($cristal - ($sa*10000) >= 0) { - $temps_caserne = time() + $sa*ceil(29700/pow(1.25,($caserne-10))); - $unit = 6; - $metal -= ($sa*25000); - $cristal -= ($sa*10000); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_medecin']) && $sa > 0) { - if ($metal - ($sa*100) >= 0) { - if ($cristal - ($sa*100) >= 0) { - $temps_caserne = time() + $sa*ceil(90/pow(1.25,($caserne-2))); - $unit = 7; - $metal -= ($sa*100); - $cristal -= ($sa*100); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_ingenieur']) && $sa > 0) { - if ($metal - ($sa*90) >= 0) { - if ($cristal - ($sa*105) >= 0) { - $temps_caserne = time() + $sa*ceil(90/pow(1.25,($caserne-2))); - $unit = 8; - $metal -= ($sa*90); - $cristal -= ($sa*105); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat_lourd']) && $sa > 0) { - if ($metal - ($sa*300) >= 0) { - if ($cristal - ($sa*250) >= 0) { - $temps_caserne = time() + $sa*ceil(900/pow(1.25,($caserne-5))); - $unit = 9; - $metal -= ($sa*300); - $cristal -= ($sa*250); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - else header("Location: caserne.php"); -mysql_close(); -} \ No newline at end of file diff --git a/pages/nn/validation_terrestre.php b/pages/nn/validation_terrestre.php deleted file mode 100644 index a5a4271..0000000 --- a/pages/nn/validation_terrestre.php +++ /dev/null @@ -1,154 +0,0 @@ - 0) { - if ($metal - ($sa*500) >= 0) { - if ($cristal - ($sa*300) >= 0) { - $temps_caserne = time() + $sa*ceil(720/pow(1.25,($chantier_terrestre-1))); - $unit = 1; - $metal -= ($sa*500); - $cristal -= ($sa*300); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vaisseau_1']) && $sa > 0) { - if ($metal - ($sa*680) >= 0) { - if ($cristal - ($sa*420) >= 0) { - $temps_caserne = time() + $sa*ceil(2040/pow(1.25,($chantier_terrestre-3))); - $unit = 2; - $metal -= ($sa*680); - $cristal -= ($sa*420); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vaisseau_2']) && $sa > 0) { - if ($metal - ($sa*1000) >= 0) { - if ($cristal - ($sa*600) >= 0) { - $temps_caserne = time() + $sa*ceil(2700/pow(1.25,($chantier_terrestre-4))); - $unit = 3; - $metal -= ($sa*1000); - $cristal -= ($sa*600); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vaisseau_3']) && $sa > 0) { - if ($metal - ($sa*1400) >= 0) { - if ($cristal - ($sa*950) >= 0) { - $temps_caserne = time() + $sa*ceil(3960/pow(1.25,($chantier_terrestre-6))); - $unit = 4; - $metal -= ($sa*1400); - $cristal -= ($sa*950); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_1']) && $sa > 0) { - if ($metal - ($sa*400) >= 0) { - if ($cristal - ($sa*240) >= 0) { - $temps_caserne = time() + $sa*ceil(600/pow(1.25,($chantier_terrestre-1))); - $unit = 5; - $metal -= ($sa*400); - $cristal -= ($sa*240); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_2']) && $sa > 0) { - if ($metal - ($sa*480) >= 0) { - if ($cristal - ($sa*260) >= 0) { - $temps_caserne = time() + $sa*ceil(1080/pow(1.25,($chantier_terrestre-2))); - $unit = 6; - $metal -= ($sa*480); - $cristal -= ($sa*260); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_3']) && $sa > 0) { - if ($metal - ($sa*600) >= 0) { - if ($cristal - ($sa*420) >= 0) { - $temps_caserne = time() + $sa*ceil(2160/pow(1.25,($chantier_terrestre-3))); - $unit = 7; - $metal -= ($sa*600); - $cristal -= ($sa*420); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_4']) && $sa > 0) { - if ($metal - ($sa*1000) >= 0) { - if ($cristal - ($sa*500) >= 0) { - $temps_caserne = time() + $sa*ceil(4680/pow(1.25,($chantier_terrestre-5))); - $unit = 8; - $metal -= ($sa*1000); - $cristal -= ($sa*500); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -else header("Location: chantier_terrestre.php"); -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/nn/version.php2 b/pages/nn/version.php2 deleted file mode 100644 index 26e98d3..0000000 --- a/pages/nn/version.php2 +++ /dev/null @@ -1,22 +0,0 @@ -
    -Halo-Battle

    -Version 0.1 Béta
    -Du samedi 27 octobre 2007
    -
    '; -?> - - \ No newline at end of file diff --git a/pages/nn/voir_classement1.php b/pages/nn/voir_classement1.php deleted file mode 100644 index 8b03b4c..0000000 --- a/pages/nn/voir_classement1.php +++ /dev/null @@ -1,169 +0,0 @@ -set_filenames(array('stat_body' => 'stat_body.tpl','stat_playertable'=>'stat_playertable.tpl', 'stat_playertable_header'=>'stat_playertable_header.tpl' ,'stat_playertable_footer'=>'stat_playertable_footer.tpl')); - -$parse = $lang; -$who = (isset($_POST["who"]))?$_POST["who"]:$_GET["who"]; -$type = (isset($_POST["type"]))?$_POST["type"]:$_GET["type"]; -$start = (isset($_POST["start"]))?$_POST["start"]:$_GET["start"]; - -echo' - - -Halo battle - - - - - - - - - -'; - -require('../connectBDD.php'); - -$ee = mysql_query("SELECT * FROM classement ORDER BY points DESC"); -$i=1; -while ($data = mysql_fetch_array($ee)){ -echo "".$i."".$data['race']."".$data['pseudo']."".$data['points']."".$data['flottes']."".$data['recherches'].""; -$i++; -} -echo ""; - - $parse['who'] = ' - '; - -if (!isset($type)) -{ - $type='pts'; -} -$parse['type'] = ' - - - -'; - -if (!isset($start)) -{ - $start='0'; -} - -$parse['start'] = ' - - - - - - - - - - - - - - - '; - -if($who == "ally"){ - - } - -else { - - $template->assign_vars( array('who' =>$parse['who'],'type' =>$parse['type'], 'start' =>$parse['start'])); - -$template->pparse('stat_body'); - - - $template->assign_vars( array('who' =>$parse['who'],'type' =>$parse['type'], 'start' =>$parse['start'],'body_table'=>$parse['body_table'])); - -$template->pparse('stat_playertable_header'); - - - if($type == "flt"){ - $test=CalculPointflotte(); - } - elseif($type == "res"){ - - $test=CalculPointRecherche() ; - } - elseif($type == "bui"){ - $test=CalculPointBatiment(); - } - else - { - ; - $test=CalculPointGene($start); - } - $i=1; - while ($row = mysql_fetch_assoc($test)){ - - - $mes= ''; - - $table=$template->assign_vars( array('player_rank'=>$i, 'player_name' =>$row['pseudo'],'player_points' =>$row['points_'.$type.''],'player_mes'=>$mes)); - - $parse['body_values'] .=$template->pparse('stat_playertable'); - $i++; - - } - - } - - -$template->pparse('stat_playertable_footer'); - -echo ""; -echo ""; -echo ""; -?> \ No newline at end of file diff --git a/pages/nom.php b/pages/nom.php index cbcb436..75e7dc4 100644 --- a/pages/nom.php +++ b/pages/nom.php @@ -7,7 +7,7 @@ $pos=$_SESSION['pos']; require('../connectBDD.php'); -if (isset($_POST['nouveaunom']) && trim($_POST['nouveaunom']) != '') { +if (isset($_POST['nouveaunom']) && trim($_POST['nouveaunom']) != '' && $id != 8) { $_POST['nouveaunom'] = htmlentities(mysql_real_escape_string($_POST['nouveaunom'])); mysql_query("UPDATE planete SET nom_planete='".$_POST['nouveaunom']."' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'") or die ("erreur sql ".mysql_error()); header("Location: depart.php"); diff --git a/pages/noms-1.php b/pages/noms-1.php deleted file mode 100644 index 4150a43..0000000 --- a/pages/noms-1.php +++ /dev/null @@ -1,262 +0,0 @@ -Malheureusement, un manque d\'espace empêche l\'installation de générateur énergétique plus puissant qui pourrait supporter des boucliers standards ou même de faible intensité.', - 'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de débarquement « Spirit ». Il possède trois tourelles plasma particulièrement puissantes et peut laisser tomber ses occupants à terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus résistant que son prédécesseur, une puissance de feu accrue et peut transporter tout type d’équipage comme des hunters.
    Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut éliminer un bon nombre de marines.', - '~#DESCRIPTION MANQUANTE#~ Boarding craft', - 'Le ghost est un véhicule de reconnaissance et d\'attaque rapide déployée par les Covenants dans tout combat terrestre. Cet engin, très souvent piloté par les Elites, est très maniable. Il est capable de tirer des doubles décharges de plasma surchauffées d\'une puissance de 100-250 kW. Le ghost peut également effectuer des pointes de vitesse soutenues.', - 'Le Shadow est le principal moyen de transport terrestre des troupes covenantes. Ce véhicule peut accueillir un pilote, un artilleur et jusqu\'à huit passagers en fonction du type de Covenants qui monte à bord. Il est en outre équipé pour transporter des Elites, des Brutes, des Grunts ou des Jackals. Si le Shadow est équipé d\'un canon à plasma, sa vocation reste le déploiement de troupes.', - 'Le Spectre est un transport multi troupes blindé de petite taille. Quoique relativement lent, il est tout à fait maniable et se meut avec aisance dans les espaces confinés. Ses principales faiblesses étant son manque de vitesse et d\'accélération, ses occupants demeurent tout de même relativement exposés. Le canon à plasma monté à l\'arrière représente un grand danger pour l\'ennemi et le véhicule offre par ailleurs diverses positions de tir.', - 'Lent, massif et constituant une cible de taille, ce véhicule n\'en demeure pas moins le blindé covenant le plus destructeur. Ce géant de métal est bien protégé. Le tir de couverture qu\'il peut effectuer grâce à ses mortiers à plasma redoutables en fait un ennemi incroyablement dangereux. Le fait qu\'il soit piloté par une seule personne qui contrôle le véhicule et le système d\'armement limite quelque peu son champ de manoeuvre.', - 'Les tourelles shades sont des canons stationnaires énergétiques covenant composés de deux parties, la première étant une base stable à trois pieds pour la stabilité de l’appareil, la deuxième, un siège où le canon est fixé retenu par un champ gravitationnel artificiel. Ce canon lorsqu’il tire, envoie 3 « éclairs » relativement lents et d’efficacité moyenne.', - 'Cette tourelle est une version améliorée de la shade standard. Dans les modifications de la tourelle, le système d’accélération magnétique a été révisé pour le rendre plus performant, aboutissant à des rayons plus rapides. Également, un bouclier a été ajouté à l’avant, protégeant ainsi l’utilisateur des attaques aux armes à projectiles de petit et moyen calibre pendant une période de quelques secondes lors de feux nourris.', - 'La tourelle à barreau de combustible est une version fixe de ceux des hunters avec un système de visé amélioré et de condensateur ionique permettent de tirer trois rafales à la suite sans surcharger les relais du générateur. De puissance moyenne, elle est capable de détruire facilement des warthogs et autres véhicules légers avec une facilité hors norme.', - 'La tourelle plasma n’a pas besoin de canonnier pour tirer puisque équipée d’un système de visée automatisé, elle utilise une technologie d’intelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauffé à haute vitesse carbonisant tout sur son passage.', - 'Utilisant un principe similaire de la tourelle à plasma, le lanceur de torpilles plasma utilise un condensateur de matière pour condenser le flux de plasma surchauffé en une masse de destruction pure. Ce système est le système de défense terrestre le plus évolué jamais construit. Son défaut majeur reste sa cadence de tire lente, limitant sa défense face à de multiples adversaires.'); - $nomterri = array('bansheeqp0.jpg','spirit1.jpg','phantomfu2.jpg','boardingcraft.jpg','ghostic1.jpg','shadow.jpg','apparition.jpg','shade.jpg','strongshade.jpg','tourellebarreau.jpg','tourelle_plasma.jpg','lanceur_torpilles.jpg'); - } - elseif (md5($race) == '34c19b21bd4a3dda389e767d32fe9779') { - $ressourc = array('Titane','Cristal','Plasma','Puissance'); - $casernen = array('Constructor','Sentinelle Légère','Sentinelle Lourde','Enforcer Léger','Enforcer Lourd','Monitor','~#PAS DE NOM#~ Médecin','~#PAS DE NOM#~ Ingénieur','~#PAS DE NOM#~ Brute'); - $casernde = array( 'Les Constructors sont des minis sentinelles capable d\'effectuer certaine reparation mineur, ils peuvent réparés les sentinelles endommager ainsi que les chasseurs légers.', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Légère', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Lourde', - 'Les Enforcers Léger, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie, mais il semble seulement protéger que l\'avant de la machine. Il est armé de faisceaux laser à impulsion rapides.', - 'Les Enforcers Lourd, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie qui recouvre toute la machine. Il est armé de mortiers.', - 'Les monitors ont été placés sur les mondes-forteresse par les Forerunners pour entretenir et maintenir leurs systèmes, et pour s\'assurer que les Floods reste emprisonné.', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ '); - $casernea = array('constructor(s)','sentinelle(s) légère(s)','sentinelle(s) lourde(s)','enforcer(s) léger(s)','enforcer(s) lourd(s)','monitor(s)','médecin(s)','ingénieur(s)','brute(s)'); - $casernei = array('scoutma3.jpg','sentinellelegerecn4.jpg','nanw9.jpg','defenseurlegerhs8.jpg','defenseurlourdhr3.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info'); - $batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdenergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg',0,'chantierspatialff8.jpg',0,'nanw9.jpg',0); - $batiment = array('Générateur de Titane','Générateur de Cristal','Générateur de Plasma','Générateur d\'Energie',Générateur à Fusion ,Centrale Radar,'Centre de recherches',Chantier terrestre,'Chantier spatial',Caserne,'Entrepôt',Arche); - $batimede = array( 'Le générateur de métal vous fournie les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos générateurs, plus uls vous rapportera. Les générateurs plus développés ont aussi besoin de plus d\'énergie.', - 'Le générateur de cristal vous fourni les ressources pour vos installations électroniques et pour les alliages. Le générateur consomme deux fois plus d\'énergie que celui du métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leur composant électronique. La production augmente avec le développement du générateur ainsi que sa consommation.', - 'L\'hydrogène n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste à faire passer un courant électrique dans de l\'eau pour que les molécules se séparent et forme du dihydrogène. Mais cette technique utilise de trop grande quantitée d\'énergie.', - 'Pour assurer l\'approvisionnement des générateurs, des générateurs énergie géantes sont nécessaires. Plus ces installations sont développées, plus vous obtiendrez d’énergie pour vos générateurs. Les générateurs d\'énergies sont la base de l\'approvisionnement pour votre planète en énergie.', - 0, - 0, - 'Le centre de recherche est nécessaire pour développer de nouvelles technologies. Le niveau du centre détermine la vitesse de la recherche. Chaque planète que vous coloniserez devra être équipée d’un centre de recherche.', - 0, - 'Le chantier spatial vous permet de construire des vaisseaux, de l’infanterie et vos installations de défense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de l’infanterie et la création d’installations de défense est rapide.', - 0, - 'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l’entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d’infrastructure.', - 0); - $technolo = array('Informatique','Detection','Armement','Bouclier','Energie','Réacteur antigravité','Réacteur à fusion T1','Réacteur à fusion T2','Monitor','Coordination Monitor',0); - $technode = array( 'L’informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réactions qui dans les combats peuvent s’avérer fatales.', - 'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « œil des prophètes » qui repèrera les vaisseaux s’approchant de votre planète.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'Le bouclier est un champ de force qui entoure vos vaisseaux et les protège. Ainsi il permet à vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'avérant peut être décisif dans l’issue de la bataille.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et vaisseaux ; vos chercheurs vous permettront également d\'accéder à de nouveaux types d\'énergies, beaucoup plus intéressants.', - 'Les réacteurs à antigravité sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques créant un champ gravitationnel inverse annulant ainsi la gravité présente. Le principe fonctionne également dans l\'espace puisque l\'absence de gravité dans l\'espace, sans compter les étoiles et les autres anomalies spatiales, permet une projection plus puissante du champ.', - 'Après la combustion, voici la fusion. Ce type de réacteur est beaucoup plus puissant que la combustion utilisée depuis déjà des centaines d\'années. Il génère une énergie cinétique de grande envergure. Aucun dirigeant politique désirant voyager dans le cosmos ne pourrait s’en passer.', - 'Les covenants ont découvert d’anciens réacteurs à fusion utilisant la technologie d’hyperpropulsion Forerunner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.', - 'La médecine vous permet d’avoir moins de pertes au combat et ainsi d’avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.'); - $technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg'); - $nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseaux de colo','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('nanw9.jpg','nanw9.jpg','nanw9.jpg',0,'nanw9.jpg','croiseurforrunerns4.jpg','superdestroyerwa6.jpg','nanw9.jpg','chasseurlourdfk8.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $nomvaisn = array('Cargo Classe Ceran','Super-Cargo Aventis','Colonisateur de classe Resin',Sentinelle d'Espionnage,'Recycleur Resing','Croiseur Forruner','Fregate à Ion','Croiseur de classe Centor','Super-Destroyer Ozymendias','Porte-Vaisseaux','Canon Orbitale','Super porte-vaisseaux'); - $nomvaisd = array( '~#DESCRIPTION MANQUANTE#~ Transporteur Leger', - '~#DESCRIPTION MANQUANTE#~ Transporteur Lourd', - '~#DESCRIPTION MANQUANTE#~ Colonisateur', - 0, - '~#DESCRIPTION MANQUANTE#~ Recycleur', - '~#DESCRIPTION MANQUANTE#~ Croiseur Forruner', - '~#DESCRIPTION MANQUANTE#~ Super-Destroyer', - '~#DESCRIPTION MANQUANTE#~ Chasseur Leger', - '~#DESCRIPTION MANQUANTE#~ Chasseur Lourd', - '~#DESCRIPTION MANQUANTE#~ Porte-Vaisseaux', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - '~#DESCRIPTION MANQUANTE#~ Super porte-Vaisseaux'); - $nomterra = array(0,0,0,0,0,0,0,0,'tour(s) à plasma','tour(s) ion','canon(s) Orbital','drone(s)','station(s) de defense'); - $nomterri = array(0,0,0,0,0,0,0,0,'tourplasmasl4.jpg','tourioniquegr6.jpg','nanw9.jpg','nanw9.jpg','stationdedefensent8.jpg'); - $nomterrn = array(0,0,0,0,0,0,0,0,'Tour à Ion','Tour à Plasma','Enforcer Orbitale','Drone','Station de defense'); - $nomterde = array( 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - '~#DESCRIPTION MANQUANTE#~ Tour à plasma', - '~#DESCRIPTION MANQUANTE#~ Tour Ion', - '~#DESCRIPTION MANQUANTE#~ Canon Orbital', - '~#DESCRIPTION MANQUANTE#~ Drone', - '~#DESCRIPTION MANQUANTE#~ Station de defense'); - } - else { - $ressourc = array('Métal','Cristal','Hydrogène','Energie'); - $casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squellette'); - $casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de résistance plutôt médiocre, ils rivalisent avec les unités covenants standard. Ils sont équipés d\'une armure de kevlar renforcée et d\'un MA5B.', - 'Les fusillers sont équipés de fusils d\'assaut avec zoom intégré. Plus puissants que les marines standards, ils peuvent rivaliser avec des escouades entières de grunts dirigées par des élites hauts gradés.', - 'Les grenadiers sont les spécialistes en explosifs du CSNU sur le terrain. Ils peuvent détruire les véhicules légers grâce à leurs grenades et leurs lances missiles.', - 'Les TCAO sont des soldats d\'assauts largués depuis l\'espace directement sur les champs de batailles grâce à des modules spéciaux. Ces soldats sont surentraînés et très chevronnés, risquant leur vie à chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.', - 'Les snipers sont dotés de fusils de précision SA 2M capable de descendre un covenant à plusieurs centaines de mètres grâce à son zoom maximum de 10x. Grande portée de tir mais à courte portée, ils sont inutiles.', - 'Les spartans sont les unités d\'infanterie militaires les plus évoluées militairement du CSNU mais également des Covenants. Ils sont équipés d\'une armure de type Mjolnir améliorant leurs capacités de combat, déjà exceptionnelles grâce à leur entraînement militaire depuis leur plus jeune âge, ainsi qu\'à leurs implants cybernétiques, les rendants d\'une grande efficacité inégalée au sein de l\'infanterie.', - 'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés et ainsi peut être changer l’issue de la bataille.', - 'Les ingénieurs sont là pour réparer vos véhicules endommagés lors des affrontements. Ils peuvent réduire le nombre de vos pertes de véhicules lorsqu\'ils sont bien utilisés.', - 'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.'); - $casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squellette'); - $casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','img_na_ig.jpg'); - $batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique'); - $batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.', - 'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.', - 'Ce bâtiment use de l\'eau pour la décomposer et en extraire l\'hydrogène, la base de toutes vos productions énergétiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.', - 'La centrale solaire produit l’énergie nécessaire au fonctionnement de vos usines. Elle fonctionne à partir d’une technologie Forerunner qui consiste à envoyer un rayon à la verticale pour capter tous les rayons du soleil qui le croise.', - 'La centrale énergétique fonctionne avec un principe assez dépassé. En effet, l’énergie est produite par un réacteur à fusion qui en tournant produit de l’énergie comme le ferait une dynamo. Bien que ce principe fût révolutionnaire à l’époque, il fût rapidement dépassé par la centrale solaire qui permet de produire d’avantage d’énergie.', - 'Base radar', - 'Le centre de recherches est certainement l\'une des bâtisses les plus importantes que vous puissiez construire dans votre colonie. Vos chercheurs travailleront sans relâche aucun afin de mettre au point de nouvelles technologies vous assurant suprématie et victoire sur les champs de bataille. Chaque niveau dévellopé augmente la vitesse de recherche de vos technologies.', - 'Le chantier terrestre vous permet de construire tous les véhicules atmosphérique du type warthog ou scorpion. Il permet ainsi à vos troupes d’accéder plus rapidement à un endroit et d’avoir un avantage avec l’armement de ces véhicules.', - 'Le chantier spatial permet de construire vôtre flotte de vaisseaux spatiaux. Généralement à la limite de l’atmosphère d’une planète il ne peut cependant se déplacer et doit impérativement rester en orbite. Le chantier spatial, bien que ressemblant à une station spatial, ne peut être détruit grâce à sa position qui lui confère un camouflage total.', - 'L\'académie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes expérimentés vous aideront à choisir de meilleures stratégies défensives ou offensives ou encore même économiques face aux différentes situations qui vous seront imposées. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs tâches.', - 'Comme toutes choses, vos ressources ont besoin d\'espace pour être stockées ; c\'est pourquoi ces énormes silos vous seront d\'une aide précieuse afin d\'y renfermer une grande quantité de matières premières pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources supplémentaires.', - 'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.'); - $batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info'); - $batimeni = array('mine_m.png','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','search0yp.jpg','recherches.jpg','chantierterrestrenz5.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','informatique.jpg'); - $technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'énergie','Réacteur à combustion','Réacteur à fusion','Réacteur à fusion de type II','Médecine','Tactiques de combats','Spartan'); - $technode = array( 'Le résultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le résultat d\'années de travail acharné pour pouvoir en arriver à cette grande performance technique. Les IA sont des entités non biologiques dotées du pouvoir de la pensée. Développer cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, créatives et réactives.', - 'Ce système très ancien et usé par bien des militaires est utilisé pour la détection et l\'imagerie d\'objets faisant appel à des impulsions d\'ondes électromagnétiques à haute fréquence et sert à déterminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa précision.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'La résistance de la coque de vos vaisseaux est plus que primordiale si vous tenez à remporter vos batailles, et encore plus avec les armes Covenantes capables de réduire en miettes même les plus résistants des vaisseaux spatiaux. C\'est la raison pour laquelle vos scientifiques, si vous leur en donnez l\'ordre, travailleront avec application à l\'élaboration de nouvelles formules pour créer des alliages métalliques les plus résistants.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations tout simplement. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et les propulseurs de vos vaisseaux.', - 'Le plus simple de tout les réacteurs, aussi vieux que le monde lui-même ! Equipés sur presque tout vos vaisseaux de base, cette technologie, certes basique, vous aidera à explorer l\'univers mais aussi, se trouvant être bien évidemment la base de la propulsion, vous permettra de découvrir de nouvelles techniques de propulsion irrémédiablement toujours plus puissantes et efficaces.', - 'Bien plus efficaces que de simples réacteurs à combustion, la fusion nucléaire est un processus où deux noyaux atomiques s\'assemblent pour former un noyau plus lourd. La fusion de noyaux légers dégage d\'énormes quantités d\'énergie provenant de l\'attraction entre les nucléons due à une forte interaction. Personne ne pourrait se passer de ce type d\'énergie lors de ses voyages dans le cosmos.', - 'Cette technologie basée sur les réacteurs Covenants utilise la force électromagnétique résultant de l\'interaction entre un courant électrique et un champ magnétique pour accélérer un gaz ionisé appelé plasma. Bien plus efficace que tous les moyens de propulsions possibles, cette technologie révolutionnaire, très coûteuse, est un moyen efficace de parcourir de grandes distances en peu de temps.', - 'Depuis l\'aube des temps, chaque être vivant et pensant n\'a jamais cessé de chercher de nouvelles solutions en dévellopant les sciences médicales pour tenter d\'échapper à la mort et aux épidémies qui s\'abbatent sur lui. Seulement, aujourd\'hui, ce ne sont plus les maladies qui importent, mais plutot les blessures de guerre. Plus votre médecine sera éclatante, plus vos hommes de soins connaîtront de choses pour soigner vos blessés.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.', - 'Ces formidables combattants constituent l\'élite de vos forces terrestres. Entraînés au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont également subis plusieurs séries de modifications biologiques afin d\'améliorer leurs capacités physiques.'); - $technoli = array('IA4.jpg','radar7zr.jpg','arme.jpg','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg'); - $nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones d’espionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Frégate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Porte vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( 'Ces cargos de taille conséquente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, très manœuvrables mais peu résistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.', - 'Ces cargos de taille massive permettent le transport d’une énorme quantité de ressources. Ils sont plus résistants que leurs homologues de classe Parabola, mais sont néanmoins les cibles prioritaires des chasseurs ennemis visant à faire le plus de pertes dans le camp adverse.', - '~#DESCRIPTION MANQUANTE#~ Vaisseaux de colonisation de classe Odyssey', - 'Drones extrêmement rapides et manœuvrables permettant la surveillance et l’espionnage des planètes alentours avec un risque moins élevé de repérage qu’avec un vaisseau furtif standard. Ils sont utilisés lors de l’espionnage de planètes ennemies et sont très fragiles, si bien que lorsqu’ils traversent un champ de débris, ils sont réduits en de vulgaires morceaux de métal.', - 'Les guerres sont de plus en plus nombreuses et les pertes de plus en plus grandes laissant à chaque fois des champs de débris immenses limitant les routes des voies commerciales. Des recycleurs ont donc été créés afin de déblayer ces zones et de vous faire profiter de ces ressources gratuites. Lors du voyage de retour, le recycleur transforme les débris pour vous les redonner sous forme de ressources primaires.', - 'Vaisseau orbital et atmosphérique lourd, apte au combat spatial, atmosphérique, et au bombardement lourd sur des positions stratégiques. Ces vaisseaux sont capable de bombarder une vaste position adverse, grâce à leurs bombes au Napalm, mais sont aussi capables de cibler précisément leurs cibles et de les détruire grâce à leurs nombreux missiles air-air air-sol.', - 'Cette classe de vaisseau est la plus répandue dans le CSNU. Ces vaisseaux sont très manœuvrables du fait de leur petite taille, mais sont aussi très faibles, à cause de leur blindage et de leur armement moindre. Ces vaisseaux sont peu coûteux mais également peu efficaces et sont surtout utilisés pour des patrouilles. Ils forment les éléments principaux des différentes flottes du CSNU. ', - 'Ces croiseurs sont des vaisseaux d’attaque, dépassés technologiquement, très peu répandus, très coûteux mais résistants : leur architecture interne leur permet de résister à de nombreux tirs de plasma. Cette architecture complexe à produire et à maintenir en état, en font des vaisseaux extrêmement rares et chers. Ils ont été très récemment remis à neuf et améliorés, avec un tout nouvel armement.', - 'Ces grands vaisseaux (2 fois et demie la longueur d’une frégate), sont des descendants de la lignée des croiseurs Halcyon. Ces vaisseaux ont une très grande puissance de feu (1 CAM lourd), un fort blindage (5 mètres 50 de Titane-A), et sont très rapides. Ils sont assez peu communs, mais restent des vaisseaux d’attaque très redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.', - 'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, d’Albatross, et tout autres types d’unités. Ces vaisseaux leurs permettent de se défendre contre une éventuelle attaque de chasseurs ennemis, mais sont également très lourdement armés. Ils sont usités lors d’attaques massives de planètes nécessitant un fort appui aérien et une très grosse puissance de feu. ', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - 'Ces vaisseaux sont sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacité de transport. Ces vaisseaux sont très peu vus sur le terrain, leur rôle principal est de déployer des Longswords afin de fournir aux vaisseaux alliés un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre d’unités terrestres et aériennes.'); - $nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','drone(s) d\'espionnage de classe Clarion','recycleur(s) de classe Minotaur','C709 Longsword Interceptor','Frégates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','drone_clarion.jpg','img_na_ig.jpg','longsword.jpg','csnufregatedk7.jpg','croiseurclassealcyon130om6.jpg','croiseurclassemarathon1oc0.jpg','csnuportevaisseauxgy3.jpg','station.jpg','.jpg'); - $nomterra = array('sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','mitrailleuse(s) automatique M247 GP','DCA légère(s)','DCA lourde(s)','canon(s) Gauss','lanceur(s) de missiles'); - $nomterrn = array('Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','Mitrailleuse automatique M247 GP','DCA légère','DCA lourde','Canon Gauss','Lanceur de missiles'); - $nomterde = array( 'Véhicule à propulsion verticale permettant des attaques extrêmement rapides et destructrices grâce à ses six tubes lance-missiles, ses deux mitrailleuses légères, et sa mitrailleuse lourde frontale. Ces vaisseaux d’assaut rapide sont de véritables broyeurs de tôle grâce à leurs 6 tubes lance-missiles et sont capables de détruire des véhicules et des positions fortement blindées.', - 'Véhicule aérien de transport léger permettant le transport rapide de troupes à des endroits stratégiques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l’acheminement de troupes et de munitions rapidement.', - 'Vaisseau suborbital très rapide apte tant au combat aérien rapproché qu’au bombardement ciblé. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou aériennes. Ils sont néanmoins capables de combattre en combat aérien rapproché grâce à leurs missiles thermo guidés et sont utilisés lors de bombardements de cibles mineures.', - 'Véhicule aérien de transport lourd permettant le transport en masse de troupes ou de véhicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces véhicules de soutien aérien lourd sont surtout utilisés lors d’offensives nécessitant un déploiement en masse d’unités blindées et de munitions au plus près des lignes adverses.', - 'Véhicule d’attaque léger permettant des assauts rapides et efficaces, ainsi que le transport léger de troupes. Ces véhicules sont la base des véhicules terrestres du CSNU.', - 'Véhicule léger équipé d’un canon à accélération magnétique (CAM), très efficace contre du personnel, des véhicules moyennement blindés, ou bien contre des véhicules aériens légers. Les Warthog M12G1 sont très répandus et surtout utilisés lors d\'offensives sur des cibles disposant d’un appui aérien ou terrestre léger.', - 'Véhicule léger, armé d’un lance-missiles anti-véhicule permettant des assauts rapides contre des véhicules blindés ou contre des positions fortifiées. Ils sont surtout utilisés en cas d’attaques de postes avancés.', - 'Tank blindé anti-véhicules. Permet l’attaque de cibles fortifiées grâce à ses balles perforantes de gros calibre. Ces tanks sont utilisés lors d’assauts massifs sur des bases fortifiées et vitales à l’ennemi.', - 'La mitrailleuse M247 est une arme de calibre moyen envoyant des balles de calibre 30 à une cadence de tir de 6 balles par seconde. Généralement positionnée dans des endroits fixes, cette tourelle, efficace contre l\'infanterie et les véhicules légers de petite taille est de précision moyenne suffisante pour éliminer une menace de quelques soldats covenants.', - 'Les DCA légères sont des canons anti-aérien de puissance moyenne mais de cadence de tir et de calibre de munitions à tête explosive élevée permettant de détruire la plupart des chasseurs légers avec aisance. Ce modèle est équipé d\'un emplacement spécial lui permettant de tirer également sur des cibles au sol.', - 'Les DCA lourdes sont quasi-similaires aux légères mais possèdent tout de même une différence au niveau du calibre des balles qui, plus élevé avec une tête explosif supérieure est comparable à une explosion de mine lotus. Il a en contre partie une capacité de tir plus limitée question cadence et une quantité de munitions moindre dans chaque chargeur.', - 'Le canon gauss est l\'équivalent du Super CAM mais en version miniature tirant des projectiles à haute densité et à grande vitesse sur ses cibles. Il est capable, en outre, de détruire des véhicules à blindage lourd tel des wraith\'s covenants, véritables chars d\'assaut à longue portée. Malheureusement, il est moins efficace contre l\'infanterie dû à sa cadence de tir plutôt faible et sa précision moindre.', - 'Les lance-missiles du CSNU sont équipés de missiles balistiques hautement explosifs capables de réduire aisément en miettes les chars covenants ou les chasseurs Séraphins. Ce lance-missiles, une fois ses salves tirées, nécessite plusieures minutes de réarmement pour être de nouveau opérationnel.'); - $nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg','tourelle_fixe.jpg','dca_legere.jpg','dca_lourde.jpg','tourelle_gauss.jpg','csnulancemissileol5.jpg'); - } - - //Nombre maximal de ressources embarqué - $nomvais_rs = array(5000,25000,7500,10,20000,50,800,1500,3000,10000,0,30000); - - //Coefficient vitesse courte distance : temps pour parcourir un système - $nomvais_dc = array(108,108,108,25,108,108,108,0,0,0,0,0); - //Temps de préparation courte distance : temps de préparation à compter avant tout déplacement - $nomvais_pdc = array(900,900,900,35,900,900,900,0,0,0,0,0); - //Coefficient vitesse longue distance : temps pour parcourir un système - $nomvais_dl = array(0,54,54,0,54,0,54,54,54,54,0,54); - //Temps de préparation longue distance - $nomvais_pdl = array(0,0,0,0,0,0,0,0,0,0,0,0); - //Temps de chauffe - $nomvais_cdl = array(0,20,20,0,20,0,0,20,20,20,0,20); - - //Attaque - $nomvais_at = array(1,1,1,0.1,10,150,500,800,1200,500,1000); - //Coque (pv) - $nomvais_pv = array(20,60,50,10,100,40,250,400,600,1500,600); - //Défense (bouclier) - $nomvais_bc = array(20,60,100,1,100,100,400,500,600,700,400); - //Rapide fire (nombre d'attaque par phase envers un vaisseau) - $nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(40,40,40,40,40,40,1,1,2,1,1,1), - array(10,10,10,10,10,10,30,1,1,2,1,1), - array(30,30,30,30,30,30,1,1,10,2,1,1), - array(20,20,20,20,20,20,2,1,1,1,1,1), - array(80,80,80,80,80,80,25,12,8,4,1,2), - array(100,100,100,100,100,100,20,10,5,2,1,1)); -?> \ No newline at end of file diff --git a/pages/noms.php b/pages/noms.php deleted file mode 100644 index aa306f8..0000000 --- a/pages/noms.php +++ /dev/null @@ -1,268 +0,0 @@ -Malheureusement, un manque d\'espace empêche l\'installation de générateur énergétique plus puissant qui pourrait supporter des boucliers standards ou même de faible intensité.', - 'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de débarquement « Spirit ». Il possède trois tourelles plasma particulièrement puissantes et peut laisser tomber ses occupants à terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus résistant que son prédécesseur, une puissance de feu accrue et peut transporter tout type d’équipage comme des hunters.
    Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut éliminer un bon nombre de marines.', - '~#DESCRIPTION MANQUANTE#~ Boarding craft', - 'Le ghost est un véhicule de reconnaissance et d\'attaque rapide déployée par les Covenants dans tout combat terrestre. Cet engin, très souvent piloté par les Elites, est très maniable. Il est capable de tirer des doubles décharges de plasma surchauffées d\'une puissance de 100-250 kW. Le ghost peut également effectuer des pointes de vitesse soutenues.', - 'Le Shadow est le principal moyen de transport terrestre des troupes covenantes. Ce véhicule peut accueillir un pilote, un artilleur et jusqu\'à huit passagers en fonction du type de Covenants qui monte à bord. Il est en outre équipé pour transporter des Elites, des Brutes, des Grunts ou des Jackals. Si le Shadow est équipé d\'un canon à plasma, sa vocation reste le déploiement de troupes.', - 'Le Spectre est un transport multi troupes blindé de petite taille. Quoique relativement lent, il est tout à fait maniable et se meut avec aisance dans les espaces confinés. Ses principales faiblesses étant son manque de vitesse et d\'accélération, ses occupants demeurent tout de même relativement exposés. Le canon à plasma monté à l\'arrière représente un grand danger pour l\'ennemi et le véhicule offre par ailleurs diverses positions de tir.', - 'Lent, massif et constituant une cible de taille, ce véhicule n\'en demeure pas moins le blindé covenant le plus destructeur. Ce géant de métal est bien protégé. Le tir de couverture qu\'il peut effectuer grâce à ses mortiers à plasma redoutables en fait un ennemi incroyablement dangereux. Le fait qu\'il soit piloté par une seule personne qui contrôle le véhicule et le système d\'armement limite quelque peu son champ de manoeuvre.', - 'Les tourelles shades sont des canons stationnaires énergétiques covenant composés de deux parties, la première étant une base stable à trois pieds pour la stabilité de l’appareil, la deuxième, un siège où le canon est fixé retenu par un champ gravitationnel artificiel. Ce canon lorsqu’il tire, envoie 3 « éclairs » relativement lents et d’efficacité moyenne.', - 'Cette tourelle est une version améliorée de la shade standard. Dans les modifications de la tourelle, le système d’accélération magnétique a été révisé pour le rendre plus performant, aboutissant à des rayons plus rapides. Également, un bouclier a été ajouté à l’avant, protégeant ainsi l’utilisateur des attaques aux armes à projectiles de petit et moyen calibre pendant une période de quelques secondes lors de feux nourris.', - 'La tourelle à barreau de combustible est une version fixe de ceux des hunters avec un système de visé amélioré et de condensateur ionique permettent de tirer trois rafales à la suite sans surcharger les relais du générateur. De puissance moyenne, elle est capable de détruire facilement des warthogs et autres véhicules légers avec une facilité hors norme.', - 'Le canon à plasma n’a pas besoin de canonnier pour tirer puisque équipé d’un système de visée automatisé, il utilise une technologie d’intelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauffé à haute vitesse carbonisant tout sur son passage.', - 'Utilisant un principe similaire de la tourelle à plasma, le lanceur de torpilles plasma utilise un condensateur de matière pour condenser le flux de plasma surchauffé en une masse de destruction pure. Ce système est le système de défense terrestre le plus évolué jamais construit. Son défaut majeur reste sa cadence de tire lente, limitant sa défense face à de multiples adversaires.'); - } - elseif (md5($race) == '34c19b21bd4a3dda389e767d32fe9779' && $auth_level >= 6) { - $ressourc = array('Métal','Cristal','Hydrogène','Energie'); - $casernen = array('Constructor','Sentinelle Légère','Sentinelle Lourde','Enforcer Léger','Enforcer Lourd','Monitor','~#PAS DE NOM#~ Médecin','~#PAS DE NOM#~ Ingénieur','~#PAS DE NOM#~ Brute'); - $casernde = array( 'Les Constructors sont des minis sentinelles capable d\'effectuer certaine reparation mineur, ils peuvent réparés les sentinelles endommager ainsi que les chasseurs légers.', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Légère', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Lourde', - 'Les Enforcers Léger, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie, mais il semble seulement protéger que l\'avant de la machine. Il est armé de faisceaux laser à impulsion rapides.', - 'Les Enforcers Lourd, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie qui recouvre toute la machine. Il est armé de mortiers.', - 'Les monitors ont été placés sur les mondes-forteresse par les Forruner pour entretenir et maintenir leurs systèmes, et pour s\'assurer que les Floods reste emprisonné.', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ '); - $casernea = array('constructor(s)','sentinelle(s) légère(s)','sentinelle(s) lourde(s)','enforcer(s) léger(s)','enforcer(s) lourd(s)','monitor(s)','médecin(s)','ingénieur(s)','brute(s)'); - $casernei = array('scoutma3.jpg','sentinellelegerecn4.jpg','nanw9.jpg','defenseurlegerhs8.jpg','defenseurlourdhr3.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info'); - $batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdenergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg','chantierterrestrehg1.jpg','chantierspatialff8.jpg',0,'nanw9.jpg',0); - $batiment = array('Générateur de Métal','Générateur de Cristal','Générateur d\'Hydrogène','Générateur d\'Energie',0,0,'Centre de recherches','Chantier terrestre','Chantier spatial',0,'Entrepôt',0); - $batimede = array( 'Le générateur de métal vous fournie les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos générateurs, plus uls vous rapportera. Les générateurs plus développés ont aussi besoin de plus d\'énergie.', - 'Le générateur de cristal vous fourni les ressources pour vos installations électroniques et pour les alliages. Le générateur consomme deux fois plus d\'énergie que celui du métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leur composant électronique. La production augmente avec le développement du générateur ainsi que sa consommation.', - 'L\'hydrogène n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste à faire passer un courant électrique dans de l\'eau pour que les molécules se séparent et forme du dihydrogène. Mais cette technique utilise de trop grande quantitée d\'énergie.', - 'Pour assurer l\'approvisionnement des générateurs, des générateurs énergie géantes sont nécessaires. Plus ces installations sont développées, plus vous obtiendrez d’énergie pour vos générateurs. Les générateurs d\'énergies sont la base de l\'approvisionnement pour votre planète en énergie.', - 0, - 0, - 'Le centre de recherche est nécessaire pour développer de nouvelles technologies. Le niveau du centre détermine la vitesse de la recherche. Chaque planète que vous coloniserez devra être équipée d’un centre de recherche.', - '~#DESCRIPTION MANQUANTE#~ Chantier terrestre', - 'Le chantier spatial vous permet de construire des vaisseaux, de l’infanterie et vos installations de défense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de l’infanterie et la création d’installations de défense est rapide.', - 0, - 'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l’entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d’infrastructure.', - 0); - $technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'énergie','Réacteur à antigravité','Réacteur à fusion','Réacteur à fusion Forruner','Médecine','Commandement militaire',0); - $technode = array( 'L’informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réactions qui dans les combats peuvent s’avérer fatales.', - 'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « œil des prophètes » qui repèrera les vaisseaux s’approchant de votre planète.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'Le bouclier est un champ de force qui entoure vos vaisseaux et les protège. Ainsi il permet à vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'avérant peut être décisif dans l’issue de la bataille.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et vaisseaux ; vos chercheurs vous permettront également d\'accéder à de nouveaux types d\'énergies, beaucoup plus intéressants.', - 'Les réacteurs à antigravité sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques créant un champ gravitationnel inverse annulant ainsi la gravité présente. Le principe fonctionne également dans l\'espace puisque l\'absence de gravité dans l\'espace, sans compter les étoiles et les autres anomalies spatiales, permet une projection plus puissante du champ.', - 'Après la combustion, voici la fusion. Ce type de réacteur est beaucoup plus puissant que la combustion utilisée depuis déjà des centaines d\'années. Il génère une énergie cinétique de grande envergure. Aucun dirigeant politique désirant voyager dans le cosmos ne pourrait s’en passer.', - 'Les covenants ont découvert d’anciens réacteurs à fusion utilisant la technologie d’hyperpropulsion Forruner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.', - 'La médecine vous permet d’avoir moins de pertes au combat et ainsi d’avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.'); - $technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg'); - $nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('nanw9.jpg','nanw9.jpg','nanw9.jpg',0,'nanw9.jpg','croiseurforrunerns4.jpg','superdestroyerwa6.jpg','nanw9.jpg','chasseurlourdfk8.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $nomvaisn = array('Transporteur Leger','Transporteur Lourd','Colonisateur',0,'Recycleur','Croiseur Forruner','Super-Destroyer','Chasseur Leger','Chasseur Lourd','Porte-Vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( '~#DESCRIPTION MANQUANTE#~ Transporteur Leger', - '~#DESCRIPTION MANQUANTE#~ Transporteur Lourd', - '~#DESCRIPTION MANQUANTE#~ Colonisateur', - 0, - '~#DESCRIPTION MANQUANTE#~ Recycleur', - '~#DESCRIPTION MANQUANTE#~ Croiseur Forruner', - '~#DESCRIPTION MANQUANTE#~ Super-Destroyer', - '~#DESCRIPTION MANQUANTE#~ Chasseur Leger', - '~#DESCRIPTION MANQUANTE#~ Chasseur Lourd', - '~#DESCRIPTION MANQUANTE#~ Porte-Vaisseaux', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - '~#DESCRIPTION MANQUANTE#~ Super porte-Vaisseaux'); - $nomterra = array(0,0,0,0,0,0,0,0,'tour(s) à plasma','tour(s) ion','canon(s) Orbital','drone(s)','station(s) de defense'); - $nomterri = array(0,0,0,0,0,0,0,0,'tourplasmasl4.jpg','tourioniquegr6.jpg','nanw9.jpg','nanw9.jpg','stationdedefensent8.jpg'); - $nomterrn = array(0,0,0,0,0,0,0,0,'Tour à plasma','Tour Ion','Canon Orbital','Drone','Station de defense'); - $nomterde = array( 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - '~#DESCRIPTION MANQUANTE#~ Tour à plasma', - '~#DESCRIPTION MANQUANTE#~ Tour Ion', - '~#DESCRIPTION MANQUANTE#~ Canon Orbital', - '~#DESCRIPTION MANQUANTE#~ Drone', - '~#DESCRIPTION MANQUANTE#~ Station de defense'); - } - else { - $ressourc = array('Métal','Cristal','Hydrogène','Energie'); - $casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squellette'); - $casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de résistance plutôt médiocre, ils rivalisent avec les unités covenants standard. Ils sont équipés d\'une armure de kevlar renforcée et d\'un MA5B.', - 'Les fusillers sont équipés de fusils d\'assaut avec zoom intégré. Plus puissants que les marines standards, ils peuvent rivaliser avec des escouades entières de grunts dirigées par des élites hauts gradés.', - 'Les grenadiers sont les spécialistes en explosifs du CSNU sur le terrain. Ils peuvent détruire les véhicules légers grâce à leurs grenades et leurs lances missiles.', - 'Les TCAO sont des soldats d\'assauts largués depuis l\'espace directement sur les champs de batailles grâce à des modules spéciaux. Ces soldats sont surentraînés et très chevronnés, risquant leur vie à chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.', - 'Les snipers sont dotés de fusils de précision SA 2M capable de descendre un covenant à plusieurs centaines de mètres grâce à son zoom maximum de 10x. Grande portée de tir mais à courte portée, ils sont inutiles.', - 'Les spartans sont les unités d\'infanterie militaires les plus évoluées militairement du CSNU mais également des Covenants. Ils sont équipés d\'une armure de type Mjolnir améliorant leurs capacités de combat, déjà exceptionnelles grâce à leur entraînement militaire depuis leur plus jeune âge, ainsi qu\'à leurs implants cybernétiques, les rendants d\'une grande efficacité inégalée au sein de l\'infanterie.', - 'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés et ainsi peut être changer l’issue de la bataille.', - 'Les ingénieurs sont là pour réparer vos véhicules endommagés lors des affrontements. Ils peuvent réduire le nombre de vos pertes de véhicules lorsqu\'ils sont bien utilisés.', - 'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.'); - $casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squellette'); - $casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','img_na_ig.jpg'); - $batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique'); - $batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.', - 'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.', - 'Ce bâtiment use de l\'eau pour la décomposer et en extraire l\'hydrogène, la base de toutes vos productions énergétiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.', - 'La centrale solaire produit l’énergie nécessaire au fonctionnement de vos usines. Elle fonctionne à partir d’une technologie Forruner qui consiste à envoyer un rayon à la verticale pour capter tous les rayons du soleil qui le croise.', - 'La centrale énergétique fonctionne avec un principe assez dépassé. En effet, l’énergie est produite par un réacteur à fusion qui en tournant produit de l’énergie comme le ferait une dynamo. Bien que ce principe fût révolutionnaire à l’époque, il fût rapidement dépassé par la centrale solaire qui permet de produire d’avantage d’énergie.', - 'Base radar', - 'Le centre de recherches est certainement l\'une des bâtisses les plus importantes que vous puissiez construire dans votre colonie. Vos chercheurs travailleront sans relâche aucun afin de mettre au point de nouvelles technologies vous assurant suprématie et victoire sur les champs de bataille. Chaque niveau dévellopé augmente la vitesse de recherche de vos technologies.', - 'Le chantier terrestre vous permet de construire tous les véhicules atmosphérique du type warthog ou scorpion. Il permet ainsi à vos troupes d’accéder plus rapidement à un endroit et d’avoir un avantage avec l’armement de ces véhicules.', - 'Le chantier spatial permet de construire vôtre flotte de vaisseaux spatiaux. Généralement à la limite de l’atmosphère d’une planète il ne peut cependant se déplacer et doit impérativement rester en orbite. Le chantier spatial, bien que ressemblant à une station spatial, ne peut être détruit grâce à sa position qui lui confère un camouflage total.', - 'L\'académie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes expérimentés vous aideront à choisir de meilleures stratégies défensives ou offensives ou encore même économiques face aux différentes situations qui vous seront imposées. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs tâches.', - 'Comme toutes choses, vos ressources ont besoin d\'espace pour être stockées ; c\'est pourquoi ces énormes silos vous seront d\'une aide précieuse afin d\'y renfermer une grande quantité de matières premières pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources supplémentaires.', - 'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.'); - $batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info'); - $batimeni = array('mine_m.png','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg'); - $technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'énergie','Réacteur à combustion','Réacteur à fusion','Réacteur à fusion de type II','Médecine','Tactiques de combats','Spartan'); - $technode = array( 'Le résultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le résultat d\'années de travail acharné pour pouvoir en arriver à cette grande performance technique. Les IA sont des entités non biologiques dotées du pouvoir de la pensée. Développer cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, créatives et réactives.', - 'Ce système très ancien et usé par bien des militaires est utilisé pour la détection et l\'imagerie d\'objets faisant appel à des impulsions d\'ondes électromagnétiques à haute fréquence et sert à déterminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa précision.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'La résistance de la coque de vos vaisseaux est plus que primordiale si vous tenez à remporter vos batailles, et encore plus avec les armes Covenantes capables de réduire en miettes même les plus résistants des vaisseaux spatiaux. C\'est la raison pour laquelle vos scientifiques, si vous leur en donnez l\'ordre, travailleront avec application à l\'élaboration de nouvelles formules pour créer des alliages métalliques les plus résistants.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations tout simplement. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et les propulseurs de vos vaisseaux.', - 'Le plus simple de tout les réacteurs, aussi vieux que le monde lui-même ! Equipés sur presque tout vos vaisseaux de base, cette technologie, certes basique, vous aidera à explorer l\'univers mais aussi, se trouvant être bien évidemment la base de la propulsion, vous permettra de découvrir de nouvelles techniques de propulsion irrémédiablement toujours plus puissantes et efficaces.', - 'Bien plus efficaces que de simples réacteurs à combustion, la fusion nucléaire est un processus où deux noyaux atomiques s\'assemblent pour former un noyau plus lourd. La fusion de noyaux légers dégage d\'énormes quantités d\'énergie provenant de l\'attraction entre les nucléons due à une forte interaction. Personne ne pourrait se passer de ce type d\'énergie lors de ses voyages dans le cosmos.', - 'Cette technologie basée sur les réacteurs Covenants utilise la force électromagnétique résultant de l\'interaction entre un courant électrique et un champ magnétique pour accélérer un gaz ionisé appelé plasma. Bien plus efficace que tous les moyens de propulsions possibles, cette technologie révolutionnaire, très coûteuse, est un moyen efficace de parcourir de grandes distances en peu de temps.', - 'Depuis l\'aube des temps, chaque être vivant et pensant n\'a jamais cessé de chercher de nouvelles solutions en dévellopant les sciences médicales pour tenter d\'échapper à la mort et aux épidémies qui s\'abbatent sur lui. Seulement, aujourd\'hui, ce ne sont plus les maladies qui importent, mais plutot les blessures de guerre. Plus votre médecine sera éclatante, plus vos hommes de soins connaîtront de choses pour soigner vos blessés.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.', - 'Ces formidables combattants constituent l\'élite de vos forces terrestres. Entraînés au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont également subis plusieurs séries de modifications biologiques afin d\'améliorer leurs capacités physiques.'); - $technoli = array('IA4.jpg','radar7zr.jpg','techarmes1jk1.jpg','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg'); - $nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones d’espionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Frégate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Porte vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( 'Ces cargos de taille conséquente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, très manœuvrables mais peu résistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.', - 'Ces cargos de taille massive permettent le transport d’une énorme quantité de ressources. Ils sont plus résistants que leurs homologues de classe Parabola, mais sont néanmoins les cibles prioritaires des chasseurs ennemis visant à faire le plus de pertes dans le camp adverse.', - '~#DESCRIPTION MANQUANTE#~ Vaisseaux de colonisation de classe Odyssey', - 'Drones extrêmement rapides et manœuvrables permettant la surveillance et l’espionnage des planètes alentours avec un risque moins élevé de repérage qu’avec un vaisseau furtif standard. Ils sont utilisés lors de l’espionnage de planètes ennemies et sont très fragiles, si bien que lorsqu’ils traversent un champ de débris, ils sont réduits en de vulgaires morceaux de métal.', - 'Les guerres sont de plus en plus nombreuses et les pertes de plus en plus grandes laissant à chaque fois des champs de débris immenses limitant les routes des voies commerciales. Des recycleurs ont donc été créés afin de déblayer ces zones et de vous faire profiter de ces ressources gratuites. Lors du voyage de retour, le recycleur transforme les débris pour vous les redonner sous forme de ressources primaires.', - 'Vaisseau orbital et atmosphérique lourd, apte au combat spatial, atmosphérique, et au bombardement lourd sur des positions stratégiques. Ces vaisseaux sont capable de bombarder une vaste position adverse, grâce à leurs bombes au Napalm, mais sont aussi capables de cibler précisément leurs cibles et de les détruire grâce à leurs nombreux missiles air-air air-sol.', - 'Cette classe de vaisseau est la plus répandue dans le CSNU. Ces vaisseaux sont très manœuvrables du fait de leur petite taille, mais sont aussi très faibles, à cause de leur blindage et de leur armement moindre. Ces vaisseaux sont peu coûteux mais également peu efficaces et sont surtout utilisés pour des patrouilles. Ils forment les éléments principaux des différentes flottes du CSNU. ', - 'Ces croiseurs sont des vaisseaux d’attaque, dépassés technologiquement, très peu répandus, très coûteux mais résistants : leur architecture interne leur permet de résister à de nombreux tirs de plasma. Cette architecture complexe à produire et à maintenir en état, en font des vaisseaux extrêmement rares et chers. Ils ont été très récemment remis à neuf et améliorés, avec un tout nouvel armement.', - 'Ces grands vaisseaux (2 fois et demie la longueur d’une frégate), sont des descendants de la lignée des croiseurs Halcyon. Ces vaisseaux ont une très grande puissance de feu (1 CAM lourd), un fort blindage (5 mètres 50 de Titane-A), et sont très rapides. Ils sont assez peu communs, mais restent des vaisseaux d’attaque très redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.', - 'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, d’Albatross, et tout autres types d’unités. Ces vaisseaux leurs permettent de se défendre contre une éventuelle attaque de chasseurs ennemis, mais sont également très lourdement armés. Ils sont usités lors d’attaques massives de planètes nécessitant un fort appui aérien et une très grosse puissance de feu. ', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - 'Ces vaisseaux sont sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacité de transport. Ces vaisseaux sont très peu vus sur le terrain, leur rôle principal est de déployer des Longswords afin de fournir aux vaisseaux alliés un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre d’unités terrestres et aériennes.'); - $nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','drone(s) d\'espionnage de classe Clarion','recycleur(s) de classe Minotaur','C709 Longsword Interceptor','Frégates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','vaisseaucolonisationmm4.jpg','drone_clarion.jpg','img_na_ig.jpg','longsword.jpg','fregatewz5.jpg','croiseurclassealcyon130om6.jpg','croiseurmarathonke3.jpg','csnuportevaisseauxgy3.jpg','station.jpg','.jpg'); - $nomterra = array('sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','mitrailleuse(s) automatique M247 GP','DCA légère(s)','DCA lourde(s)','canon(s) Gauss','lanceur(s) de missiles'); - $nomterrn = array('Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','Mitrailleuse automatique M247 GP','DCA légère','DCA lourde','Canon Gauss','Lanceur de missiles'); - $nomterde = array( 'Véhicule à propulsion verticale permettant des attaques extrêmement rapides et destructrices grâce à ses six tubes lance-missiles, ses deux mitrailleuses légères, et sa mitrailleuse lourde frontale. Ces vaisseaux d’assaut rapide sont de véritables broyeurs de tôle grâce à leurs 6 tubes lance-missiles et sont capables de détruire des véhicules et des positions fortement blindées.', - 'Véhicule aérien de transport léger permettant le transport rapide de troupes à des endroits stratégiques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l’acheminement de troupes et de munitions rapidement.', - 'Vaisseau suborbital très rapide apte tant au combat aérien rapproché qu’au bombardement ciblé. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou aériennes. Ils sont néanmoins capables de combattre en combat aérien rapproché grâce à leurs missiles thermo guidés et sont utilisés lors de bombardements de cibles mineures.', - 'Véhicule aérien de transport lourd permettant le transport en masse de troupes ou de véhicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces véhicules de soutien aérien lourd sont surtout utilisés lors d’offensives nécessitant un déploiement en masse d’unités blindées et de munitions au plus près des lignes adverses.', - 'Véhicule d’attaque léger permettant des assauts rapides et efficaces, ainsi que le transport léger de troupes. Ces véhicules sont la base des véhicules terrestres du CSNU.', - 'Véhicule léger équipé d’un canon à accélération magnétique (CAM), très efficace contre du personnel, des véhicules moyennement blindés, ou bien contre des véhicules aériens légers. Les Warthog M12G1 sont très répandus et surtout utilisés lors d\'offensives sur des cibles disposant d’un appui aérien ou terrestre léger.', - 'Véhicule léger, armé d’un lance-missiles anti-véhicule permettant des assauts rapides contre des véhicules blindés ou contre des positions fortifiées. Ils sont surtout utilisés en cas d’attaques de postes avancés.', - 'Tank blindé anti-véhicules. Permet l’attaque de cibles fortifiées grâce à ses balles perforantes de gros calibre. Ces tanks sont utilisés lors d’assauts massifs sur des bases fortifiées et vitales à l’ennemi.', - 'La mitrailleuse M247 est une arme de calibre moyen envoyant des balles de calibre 30 à une cadence de tir de 6 balles par seconde. Généralement positionnée dans des endroits fixes, cette tourelle, efficace contre l\'infanterie et les véhicules légers de petite taille est de précision moyenne suffisante pour éliminer une menace de quelques soldats covenants.', - 'Les DCA légères sont des canons anti-aérien de puissance moyenne mais de cadence de tir et de calibre de munitions à tête explosive élevée permettant de détruire la plupart des chasseurs légers avec aisance. Ce modèle est équipé d\'un emplacement spécial lui permettant de tirer également sur des cibles au sol.', - 'Les DCA lourdes sont quasi-similaires aux légères mais possèdent tout de même une différence au niveau du calibre des balles qui, plus élevé avec une tête explosif supérieure est comparable à une explosion de mine lotus. Il a en contre partie une capacité de tir plus limitée question cadence et une quantité de munitions moindre dans chaque chargeur.', - 'Le canon gauss est l\'équivalent du Super CAM mais en version miniature tirant des projectiles à haute densité et à grande vitesse sur ses cibles. Il est capable, en outre, de détruire des véhicules à blindage lourd tel des wraith\'s covenants, véritables chars d\'assaut à longue portée. Malheureusement, il est moins efficace contre l\'infanterie dû à sa cadence de tir plutôt faible et sa précision moindre.', - 'Les lance-missiles du CSNU sont équipés de missiles balistiques hautement explosifs capables de réduire aisément en miettes les chars covenants ou les chasseurs Séraphins. Ce lance-missiles, une fois ses salves tirées, nécessite plusieures minutes de réarmement pour être de nouveau opérationnel.'); - $nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg','tourelle_fixe.jpg','dca_legere.jpg','dca_lourde.jpg','tourelle_gauss.jpg','csnulancemissileol5.jpg'); - } - - //PV des défenses - $def_pv = array(200,600,1000,10,100); - - //Nombre maximal de ressources embarqué - $nomvais_rs = array(5000,25000,7500,10,20000,50,800,1500,3000,10000,0,30000); - - //Coefficient vitesse courte distance : temps pour parcourir un système - $nomvais_dc = array(108,108,108,25,108,108,108,0,0,0,0,0); - //Temps de préparation courte distance : temps de préparation à compter avant tout déplacement - $nomvais_pdc = array(900,900,900,35,900,900,900,0,0,0,0,0); - //Coefficient vitesse longue distance : temps pour parcourir un système - $nomvais_dl = array(0,54,54,0,54,0,54,54,54,54,0,54); - //Temps de préparation longue distance - $nomvais_pdl = array(0,0,0,0,0,0,0,0,0,0,0,0); - //Temps de chauffe - $nomvais_cdl = array(0,20,20,0,20,0,0,20,20,20,0,20); - - //Attaque - $nomvais_at = array(1,1,1,0.1,10,150,500,800,1200,500,1000); - //Coque (pv) - $nomvais_pv = array(20,60,50,10,100,40,250,400,600,1500,600); - //Défense (bouclier) - $nomvais_bc = array(20,60,100,1,100,100,400,500,600,700,400); - //Débris de métal - $nomvais_md = array(300,300,300,300,300,300,300,300,300,300,300); - //Débris de cristal - $nomvais_cd = array(300,300,300,300,300,300,300,300,300,300,300); - //Rapide fire (nombre d'attaque par phase envers un vaisseau) - $nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1), - array(40,40,40,40,40,40,1,1,2,1,1,1), - array(10,10,10,10,10,10,30,1,1,2,1,1), - array(30,30,30,30,30,30,1,1,10,2,1,1), - array(20,20,20,20,20,20,2,1,1,1,1,1), - array(80,80,80,80,80,80,25,12,8,4,1,2), - array(100,100,100,100,100,100,20,10,5,2,1,1)); -?> \ No newline at end of file diff --git a/pages/options_validation.php b/pages/options_validation.php index ec64b96..d15d909 100644 --- a/pages/options_validation.php +++ b/pages/options_validation.php @@ -4,6 +4,7 @@ session_start(); $id = $_SESSION['id']; require('common.php'); require('../connectBDD.php'); +require "../Class/class.phpmailer.php"; $x = mysql_query("SELECT * FROM user WHERE id='$id'"); $donnees = mysql_fetch_array($x); @@ -20,7 +21,29 @@ if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') { $auth = sha1($password); mysql_query("UPDATE `user` SET `mdpNOUV`='$password' WHERE ID='$id'"); - $from = "From: \"Staff Halo-Battle\" \r\n"; + //On envoie le mail de confirmation + $mail = new PHPmailer(); + $mail->SetLanguage('en', '../Class/'); + $mail->IsSMTP(); + $mail->IsHTML(true); + $mail->Host='localhost'; + $mail->From = 'newuser@localhost'; + $mail->AddAddress('admin@localhost'); + $mail->Subject='Halo-Battle :: Activation de votre nouveau mot de passe'; + $mail->Body='Halo-Battle :: Activation de votre nouveau mot de passe

    Bonjour,
    Vous recevez ce mail suite à votre demande de changement de mot de passe. Ce dernier entrera en vigueur une fois que vous aurez valider ce changement en cliquant via ce lien :
    http://battle.halo.fr/pages/options_validation.php?chg=activation&util='.$id.'&auth='.$auth.'
    Notez que pour que le mot de passe soit changé, il faut que vous soyer connecté sur votre compte.

    A bientôt dans Halo-Battle,
    Le staff

    '; + + /*if(!$mail->Send()){ //Teste si le return code est ok. + echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7) + exit; + } + else{ + header('Location: options.php?erreur=1'); + exit; + }*/ + $mail->SmtpClose(); + unset($mail); + +/* $from = "From: \"Staff Halo-Battle\" \r\n"; $from .= "Content-type: text/html; charset=ISO-8859-1\r\n"; $from .= "X-Mailer: HBMessagerie v1.0a\r\n"; $from .= "MIME-Version: 1.0\r\n"; @@ -28,8 +51,7 @@ if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') { mail($mail,'Halo-Battle :: Activation de votre nouveau mot de passe',$message,$from); - header('Location: options.php?erreur=1'); - exit; +*/ } else { header('Location: options.php?erreur=2'); diff --git a/pages/rename.php b/pages/rename.php index f8c034d..d8f9cf0 100644 --- a/pages/rename.php +++ b/pages/rename.php @@ -15,6 +15,8 @@ $template = new Template('../templates/'.$templates); * */ $template->set_filenames(array('rename' => 'rename.tpl')); +$_SESSION['PL_abandonne'] = true; +$template->assign_vars(array('NOM' => $nom_planete)); /* FIN Page rename * */ diff --git a/pages/ressources.php b/pages/ressources.php index 06e624c..80221bd 100644 --- a/pages/ressources.php +++ b/pages/ressources.php @@ -18,11 +18,11 @@ $template->set_filenames(array('ressources' => 'ressources.tpl')); $cap = (pow(2,$silo)*100000); $temps_ecoule = 3600; -if ($mine_m > 0) $energie_m = ceil((exp($mine_m*0.28)*10)); else $energie_m= 0; -if ($mine_c > 0) $energie_c = ceil((exp($mine_c*0.28)*10)); else $energie_c= 0; -if ($mine_h > 0) $energie_h = ceil((exp($mine_h*0.31)*10)); else $energie_h= 0; -if ($centrale_f > 0) $energie_f = ceil((($centrale_f*80+(exp($centrale_f*0.38)*11)))); else $energie_f = 0; -if ($centrale_s > 0) $energie_s = ceil((($centrale_s*20+(exp($centrale_s*0.3)*10)))); else $energie_s = 0; +if ($mine_m > 0) $energie_m = ceil(exp(0.28*$mine_m)*10); else $energie_m= 0; +if ($mine_c > 0) $energie_c = ceil(exp(0.28*$mine_c)*10); else $energie_c= 0; +if ($mine_h > 0) $energie_h = ceil(exp(0.2849*$mine_h)*13); else $energie_h= 0; +if ($centrale_f > 0) $energie_f = ceil(exp(0.297*$centrale_f)*25); else $energie_f = 0; +if ($centrale_s > 0) $energie_s = ceil(exp(0.28*$centrale_s)*22); else $energie_s = 0; //Calcul de la consomation d'énergie $nrj = $energie_m + $energie_c + $energie_h; @@ -56,7 +56,7 @@ if ($metal >= $cap) { } else { if ($mine_m < 0) $prod_met = 0.011*$temps_ecoule; - else $prod_met = ((ceil(((($mine_m*32)+(pow(1.41,$mine_m)*exp(0.066*$mine_m)))/0.36)*$temps_ecoule)/10000)*3.7 + 0.011*$temps_ecoule)*$coeff_mine_m; + else $prod_met = ((ceil(pow(1.1,$mine_m)*35*$mine_m)/3600)*$temps_ecoule)*$coeff_mine_m; } if ($cristal >= $cap) { @@ -65,7 +65,7 @@ if ($cristal >= $cap) { } else { if ($mine_c < 0) $prod_cri = 0.0055*$temps_ecoule; - else $prod_cri = (((ceil(((($mine_c*13)+(pow(1.36,$mine_c)*exp(0.0675*$mine_c)))/0.36)*$temps_ecoule)/10000)*7) + 0.0055*$temps_ecoule)*$coeff_mine_c; + else $prod_cri = ((ceil(pow(1.1,$mine_c)*23*$mine_c)/3600)*$temps_ecoule)*$coeff_mine_c; } if ($hydrogene >= $cap) { @@ -74,12 +74,12 @@ if ($hydrogene >= $cap) { } else { if ($mine_h < 0) $prod_hy = 0; - else $prod_hy = ((((floor(((($mine_h*12)+(pow(1.394,$mine_h)*exp(0.072*$mine_h)))/0.36)*$temps_ecoule)/10000)*5)))*$coeff_mine_h; + else $prod_hy = (((ceil(pow(1.1,$mine_h)*14*($mine_h+0.7))/3600)*$temps_ecoule) - $conso_h) * $coeff_mine_h; if ($mine_h == 0) $prod_hy=0; if ($prod_hy < 0) $prod_hy = 0; } -if ($centrale_f > 0) $conso_h = ((ceil((($centrale_f*5+(exp($centrale_f*0.3)*10)))/0.36)/10000)*$temps_ecoule)*$coeff_energie_f; +if ($centrale_f > 0) $conso_h = ((ceil(pow(1.34,($centrale_f-1))*9)/3600)*$temps_ecoule) * $coeff_energie_f; else $conso_h = 0; $prod_mineh = $prod_hy; $prod_hysv = $prod_hy; diff --git a/pages/ressourcetem.php b/pages/ressourcetem.php deleted file mode 100644 index dcc7713..0000000 --- a/pages/ressourcetem.php +++ /dev/null @@ -1,206 +0,0 @@ - 1) $coeff_mine_m = 1; -$mine_c = $ressource['mine_c']; -$coeff_mine_c = $ressource['coeff_mine_c']; -if ($coeff_mine_c < 0) $coeff_mine_c = 0; -if ($coeff_mine_c > 1) $coeff_mine_c = 1; -$mine_h = $ressource['mine_h']; -$coeff_mine_h = $ressource['coeff_mine_h']; -if ($coeff_mine_h < 0) $coeff_mine_h = 0; -if ($coeff_mine_h > 1) $coeff_mine_h = 1; -$centrale_s = $ressource['centrale_s']; -$coeff_centrale_s = $ressource['coeff_centrale_s']; -if ($coeff_centrale_s < 0) $coeff_centrale_s = 0; -if ($coeff_centrale_s > 1) $coeff_centrale_s = 1; -$centrale_f = $ressource['centrale_f']; -$coeff_centrale_f = $ressource['coeff_centrale_f']; -$coeff_energie_f = $ressource['coeff_centrale_f']; -if ($coeff_centrale_f < 0) $coeff_centrale_f = 0; -if ($coeff_centrale_f > 1) $coeff_centrale_f = 1; -if ($coeff_energie_f < 0) $coeff_energie_f = 0; -if ($coeff_energie_f > 1) $coeff_energie_f = 1; - -$temps_actuel = time(); -$temps_ancien = $ressource['timestamp']; -$temps_ecoule = $temps_actuel - $temps_ancien; - -$cap = (pow(2,$ressource['silo'])*100000); - -$metal = $ressource['metal']; -$cristal = $ressource['cristal']; -$hydrogene = $ressource['hydrogene']; -$conso_h = 0; - -//---------------Productions-------- - -if ($mine_m > 0) $energie_m = ceil((exp($mine_m*0.28)*10)); else $energie_m= 0; -if ($mine_c > 0) $energie_c = ceil((exp($mine_c*0.28)*10)); else $energie_c= 0; -if ($mine_h > 0) $energie_h = ceil((exp($mine_h*0.31)*10)); else $energie_h= 0; -if ($centrale_f > 0) $energie_f = ceil((($centrale_f*80+(exp($centrale_f*0.38)*11)))); else $energie_f = 0; -if ($centrale_s > 0) $energie_s = ceil((($centrale_s*20+(exp($centrale_s*0.3)*10)))); else $energie_s = 0; - -//Calcul de la consomation d'énergie -$nrj = $energie_m + $energie_c + $energie_h; - -//Calcul de la production d'énergie -$t = $energie_s * $coeff_centrale_s + $energie_f * $coeff_centrale_f; - -$coeff = $t / $nrj; - -if ($coeff < 0) $coeff = 0; -elseif ($coeff == 0) $coeff = 0; -elseif ($coeff > 1) $coeff = 1; - -//Calcul des proportions -$point = $coeff * 3; - -if ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h != 0) { - $p_mine_m = $coeff_mine_m / ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h); - $p_mine_c = $coeff_mine_c / ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h); - $p_mine_h = $coeff_mine_h / ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h); -} -else { - $p_mine_m = 0.33333333; - $p_mine_c = 0.33333333; - $p_mine_h = 0.33333333; -} - -$Ncoeff_mine_m = $point * $p_mine_m; -$Ncoeff_mine_c = $point * $p_mine_c; -$Ncoeff_mine_h = $point * $p_mine_h; - -if ($Ncoeff_mine_m > 1) $Ncoeff_mine_m = 1; -if ($Ncoeff_mine_c > 1) $Ncoeff_mine_c = 1; -if ($Ncoeff_mine_h > 1) $Ncoeff_mine_h = 1; - -//if ($Ncoeff_mine_m < $coeff_mine_m) { - mysql_query("UPDATE planete SET coeff_mine_m='$Ncoeff_mine_m' WHERE id_user='$id' AND galaxie='$g' AND ss='$s'AND position='$p'"); - $coeff_mine_m = $Ncoeff_mine_m; -//} -//if ($Ncoeff_mine_c < $coeff_mine_c) { - mysql_query("UPDATE planete SET coeff_mine_c='$Ncoeff_mine_c' WHERE id_user='$id' AND galaxie='$g' AND ss='$s'AND position='$p'"); - $coeff_mine_c = $Ncoeff_mine_c; -//} -//if ($Ncoeff_mine_h < $coeff_mine_h) { - mysql_query("UPDATE planete SET coeff_mine_h='$Ncoeff_mine_h' WHERE id_user='$id' AND galaxie='$g' AND ss='$s'AND position='$p'"); - $coeff_mine_h = $Ncoeff_mine_h; -//} - -if ($metal >= $cap) { - $prod_met=0; - $metal = $cap; -} -else { - if ($mine_m < 0) $prod_met = 0.011*$temps_ecoule; - else $prod_met = ((ceil(((($mine_m*32)+(pow(1.41,$mine_m)*exp(0.066*$mine_m)))/0.36)*$temps_ecoule)/10000)*3.7 + 0.011*$temps_ecoule)*$coeff_mine_m; -} - -if ($cristal >= $cap) { - $prod_cri=0; - $cristal = $cap; -} -else { - if ($mine_c < 0) $prod_cri = 0.0055*$temps_ecoule; - else $prod_cri = (((ceil(((($mine_c*13)+(pow(1.36,$mine_c)*exp(0.0675*$mine_c)))/0.36)*$temps_ecoule)/10000)*7) + 0.0055*$temps_ecoule)*$coeff_mine_c; -} - -if ($hydrogene >= $cap) { - $prod_hy=0; - $hydrogene = $cap; -} -else { - if ($mine_h < 0) $prod_hy = 0; - else $prod_hy = ((((floor(((($mine_h*12)+(pow(1.394,$mine_h)*exp(0.072*$mine_h)))/0.36)*$temps_ecoule)/10000)*5)) - $conso_h)*$coeff_mine_h; - if ($mine_h == 0) $prod_hy=0; - if ($prod_hy < 0) $prod_hy = 0; -} - -if ($centrale_f > 0) $conso_h = ((ceil((($centrale_f*5+(exp($centrale_f*0.3)*10)))/0.36)/10000)*$temps_ecoule)*$coeff_energie_f; -else $conso_h = 0; -$prod_mineh = $prod_hy; -$prod_hysv = $prod_hy; -$prod_hy -= $conso_h; - -if ($hydrogene+$prod_hy < 0) { - $prod_hy = $prod_hysv; - $conso_h = 0; - $coeff_energie_f = 0; -} -elseif ((ceil((($centrale_f*5+(exp($centrale_f*0.3)*10)))/0.36)/10000)*3600 <= $hydrogene/5 && $coeff_energie_f == 0) { - $coeff_energie_f = 1; -} - -$a=$metal+$prod_met; -$b=$cristal+$prod_cri; -$c=$hydrogene+$prod_hy; -$u = ($energie_s*$coeff_energie_s+$energie_f*$coeff_energie_f); - -//---------------M.A.J-------------- -mysql_query("UPDATE planete SET timestamp='$temps_actuel', metal='$a', cristal='$b', hydrogene='$c', coeff='$coeff', energie='$t', coeff_centrale_f='$coeff_energie_f' WHERE id_user='$id' AND galaxie='$g' AND ss='$s'AND position='$p'"); - -$req = mysql_query("SELECT id, galaxie, ss, position, nom_planete FROM planete WHERE id_user='$id'"); -$reqIsol = mysql_query("SELECT id FROM planete WHERE id_user='$id' AND isolement != '0'"); - -$RES_IMAGE = $image; -$Aplan_ref = ''; $Aplan_value = ''; $Aplan_img = ''; $Aplan_more = ''; $Aplan_nom = ''; - for ($i=0; $i < mysql_num_rows($req); $i++) { - $x = mysql_query("SELECT * FROM planete WHERE id_user='$id' ORDER BY id DESC LIMIT $i,1"); - $d = mysql_fetch_array($x); - - if ($d['isolement'] != 0 && $d['isolement']+(mysql_num_rows($req)-10)*7200 <= time()) { - $Aplan_value .= $d['id'].' '; - $Aplan_img .= $d['image'].' '; - if ($d['galaxie'] == $_SESSION['galaxy'] && $d['ss'] == $_SESSION['ss'] && $d['position'] == $_SESSION['pos']) $Aplan_more .= ' selected="selected";'; - else $Aplan_more .= ';'; - $Aplan_ref .= '['.$d['galaxie'].':'.$d['ss'].':'.$d['position'].'];'; - $Aplan_nom .= $d['nom_planete'].';'; - $nextIsol = $d['isolement'] + (mysql_num_rows($req)-10)*7200 + rand(83000,170000); - mysql_query("UPDATE planete SET isolement='$nextIsol' WHERE id_user='$id' AND galaxie='".$d['galaxie']."' AND ss='".$d['ss']."'AND position='".$d['position']."'"); - } - elseif ($d['isolement']+(mysql_num_rows($req)-10)*7200 < time() || $d['isolement'] == 0) { - $Aplan_value .= $d['id'].' '; - $Aplan_img .= $d['image'].' '; - if ($d['galaxie'] == $_SESSION['galaxy'] && $d['ss'] == $_SESSION['ss'] && $d['position'] == $_SESSION['pos']) $Aplan_more .= ' selected="selected";'; - else $Aplan_more .= ';'; - $Aplan_ref .= '['.$d['galaxie'].':'.$d['ss'].':'.$d['position'].'];'; - $Aplan_nom .= $d['nom_planete'].';'; - } - elseif ($d['galaxie'] == $_SESSION['galaxy'] && $d['ss'] == $_SESSION['ss'] && $d['position'] == $_SESSION['pos']) { - $time = time(); - mysql_query("UPDATE planete SET isolement='$time' WHERE id_user='$id' AND galaxie='".$d['galaxie']."' AND ss='".$d['ss']."'AND position='".$d['position']."'"); - } - - } - $Aplan_value = split(' ',trim($Aplan_value)); - $Aplan_img = split(' ',trim($Aplan_img)); - $Aplan_more = split(';',trim($Aplan_more)); - $Aplan_nom = split(';',trim($Aplan_nom)); - $Aplan_ref = split(';',trim($Aplan_ref)); - - $NOM_METAL = $ressourc[0]; - $NOM_CRISTAL = $ressourc[1]; - $NOM_HYDROGENE = $ressourc[2]; - $NOM_ENERGIE = $ressourc[3]; - $RES_METAL = separerNombres(floor($a)); - $RES_CRISTAL = separerNombres(floor($b)); - $RES_HYDROGENE = separerNombres(floor($c)); -// $RES_ENERGIE = separerNombres(intval($t-$nrj)).'/'.separerNombres($t); - $RES_ENERGIE = separerNombres(intval($nrj)).'/'.separerNombres($u); - -mysql_close(); -?> \ No newline at end of file diff --git a/pages/testcombat.php b/pages/testcombat.php new file mode 100644 index 0000000..f6f60e0 --- /dev/null +++ b/pages/testcombat.php @@ -0,0 +1,14 @@ + 5, 'vaisseau2' => 5, 'vaisseau3' => 5); +$vaisEN = array('vaisseau_1' => 5, 'vaisseau_2' => 5, 'vaisseau_3' => 5); +$defEN = array('def_1' => 5, 'def_2' => 5, 'def_3' => 5); + +$combat = new Combat($vaisAT, $vaisEN, $defEN); + +$pts = $combat->calcAttaque(100,1); +print $pts; +print '

    '.$combat->attaquerVais($pts,1); +?> \ No newline at end of file diff --git a/pages/validation_def.php b/pages/validation_def.php deleted file mode 100644 index a2dbcea..0000000 --- a/pages/validation_def.php +++ /dev/null @@ -1,113 +0,0 @@ - 0) { - if ($metal - ($sa*500) >= 0) { - if ($cristal - ($sa*200) >= 0) { - $temps_caserne = time() + $sa*ceil(480/pow(1.25,($chantier_terrestre-1))); - $unit = 9; - $metal -= ($sa*500); - $cristal -= ($sa*200); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'") or die ("erreur sql ".mysql_error()); - header("Location: defense.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_2']) && $sa > 0) { - if ($metal - ($sa*4000) >= 0) { - if ($cristal - ($sa*2000) >= 0) { - $temps_caserne = time() + $sa*ceil(1560/pow(1.25,($chantier_terrestre-3))); - $unit = 10; - $metal -= ($sa*4000); - $cristal -= ($sa*2000); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_3']) && $sa > 0) { - if ($metal - ($sa*4500) >= 0) { - if ($cristal - ($sa*800) >= 0) { - if($hydrogene - ($sa*600) >= 0) { - $temps_caserne = time() + $sa*ceil(1800/pow(1.25,($chantier_terrestre-4))); - $unit = 11; - $metal -= ($sa*4500); - $cristal -= ($sa*800); - $hydrogene -= ($sa*600); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_4']) && $sa > 0) { - if ($metal - ($sa*12000) >= 0) { - if ($cristal - ($sa*10000) >= 0) { - if($hydrogene - ($sa*1000) >= 0) { - $temps_caserne = time() + $sa*ceil(6720/pow(1.25,($chantier_terrestre-4))); - $unit = 12; - $metal -= ($sa*12000); - $cristal -= ($sa*10000); - $hydrogene -= ($sa*1000); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_def_5']) && $sa > 0) { - if ($metal - ($sa*15000) >= 0) { - if ($cristal - ($sa*9500) >= 0) { - if($hydrogene - ($sa*1500) >= 0) { - $temps_caserne = time() + $sa*ceil(12960/pow(1.25,($chantier_terrestre-8))); - $unit = 13; - $metal -= ($sa*15000); - $cristal -= ($sa*9500); - $hydrogene -= ($sa*1500); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: defense.php"); - } - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - else header("Location: defense.php"); -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/validation_soldat.php b/pages/validation_soldat.php deleted file mode 100644 index 6f34d4b..0000000 --- a/pages/validation_soldat.php +++ /dev/null @@ -1,162 +0,0 @@ - 0) { - if ($metal - ($sa*80) >= 0) { - if ($cristal - ($sa*45) >= 0) { - $temps_caserne = time() + $sa*ceil(60/pow(1.25,($caserne-1))); - $unit = 1; - $metal -= ($sa*80); - $cristal -= ($sa*45); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'") or die ("erreur sql ".mysql_error()); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat2']) && $sa > 0) { - if ($metal - ($sa*110) >= 0) { - if ($cristal - ($sa*90) >= 0) { - $temps_caserne = time() + $sa*ceil(240/pow(1.25,($caserne-2))); - $unit = 2; - $metal -= ($sa*110); - $cristal -= ($sa*90); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat3']) && $sa > 0) { - if ($metal - ($sa*150) >= 0) { - if ($cristal - ($sa*105) >= 0) { - $temps_caserne = time() + $sa*ceil(240/pow(1.25,($caserne-3))); - $unit = 3; - $metal -= ($sa*150); - $cristal -= ($sa*105); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat4']) && $sa > 0) { - if ($metal - ($sa*220) >= 0) { - if ($cristal - ($sa*150) >= 0) { - $temps_caserne = time() + $sa*ceil(720/pow(1.25,($caserne-5))); - $unit = 4; - $metal -= ($sa*220); - $cristal -= ($sa*150); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_sniper']) && $sa > 0) { - if ($metal - ($sa*180) >= 0) { - if ($cristal - ($sa*100) >= 0) { - $temps_caserne = time() + $sa*ceil(300/pow(1.25,($caserne-3))); - $unit = 5; - $metal -= ($sa*180); - $cristal -= ($sa*100); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_spartan']) && $sa > 0) { - if ($metal - ($sa*25000) >= 0) { - if ($cristal - ($sa*10000) >= 0) { - $temps_caserne = time() + $sa*ceil(29700/pow(1.25,($caserne-10))); - $unit = 6; - $metal -= ($sa*25000); - $cristal -= ($sa*10000); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_medecin']) && $sa > 0) { - if ($metal - ($sa*100) >= 0) { - if ($cristal - ($sa*100) >= 0) { - $temps_caserne = time() + $sa*ceil(90/pow(1.25,($caserne-2))); - $unit = 7; - $metal -= ($sa*100); - $cristal -= ($sa*100); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_ingenieur']) && $sa > 0) { - if ($metal - ($sa*90) >= 0) { - if ($cristal - ($sa*105) >= 0) { - $temps_caserne = time() + $sa*ceil(90/pow(1.25,($caserne-2))); - $unit = 8; - $metal -= ($sa*90); - $cristal -= ($sa*105); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - elseif (isset($_POST['cons_soldat_lourd']) && $sa > 0) { - if ($metal - ($sa*300) >= 0) { - if ($cristal - ($sa*250) >= 0) { - $temps_caserne = time() + $sa*ceil(900/pow(1.25,($caserne-5))); - $unit = 9; - $metal -= ($sa*300); - $cristal -= ($sa*250); - - mysql_query("UPDATE planete SET cas_contruct_nb='$sa', cas_contruct='$unit', cas_contruct_time='$temps_caserne', metal='$metal', cristal='$cristal' WHERE id_user='$id' AND galaxie='$galaxy' AND position='$pos' AND ss='$ss'"); - header("Location: caserne.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; - } - else header("Location: caserne.php"); -mysql_close(); -} \ No newline at end of file diff --git a/pages/validation_terrestre.php b/pages/validation_terrestre.php deleted file mode 100644 index a5a4271..0000000 --- a/pages/validation_terrestre.php +++ /dev/null @@ -1,154 +0,0 @@ - 0) { - if ($metal - ($sa*500) >= 0) { - if ($cristal - ($sa*300) >= 0) { - $temps_caserne = time() + $sa*ceil(720/pow(1.25,($chantier_terrestre-1))); - $unit = 1; - $metal -= ($sa*500); - $cristal -= ($sa*300); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vaisseau_1']) && $sa > 0) { - if ($metal - ($sa*680) >= 0) { - if ($cristal - ($sa*420) >= 0) { - $temps_caserne = time() + $sa*ceil(2040/pow(1.25,($chantier_terrestre-3))); - $unit = 2; - $metal -= ($sa*680); - $cristal -= ($sa*420); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vaisseau_2']) && $sa > 0) { - if ($metal - ($sa*1000) >= 0) { - if ($cristal - ($sa*600) >= 0) { - $temps_caserne = time() + $sa*ceil(2700/pow(1.25,($chantier_terrestre-4))); - $unit = 3; - $metal -= ($sa*1000); - $cristal -= ($sa*600); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vaisseau_3']) && $sa > 0) { - if ($metal - ($sa*1400) >= 0) { - if ($cristal - ($sa*950) >= 0) { - $temps_caserne = time() + $sa*ceil(3960/pow(1.25,($chantier_terrestre-6))); - $unit = 4; - $metal -= ($sa*1400); - $cristal -= ($sa*950); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_1']) && $sa > 0) { - if ($metal - ($sa*400) >= 0) { - if ($cristal - ($sa*240) >= 0) { - $temps_caserne = time() + $sa*ceil(600/pow(1.25,($chantier_terrestre-1))); - $unit = 5; - $metal -= ($sa*400); - $cristal -= ($sa*240); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_2']) && $sa > 0) { - if ($metal - ($sa*480) >= 0) { - if ($cristal - ($sa*260) >= 0) { - $temps_caserne = time() + $sa*ceil(1080/pow(1.25,($chantier_terrestre-2))); - $unit = 6; - $metal -= ($sa*480); - $cristal -= ($sa*260); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_3']) && $sa > 0) { - if ($metal - ($sa*600) >= 0) { - if ($cristal - ($sa*420) >= 0) { - $temps_caserne = time() + $sa*ceil(2160/pow(1.25,($chantier_terrestre-3))); - $unit = 7; - $metal -= ($sa*600); - $cristal -= ($sa*420); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -elseif (isset($_POST['cons_vcl_4']) && $sa > 0) { - if ($metal - ($sa*1000) >= 0) { - if ($cristal - ($sa*500) >= 0) { - $temps_caserne = time() + $sa*ceil(4680/pow(1.25,($chantier_terrestre-5))); - $unit = 8; - $metal -= ($sa*1000); - $cristal -= ($sa*500); - - mysql_query("UPDATE planete SET unit_t='$unit', temps_t='$temps_caserne', metal='$metal', cristal='$cristal', hydrogene='$hydrogene', cons_terrestre='$sa' WHERE galaxie='$galaxy' AND ss='$ss' AND position='$pos'"); - header("Location: chantier_terrestre.php"); - } - else echo "Pas assez de cristal !"; - } - else echo "Pas assez de métal !"; -} -else header("Location: chantier_terrestre.php"); -} -mysql_close(); -?> \ No newline at end of file diff --git a/pages/version.php2 b/pages/version.php2 deleted file mode 100644 index 26e98d3..0000000 --- a/pages/version.php2 +++ /dev/null @@ -1,22 +0,0 @@ -
    -Halo-Battle

    -Version 0.1 Béta
    -Du samedi 27 octobre 2007
    -
    '; -?> - - \ No newline at end of file diff --git a/pages/voir_classement.php b/pages/voir_classement.php index a09174f..ff93117 100644 --- a/pages/voir_classement.php +++ b/pages/voir_classement.php @@ -79,7 +79,7 @@ else { $template->pparse('stat_playertable_header'); while ($row = mysql_fetch_assoc($test)){ - $table = $template->assign_vars( array('player_rank' => separerNombres($i), 'player_name' => $row['pseudo'], 'player_points' => separerNombres($row[$type]), 'player_mes'=> '')); + $table = $template->assign_vars( array('player_rank' => separerNombres($i), 'player_name' => $row['pseudo'], 'player_points' => separerNombres($row[$type]), 'player_mes'=> 'Envoyer un message privé')); $parse['body_values'] .= $template->pparse('stat_playertable'); $i++; } diff --git a/pages/voir_classement1.php b/pages/voir_classement1.php deleted file mode 100644 index 8b03b4c..0000000 --- a/pages/voir_classement1.php +++ /dev/null @@ -1,169 +0,0 @@ -set_filenames(array('stat_body' => 'stat_body.tpl','stat_playertable'=>'stat_playertable.tpl', 'stat_playertable_header'=>'stat_playertable_header.tpl' ,'stat_playertable_footer'=>'stat_playertable_footer.tpl')); - -$parse = $lang; -$who = (isset($_POST["who"]))?$_POST["who"]:$_GET["who"]; -$type = (isset($_POST["type"]))?$_POST["type"]:$_GET["type"]; -$start = (isset($_POST["start"]))?$_POST["start"]:$_GET["start"]; - -echo' - - -Halo battle - - - - - - - - - -'; - -require('../connectBDD.php'); - -$ee = mysql_query("SELECT * FROM classement ORDER BY points DESC"); -$i=1; -while ($data = mysql_fetch_array($ee)){ -echo "".$i."".$data['race']."".$data['pseudo']."".$data['points']."".$data['flottes']."".$data['recherches'].""; -$i++; -} -echo ""; - - $parse['who'] = ' - '; - -if (!isset($type)) -{ - $type='pts'; -} -$parse['type'] = ' - - - -'; - -if (!isset($start)) -{ - $start='0'; -} - -$parse['start'] = ' - - - - - - - - - - - - - - - '; - -if($who == "ally"){ - - } - -else { - - $template->assign_vars( array('who' =>$parse['who'],'type' =>$parse['type'], 'start' =>$parse['start'])); - -$template->pparse('stat_body'); - - - $template->assign_vars( array('who' =>$parse['who'],'type' =>$parse['type'], 'start' =>$parse['start'],'body_table'=>$parse['body_table'])); - -$template->pparse('stat_playertable_header'); - - - if($type == "flt"){ - $test=CalculPointflotte(); - } - elseif($type == "res"){ - - $test=CalculPointRecherche() ; - } - elseif($type == "bui"){ - $test=CalculPointBatiment(); - } - else - { - ; - $test=CalculPointGene($start); - } - $i=1; - while ($row = mysql_fetch_assoc($test)){ - - - $mes= ''; - - $table=$template->assign_vars( array('player_rank'=>$i, 'player_name' =>$row['pseudo'],'player_points' =>$row['points_'.$type.''],'player_mes'=>$mes)); - - $parse['body_values'] .=$template->pparse('stat_playertable'); - $i++; - - } - - } - - -$template->pparse('stat_playertable_footer'); - -echo ""; -echo ""; -echo ""; -?> \ No newline at end of file diff --git a/table.sql b/table.sql deleted file mode 100644 index 124569c..0000000 --- a/table.sql +++ /dev/null @@ -1,208 +0,0 @@ --- phpMyAdmin SQL Dump --- version 2.6.1 --- http://www.phpmyadmin.net --- --- Serveur: localhost --- Généré le : Mercredi 03 Octobre 2007 à 14:22 --- Version du serveur: 4.1.9 --- Version de PHP: 4.3.10 --- --- Base de données: `wars` --- - --- -------------------------------------------------------- - --- --- Structure de la table `bug` --- - -CREATE TABLE `bug` ( - `id` mediumint(9) NOT NULL default '0', - `pseudo` text NOT NULL, - `temps` bigint(20) NOT NULL default '0', - `page` text NOT NULL, - `description` text NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- --- Contenu de la table `bug` --- - - --- -------------------------------------------------------- - --- --- Structure de la table `classement` --- - -CREATE TABLE `classement` ( - `pseudo` text NOT NULL, - `race` text NOT NULL, - `points` bigint(20) NOT NULL default '0', - `flottes` bigint(20) NOT NULL default '0', - `terrestres` bigint(20) NOT NULL default '0', - `recherches` bigint(20) NOT NULL default '0' -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- --- Contenu de la table `classement` --- - - --- -------------------------------------------------------- - --- --- Structure de la table `mail` --- - -CREATE TABLE `mail` ( - `id` mediumint(9) NOT NULL default '0', - `vu` char(1) NOT NULL default '', - `destinataire` text NOT NULL, - `expediteur` text NOT NULL, - `sujet` text NOT NULL, - `temps` bigint(20) NOT NULL default '0' -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- --- Contenu de la table `mail` --- - - --- -------------------------------------------------------- - --- --- Structure de la table `planete` --- - -CREATE TABLE `planete` ( - `id` mediumint(9) NOT NULL default '0', - `galaxie` char(1) NOT NULL default '', - `ss` char(3) NOT NULL default '', - `position` char(2) NOT NULL default '', - `pseudo` text NOT NULL, - `nom_planete` text NOT NULL, - `image` tinyint(4) NOT NULL default '0', - `cases` char(3) NOT NULL default '', - `debris_met` bigint(20) NOT NULL default '0', - `debris_cri` bigint(20) NOT NULL default '0', - `metal` varchar(20) NOT NULL default '', - `cristal` varchar(20) NOT NULL default '', - `hydrogene` varchar(20) NOT NULL default '', - `timestamp` bigint(20) NOT NULL default '0', - `coeff` varchar(5) NOT NULL default '', - `energie` bigint(20) NOT NULL default '0', - `temps_b` bigint(20) NOT NULL default '0', - `bat` tinyint(4) NOT NULL default '0', - `mine_m` char(3) NOT NULL default '', - `mine_c` char(3) NOT NULL default '', - `mine_h` char(3) NOT NULL default '', - `centrale_s` char(3) NOT NULL default '', - `centrale_f` char(3) NOT NULL default '', - `radar` char(3) NOT NULL default '', - `labo` char(3) NOT NULL default '', - `chantier_terestre` char(3) NOT NULL default '', - `chantier_spatial` char(3) NOT NULL default '', - `caserne` char(3) NOT NULL default '', - `silo` char(3) NOT NULL default '', - `temps_t` bigint(20) NOT NULL default '0', - `tec` tinyint(4) NOT NULL default '0', - `informatique` char(3) NOT NULL default '', - `detection` char(3) NOT NULL default '', - `armement` char(3) NOT NULL default '', - `energie_t` char(3) NOT NULL default '', - `reacteur` char(3) NOT NULL default '', - `reacteur_f` char(3) NOT NULL default '', - `reacteur_ff` char(3) NOT NULL default '', - `medecine` char(3) NOT NULL default '', - `tactique` char(3) NOT NULL default '', - `developement` char(3) NOT NULL default '', - `blindage` char(3) NOT NULL default '', - `transporteur` bigint(20) NOT NULL default '0', - `gtransporteur` bigint(20) NOT NULL default '0', - `vcolo` bigint(20) NOT NULL default '0', - `sonde` bigint(20) NOT NULL default '0', - `recycleur` bigint(20) NOT NULL default '0', - `chasseur` bigint(20) NOT NULL default '0', - `fregate` bigint(20) NOT NULL default '0', - `croiseur1` bigint(20) NOT NULL default '0', - `croiseur2` bigint(20) NOT NULL default '0', - `pv` bigint(20) NOT NULL default '0', - `sto` bigint(20) NOT NULL default '0', - `soldat1` bigint(20) NOT NULL default '0', - `soldat2` bigint(20) NOT NULL default '0', - `soldat3` bigint(20) NOT NULL default '0', - `soldat4` bigint(20) NOT NULL default '0', - `sniper` bigint(20) NOT NULL default '0', - `spartam` bigint(20) NOT NULL default '0', - `medecin` bigint(20) NOT NULL default '0', - `ingenieur` bigint(20) NOT NULL default '0', - `soldat_lourd` bigint(20) NOT NULL default '0', - `vaisseau_att` bigint(20) NOT NULL default '0', - `vaisseau_1` bigint(20) NOT NULL default '0', - `vaisseau_2` bigint(20) NOT NULL default '0', - `vaisseau_3` bigint(20) NOT NULL default '0', - `vcl_1` bigint(20) NOT NULL default '0', - `vcl_2` bigint(20) NOT NULL default '0', - `vcl_3` bigint(20) NOT NULL default '0', - `vcl_4` bigint(20) NOT NULL default '0', - `def_1` bigint(20) NOT NULL default '0', - `def_2` bigint(20) NOT NULL default '0', - `def_3` bigint(20) NOT NULL default '0', - `def_4` bigint(20) NOT NULL default '0', - `def_5` bigint(20) NOT NULL default '0' -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- --- Contenu de la table `planete` --- - - --- -------------------------------------------------------- - --- --- Structure de la table `records` --- - -CREATE TABLE `records` ( - `type` text NOT NULL, - `pseudo` text NOT NULL, - `lvl` mediumint(9) NOT NULL default '0' -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- --- Contenu de la table `records` --- - - --- -------------------------------------------------------- - --- --- Structure de la table `user` --- - -CREATE TABLE `user` ( - `id` mediumint(9) NOT NULL auto_increment, - `pseudo` text NOT NULL, - `mdp` text NOT NULL, - `race` text NOT NULL, - `mail` text NOT NULL, - `ip` text NOT NULL, - `mv` tinyint(4) NOT NULL default '0', - `last_visite` bigint(20) NOT NULL default '0', - `points` bigint(20) NOT NULL default '0', - `place_points` smallint(6) NOT NULL default '0', - `recherches` bigint(20) NOT NULL default '0', - `place_recherches` smallint(6) NOT NULL default '0', - `flotte` bigint(20) NOT NULL default '0', - `place_flotte` smallint(6) NOT NULL default '0', - `terrestre` bigint(20) NOT NULL default '0', - `place_terrestre` smallint(6) NOT NULL default '0', - KEY `id` (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; - --- --- Contenu de la table `user` --- - - \ No newline at end of file diff --git a/templates/Tabressources.tpl b/templates/Tabressources.tpl deleted file mode 100644 index e663772..0000000 --- a/templates/Tabressources.tpl +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - ::Halo-Battle:: Bêta - Ressources - - - -{HEADER} -{RESSOURCES}


    -
    -
    - {PUB}
    - - - - - - - - - - - - - - - - - - - -
    CoefficientMétalCristalHydrogèneEnergie
    {batiment.NIVEAU} {batiment.NOM}{batiment.COEFF}{batiment.PMETAL}{batiment.PCRISTAL}{batiment.PHYDROGENE}{batiment.PENERGIE}
    -
    - - \ No newline at end of file diff --git a/templates/admin.tpl b/templates/admin.tpl deleted file mode 100644 index 3c59780..0000000 --- a/templates/admin.tpl +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - ::Halo-Battle:: Panneau d'administration - {TITRE} - - -
    -
    - - - - -
    -
    - - - - -
    -
    -
    -
    - - - - -
    -
    -
    - - - - -
    - Modération des rapports de bug
    -
    - - - - - -
    DePageDescription
    {rapbug.NOM}{rapbug.PAGE}{rapbug.DESCRIPTION}
    -
    -
    -
    -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/templates/batiments.tpl b/templates/batiments.tpl deleted file mode 100644 index d079ba0..0000000 --- a/templates/batiments.tpl +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - ::Halo-Battle:: Bêta - Bâtiments - - -{HEADER} -{RESSOURCES}



    {PUB}

    {ERREUR} -
    - - - - - - - -
    File d'attente
    -
    - - {file.NOM} - Annuler{CHAINE}
    - - {FILETXT} -
    -
    -
    -
    -
    - - - - -
    - Arbre des technologies -
    -
    -
    -
    - - - - -
    - - - - - - - - -
    - {batiment.NOM} {batiment.NIVEAU} -
    {batiment.DESCRIPTION}
    - Besoin de : {batiment.BESOIN}
    Temps de construction : {batiment.TEMPS} -
    - {batiment.ACTION} -
    -
    -
    - - \ No newline at end of file diff --git a/templates/chantier_spatial.tpl b/templates/chantier_spatial.tpl deleted file mode 100644 index b1c8ed4..0000000 --- a/templates/chantier_spatial.tpl +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - ::Halo-Battle:: Bêta - Chantier spatial - - -{HEADER} -{RESSOURCES}



    {PUB}

    {ERREUR} -
    - - - - - - - - - - -
    File d'attente
    Prochain vaisseau : {RESTE}
    -
    - - {file.NOM} - Annuler{CHAINE}
    - - {FILETXT} -
    -
    -
    -
    -
    - - - - -
    - Arbre des technologies -
    -
    -
    -
    - - - - -
    - - - - - - - - -
    - {vaisseau.NOM} {vaisseau.NIVEAU} -
    {vaisseau.DESCRIPTION}
    - Besoin de : {vaisseau.BESOIN}
    Temps de construction : {vaisseau.TEMPS} -
    - {vaisseau.ACTION} -
    -
    -
    - - \ No newline at end of file diff --git a/templates/defenses.tpl b/templates/defenses.tpl deleted file mode 100644 index 1487c92..0000000 --- a/templates/defenses.tpl +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - ::Halo-Battle:: Bêta - Défenses - - -{HEADER} -{RESSOURCES}



    {PUB}

    {ERREUR} -
    - - - - - - - - - - -
    File d'attente
    Prochaine défense : {RESTE}
    -
    - - {file.NOM} - Annuler{CHAINE}
    - - {FILETXT} -
    -
    -
    -
    -
    - - - - -
    - Arbre des technologies -
    -
    -
    -
    - - - - -
    - - - - - - - - -
    - {defense.NOM} {defense.NIVEAU} -
    {defense.DESCRIPTION}
    - Besoin de : {defense.BESOIN}
    Temps de construction : {defense.TEMPS} -
    - {defense.ACTION} -
    -
    -
    - - \ No newline at end of file diff --git a/templates/depart.tpl b/templates/depart.tpl deleted file mode 100644 index 972c4fd..0000000 --- a/templates/depart.tpl +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - ::Halo-Battle:: Bêta - - - -{HEADER} -{RESSOURCES}




    -
    {PUB}
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Evènements
    Heure du serveur{DATEHEURE}
    {MESSAGERIE}
    - {NOM_PLANETE} ({PSEUDO}) -
    - -
    Diamètre{DESC_DIAMETRE} km ({DESC_CASES}/{DESC_CASESMAX} cases)
    Race{RACE}
    Position - [{GALAXIE}:{SYSTEME}:{POSITION}] -
    Classement - {POINTS} points ({PLACE}) -
    -
    - - \ No newline at end of file diff --git a/templates/descriptions.tpl b/templates/descriptions.tpl deleted file mode 100644 index 4e86010..0000000 --- a/templates/descriptions.tpl +++ /dev/null @@ -1,35 +0,0 @@ -
    - - - - - - - - -
    - Usine de métallurgie niveau 8
    - Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal. -
    - - -
    - - - - - - - - - - - - - - - -
    NiveauProduction par heureConsommation énergie
    6793 (+ 133)54 (+ 13)
    7933 (+ 140)71 (+ 17)
    81084 (+ 151)94 (+ 23)
    91252 (+ 168)125 (+ 31)
    101445 (+ 193)165 (+ 40)
    111676 (+ 231)218 (+ 53)
    121964 (+ 288)288 (+ 70)
    -
    -
    -
    \ No newline at end of file diff --git a/templates/index.tpl b/templates/index.tpl index b6d0096..a2e9201 100644 --- a/templates/index.tpl +++ b/templates/index.tpl @@ -9,7 +9,6 @@ - ::Halo-Battle:: Bêta - {TITRE}