[Mod] inactifs

Démarré par machine, 16 Novembre 2012, 10:53:22

« précédent - suivant »

pitch314

L'énergie donnée dans les RE est l'énergie produite sur la planète.

Donc tu prends le code que j'ai écrit et voila tu as le bon fonctionnement.


Après pour la température moyenne, je peux te donner quelque chose en se basant sur http://board.fr.ogame.gameforge.com/board1474-ogame-le-jeu/board103-support-et-questions/board557-faqs-importantes/243877-faq-colonisation-d-colonisation/#1.10
//température moyenne
    $temperature_moy = array(240, 190, 140, 90, 80, 70, 60, 50, 40, 30, 20, 10, -30, -70, -110);

Puis récupérer la planète dans $coordinate et faire
$temperature_max = $temperature_moy[$planete-1];
Là j'ai pas le temps de peaufiner mais ce soir oui.


===>Et mais c'est toi @machine qui es en charge de ce mod !
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Dudule

Bonjour,

Cool, je vais essayer de comprendre le fonctionnement de ces formules, et ce nouveau code du coup :)

Oui l'idée de ce baser sur les moyennes des températures en fonction de la coordonnées c'est niquel. Ça sera beaucoup plus réel. =)

Ok, donc pour l'énergie produite par la planète, on peut donc ce baser que sur le RE, chose que tu as fait dans ton code !
Niquel niquel, bon je test tout ça se soir.

Je serais dispo se soir, si tu veux faire des tests où autre :)
hébergeur : Free-h , ogspy 3.1.0, mod xtense 2.4.0 , Script GM xtense 2.4.0.4

Dudule

Bonsoir,

J'ai donc mis à jour mon fichier AnalyseMI.php selon tes conseils !
En utilisant les codes que tu m'as donnée, ceux des calculs de production intégré à OGSpy, ainsi que l'ajout de la température.

J'avais entre temps fais autre chose aussi, récupérer les unités de défenses, et les additionner, toutes quelle quel soient. Si le résultat est supérieur à 0, il y a donc une unité de défense. Et je met un OUI dans une nouvelle colonne du tableau.

J'ai aussi mis un ceil au niveau du calcul de production réel, car il ne l'étais pas, et le résultat était moche dans le tableau.

Bref, voila le code :


<?php

if (!
defined('IN_SPYOGAME')) die("Hacking attempt");

global $db$prefixe;
    
    
     
$value = array() ;
     
$value tab_recherche() ;
     
//rajouter vitesse univers
//requete V3
$request_ogspy_universe_inactif "SELECT coordinates, max(datere),energie, M, C, D, CES, CEF, LM, LLE, LLO, CG, AI, LP, PB, GB, NRJ, Plasma, lower(player)
FROM "
.TABLE_PARSEDSPY.", ".TABLE_UNIVERSE."
where `coordinates`=CONCAT(`galaxy`,':',`system`,':',`row`)
and (status = 'i') and galaxy <= "
.$value["g_max"]." and galaxy >= ".$value["g_min"]."  and system >= ".$value["s_min"]."  and system <= ".$value["s_max"].
                                        and dateRE > "
.since($value["since"])."
and M > 1
group by coordinates"
;


$result_ogspy_universe_inactif $db->sql_query($request_ogspy_universe_inactif);
$tab_player = array();
$index_tab 0;

