Outils du site


fr:developpers:documentation_library_formula

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
fr:developpers:documentation_library_formula [2021/01/27 18:57] – [Nom de base] pitch314fr:developpers:documentation_library_formula [2021/01/27 22:23] – [Ogame formula Library] pitch314
Ligne 5: Ligne 5:
     * programmation terminée      * programmation terminée 
   * côté JS (js/ogame_formula.js), les fonctions nécessaires à des utilisations dynamiques (production, consommation, temps, coût, etc.)   * côté JS (js/ogame_formula.js), les fonctions nécessaires à des utilisations dynamiques (production, consommation, temps, coût, etc.)
-    * programmation en cours +    * programmation terminée
  
 <note important>En Javascript, les tableaux sont des objets et sont manipulés par référence (comme en C), pointant vers la localisation du tableau. <note important>En Javascript, les tableaux sont des objets et sont manipulés par référence (comme en C), pointant vers la localisation du tableau.
Ligne 29: Ligne 29:
 </code> </code>
 <code Javascript JS> <code Javascript JS>
-const DEFAULT_ARRAY_RESSOURCE = {'M':0,'C':0,'D':0,'NRJ':0};    //Défaut en global +/** Voir description des fonctions côté PHP **/ 
-Object.freeze(DEFAULT_ARRAY_RESSOURCE);+function ogame_arrayRessource($metal$cristal$deut$NRJ 0);
  
 //Exemples d'utilisations //Exemples d'utilisations
-var a = DEFAULT_ARRAY_RESSOURCE;   //à ne pas faire en JS !!! a est DEFAULT_ARRAY_RESSOURCE sont le même tableau +var result = ogame_arrayRessource(0,0,0)
-//En mode strict, lève une erreur ! +result['M'44;
- +
-//Pour ce tableau de base, nous sugérons simplement : +
-var result = {M:0,C:0,D:0,NRJ:0}+
-//Sinon à garder en mémoire pour des tableaux plus complexe : +
-var a JSON.parse(JSON.stringify(DEFAULT_ARRAY_RESSOURCE));+
 </code> </code>
 +
 ==== Nom de base ==== ==== Nom de base ====
 Comment être sûr d'un nom d'un bâtiment ou autre élément OGame enregistré avec OGSpy, et éviter de les redéfinir au risque d'un oublier ? Comment être sûr d'un nom d'un bâtiment ou autre élément OGame enregistré avec OGSpy, et éviter de les redéfinir au risque d'un oublier ?
Ligne 162: Ligne 158:
 } }
 </code> </code>
- 
 <code Javascript JS> <code Javascript JS>
 /** Voir description des fonctions côté PHP **/ /** Voir description des fonctions côté PHP **/
Ligne 175: Ligne 170:
 } }
 </code> </code>
 +
 ===== Formules liées à la production ===== ===== Formules liées à la production =====
 LA fonction à utiliser pour calculer la production d'un empire est la suivante pour chaque planète : LA fonction à utiliser pour calculer la production d'un empire est la suivante pour chaque planète :
Ligne 211: Ligne 207:
  
 </code> </code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_productionPlanet(user_building, user_technology=null, user_data=null, server_config=null);
 +
 +//Exemples d'utilisations
 +console.log(ogame_productionPlanet({M:38,C:34,D:34,CES:28,CEF:20,CEF_percentage:80,SAT:2200,FOR:858,FOR_percentage:150,coordinates:'::8',temperature_max:47},{Plasma:19,NRJ:20},{user_class:'COL'}));
 +</code>
 +
 C'est cette fonction qui calcule la production en prenant tout en compte. C'est aussi la seule permettant de connaître la prod des différents bonus. C'est cette fonction qui calcule la production en prenant tout en compte. C'est aussi la seule permettant de connaître la prod des différents bonus.
 Sinon pour la production de base d'un bâtiment Sinon pour la production de base d'un bâtiment
