[MOD] Build.Tech HOF

Démarré par Dudule, 30 Janvier 2012, 15:36:38

« précédent - suivant »

Alderande

Ah ça fait plaisir de voir de nouvelles têtes et, qui plus est, ont la tête dans le codage ^^
Pour info le mod à "l'air de fonctionner" dans l'état actuel des choses, mais je n'ai pas vérifié tout en détails, peut-être voir la prod si elle correspond bien et si elle prend en compte les nouveautés de la GF (les bonus).

Concernant les images, le mod va les chercher maintenant dans un sous dossier nommé "picture".

***Au 03/07/2013***
Windows Vista service pack 2
FF 21.0
OGSPY 3.1.3 + Autoupdate 2.0.9 (version tip)sous Hostinger (hébergement gratuit)  PHP Version 5.4.14
Toolbar Xtense 2.5.2
Mod Xtense: 2.4.3 (version tip)
Ogspy Android
Ogame 5.5.1  - Uni 64/Leo/Sirius
---
GM V 1.8
AntiGameOrigin V 5.4.6
InfoCompte V 3.11.6

roms0406

05 Février 2013, 19:27:40 #16 Dernière édition: 05 Février 2013, 19:44:25 par roms0406
Oui ça fait plaisir effectivement, ce mod est bien sympa en plus

En revanche me concernant, les productions ne sont pas bonnes du tout, je vais regarder de plus près pour voir ou se situe la différence et j'éditerai ce post

EDIT 1 :

D'ailleurs je viens de me rendre compte que les productions théoriques dans l'espace personnel ne sont pas correctes non plus ... ex:

Metal 34
Dans Espace personnel/ Empire : prod affichée : 29.479
Dans Espace personnel/ Simulation : prod affichée : 29.476

Dans Ogame : prod = 28.664 + 3.388 (plama13) => 32.082

Cristal et deut ne sont pas bon non plus

EDIT 2 :

Le productions affichées dans le mod sont encore différentes

Mon cas sur la production métal/jour :

Build Tech HoF : 6.187.536
Calcul sur base espace perso : 6.991.080
Ogame : 7.609.176

pitch314

Oui mais il faut que je regarde la syntaxe de php et son fonctionnement intime car pour le moment je ne connait pas le langage php. Mais bon d'après ce que j'ai vu c'est un mélange de bash / HTML / XML, donc j'apprendrai super vite.

Sinon concernant les images :
* Le mod a ses images par défaut afin d'accélérer l'affichage des images (demande des années précédente.)

Les questions sont :
+ Comme OGSpy peut avoir d'autres skins, les miniatures (bâtiments, technologies, flottes, défenses) sont-elles présentes dans le skin ? où ?
+ Peut-on toujours avoir un nouveau skin ?

==> Avant ces miniatures étaient présentes dans un dossier nommé "gebaeude". Bizarre comme nom !
C'est toujours d'actualité car bien que j'ai cherché, je n'ai plus trouvé de skin pour OGPsy >2007



Pour les productions :
Les formules dans ogame.php sont correctes. Cela doit venir de comment elle sont utilisées pour calculer la production globale.
=> Par contre il y a une chose qui n'est pas prise en compte : Le fait d'avoir tout les officiers => production *.12 et non 10%.
Dans ton exemple ton officier n'est pas pris en compte.
Je rappelle la function : function production($building, $level, $officier = 0, $temperature_max = 0, $NRJ = 0, $Plasma = 0)
Je vais voir plus dans le détail
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

roms0406

Oups, c'est vrai j'ai oublié que j'avais le géologue

Mais seulement lui, je n'ai pas d'autres officiers

pitch314

Tu as tout à fait raison !! J'ai trouvé 1 erreur pour le calcul de la production :

La technologie plasma doit être appliqué sans le revenu de base.

à corriger dans ogame.php

après j'ai quelque soucis avec les arrondies ou les troncatures.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

pitch314