while(list($coordinates$datere ,$energie$M$C$D$CES$CEF$LM$LLE$LLO$CG$AI$LP$PB$GB$NRJ$Plasma$player)=$db->sql_fetch_row($result_ogspy_universe_inactif)){

//température moyenne
$temperature_moy = array(240190140908070605040302010, -30, -70, -110);
$temperature_max $temperature_moy[$planete-1];
$production_E $energie;
        
//Consommation
$consommation_E 0// la consommation
$conso_M consumption("M"$M);
$conso_C consumption("C"$C);
$conso_D consumption("D"$D);
$consommation_E $conso_M $conso_C $conso_D;
    
//ratio
$ratio 1// indique le pourcentage a appliquer sur la prod
$ratio_temp 1;
$ratio_temp = ($consommation_E == 0) ? : ($production_E 100 $consommation_E) / 100// fix division par 0
$ratio = ($ratio_temp >= 1) ? $ratio_temp;
    
//production
$prod_M production("M"$M0$temperature_max$NRJ$Plasma) * $ratio;
$prod_C production("C"$C0$temperature_max$NRJ$Plasma) * $ratio;
$prod_D production("D"$D0$temperature_max) * $ratio;
$prod_D -= consumption("CEF"$CEF); //on soustrait la conso de deut de la cef
$prod_totale_jour ceil(($prod_M $prod_C $prod_D) * 24);

// Check de la Defense
$unite_defense $LM $LLE $LLO $CG $AI $LP $PB $GB ;
if($unite_defense 0){
$defense "OUI";
} else {
$defense "-";}

// nb pt de produit
$prod_pt ceil($prod_totale_jour 5000);

if(isset($server_config['xtense_universe'])) 
{
$prod_pt $prod_pt $server_config['speed_uni'];
}
$tab_player[$index_tab] = "$player|$coordinates|$M|$C|$D|$CES|$CEF|$prod_totale_jour|$prod_pt|$defense";
$index_tab++;
}

$nb_colonne 10;
if(isset($pub_order_by)) $order_by $pub_order_by;
else $order_by 2;

if(isset($pub_sens)) $sens $pub_sens;
else $sens 1;
//--------------------------------------
//algorithme de tri sur la colonne n° order_by
$tabAlgo = array();
$sort_by SORT_REGULAR;
$tabAlgo preparationTri($tab_player$nb_colonne);
if(count($tabAlgo) > 0)
{
$a $tabAlgo[$order_by];
if($sens == 1) arsort($a$sort_by);
if($sens == 2) asort($a$sort_by);
}
//---------------------------------------
  echo $value["html"];
      
echo "<table cellpudding=0 cellspacing=0 border=1>";
$link ="index.php?action=".ACTION."&subaction=analyseMI&since=".$value["since"]."&g_max=".$value["g_max"]."&g_min=".$value["g_min"]."&s_max=".$value["s_max"]."&s_min=".$value["s_min"]."";

echo "<tr><th><a href='".$link."&order_by=0&sens=1'><img src='".$prefixe."images/asc.png'></a>  Nom  <a href='".$link."&order_by=0&sens=2'><img src='".$prefixe."images/desc.png'></a></th>";
if(UNITROUVE) echo "<th>War riders</th>";
echo "<th><a href='".$link."&order_by=1&sens=1'><img src='".$prefixe."images/asc.png'></a>  Coord ".help("analyseMI_ouvrir_re")." <a href='".$link."&order_by=1&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=2&sens=1'><img src='".$prefixe."images/asc.png'></a>  M  <a href='".$link."&order_by=2&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=3&sens=1'><img src='".$prefixe."images/asc.png'></a>  C  <a href='".$link."&order_by=3&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=4&sens=1'><img src='".$prefixe."images/asc.png'></a>  D  <a href='".$link."&order_by=4&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=5&sens=1'><img src='".$prefixe."images/asc.png'></a>  CES  <a href='".$link."&order_by=5&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=6&sens=1'><img src='".$prefixe."images/asc.png'></a>  CEF  <a href='".$link."&order_by=6&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=7&sens=1'><img src='".$prefixe."images/asc.png'></a>  prod_reel/jour  <a href='".$link."&order_by=7&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=8&sens=1'><img src='".$prefixe."images/asc.png'></a>  PT/jour ".help("analyseMI_pt")." <a href='".$link."&order_by=8&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
  <th><a href='"
.$link."&order_by=9&sens=1'><img src='".$prefixe."images/asc.png'></a>  Defense ?  <a href='".$link."&order_by=9&sens=2'><img src='".$prefixe."images/desc.png'></a></th>
</tr>"
;