Ligne 242: Ligne 246:
  */  */
 function ogame_production_foreuse_max($mine_M, $mine_C, $mine_D, $user_data); function ogame_production_foreuse_max($mine_M, $mine_C, $mine_D, $user_data);
 +</code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_productionBuilding(building, user_building=null, user_technology=null, user_data=null, server_config=null);
 +function ogame_productionForeuseMax(mine_M, mine_C, mine_D, user_data);
 +
 +//Exemples d'utilisations
 +console.log(ogame_productionBuilding('base',{M:38,CES:38,coordinates:'::8'},null,null,{speed_uni:8}))
 </code> </code>
  
Ligne 259: Ligne 271:
 $cout = ogame_element_cout('EDLM', 1000); // Le prix en ressource de 1000 EDLM $cout = ogame_element_cout('EDLM', 1000); // Le prix en ressource de 1000 EDLM
 </code> </code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_elementCoutBase(name = 'all');
 +</code>
 +
 Afin de connaître le nombre total de ressource investit il faut utilisation la fonction suivante : Afin de connaître le nombre total de ressource investit il faut utilisation la fonction suivante :
 <code php PHP> <code php PHP>
Ligne 273: Ligne 290:
 $cout = ogame_element_cumulate('M', 39); // Le nombre de ressource investit, en cumul, pour une M39 $cout = ogame_element_cumulate('M', 39); // Le nombre de ressource investit, en cumul, pour une M39
 </code> </code>
 +
 Néanmoins, dans le calcul des points d'une planète, il sera plus simple d'utiliser la fonction suivante : Néanmoins, dans le calcul des points d'une planète, il sera plus simple d'utiliser la fonction suivante :
 <code php PHP> <code php PHP>
Ligne 372: Ligne 390:
         break;         break;
 } }
 +</code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_fleetDistance(a, b, user_techno=null, classe='none', server_config=null);
 +
 +//Exemples d'utilisations
 +var distance  = ogame_fleetDistance(coord_from, coord_to, server_config);
 </code> </code>
  
Ligne 382: Ligne 407:
  */  */
 function ogame_fleet_conso_statio($conso, $hour); function ogame_fleet_conso_statio($conso, $hour);
 +</code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_fleetConsoStatio(conso, hour);
 </code> </code>
  
Ligne 412: Ligne 441:
 ogame_fleet_send('1:1:1','1:1:1',array('PT'=>260),100,array('RC'=>20,'RI'=>17,'PH'=>16),'COL')); ogame_fleet_send('1:1:1','1:1:1',array('PT'=>260),100,array('RC'=>20,'RI'=>17,'PH'=>16),'COL'));
 echo gmdate('z:H:i:s',$a['time']);  //jour:heure:minute:seconde echo gmdate('z:H:i:s',$a['time']);  //jour:heure:minute:seconde
 +</code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_fleetSlowestSpeed(fleet, user_techno=null, classe='none');
 +function ogame_fleetSend(coord_from, coord_to, fleet, speed_per=100, user_techno=null, classe='none', server_config=null, type='', hour_mission=0);
 +
 +//Exemples d'utilisations
 +var a=ogame_fleetSend('1:1:1','1:1:1',{'PT':260},100,{'RC':20,'RI':17,'PH':16},'COL');
 +console.log(a); // { conso: 4, time: 117 }
 +var d = new Date(a['time']*1000);
 +console.log((d.getUTCDate()-1)+ ':'+ d.getUTCHours()+':'+d.getUTCMinutes()+':'+d.getUTCSeconds())
 </code> </code>
  