floor = troncature à l'entier inférieur (4.95 -> 4)
ceil  = troncature à l'entier supérieur (4.15 ->5)
round = arrondie (à l'entier : 4.95 -> 5 ; 4.15 -> 4)

Formules :
P_métal(n,p,off) = round( 30*n*1.1^n*(1 + 0.01p + off) + 30 )
P_cristal(n,p,off) = round( 20*n*1.1^n*(1 + 0.0066p + off) + 15 )
P_deutérium(n,T,off) = round( 10*n*1.1^n*(1.44 - 0.004T)*(1 + off) )

Une correction du calcul de production dans "ogame.php", qui prend en compte le full officier.
/**
* Gets the hourly production of a Mine or a solar plant.
* @param string $building The building type
* @param int $level The building level
* @param int $officier Officer option enabled (=1) or not(=0) or full Officer(=2)
* @param int $temperature_max Max temprature of the current planet
* @param int $NRJ Current value of Energy available on the planet
* @param int $Plasma Current value of the user Plasma Technology
* @return the result of the production on the specified building.
*/
function production($building, $level, $officier = 0, $temperature_max = 0, $NRJ = 0, $Plasma = 0)
{
    // attention officier
    // pour m / c / d => geologue
    // pour ces cef => ingenieur
    global $server_config;
   
    $geo = 0; //En valeur ajouté.
    if ($officier == 0) {
        $geo = 0;
    } elseif ($officier == 1) {
        $geo = 0.10;    //+10%
    } elseif ($officier == 2) {
        $geo = 0.12;    //+12%
    }
    $ing = $geo;
    switch ($building) {
        case "M":
            $prod_base = 30;
            $result =  30 * $level * pow(1.1, $level); // formule de base
            $result = $result * (1 + $geo + 0.01 * $Plasma);
$result = round($result); // arrondi
$result = $result + $prod_base; // prod de base
$result = $server_config['speed_uni'] * $result; // vitesse uni
            break;

        case "C":
            $prod_base = 15;   
            $result = 20 * $level * pow(1.1, $level); // formule de base
$result = $result * (1 + $geo + 0.0066 * $Plasma);
$result =  round($result); // arrondi
$result = $result + $prod_base; // prod de base
            $result = $server_config['speed_uni'] * $result; // vitesse uni
            break;

        case "D":
            $result = (10 * $level * pow(1.1, $level) * (1.44 - 0.004 * $temperature_max));
            $result = $result * (1 + $geo); // geologue
$result =  round($result); // arrondi inf ( apres geologue)
$result = $server_config['speed_uni'] * $result; // vitesse uni
            break;

        case "CES":
            $result = 20 * $level * pow(1.1, $level);
            $result = $result * (1 + $ing); // ingenieur
            //$result = $server_config['speed_uni'] * $result; // vitesste uni ne change pas la prod d E
            break;

        case "CEF":
            $result = 30 * $level * pow((1.05 + $NRJ * 0.01), $level);
            $result = $result * (1 + $ing); // ingenieur
            //$result = $server_config['speed_uni'] * $result; // vitesste uni ne change pas la prod d E
            break;

        default:
            $result = 0;
            break;
    }

    return ($result);
}

Par contre j'ai toujours quelques écarts de production. à voir d'où ça viens.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

roms0406

Je profite du fait que tu travailles sur ce mod pour lever un autre petit "bug", dans l'espace personnel/simulation, les cef sont par défaut à 100%, cela ne prends pas en compte le % réel Ogame.
Du coup si les cef sont en fait à 0% ( ce qui est mon cas par ex, je les garde sous le coude en cas de cassage de sats pour l'instant) les productions de deut sont amputées de la consommation des cefs ...

pitch314

C'est "normal" que les pourcentages soit avec des valeurs par défauts et non celles présentes dans le jeu. Tout simplement parce que la barre xtense / module Xtense, ne récupèrent pas ces valeurs.

Donc pour le moment le seul moyen pour avoir des valeurs correctes est de les modifier par soi-même afin avoir les bonnes valeurs.

Néanmoins, la modification de ces valeurs dans l'onglet de OGPsy "Espace personnelle"/simulation, n'est que temporaire. Elle n'affecte pas les valeurs de la base de données.
Afin d'avoir les bonnes valeurs, il faut avoir le mod "production" et modifier puis sauvegarder les bonnes valeurs. Ce mod permet de prendre en compte les bonnes valeurs de pourcentage, certes "à la main". (Je pense que ce mod a été crée en partie pour ça et pour être plus lisible sur la production.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

DarkNoon

Ouvrez moi un bug sur OGSpy pour le calcul de production please :-)

Sinon ça restera perdu ici ;-)
Héberger votre OGSpy : Hébergement

pitch314

Petite mise à jour du sujet.

Une nouvelle version du mod "build.Tech HOF" est sortie.
  -> Optimisation de HOF production minière et petit plus dans le bbcode.
  -> Les productions seront justes (si le fichier bonne version du fichier ogame.php, (dans la prochaine version de OGSpy ou au-dessus))


Les formules de production minières sont corrigées. Je me penche maintenant sur les productions d'énergie.

ET donc il me faut toujours les valeurs d'une personne ayant un officier ingénieur, et éventuellement un qui aurait full officiers.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Alderande

21 Février 2013, 22:36:53 #25 Dernière édition: 21 Février 2013, 23:11:31 par Alderande
Merci pitch ^^ j'vais tester pour voir la différence^^
Donc si je comprends bien il faut que je modifie ogame.php comme tu l'as indiqué un peu plus haut?

EDIT:
Bon modif faite pas de soucis rencontrés...pas vérifié si la différence entre l'avant correctif et l'après c'est bon mais moi et les calculs xD... Je verrai ça avec mes prods en jeu.
Merci en tout cas.
***Au 03/07/2013***
Windows Vista service pack 2
FF 21.0
OGSPY 3.1.3 + Autoupdate 2.0.9 (version tip)sous Hostinger (hébergement gratuit)  PHP Version 5.4.14
Toolbar Xtense 2.5.2
Mod Xtense: 2.4.3 (version tip)
Ogspy Android
Ogame 5.5.1  - Uni 64/Leo/Sirius
---
GM V 1.8
AntiGameOrigin V 5.4.6
InfoCompte V 3.11.6