if(count($tabAlgo) > 0)
{
foreach ($a as $k => $v){

$coords explode(':',$tabAlgo[1][$k]);
echo "<tr>";
echo "<td><a href='".SEARCH.$tabAlgo[0][$k]."&strict=on'>".$tabAlgo[0][$k]."</a></td>";
if(UNITROUVE) echo "<td><a href='".WARRIDERS.$tabAlgo[0][$k]."'>".$tabAlgo[0][$k]."</a></td>";
//echo "<td><a href='index.php?action=show_reportspy&galaxy=".$coords[0]."&system=".$coords[1]."&row=".$coords[2]."'>".$tabAlgo[1][$k]."</a></td>";
echo "<td><a href="#" onclick="window.open('index.php?action=show_reportspy&amp;galaxy=".$coords[0]."&amp;system=".$coords[1]."&amp;row=".$coords[2]."','_blank','width=640, height=480, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0');return(false)">".$tabAlgo[1][$k]."</a></td>";
                
echo "<td style='text-align:center;'>".$tabAlgo[2][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[3][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[4][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[5][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[6][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[7][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[8][$k]."</td>";
echo "<td style='text-align:center;'>".$tabAlgo[9][$k]."</td>";
echo "</tr>";
}
}
echo "</table>";

?>



Le résultat à l'air sympa, sauf que sur certaine planètes, j'ai des productions négative !
A quoi cela peut être du ? Au fait qu'une CEF consomme plus de deut que les mines en produit ?

Voici un screen de mon tableau et des mines. A priori, je pense qu'au final cela peut être normal.
Peut être faudrait mettre un si, que si la prod est inférieure à 0, on met la prod à 0 pour faire plus propre.

hébergeur : Free-h , ogspy 3.1.0, mod xtense 2.4.0 , Script GM xtense 2.4.0.4

pitch314

Déjà il faut implémenter le calcul de la température moyenne complètement.
Normalement, ton code devrait remonté une erreur notamment car la variable "$planete" n'existe pas.
Il faut récupérer $planète à partir de la variable $coordinates. Je ne me souvient plus de la forme de coordonnées.C'est écrit dans la requête SQL !
si $coordinates="G:S:P" alors $planete = explode(":", $coordinates)[3]

Ou tout simplement :
    $request_ogspy_universe_inactif = "SELECT coordinates, row, max(datere),energie, M, C, D, CES, CEF, LM, LLE, LLO, CG, AI, LP, PB, GB, NRJ, Plasma, lower(player)
                                        FROM ".TABLE_PARSEDSPY.", ".TABLE_UNIVERSE."
                                        where `coordinates`=CONCAT(`galaxy`,':',`system`,':',`row`)
                                        and (status = 'i') and galaxy <= ".$value["g_max"]." and galaxy >= ".$value["g_min"]."  and system >= ".$value["s_min"]."  and system <= ".$value["s_max"]."
                                        and dateRE > ".since($value["since"])."
                                        and M > 1
                                        group by coordinates";

               
    $result_ogspy_universe_inactif = $db->sql_query($request_ogspy_universe_inactif);
    $tab_player = array();
    $index_tab = 0;
   
    while(list($coordinates, $planete, $datere ,$energie, $M, $C, $D, $CES, $CEF, $LM, $LLE, $LLO, $CG, $AI, $LP, $PB, $GB, $NRJ, $Plasma, $player)=$db->sql_fetch_row($result_ogspy_universe_inactif)){


Après dis moi si tu as toujours des valeurs négatives.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Dudule

Exact ! Bizarrement je n'ai pas eu d'erreur remonté !

J'ai donc rajouté row dans la requête SQL comme toi histoire de récupérer la position de la planète, et $planete dans le while(list afin de pouvoir l'utiliser dans le calcul de la température.

Cela n'a rien changé.
Pourtant ça semble logique et fonctionnel...
hébergeur : Free-h , ogspy 3.1.0, mod xtense 2.4.0 , Script GM xtense 2.4.0.4

pitch314

Dans ces cas là il faut être pragmatique :
1/ Vérifier que chaque variable est définie et initialisé avant chaque utilisation.
2/ Prendre un cas et vérifier la valeur des variable après calcul
->Vérifier que $ratio n'est pas négatif
->on peut faire par une vérification descendante. (On part du résultat faux ($prod_totale_jour) et on remonte les étapes de calcul)

J'ai fait un test avec le 3:31:8 M28/C25/D24 26/3 -> 6024M/h, 2570C/h, 1376D/h energie=-6580 (environ)

PS : ça ne sert à rien d'afficher les CEF et CES. Ce qui compte c'est l'énergie :
$tab_player[$index_tab] = "$player|$coordinates|$M|$C|$D|$energie|$prod_totale_jour|$prod_pt|$defense";

PS : Pourquoi il y a 2 fois le nom du joueur.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Dudule

Bonjour,

J'ai pas eu le temps de m'y pencher dessus mais c'est ce que je compte faire, ce soir j'aurais un peu de temps logiquement :)

Oui, les CEF et CES au début je m'en servais pour calculer manuellement l'énergie, mais vu que tu m'a dit qu'on pouvais se baser sur l'énergie du RE cela ne sers plus à rien.

Il y à deux fois le nom du joueurs, car apparemment le deuxième nom c'est celui qui corresponds dans war riders, avec un lien en bonus. Mais ça y était avant, j'ai pas touché cela. Ceci dis pour faire plus propre on pourrais l'enlever !

bref, je regarde cela ce soir, je fais les calculs à la main avec plusieurs exemple et je reviens ici  :)
hébergeur : Free-h , ogspy 3.1.0, mod xtense 2.4.0 , Script GM xtense 2.4.0.4

iguypouf

Suite au nouvel ogspy, j'avais quelques soucis avec ce mod je ne sais pas s'il est encore maintenu.

Changements apportés pour résoudre les soucis :

Line 19 & 84 :
//$resultat = mysql_query($request);
$resultat = $db->sql_query($request);


Line 72 :
//list($nb) = mysql_fetch_row( $result );
list($nb) = $db->sql_fetch_row( $result );

Kingfisher

Citation de: iguypouf le 18 Septembre 2015, 11:28:06
Suite au nouvel ogspy, j'avais quelques soucis avec ce mod je ne sais pas s'il est encore maintenu.

Changements apportés pour résoudre les soucis :

Line 19 & 84 :
//$resultat = mysql_query($request);
$resultat = $db->sql_query($request);


Line 72 :
//list($nb) = mysql_fetch_row( $result );
list($nb) = $db->sql_fetch_row( $result );


Salut Iguypouf,
Sur quel fichier tu as fait ces changements ?
Merci par avance.

pitch314

Le mod inactif n'est pas orphelin, machine a mis sur sa liste les modification (https://bitbucket.org/machine/mod-inactifs/issues/2/normalisation-utilisation-bdd#comment-21014995).
Il sera corrigé sous peu.

En entendant, une version corrigée est disponible ici http://thepicthworld.fr/ogame/OGSteam/dll_mod/
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Kingfisher

Citation de: pitch314 le 18 Septembre 2015, 20:28:22
Le mod inactif n'est pas orphelin, machine a mis sur sa liste les modification (https://bitbucket.org/machine/mod-inactifs/issues/2/normalisation-utilisation-bdd#comment-21014995).
Il sera corrigé sous peu.

En entendant, une version corrigée est disponible ici http://thepicthworld.fr/ogame/OGSteam/dll_mod/

Merci Pitch ;-)

machine

20 Septembre 2015, 11:45:31 #41 Dernière édition: 20 Septembre 2015, 12:08:35 par machine
Mise à jour et tag
=> récupération des modif pitch
=> améliorations visuelles ( lecture difficile a cause du fond )
=> affichage des ressources metal /cristal / deut + total du dernier scan
=> affichage du total des unités de defenses  du dernier scan

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

roms0406

Salut,

Merci pour les modifs, mais question :

Je fais la mise à jour via autoupdate, il me dit que tout est ok, mais sur la page d'update je suis toujours en 1.0.5 et il me propose toujours la 1.0.8 ....

Problème d'id de version dans le fichier ou problème de mise à jour ??

machine

21 Septembre 2015, 07:03:13 #43 Dernière édition: 21 Septembre 2015, 07:11:51 par machine
Citation de: roms0406 le 20 Septembre 2015, 21:17:57
Salut,

Merci pour les modifs, mais question :

Je fais la mise à jour via autoupdate, il me dit que tout est ok, mais sur la page d'update je suis toujours en 1.0.5 et il me propose toujours la 1.0.8 ....

Problème d'id de version dans le fichier ou problème de mise à jour ??

je n'ai pas rencontré ce probleme ...
La version semble correct :
https://bitbucket.org/machine/mod-inactifs/src/6ff1b5565397010bf7ba3c533fbcdcd3b74453a6/version.txt?at=default&fileviewer=file-view-default



si tu desinstalles / installes, cela fonctionne ?

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

iguypouf

J'ai le même souci, j'étais en 1.0.2, une fois mis à jour il me met 1.0.5 dans AutoUpdate.

Désinstaller / Réinstaller répare le souci.