1) $coeff_mine_m = 1; $mine_c = $queryPlanete['mine_c']; $coeff_mine_c = $queryPlanete['coeff_mine_c']; if ($coeff_mine_c < 0) $coeff_mine_c = 0; if ($coeff_mine_c > 1) $coeff_mine_c = 1; $mine_h = $queryPlanete['mine_h']; $coeff_mine_h = $queryPlanete['coeff_mine_h']; if ($coeff_mine_h < 0) $coeff_mine_h = 0; if ($coeff_mine_h > 1) $coeff_mine_h = 1; $centrale_s = $queryPlanete['centrale_s']; $coeff_centrale_s = $queryPlanete['coeff_centrale_s']; //$coeff_centrale_s = 1; if ($coeff_centrale_s < 0) $coeff_centrale_s = 0; if ($coeff_centrale_s > 1) $coeff_centrale_s = 1; $centrale_f = $queryPlanete['centrale_f']; if ($centrale_f <= 0) $coeff_centrale_f = 0; else $coeff_centrale_f = $queryPlanete['coeff_centrale_f']; if ($coeff_centrale_f < 0) $coeff_centrale_f = 0; if ($coeff_centrale_f > 1) $coeff_centrale_f = 1; //Calcul du temps écoulé depuis la dernière mise à jour de la planète $temps_actuel = time(); $temps_ancien = $queryPlanete['timestamp']; $temps_ecoule = $temps_actuel - $temps_ancien; //Calcul de la capacité de stockage maximale $cap = (pow(2,$queryPlanete['silo'])*100000); //Initialisation des variables $conso_h = 0; //Production 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 * $coeff_mine_m + $energie_c * $coeff_mine_c + $energie_h * $coeff_mine_h; $nrjmx = $energie_m + $energie_c + $energie_h; //Calcul de la production d'énergie $t = $energie_s * $coeff_centrale_s + $energie_f * $coeff_centrale_f; if ($nrj == 0) $coeff = 0; else $coeff = $t / $nrj; //print $coeff.' = '.$t.'/'.$nrj; if ($coeff < 0) $coeff = 0; elseif ($coeff > 1) $coeff = 1; $Ncoeff_mine_m = $coeff * $coeff_mine_m; $Ncoeff_mine_c = $coeff * $coeff_mine_c; $Ncoeff_mine_h = $coeff * $coeff_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_user' AND galaxie='$g' AND ss='$s'AND position='$p'") or die ('mysql'); $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_user' 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_user' AND galaxie='$g' AND ss='$s'AND position='$p'"); $coeff_mine_h = $Ncoeff_mine_h; } $alert_metal = false; if ($metal >= $cap) { $prod_met=0; $metal = $cap; $alert_metal = true; } else { if ($mine_m <= 0 || $centrale_s <= 0) $prod_met = 0.011*$temps_ecoule; else $prod_met = ((ceil(pow(1.1,$mine_m)*35*$mine_m)/3600)*$temps_ecoule)*$coeff_mine_m*1.5; } $alert_cristal = false; if ($cristal >= $cap) { $prod_cri=0; $cristal = $cap; $alert_cristal = true; } else { if ($mine_c <= 0 || $centrale_s <= 0) $prod_cri = 0.0055*$temps_ecoule; else $prod_cri = ((ceil(pow(1.1,$mine_c)*23*$mine_c)/3600)*$temps_ecoule)*$coeff_mine_c*1.5; } $alert_hydrogene = false; if ($hydrogene >= $cap) { $prod_hy=0; $hydrogene = $cap; $alert_hydrogene = true; } else { if ($mine_h < 0) $prod_hy = 0; else $prod_hy = (((ceil(pow(1.1,$mine_h)*14*($mine_h+0.7))/3600)*$temps_ecoule) - $conso_h) * $coeff_mine_h*1.5; if ($mine_h == 0) $prod_hy=0; if ($prod_hy < 0) $prod_hy = 0; } if ($centrale_f > 0) $conso_h = ((ceil(pow(1.34,($centrale_f-1))*9)/3600)*$temps_ecoule) * $coeff_centrale_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(pow(1.34,($centrale_f-1))*9) <= $hydrogene/5 && $coeff_centrale_f == 0) { $coeff_energie_f = 1; } $a = $metal + $prod_met; $b = $cristal + $prod_cri; $c = $hydrogene + $prod_hy; $u = $energie_s * $coeff_centrale_s + $energie_f * $coeff_centrale_f; $TEMP_energie = separerNombres(intval($nrj)).'/'.separerNombres($u); if ($nrj >= $u) $alert_energie = true; else $alert_energie = false; $diffnrj = $u-$nrj; //Mise à jour de la base de données $chapeau->query("UPDATE `planete` SET `timestamp` = '$temps_actuel', `metal` = '$a', `cristal` = '$b', `hydrogene` = '$c', `coeff` = '$coeff', `energie` = '$t', `coeff_centrale_f` = '$coeff_centrale_f' WHERE `id_user` = '$id_user' AND `galaxie` = '$g' AND `ss` = '$s'AND `position` = '$p'"); $template->assign('alertes', array($alert_metal, $alert_cristal, $alert_hydrogene, $TEMP_energie, $alert_energie, separerNombres($diffnrj))); ?>