Ligne 447: Ligne 487:
 print_r($detail_PT); print_r($detail_PT);
 // Array( 'nom'=>'PT',structure'=>12000,'Bouclier'=>30,'attaque'=>15,'vitesse'=>54000,'fret'=>11250,'conso'=>20,'civil'=>true,'cout'=>inchangé,'rapidfire'=>inchangé) // Array( 'nom'=>'PT',structure'=>12000,'Bouclier'=>30,'attaque'=>15,'vitesse'=>54000,'fret'=>11250,'conso'=>20,'civil'=>true,'cout'=>inchangé,'rapidfire'=>inchangé)
 +</code>
 +
 +Détails spécifique pour les flottes, sous-partie de PHP, qui n'offre seulement vitesse,fret et conso :
 +<code Javascript JS>
 +/** @brief Return fleet moving details of Ogame vso.
 +  @param[in] string name The name as in Database, all for all element
 +  @return array('vitesse','fret','conso',(bool)'civil')
 + */
 +function ogame_fleetSubDetailsBase(name = 'all');
 +/** @brief Calculates technical data of a fleet or defence.
 +  @return array('nom','vitesse','fret','conso',(bool)'civil') of the wanted fleet.
 + */
 +function ogame_fleetSubDetails(name, user_techno = null, classe = 'none');
 +
 +console.log(ogame_fleetSubDetails('PT',{'Hyp':18,'RC':21,'RI':17,'PH':16},'GEN'));
 </code> </code>
  
Ligne 536: Ligne 591:
  */  */
 function ogame_find_coordinates($string_coord); function ogame_find_coordinates($string_coord);
 +</code>
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +function ogame_findPlanetPosition(coordinates);
 +function ogame_findCoordinates(string_coord);
 </code> </code>
  
 ===== Récapitulatif des prototypes de fonctions de la Ogame formula Library ===== ===== Récapitulatif des prototypes de fonctions de la Ogame formula Library =====
 <code php> <code php>
 +//////////////////////////// BASE fonctions : //////////////////////////////////
 /** @brief Get an Ogame resources array. /** @brief Get an Ogame resources array.
  *    *  
Ligne 752: Ligne 813:
   @return array('nom','structure','bouclier','attaque','vitesse','fret','conso',(array)'rapidfire',(bool)'civil',(array)'cout') of the wanted fleet or defence.   @return array('nom','structure','bouclier','attaque','vitesse','fret','conso',(array)'rapidfire',(bool)'civil',(array)'cout') of the wanted fleet or defence.
       rapidfire=array('PT'=>x, ...) array of all fleet and defence; if x>0 then again else from       rapidfire=array('PT'=>x, ...) array of all fleet and defence; if x>0 then again else from
-      cout=array of ogame_element_cumulate()=array('M','C','D','NRJ)+      cout=array of ogame_element_cumulate()=array('M','C','D','NRJ')
  */  */
 function ogame_elements_details($name, $user_techno = null, $classe = 0); function ogame_elements_details($name, $user_techno = null, $classe = 0);
