Graviton

Démarré par DarkNoon, 18 Mai 2012, 00:13:06

« précédent - suivant »

DarkNoon

J'ai reçu un patch pour Graviton de la part de kapouic:

Je le mets ici pour analyse ;)

$ diff -uc graviton.php graviton.php.old
*** graviton.php        Wed May  2 17:02:19 2012
--- graviton.php.old    Wed May  2 17:00:45 2012
***************
*** 61,67 ****
        {
                echo "batimentsOGSpy[".$j."]= new Array('".
                        $user_building[$i]['planet_name']."','".
!                       floor($user_building[$i]["temperature_max"])."','".
                        $user_building[$i]['CES']."','".
                        $user_building[$i]['CEF']."','".
                        $user_building[$i]['UdN']."','".
--- 61,67 ----
        {
                echo "batimentsOGSpy[".$j."]= new Array('".
                        $user_building[$i]['planet_name']."','".
!                       floor(($user_building[$i]["temperature_max"] + $user_bui                                                                             lding[$i]["temperature_min"])/2)."','".
                        $user_building[$i]['CES']."','".
                        $user_building[$i]['CEF']."','".
                        $user_building[$i]['UdN']."','".

Héberger votre OGSpy : Hébergement

kapouik

C'est kapouik avec un k non de diou !!!!!!

Et faut mettre un crédit à Sate qui à trouver l'erreur et me l'a signalé.

Et je remercie ma famille et tout et tout aussi pour m'avoir permis de réaliser mes rêves (merde je m'égare là ...)

sate

Personnellement je m'intéresse aussi au fichier function.js
Surtout la ligne 183 de formule de calcul de production d'un satellite
Sat['prod_un'][i] = Math.floor (((batimentsOGSpy[i][1]) / 4) + 20);

Or d'après le forum, c'est normalement
CitationProduction des satellites solaires

    {[(Température Max + Température Min)/2]+160}/6

kapouik

J'ai corrigé la prod des satelite mais j'arrive pas encore à corriger la prod des centrale électrique à fusion.

Il me faut pour ça récupérer la valeur de la technologie énergie.

Ensuite pour le moment j'ai visiblement les bonnes valeur pour les centrales solaire mais comme je n'ai pas trouvé la formule de calcule je reste perplexe.

Centrale électrique de fusion :
=> Production = 30 * Niveau de la centrale de fusion * (1,05 + Niveau de recherche Energie * 0,01) ^ Niveau de la centrale de fusion

kapouik

Voilà c'est fonctionnel :p

Il n'y a plus qu'a valider que tout est correct ce que ne manquera pas de faire Sate demain parce que je sais qu'il en a envie :)


# diff -uc graviton.php.old  graviton.php
*** graviton.php.old    Wed May  2 17:00:45 2012
--- graviton.php        Wed May 23 21:53:21 2012
***************
*** 61,67 ****
        {
                echo "batimentsOGSpy[".$j."]= new Array('".
                        $user_building[$i]['planet_name']."','".
!                       floor(($user_building[$i]["temperature_max"] + $user_building[$i]["temperature_min"])/2)."','".
                        $user_building[$i]['CES']."','".
                        $user_building[$i]['CEF']."','".
                        $user_building[$i]['UdN']."','".
--- 61,67 ----
        {
                echo "batimentsOGSpy[".$j."]= new Array('".
                        $user_building[$i]['planet_name']."','".
!                       floor(((($user_building[$i]["temperature_max"] + $user_building[$i]["temperature_min"])/2)+160)/6)."','".
                        $user_building[$i]['CES']."','".
                        $user_building[$i]['CEF']."','".
                        $user_building[$i]['UdN']."','".
***************
*** 74,79 ****
--- 74,80 ----
  }
  echo 'nb_planete = '.$nb_planete.';';
  echo 'vitesse_uni = '.$vitesse_uni.';';
+ echo 'lvl_energie = '.$user_technology['NRJ'].';';
  if ($user_technology['Graviton'] <> '') {echo "graviton=".$user_technology['Graviton'].";
";}
  else {echo "graviton=0;
";}

# diff -uc function.js.old function.js
*** function.js.old     Wed May 23 17:07:40 2012
--- function.js Wed May 23 22:37:23 2012
***************
*** 178,186 ****
   NRJ_nec = 300000 * Math.pow (3,(niv_grav-1));

   Prod['CES'][i] = Math.round ((20 * (niv_bat['CES'][i]) * (Math.pow(1.1,(niv_bat['CES'][i])))));
!  Prod['CEF'][i] = Math.round ((50 * (niv_bat['CEF'][i]) * (Math.pow(1.1,(niv_bat['CEF'][i])))));

!  Sat['prod_un'][i] = Math.floor (((batimentsOGSpy[i][1]) / 4) + 20);
   Prod['Sat'][i] = Math.round ((niv_bat['Sat'][i]) * (Sat['prod_un'][i]));

   Prod['tot'][i] = Prod['CES'][i] + Prod['CEF'][i] + Prod['Sat'][i];
--- 178,186 ----
   NRJ_nec = 300000 * Math.pow (3,(niv_grav-1));

   Prod['CES'][i] = Math.round ((20 * (niv_bat['CES'][i]) * (Math.pow(1.1,(niv_bat['CES'][i])))));
!  Prod['CEF'][i] = Math.round (30 * niv_bat['CEF'][i] * Math.pow((1.05 + 0.01 * lvl_energie), niv_bat['CEF'][i]));

!  Sat['prod_un'][i] = Math.floor (batimentsOGSpy[i][1]);
   Prod['Sat'][i] = Math.round ((niv_bat['Sat'][i]) * (Sat['prod_un'][i]));

   Prod['tot'][i] = Prod['CES'][i] + Prod['CEF'][i] + Prod['Sat'][i];

sate

24 Mai 2012, 08:22:16 #5 Dernière édition: 24 Mai 2012, 08:48:12 par sate
Je test ;)

Production des satellites : bonne valeur
Production CEF : bonne valeur

Après je vais faire une petite remarque :
Comme on peut modifier les valeurs de niveau de centrales, etc dans la page graviton, il faudrait qu'on puisse modifier le niveau de la techno énergie afin de pouvoir simuler le tout.
Et prendre en compte l'officier ingénieur (Demande MODGRA-6)

Autre chose, il faut faire attention à mettre les arrondis qu'à la fin du traitement sinon les calculs peuvent erronés.
Par exemple dans le cas d'un uni en x2, le temps de construction des bâtiments n'est pas le bon (Demande MODGRA-9)

function.js
Temps['UdN'][i] = temps_usine ('UdN',niv_bat['UdN'][i],i)/vitesse_uni;
Temps['UdR'][i] = temps_usine ('UdR',niv_bat['UdR'][i],i)/vitesse_uni;

Les arrondis ont été faits avant la gestion de la vitesse de l'univers.

kapouik

Je met quelques nouveaux ajouts dans le function.js qui corrige les temps de construction des batiments.

Comme toujours Sate va se faire un plaisir de me trouver de nouveaux trucs à corriger je pense :)


# diff -uc function.js.old function.js
*** function.js.old     Wed May 23 17:07:40 2012
--- function.js Fri May 25 00:52:44 2012
***************
*** 147,168 ****
        var batiment = 0;
        switch (bat) {
                case "UdN":
!               niv=parseFloat(batimentsOGSpy[planete][4]) + 1;
!               while (niv<=level){
!                       res = ((1000000 * Math.pow(2,(niv-1))) + (500000 * Math.pow(2,(niv-1))) ) / 1000;
!                       batiment = (parseFloat(batimentsOGSpy[planete][8]) + 1) * (Math.pow (2,(niv-1))) ;
!                       temps += Math.floor ( ( (res) / (batiment) ) * 24 * 60);
!                       niv++;}
                break;
                case "UdR":
!               niv=parseFloat(batimentsOGSpy[planete][8]) + 1;
                case "M":
!               while (niv<=level){
!                       res = ((400 * Math.pow(2,(niv-1))) + (120 * Math.pow(2,(niv-1))) ) / 1000;
!                       batiment = (niv) * (UdN[planete]) ;
!                       temps += Math.floor ( ( (res) / (batiment) ) * 24 * 60);
!                       niv++;
!               }
                break;
                default :
                temps =0;
--- 147,164 ----
        var batiment = 0;
        switch (bat) {
                case "UdN":
!               niv=parseFloat(batimentsOGSpy[planete][4]);
!               temps = Math.floor ( ( ( ( ( ( (1500000)/5000 ) * ( 2 /(parseFloat(batimentsOGSpy[planete][8])+1) ) ) * ( level - niv) ) * 3600 ) - (90 * ( level - niv) ) )/vitesse_uni );
!
                break;
                case "UdR":
!               niv=parseFloat(batimentsOGSpy[planete][8]);
                case "M":
!               res = (520 * -(1 - Math.pow(2,level))) - (520 * -(1 - Math.pow(2,niv)));
!               tUdR = ( 2 /(parseFloat(batimentsOGSpy[planete][8])+1) );
!               tUdN = Math.pow(0.5,parseFloat(batimentsOGSpy[planete][4]) );
!               temps = Math.floor ( ( ( ( ( ( res / 5000 ) * tUdR ) ) * tUdN * 3600 ) - (90 * ( level - niv) ) )/vitesse_uni );
!
                break;
                default :
                temps =0;
***************
*** 178,186 ****
   NRJ_nec = 300000 * Math.pow (3,(niv_grav-1));

   Prod['CES'][i] = Math.round ((20 * (niv_bat['CES'][i]) * (Math.pow(1.1,(niv_bat['CES'][i])))));
!  Prod['CEF'][i] = Math.round ((50 * (niv_bat['CEF'][i]) * (Math.pow(1.1,(niv_bat['CEF'][i])))));

!  Sat['prod_un'][i] = Math.floor (((batimentsOGSpy[i][1]) / 4) + 20);
   Prod['Sat'][i] = Math.round ((niv_bat['Sat'][i]) * (Sat['prod_un'][i]));

   Prod['tot'][i] = Prod['CES'][i] + Prod['CEF'][i] + Prod['Sat'][i];
--- 174,182 ----
   NRJ_nec = 300000 * Math.pow (3,(niv_grav-1));

   Prod['CES'][i] = Math.round ((20 * (niv_bat['CES'][i]) * (Math.pow(1.1,(niv_bat['CES'][i])))));
!  Prod['CEF'][i] = Math.round (30 * niv_bat['CEF'][i] * Math.pow((1.05 + 0.01 * lvl_energie), niv_bat['CEF'][i]));

!  Sat['prod_un'][i] = Math.floor (batimentsOGSpy[i][1]);
   Prod['Sat'][i] = Math.round ((niv_bat['Sat'][i]) * (Sat['prod_un'][i]));

   Prod['tot'][i] = Prod['CES'][i] + Prod['CEF'][i] + Prod['Sat'][i];
***************
*** 232,239 ****
   Temps['Sat'][i] = Sat['nb_nec'][i] * Temps['Sat_un'][i];
   Temps['Centrale'][i] =       Math.floor ((( ((Ress['Centrale']['Metal'][i] + Ress['Centrale']['Cristal'][i]) / 1000) / ((UdR[i]) * (UdN[i]))) * 24 * 60)/vitesse_uni);
   Temps['CSp'][i] = Math.floor ((( ((Ress['CSp']['Metal'][i] + Ress['CSp']['Cristal'][i]) / 1000) / ((UdR[i]) * (UdN[i]))) * 24 * 60)/vitesse_uni);
!  Temps['UdN'][i] = temps_usine ('UdN',niv_bat['UdN'][i],i)/vitesse_uni;
!  Temps['UdR'][i] = temps_usine ('UdR',niv_bat['UdR'][i],i)/vitesse_uni;
   Temps['Usine'][i] = Temps['CSp'][i] + Temps['UdN'][i] + Temps['UdR'][i];

   Temps['Total'][i] = Temps['Lab'][i] + Temps['Sat'][i] + Temps['Centrale'][i] + Temps['Usine'][i];
--- 228,235 ----
   Temps['Sat'][i] = Sat['nb_nec'][i] * Temps['Sat_un'][i];
   Temps['Centrale'][i] =       Math.floor ((( ((Ress['Centrale']['Metal'][i] + Ress['Centrale']['Cristal'][i]) / 1000) / ((UdR[i]) * (UdN[i]))) * 24 * 60)/vitesse_uni);
   Temps['CSp'][i] = Math.floor ((( ((Ress['CSp']['Metal'][i] + Ress['CSp']['Cristal'][i]) / 1000) / ((UdR[i]) * (UdN[i]))) * 24 * 60)/vitesse_uni);
!  Temps['UdN'][i] = temps_usine ('UdN',niv_bat['UdN'][i],i);
!  Temps['UdR'][i] = temps_usine ('UdR',niv_bat['UdR'][i],i);
   Temps['Usine'][i] = Temps['CSp'][i] + Temps['UdN'][i] + Temps['UdR'][i];

   Temps['Total'][i] = Temps['Lab'][i] + Temps['Sat'][i] + Temps['Centrale'][i] + Temps['Usine'][i];
***************
*** 267,270 ****
                  {secondes = "0" + secondes;}
                temps_decomp = jour + "J " + heures + "H " + minutes + "min " + secondes + "s";
          return temps_decomp;
! }
No newline at end of file
--- 263,266 ----
                  {secondes = "0" + secondes;}
                temps_decomp = jour + "J " + heures + "H " + minutes + "min " + secondes + "s";
          return temps_decomp;
! }

sate

Je ne vais écrire ici à chaque fois que je vois un truc qui cloche  :D
Pas mal par contre, le coup des 90 secondes.

kapouik

Bon la dernière version de graviton.php qui ajoute le champs de recherche énergie fonctionnel et qui fonctionne avec le function.js cité sur le message précédent.

Pour le moment Sate trouve que c'est bon donc je ne me ferai peut être pas fouetter aujourd'hui :D

# diff -uc graviton.php.old graviton.php                                       
*** graviton.php.old    Wed May  2 17:00:45 2012
--- graviton.php        Fri May 25 10:10:06 2012
***************
*** 61,67 ****
        {
                echo "batimentsOGSpy[".$j."]= new Array('".
                        $user_building[$i]['planet_name']."','".
!                       floor(($user_building[$i]["temperature_max"] + $user_building[$i]["temperature_min"])/2)."','".
                        $user_building[$i]['CES']."','".
                        $user_building[$i]['CEF']."','".
                        $user_building[$i]['UdN']."','".
--- 61,67 ----
        {
                echo "batimentsOGSpy[".$j."]= new Array('".
                        $user_building[$i]['planet_name']."','".
!                       floor(((($user_building[$i]["temperature_max"] + $user_building[$i]["temperature_min"])/2)+160)/6)."','".
                        $user_building[$i]['CES']."','".
                        $user_building[$i]['CEF']."','".
                        $user_building[$i]['UdN']."','".
***************
*** 74,79 ****
--- 74,80 ----
  }
  echo 'nb_planete = '.$nb_planete.';';
  echo 'vitesse_uni = '.$vitesse_uni.';';
+ echo 'lvl_NRJ = '.$user_technology['NRJ'].';';
  if ($user_technology['Graviton'] <> '') {echo "graviton=".$user_technology['Graviton'].";
";}
  else {echo "graviton=0;
";}
 
***************
*** 93,98 ****
--- 94,100 ----
                echo "document.getElementById('UdR".$i."').value = batimentsOGSpy[".$i."][8];
";
        }
        echo "document.getElementById('niv_graviton').value= graviton + 1 ;
";
+       echo "document.getElementById('lvl_NRJ').value= lvl_NRJ ;
";
  ?>
 
  verif_all ();
***************
*** 116,121 ****
--- 118,124 ----
  function recup_donne(planete){
  niv_bat = new Array;
  niv_grav = parseFloat(document.getElementById('niv_graviton').value);
+ lvl_energie = parseFloat(document.getElementById('lvl_NRJ').value);
  <?php
  $bat 
= array("'Lab'","'CES'","'CEF'","'Sat'","'UdN'","'UdR'","'CSp'");
  
$bat2 = array('Lab','CES','CEF','Sat','UdN','UdR','CSp');
***************
*** 
169,175 ****
  <?
php $largeur=190+(106*$nb_planete)+106;
  echo 
"<table width=".$largeur." >";?>

  <tr>
!       <td class="c" <?php echo 'colspan="'.($nb_planete 2).'"'?> >Simulation Graviton niv <input type='text' id='niv_graviton' size='2' maxlength='2' onBlur="javascript:verif_all ()" value='1'> <input type="submit" value="Restaurer les données" onClick="javascript:chargement()"></td>
  </tr>
  <tr>
        <th width="190"><a>Nom</a></th>
--- 172,178 ----
  <?php $largeur=190+(106*$nb_planete)+106;
  echo 
"<table width=".$largeur." >";?>

  <tr>
!       <td class="c" <?php echo 'colspan="'.($nb_planete 2).'"'?> >Simulation Graviton niv <input type='text' id='niv_graviton' size='2' maxlength='2' onBlur="javascript:verif_all ()" value='1'> Niveau de la recherche Energie <input type='text' id='lvl_NRJ' size='2' maxlength='2' onBlur="javascript:verif_all ()" value='<?php echo $user_technology['NRJ']; ?>'> <input type="submit" value="Restaurer les données" onClick="javascript:chargement()"></td>
  </tr>
  <tr>
        <th width="190"><a>Nom</a></th>
***************
*** 503,506 ****
  <tr><td>
  <?php
  
require_once("views/page_tail.php");
?>

No newline at end of file
--- 506,509 ----
  <tr><td>
  <?php
  
require_once("views/page_tail.php");
?>