pitch314

En fait, comme la version 3.1.3 d'OGSpy n'est pas encore sortie, la correction dans le fichier "ogame.php" n'est pas encore faite.

Donc si tu veux avoir des valeurs juste (et même avec l'énergie et faut modifier "includes/ogame.php" comme ceci :

/**
* Gets the hourly production of a Mine or a solar plant.
* @param string $building The building type
* @param int $level The building level
* @param int $officier Officer option enabled (=1) or not(=0) or full Officer(=2)
* @param int $temperature_max Max temprature of the current planet
* @param int $NRJ Current value of Energy available on the planet
* @param int $Plasma Current value of the user Plasma Technology
* @return the result of the production on the specified building.
*/
function production($building, $level, $officier = 0, $temperature_max = 0, $NRJ = 0, $Plasma = 0)
{
    // attention officier
    // pour m / c / d => geologue
    // pour ces cef => ingenieur
    global $server_config;
   
    //Valeur de l'officier en valeur ajouté.
    if ($officier == 0) {
        $geo = 0;
    } elseif ($officier == 1) {
        $geo = 0.10;    //+10%
    } elseif ($officier == 2) {
        $geo = 0.12;    //+12%
    } else {
        $geo = 0;
    }
    $ing = $geo;
    switch ($building) {
        case "M":
            $prod_base = 30;
            $result =  30 * $level * pow(1.1, $level); // formule de base
            $result = $result * (1 + $geo + 0.01 * $Plasma);
$result = round($result); // arrondi
$result = $result + $prod_base; // prod de base
$result = $server_config['speed_uni'] * $result; // vitesse uni
            break;

        case "C":
            $prod_base = 15;   
            $result = 20 * $level * pow(1.1, $level); // formule de base
$result = $result * (1 + $geo + 0.0066 * $Plasma);
$result = round($result); // arrondi
$result = $result + $prod_base; // prod de base
            $result = $server_config['speed_uni'] * $result; // vitesse uni
            break;

        case "D":
            $result = (10 * $level * pow(1.1, $level) * (1.44 - 0.004 * $temperature_max));
            $result = $result * (1 + $geo); // geologue
$result = round($result); // arrondi
$result = $server_config['speed_uni'] * $result; // vitesse uni
            break;

        case "CES":
            $result = 20 * $level * pow(1.1, $level);
            $result = $result * (1 + $ing); // ingenieur
            $result = floor($result);   // troncature inférieure
            //$result = $server_config['speed_uni'] * $result; // vitesste uni ne change pas la prod d E
            break;

        case "CEF":
            $result = 30 * $level * pow((1.05 + $NRJ * 0.01), $level);
            $result = $result * (1 + $ing); // ingenieur
            $result = floor($result);   // troncature inférieure
            //$result = $server_config['speed_uni'] * $result; // vitesste uni ne change pas la prod d E
            break;

        default:
            $result = 0;
            break;
    }

    return ($result);
}

/**
* Gets the energy production of satellites.
* @param int $temperature_min Min temprature of the current planet
* @param int $temperature_max Max temprature of the current planet
* @param int $officier Officer option enabled (=1) or not(=0) or full Officer(=2)
* @return the result of the production on the specified building.
*/
function production_sat($temperature_min, $temperature_max, $officier = 0)
{
    if ($officier == 0) {
        $ing = 1;
    } elseif ($officier == 1) {
        $ing = 1.10;    //110%
    } elseif ($officier == 2) {
        $ing = 1.12;    //112%
    } else {
        $ing = 1;
    }
    return floor($ing * (((($temperature_min + $temperature_max) / 2) + 160) / 6));
}

/**
* Gets the power consumption of the current building
* @param string $building The building type
* @param int $level Min The building Level
* @return the building power consumption
*/
function consumption($building, $level)
{
    global $server_config;
    switch ($building) {
        case "M":   //no break
        case "C":
            $result = 10 * $level * pow(1.1, $level);
            $result = ceil($result);    //troncature supérieure
            break;

        case "D":
            $result = 20 * $level * pow(1.1, $level);
            $result = ceil($result);    //troncature supérieure
            break;

        case "CEF":
            $result = $server_config['speed_uni'] * (10 * $level * pow(1.1, $level));
            $result = round($result); // arrondi
            break;

        default:
            $result = 0;
            break;
    }

    return ($result);
}
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

DarkNoon

Héberger votre OGSpy : Hébergement

pitch314

OK c'est deux fois bon.

Les formules sont bonnes. L'ingénieur est bien dans l'arrondie de la formule de base.

Donc les formules que j'ai donné sont correctes.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Anubys

24 Février 2013, 14:27:53 #29 Dernière édition: 24 Février 2013, 15:14:13 par Anubys
Si vous voulez on a revu les formules depuis le plasma ;)

http://board.ogame.fr/board1474-ogame-le-jeu/board103-support-et-questions/board557-faqs-importantes/675631-faq-les-formules-ogamiennes/

Elles sont normalement très précises.

Pour ce mods pas contre j'ai que production qui fonctionne sur mon ogs :x