Ligne 801: Ligne 862:
  */  */
 function ogame_terra_case($level); function ogame_terra_case($level);
 +</code>
 +
 +<code Javascript JS>
 +/** Voir description des fonctions côté PHP **/
 +//////////////////////////// BASE fonctions : //////////////////////////////////
 +/** @return array('M','C','D','NRJ'), default is 0 */
 +function ogame_arrayRessource($metal, $cristal, $deut, $NRJ = 0);
 +function ogame_getElementNames();
 +function ogame_isElement(nom);
 +function ogame_findPlanetPosition(coordinates);
 +function ogame_findCoordinates(string_coord);   /** return array('g','s','p') of int, default is 0 */
 +
 +////////////////////////// PRODUCTION fonctions : //////////////////////////////
 +function ogame_productionPosition(position);
 +function ogame_productionForeuseMax(mine_M, mine_C, mine_D, user_data);
 +function ogame_productionForeuseBonus(user_building, user_data); /** return array('bonus','nb_FOR_maxed') bonus=foreuse bonus coefficient ; nb_FOR_maxed=limit nb if too much */
 +/** @brief Calculates building/sat/for or base production and consumption.
 + *  
 +  @param[in] string $building        The wanted building/sat/for ('base','M','C','D','CES','CEF','SAT','FOR')
 +  @param[in] array  $user_building   Planet info ('M','C','D','CES','CEF','SAT','FOR','temperature_max','coordinates') 0 as default value
 +  @param[in] array  $user_technology Techno info ('NRJ') 0 as default value
 +  @param[in] array  $user_data       User info for FOR only (array('user_class'=>'COL'/...,'off_geologue' or 'off_full')
 +  @param[in] array  $server_config   Ogame universe info ('speed_uni',(bool)'final_calcul') / final_calcul permet de déterminer si les valeurs retournées seront manipulées avec les % de production ressources, et donc sans arrondi.
 +  @return array('M','C','D','NRJ') of production
 +*/
 +function ogame_productionBuilding(building, user_building=null, user_technology=null, user_data=null, server_config=null);
 +/** @brief Calculates planet production and consumption.
 + *  
 +  @param[in] array $user_building   Planet info ('M','C','D','CES','CEF','SAT','FOR','temperature_max','coordinates','M_percentage','C_percentage','D_percentage','CES_percentage','CEF_percentage','Sat_percentage','FOR_percentage',array 'booster_tab') 0 as default value
 +  @param[in] array $user_technology Techno info ('NRJ','Plasma'
 +  @param[in] array $user_data       User info ('user_class'=>'COL'/...,'off_commandant','off_amiral','off_ingenieur','off_geologue', or 'off_full')
 +  @param[in] array $server_config   Ogame universe info ('speed_uni')
 +  @return array('prod_reel, // (array ress) Production réel en prenant en compte le ratio (M/C/D ressources, NRJ prod moins la conso)
 +      'prod_theorique',     // (array ress) Producton théorique M/C/D (ratio=1, 100%)
 +      'ratio',              // (float) le ratio de production NRJ (prod_E / conso_E)
 +      'conso_E','prod_E',   // (float) Production NRJ prod_E > 0, conso_E < 0
 +      'prod_CES','prod_CEF','prod_SAT', // (array ress) production énergie de chaque unité ('D' de prod_CEF contient la conso en deut de la CEF)
 +      'prod_FOR',           // (array ress) production M/C/D et conso NRJ
 +      'prod_M','prod_C','prod_D','prod_base', // (array ress) Production ressources de chaque mine (M/C/D) et leur conso (NRJ)
 +      'prod_booster','prod_off','prod_Plasma','prod_classe',   // (array ress) Production des bonus
 +      'M','C','D','NRJ', =>héritage du type ressource pour les valeurs retournées.
 +      'nb_FOR_maxed',       // (int) Nombre max de foreuse utilisées
 +      ) à part ratio/conso_E/prod_E (float) les autres sont array('M','C','D','NRJ')
 + */
 +function ogame_productionPlanet(user_building, user_technology=null, user_data=null, server_config=null);
 +
 +//////////////////////////// FLOTTE fonctions : ////////////////////////////////
 +/** return array('vitesse','fret','conso',(bool)'civil') */
 +function ogame_arraySubDetail(vitesse=0, fret=0, conso=0, civil=true);
 +/** @brief Return fleet moving details of Ogame vso.
 +  @param[in] string name The name as in Database, all for all element
 +  @return array('vitesse','fret','conso',(bool)'civil')
 + */
 +function ogame_fleetSubDetailsBase(name = 'all');
 +/** @brief Calculates technical data of a fleet or defence.
 +  @return array('nom','vitesse','fret','conso',(bool)'civil') of the wanted fleet.
 + */
 +function ogame_fleetSubDetails(name, user_techno = null, classe = 'none');
 +function ogame_fleetConsoStatio(conso, hour);
 +function ogame_fleetSlowestSpeed(fleet, user_techno=null, classe='none');
 +function ogame_fleetDistance(a, b, user_techno=null, classe='none', server_config=null);
 +function ogame_fleetSend(coord_from, coord_to, fleet, speed_per=100, user_techno=null, classe='none', server_config=null, type='', hour_mission=0);
 +
 +//////////////////////////// COUT fonctions : //////////////////////////////////
 +function ogame_elementCoutBase(name = 'all');
 </code> </code>