game/onyx2/include/function.php

353 lines
12 KiB
PHP
Raw Normal View History

2009-11-01 11:00:00 +00:00
<?php
function trouvNom($id_user)
{
global $table_user;
$base = new bdd();
$resultat = $base->unique_query("SELECT pseudo FROM $table_user WHERE id = $id_user;");
$base->deconnexion();
return $resultat['pseudo'];
}
function linkNom($id_user){
if (is_numeric($id_user)) $nom = trouvNom($id_user);
else $id_user = trouvId($id_user);
return '<a href="?p=util&amp;i='.$id_user.'">'.$nom.'</a>';
}
/*function trouvId($nom){
global $table_user;
$base = new bdd();
$base->connexion();
$resultat = $base->unique_query("SELECT id FROM $table_user WHERE pseudo = '$nom';");
$base->deconnexion();
return $resultat['id'];
}*/
/*function trouvInfo($id_user, $info){
global $table_user;
$base = new bdd();
$base->connexion();
$resultat = $base->unique_query("SELECT $info FROM $table_user WHERE id = $id_user;");
$base->deconnexion();
return $resultat[$info];
}*/
function affTemp($secondes){
$heures = intval($secondes/3600);
$minutes = intval($secondes/60-($heures*60));
if ($minutes < 10) $minutes = '0'.$minutes;
$seconde = $secondes-($heures*3600)-($minutes*60);
if ($seconde < 10) $seconde = '0'.$seconde;
return $heures.':'.$minutes.':'.$seconde;
}
function separerNombres($nombre) {
return number_format($nombre, 0, ',', ' ');
}
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 .= ' ';
}
}
if (empty($output)) return 'Instantané';
else return $output;
}
function readDeblok($tableau, $queryPlanete){
global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
if ($tableau == '0') return 'Débloqué';
else {
$return = '';
foreach ($tableau as $ligne){
if (!(array_search($ligne[1], $batimentVAR) === false)) {
$x = array_search($ligne[1], $batimentVAR);
$var = 'batiments';
}
elseif (!(array_search($ligne[1], $technologiesVAR) === false)) {
$x = array_search($ligne[1], $technologiesVAR);
$var = 'technologies';
}
elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) {
$x = array_search($ligne[1], $casernenVAR);
$var = 'casernes';
}
elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) {
$x = array_search($ligne[1], $nomterrnVAR);
$var = 'terrestres';
}
elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) {
$x = array_search($ligne[1], $nomvaisnVAR);
$var = 'vaisseaux';
}
else return '#Error';
if (isset($var) && $var == 'technologies') {
if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return .= '<span class="lack">'.$ligne[0].' ('.$var.')</span><br />';
else $return .= $ligne[0].' ('.$var.')<br />';
}
elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return .= '<span class="lack">'.$ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')</span><br />';
elseif (isset($var) && $queryPlanete->{$var}[$x] >= $ligne[2]) $return .= $ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')<br />';
}
if (empty($return)) return 'Débloqué';
else return $return;
}
}
function requestDeblok($tableau, $queryPlanete){
global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
if ($tableau == '0') return true;
else {
$return = true;
foreach ($tableau as $ligne){
if (!(array_search($ligne[1], $batimentVAR) === false)) {
$x = array_search($ligne[1], $batimentVAR);
$var = 'batiments';
}
elseif (!(array_search($ligne[1], $technologiesVAR) === false)) {
$x = array_search($ligne[1], $technologiesVAR);
$var = 'technologies';
}
elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) {
$x = array_search($ligne[1], $casernenVAR);
$var = 'casernes';
}
elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) {
$x = array_search($ligne[1], $nomterrnVAR);
$var = 'terrestres';
}
elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) {
$x = array_search($ligne[1], $nomvaisnVAR);
$var = 'vaisseaux';
}
else return false;
if (isset($var) && $var == 'technologies') {
if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return = false;
}
elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return = false;
}
return $return;
}
}
function txtmission($mission){
if ($mission == 0) return 'Stationner';
elseif ($mission == 1) return 'Transporter';
elseif ($mission == 2) return 'Coloniser';
elseif ($mission == 3) return 'Attaquer';
elseif ($mission == 4) return 'Recycler';
elseif ($mission == 5) return 'Espionner';
elseif ($mission == 6) return 'Retour';
else return 'Erreur';
}
function txtTactique($tactique){
switch($tactique){
case 1: return '1'; break;
case 2: return '2'; break;
case 3: return '3'; break;
case 4: return '4'; break;
case 5: return '5'; break;
case 6: return '6'; break;
case 7: return '7'; break;
case 8: return '8'; break;
case 9: return '9'; break;
case 10: return '10'; break;
case 11: return '11'; break;
case 12: return '12'; break;
case 13: return '13'; break;
case 14: return '14'; break;
case 15: return '15'; break;
case 16: return '16'; break;
case 17: return '17'; break;
case 18: return '18'; break;
case 19: return '19'; break;
case 20: return '20'; break;
case 21: return '21'; break;
default: return 'autre'; break;
}
}
function tactique($tactique){
switch($tactique){
case 1: return array(1,0,12,false); break;
case 2: return array(2,88,12,false); break;
case 3: return array(3,75,25,false); break;
case 4: return array(4,63,37,false); break;
case 5: return array(5,50,50,false); break;
case 6: return array(6,37,63,false); break;
case 7: return array(7,25,75,false); break;
case 8: return array(8,12,88,false); break;
case 9: return array(9,12,88,true); break;
case 10: return array(10,25,75,true); break;
case 11: return array(11,37,63,true); break;
case 12: return array(12,50,50,true); break;
case 13: return array(13,63,37,true); break;
case 14: return array(14,75,25,true); break;
case 15: return array(15,75,26,true); break;
case 16: return array(16,75,27,true); break;
case 17: return array(17,75,28,true); break;
case 18: return array(18,75,29,true); break;
case 19: return array(19,75,30,true); break;
case 20: return array(20,75,31,true); break;
case 21: return array(21,75,32,true); break;
default: return array(1,0,10,false); break;
}
}
function pillage($metal, $cristal, $hydrogene, $vfm){
$Qm = $metal / $vfm;
$Qc = $cristal / $vfm;
$Qh = $hydrogene / $vfm;
$somme = $Qm + $Qc + $Qh;
if ($somme < 2) {
$Fm = $metal / 2;
$Fc = $cristal / 2;
$Fh = $hydrogene / 2;
}
else {
$Fm = $Qm / $somme * $vfm;
$Fc = $Qc / $somme * $vfm;
$Fh = $Qh / $somme * $vfm;
}
return array(floor($Fm), floor($Fc), floor($Fh));
}
function vais_tempsDeplacement($start_galaxie,$start_ss,$start_position,$end_galaxie,$end_ss,$end_position,$vitesse,$coefvitesse = 1,$preparation = 0,$chauffe = 0) {
if ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0 && $end_position-$start_position == 0) $temps = 0;
elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0 && $chauffe == 0) $temps = $preparation+abs($end_position-$start_position)*$vitesse/12;
elseif ($end_galaxie-$start_galaxie == 0 && $chauffe == 0) $temps = $preparation+abs($end_ss-$start_ss)*$vitesse;
elseif ($chauffe == 0) $temps = $preparation+abs($end_galaxie-$start_galaxie)*$vitesse*300;
elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0) $temps = $preparation+abs($end_position-$start_position)*($vitesse*2)/12+$preparation;
/*elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss <= $chauffe) $temps = abs($end_ss-$start_ss)*(($vitesse/$chauffe)*($chauffe-abs($end_ss-$start_ss))+$vitesse)+$preparation;
elseif ($end_galaxie-$start_galaxie == 0) $temps = $vitesse*abs($end_ss-$start_ss)+$vitesse*10+$preparation;*/
elseif ($end_galaxie-$start_galaxie == 0) $temps = (abs($end_ss-$start_ss)*(($vitesse/$chauffe)*((abs($chauffe-abs($end_ss-$start_ss))+($chauffe-abs($end_ss-$start_ss)))/2)+$vitesse))+(20-(abs($chauffe-abs($end_ss-$start_ss))+($chauffe-abs($end_ss-$start_ss)))/2)*54+$preparation;
else $temps = (($vitesse/$chauffe)*($chauffe-abs($end_galaxie-$start_galaxie))+$vitesse)*300+108+$preparation;
return $temps/$coefvitesse;
}
function vaisTempsdeplacement($start_amas, $start_ss, $start_pos, $end_amas,$end_ss, $end_pos, $vitessevaisseaux, $vitesseflotte=100) {
if($end_amas - $start_amas != 0) return (10+(35000/$vitesseFlotte*sqrt(abs($end_amas-$start_amas)*20000000/$vitesseVaisseaux)));
elseif($end_ss-$start_ss != 0) return (10+(35000/$vitesseFlotte*sqrt(2700000+abs($end_ss-$start_ss)*95000/$vitessevais)));
elseif($end_pos-$start_pos != 0) return (10+(35000/$vitesseFlotte*sqrt((abs($end_pos-$start_pos)*5000/$vitessevais))));
else return (10+(35000/$vitesseFlotte-sqrt(5000/$vitesseVais)));
}
function vais_conso($tempsDeplacement,$nbvais = 1){
return intval($tempsDeplacement*$nbvais/20);
}
function send_mail($admail, $sujet, $corps){
require_once(_FCORE."../game/Class/class.phpmailer.php");
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."../game/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($admail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject = $sujet;
$mail->Body = $corps;
$return = $mail->Send();
$mail->SmtpClose();
return $return;
}
function send_mailHTML($admail, $sujet, $corps){
require_once(_FCORE."../game/Class/class.phpmailer.php");
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."../game/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($admail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject = 'Halo-Battle :: '.$sujet;
$mail->Body = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: '.$sujet.'</title></head><body><p>'.$corps.'<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
$return = $mail->Send();
$mail->SmtpClose();
return $return;
}
function erreur($message, $color = "red", $lien = "", $temps = 2500){
global $template, $page;
if (!empty($page))
$template->assign('page', $page);
$template->assign('message', $message);
//if (!empty($lien)) $template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$lien.'";\', '.$temps.');</script>');
$template->assign('couleur',$color);
$template->display('game/erreur.tpl');
exit;
}
function send_mp($joueur, $titre, $message, $type = 0, $emetteur = 0){
global $table_mail, $bdd;
$temps = time();
if (!is_numeric($joueur)) $joueur = trouvId($joueur);
if (!is_numeric($emetteur)) $emetteur = trouvId($emetteur);
if (!empty($joueur)) {
$bdd->connexion();
$bdd->escape($joueur);
$bdd->escape($titre);
$bdd->escape($message);
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', '$temps');");
$bdd->deconnexion();
}
}
function nameLink($id, $type){
global $race;
require(_FCORE."../game/noms.php");
if ($type == "technologie") return '<a href="?p=description&amp;t=1">'.$technolo[$id].'</a>';
}
function mdp($nom, $mdp, $alea = false){
if (empty($alea)) {
$alea = random(1024);
return array(hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea)), $alea);
}
else return hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea));
}
function redirection($url){
header('Location: '.$url);
print '<meta http-equiv="refresh" content="0; url='.$url.'" />';
}
?>