Tuesday, February 9th 2010, 7:06pm UTC+1

You are not logged in.

  • Login
  • Register

Seyguai

Raideur

Date of registration: May 3rd 2007

Posts: 371

1

Tuesday, October 28th 2008, 8:25pm

Seyguai's Script Utilities - Bibliothèque OGame

SSU - Seyguai's Script Utilities


Ce script GreaseMonkey (GM) est une bibliothèque taillée spécialement pour OGame.
Elle fournit de nombreuses fonctions pouvant faciliter l'adaptation de scripts GM à OGame.
Elle dispose également d'une interface graphique rendant compte de tous les scripts l'utilisant, tout en permettant une gestion approfondie de ceux-ci.

Ajouts concrets/visibles

- Lien SSU depuis le menu
  • L'état du lien est révélateur de la présence d'une Maj pour l'un des scripts SSU.
  • Le lien reconduit vers une liste des scripts se servant de ses données.
    Depuis celle-ci, vous pouvez désactiver n'importe quel script, contrôler les Majs disponibles & modifier les options propres à chacun.



- Image simple (rare)
  • Sa présence n'est pas systématique, mais si elle apparait, c'est que le script cherche à communiquer avec vous! Un clic dessus vous en apprendra plus!
  • Il se peut qu'une erreur d'exécution ait eu lieu sur un des scripts SSU, en ce cas l'image sera présente.
  • Il se peut que la bibliothèque elle même se soit retrouvée face à un problème, et vous demande de me transmettre un certain message.
  • Dans le premier cas (erreur fatale), il vous sera demandé d'ouvrir votre console d'erreurs, rubrique Erreurs, et d'en lire les erreurs. Parfois, vous pourrez vous même résoudre le problème, le cas échéant, il faudra copier sur ce forum les erreurs retournées.



Et c'est tout ! L'essentiel du script est caché à l'utilisateur "de base".


Données stockées/disponibles

- Parsing complet des pages d'OGame
  • Le script se charge lui même de récupérer la plupart des informations concernant chaque compte, données qu'il trie, répertorie, stocke sur votre ordinateur, et maintient à jour.
  • Ces données sont alors accessibles pour n'importe quel autre script s'exécutant après la bibliothèque: c'est un véritable gain de temps!
  • La bibliothèque se base sur une semi-AI, qui lui permet de conserver ses données au plus près de la réalité du jeu.


- Fonctions utiles ou indispensables
  • Le script rassemble également plusieurs fonctions simples & autres prototypes, permettant d'accéder aisément aux données d'une page, ....
  • L'utilisation de celles-ci garantie un gain au niveau de la taille de chaque script considérable !



Adapter son script à la bibliothèque SSU

- Syntaxe de base
  • Afin d'optimiser le fonctionnement de votre script, il est recommandé d'utiliser ce modèle à compléter selon vos envies:

    Source code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    var thisData = {
    	id: 'ssu', // Identifiant unique du script.
    	name: "Seyguai's Scripts Utilities", // Nom complet
    	version: '2.0.0b1', // Version du script
    	scriptURL: 'http://seyguai.free.fr/ssu2.user.js', // Lien pour installer le script, sert également pour vérifier les Majs disponibles
    	options: showOptions // Fonction donnant accès aux options
    };
    var declareFun = {
    	fun: ['Bip', 'id_', 'SSUOptions'], // Fonctions que l'on souhaite utiliser.
    	proto: [], // Prototypes que l'on souhaite utiliser.
    	vari: ['DATA'] // Variables que l'on souhaite utiliser.
    };
    
    if (unsafeWindow.ssu == undefined) unsafeWindow.ssu = false;
    if (!unsafeWindow.ssu || unsafeWindow.registerSSUScript(thisData)) return;
    eval(unsafeWindow.SSUGetResources(declareFun));
    
    // Mettez votre code ici
    
    unsafeWindow.SSUChangeStatus(thisData.id, 'activ');

  • Détailler chacune des fonctions présentes prendrait trop de temps et de place ici, il est soit conseillé de prendre exemple sur d'autres scripts déjà adaptés, soit d'attendre qu'une FAQ soit mise en ligne (à venir).
  • Petit tuto temporaire, sur l'utilisation de SSUOptions, pour créer facilement ses options.



Installer le script

- Bugs connus
  • Q: Le lien redirige vers une page texte assez difficile à comprendre...
    R: Vérifiez que vous utilisez bien GreaseMonkey pour FireFox, et que ce dernier est bien activé... ([FAQ] Tout sur les Script.)
  • Q: Le script ne fonctionne pas sur la page "overview" lorsqu'il y a des flottes ayant "Stationner" ou "Attaque groupée" pour mission. (ancienne version uniquement, v < 2.0.0)
    R: Aucun correctif prévu, le bug est en cours de correction sur la beta.
  • Q: Le script est bien installé, mais refuse de fonctionner (La console affiche: "SSU doit être placé en tête de liste des scripts GreaseMonkey !"). (version beta uniquement, v > 2.0.0)
    R: Et bien la console a raison! Placez SSU en tête de liste des scripts GM (voir la [FAQ])
  • Q: La bibliothèque n'indique aucun script à part lui-même en cliquant sur le lien SSU.
    R: Ce problème survient à deux occasions. Soit SSU n'est pas en tête de list des scripts GM (problème précédent), soit les deux versions sont installées, et font interférences... Désactivez la moins adaptée à votre univers.


- Liens de téléchargement

Bibliothèque SSU - v1.5.8 - Lien: ssu.user.js
Fonctionnelle sur ogame.fr uniquement !!


Bibliothèque SSU - v2.0.0b2 - Lien: ssu2.user.js
Version BETA !! Ne fonctionne que sur la version BETA d'OGame (uni42.org & uni6.be pour l'instant)

This post has been edited 15 times, last edit by "Seyguai" (Mar 7th 2009, 4:07pm)

  • Go to the top of the page

ChaosMage

Diplomate

Date of registration: Sep 12th 2008

Posts: 726

Gender: male

Location: Devant le pc

2

Tuesday, October 28th 2008, 8:46pm

Seyguai.. tu me crois si j'ai rien compris ? J'ai lu 2 fois le poste et je comprend toujours pas... XO

Edit : Ouais, on peu tester nos fonction sa j'ai compris, mais appart sa je vois pas le but appart tester les scripts, ce que je préfere faire avec un refresh de page quand même :clap:

RéEdit : Ouais, une librairie donc. Mais dans tout sa, comment on trouve notre niveau de la mine de métal sur la 3eme planète ? xD (Ne me ditent pas que j'ai rien compris x_X)


ChaosMage... A.O.T.S.... Top 900... Uni 52

This post has been edited 2 times, last edit by "ChaosMage" (Oct 28th 2008, 8:57pm)

  • Go to the top of the page

THSK

Diplomate

Date of registration: Jun 27th 2005

Posts: 952

Gender: male

Location: France, Nord

3

Tuesday, October 28th 2008, 8:52pm

Merci de t'être dévoué pour cette ébauche de script-librairie :)

Il est dommage que pour l'instant l'on ait à décrypter ton script librairie. L'idée d'origine était que les scripteurs se concertent pour créer un script librairie qui puisse contenter tout le monde et inciter des codeurs amateurs à s'y mettre, au moyen d'une documentation simplifiée et de beaucoup d'écoute et d'entraide de la part de codeurs plus initiés. Ainsi, le fait que tu sois seul à connaitre toutes les ficelles de ta librairie est qu'il n'y ait pour l'instant pas de documentation accessible est un sérieux obstacle.

Ceci dit, il fallait bien que quelqu'un fasse le premier pas, et ton travail sera je suis sûr très apprécié. Je crains cependant que tu ne sois obligé à revoir l'ensemble du script avec la prochaine mise à jour d'OGame. Dommage, un si beau code...

edit : @ChaosMage : pour faire simple, Seyguai vient de concrétiser ce dont on parle depuis plusieurs semaines au Centre de support pour développeurs GM.

This post has been edited 1 times, last edit by "THSK" (Oct 28th 2008, 8:54pm)

  • Go to the top of the page

Seyguai

Raideur

Date of registration: May 3rd 2007

Posts: 371

4

Tuesday, October 28th 2008, 9:14pm

Oui, je voulais rédiger un truc vite fait avant d'aller manger x)

Je vais reprendre le post.

Néanmoins, THSK, je penses que tu te trompes.
Comme je l'ai dit, ma librairie ne comporte que quelques fonctions utiles pour l'instant, qui peuvent servir dans n'importe quelle situation.
Les seuls "trucs" propres à OGame, sont 3 lignes, une où je récupère la session, l'autre le serveur, l'autre la page active ^^

Je vais m'ateller à tout détailler z'en faite pas ^^
Certaines fonctions présentes ont été créées par mes soins il y a plus de deux ans, je n'ai cessé de les modifier pour les améliorer ^^

@ChaosMage: Pour faire simple, j'ai posté une librairie de scripts, qui sera plus tard complétée avec les données d'OGame. Chaque autre script pourra y récupérer les données.
J'ai aussi fourni un outils de développement pour les scripteurs, qui m'a énormément servi, et que j'ai adapté aujourd'hui à cette librairie.
  • Go to the top of the page

L0rd Sph4X

Retraité

Date of registration: Jan 8th 2006

Posts: 4,958

Gender: male

Location: France

5

Tuesday, October 28th 2008, 9:55pm

Quoted

THSK a écrit :
Ainsi, le fait que tu sois seul à connaitre toutes les ficelles de ta librairie est qu'il n'y ait pour l'instant pas de documentation accessible est un sérieux obstacle.


8o C'est un gros affront à nos librairie qu'il n'y ai pas de documentation même :D

Bon sinon, en effet, il faudrait un petit mode d'emploi, ainsi des personnes ne sachant pas scripter se débrouilleront sans problèmes, s'amélioreront et vous découvrirez peut-être des scripteurs un peu génies^^

Plus de scripteurs = plus d'efficacité donc on résout les problèmes plus rapidement. Très bonne initiative, continue ;)

Quoted

zePGM a écrit :
Dans le genre ambitieux t'es top1 xD



Cantique de Jean Racine
  • Go to the top of the page

vulca

Pilote

Date of registration: Jun 9th 2006

Posts: 2,910

Gender: male

Location: france

6

Tuesday, October 28th 2008, 10:01pm

Ba on attend le mode d'emploi alors ^^ :D
Scripteur: InfoCompte | Marqueur de galaxie | Alli-stat [Ogame Redesign]

  • Go to the top of the page

ChaosMage

Diplomate

Date of registration: Sep 12th 2008

Posts: 726

Gender: male

Location: Devant le pc

7

Tuesday, October 28th 2008, 10:05pm

Quoted

L0rd Sph4X a écrit :
ainsi des personnes ne sachant pas scripter se débrouilleront sans problèmes, s'amélioreront et vous découvrirez peut-être des scripteurs un peu génies^^


Uhm, il faut quand même une base pour créer des scripts, donc des personnes ne sachant que peu scripter je dirais :P


ChaosMage... A.O.T.S.... Top 900... Uni 52
  • Go to the top of the page

L0rd Sph4X

Retraité

Date of registration: Jan 8th 2006

Posts: 4,958

Gender: male

Location: France

8

Tuesday, October 28th 2008, 10:08pm

Remarque oui, vaut mieux sinon, ben la librairie on peut y aller et lire les documents assis dans un siège et les scripts basta ! :)

Quoted

zePGM a écrit :
Dans le genre ambitieux t'es top1 xD



Cantique de Jean Racine
  • Go to the top of the page

Seyguai

Raideur

Date of registration: May 3rd 2007

Posts: 371

9

Tuesday, October 28th 2008, 10:42pm

J'ai édité mon premier post.
Maintenant je vais regarder Heroes, puis je me mets au parsing des pages.
Je sais exactement comment faire, jvais me baser sur OgRV (Addon Firefox bientôt pour vos yeux, j'attend l'accord de Almost Illegal).

D'ailleurs, ptit hors sujet, que pensez vous de ce que vous disent ces images :
#1 - #2 - #3 - #4 - #5
  • Go to the top of the page

THSK

Diplomate

Date of registration: Jun 27th 2005

Posts: 952

Gender: male

Location: France, Nord

10

Wednesday, October 29th 2008, 1:31am

Quoted

Seyguai a écrit :
Néanmoins, THSK, je penses que tu te trompes.
Comme je l'ai dit, ma librairie ne comporte que quelques fonctions utiles pour l'instant, qui peuvent servir dans n'importe quelle situation.
Les seuls "trucs" propres à OGame, sont 3 lignes, une où je récupère la session, l'autre le serveur, l'autre la page active ^^


Je n'ai pas pris le temps de regarder exactement ce qui se trouvait dans ta librairie (on est surmené les codeurs, l'un est à Heroes, l'autre à Futurama) . Mais depuis que tu as édité ton post, c'est clair que la mise à jour d'ogame ne va pas trop t'embêter s'il s'agit de stringifier ou de bipper. Et je note avec intérêt la combinaisons des fonctions que tu nommes $A, $C, $E (que perso je trouverais utile de nommer plus explicitement, même si ça donne un air de condensé)

Enfin, je suis curieux de voir la petite bombe d'add-on que tu nous a concocté. C'est un simple user-script compilé en XPI ? Et est-ce que les add-ons disposent d'une priorité d'éxécution supérieure à ceux des scripts greasemonkey ? Auquel cas on pourrait faire du script librairie un add-on.

This post has been edited 1 times, last edit by "THSK" (Oct 29th 2008, 1:36am)

  • Go to the top of the page

Seyguai

Raideur

Date of registration: May 3rd 2007

Posts: 371

11

Wednesday, October 29th 2008, 3:21am

Pour répondre simplement, l'addon en question n'est pas qu'un simple userscript compilé, si au bout de deux ans je n'étais parvenu qu'à ça, je me serais déjà pendu....
L'avantage, c'est que tu profites du système de maj par Firefox. En tant qu'addon, tu accèdes aussi aux contenus des pages avant les scripts GM. Puis tu peux virer toutes les restrictions dues à Firefox ^^
Par contre, faire une librairie en xpi, c'est plus compliqué. Déjà faut trouver quelqu'un qui s'y connaisse (ouè mais nan). Ensuite, faut trouver un autre moyen de faire circuler les données vers les scripts GM.... T'as plus de unsafeWindow. Faudrait tout écrire sur la page, ce qui pourrait ralentir le tout... (+ problème de typage en ce cas)
Enfin, le seul pré-requis à une librairie GM est d'être placé en premier, pas de quoi en concocter un xpi à mon gout x)


Sinon, pour en revenir au script, je l'ai adapté pour qu'il accepte n'importe quel autre script, pas que ceux hébergés chez moi ^^.
Mais j'ai pas eu le temps d'insérer le parsing...

De plus, l'intéret du condensé: de 46 lignes avant pour la déclaration de la textarea, Evaluate Tool n'en compte plus que 14 maintenant. Et on peut encore le réduire, sauf que j'aime bien indenter chaque nouvel élément par rapport à son parent ^^

This post has been edited 1 times, last edit by "Seyguai" (Oct 29th 2008, 3:43am)

  • Go to the top of the page

ChaosMage

Diplomate

Date of registration: Sep 12th 2008

Posts: 726

Gender: male

Location: Devant le pc

12

Wednesday, October 29th 2008, 9:04pm

Tiens, je vois des modifications :D

Ps : Ceci est un up, pour permettre au grand maitre de la librairie de poster


ChaosMage... A.O.T.S.... Top 900... Uni 52
  • Go to the top of the page

Seyguai

Raideur

Date of registration: May 3rd 2007

Posts: 371

13

Wednesday, October 29th 2008, 10:24pm

<3 Jte soudoierais plus souvent ^^

Juste pour dire:
J'ai intégré la "supermégavariableobjet" DATA depuis la librairie.
C'est vraiment un gros bloc, je vous invite à voir sur le premier post sa structure, ça parait gros, mais une fois compris, c'est très simple à comprendre. Si jamais vous avez des données supplémentaires à ajouter, dites le !

D'ailleurs, je rajoute, pour accéder à un point de "l'arbre", on peut faire soit en tant que hiérarchie DOM, soit tel les arrays:

Source code

1
2
3
4
DATA.planet[3].building.mmet;
DATA['planet'][3]['building']['mmet'];
DATA.planet[3].building['mmet'];
DATA['planet'][3].building.mmet;

Toutes ces notations renvoient la même chose ! La première utilisation est bien niveau lisibilité, mais l'utilisation des array est meilleure dans une utilisation de la boucle for par exemple ^^

Par contre, je n'ai pas encore fini le parsing. Seule la détection des planètes/lunes est viable (et plus que ça x)) pour l'instant. J'ai aussi la détection des flottes chez moi, mais pas encore posté.
De plus, j'ai mis à jour Evaluate Tool, en y intégrant notamment des options. Sur l'écran qui apparait alors, vous pouvez choisir parmi les fonctions et autres ce que vous souhaitez utiliser, et le script les reconnaitra alors. Très utile pour comprendre comment marche la librairie !
D'ailleurs la liste se construit d'elle même, pas besoin que je mette à jour le script. En gros, elle comportera toujours toutes les fonctions, prototypes & variables.
Screen : #3

Avant dernier point, j'envisage de créer un wiki, ce sera ptet plus simple à lire ^^.

Et enfin, je risque d'être absent trois/quatres jours, problème irl...
Donc le parsing sera pas fini d'ici là. Mais je reviendrais vite ^^

This post has been edited 3 times, last edit by "Seyguai" (Nov 7th 2008, 2:22pm)

  • Go to the top of the page

ChaosMage

Diplomate

Date of registration: Sep 12th 2008

Posts: 726

Gender: male

Location: Devant le pc

14

Wednesday, October 29th 2008, 10:58pm

Han bravo :)

Tu peu juste donner un exemple ? Sur MON script, comment je récupère le niveau de la mine de métal sur la 2eme planète ? :baby:


ChaosMage... A.O.T.S.... Top 900... Uni 52
  • Go to the top of the page

THSK

Diplomate

Date of registration: Jun 27th 2005

Posts: 952

Gender: male

Location: France, Nord

15

Wednesday, October 29th 2008, 11:10pm

Eh, ça commence à devenir vraiment intéressant...
Je m'imagine bien diviser par trois la taille de mes scripts avec la supermégavariableobjetdeseyguai. Et gagner en lisibilité.

Par contre, j'ai pas regardé le détail mais c'est pas dangereux d'utiliser un numéro de planète pour aller chercher les infos ? J'ai eu des ennuis lorsque je différenciais les planètes par leur ordre dans le sélecteur, lors de décolonisations/colonisations ou lorsqu'on changeait l'ordre de tri dans les options ingame. Enfin, depuis je les différencie par leur position x/xxx/xx

edit : désolé, après avoir regardé, je vois que tu les différencies selon leur ID.

Bon, je suppose que tu as bossé pas mal pour ajouter toussa en si peu de temps, et l'IRL passe avant tout. Mais quand tu t'ennuieras... Il faudra penser à des fonctions d'insertion et à représenter de manière intuitive le DOM. Quelquechose comme InsereAvant(tableau.lignemmet.description.cout,"Pour agrandir la mine de métal, il faut");

Tu n'es pas obligé de tout faire non plus. J'aimais bien le coté travail d'équipe quand on a commencé à parler de cette idée. Tu as pensé à contacter quelques autres codeurs ? Perso, je suis pas un expert, mais si je peux aider, dis-moi comment ;)

@ChaosMage : Regarde dans le premier post. Je pense que pour ton exemple, c'est NiveauMineMetal = data.planet[1].building.mmet

This post has been edited 3 times, last edit by "THSK" (Oct 29th 2008, 11:29pm)

  • Go to the top of the page

Seyguai

Raideur

Date of registration: May 3rd 2007

Posts: 371

16

Thursday, October 30th 2008, 12:17am

Deux ans de réfléxions ^^
J'ai été confronté au problème de colonisation et autre, et même pour compliquer la vie de mon addon, toutes mes planètes portent le même nom...

Sinon pour la réponse donnée à ChaosMage, c'est exactement ça !
DATA contient tout.
Si tu veux accéder aux planètes, tu fais DATA.planet, si c'est les lunes, DATA.moon, pour les technos DATA.search
Après, pour les planètes et lunes, c'est des "tableaux", vu que t'en as pas qu'une... (rappel: les arrays commencent à 0, tout est décalé)
Donc la planète 7, tu appelles DATA.planet[6]
(PS: l'ordre des planètes/lunes est le même que la liste d'OGame)
Après, pour accéder aux ressources par ex, tu fais DATA.planet.ressource ...
Enfin je pense que tu as compris ^^

Actuellement, je viens de finir le parsing des batiments & technologies. Je me lance sur les défenses et vaisseaux et c'est bon. Ca va assez vite, je copie presque tout sur OgRV....

Il est vrai que je n'ai pour l'instant contacté personne, mais je comptais sur ce post pour que vous me "contactiez", exposant vos idées etc...

Par exemple, pour ta fonction InsereAvant, ou addBefore (gaffe je trouve hideuse la langue française appliquée au noms de fonctions), je ne crois pas que donner un "path" soit possible, ça impliquerait de mapper toutes les pages au delà du dom... et là on s'en sort pas ^^. Par contre jvois bien donner un regexp ou string, style :

Source code

1
'%1<br>Ressources nécessaires :'

En ce cas, la fontion permettrait de trouver une chaîne de caractère et d'en insérer des valeurs ou que ce soit (en plus avant).

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function replaceContent(elm, dataTxt, values) {
	var txt = elm.innerHTML;
	for (var elm in values)
		txt = txt.replace(elm, values[elm]);
	elm.innerHTML = txt;
	return elm;
}
//Et là:
var newContent = {
	'%1': '<br>Pour agrandir la mine de métal, il faut :',
	'%2': ' absolument'
};
replaceContent(td[i], '%1<br>Ressources%2 nécessaires :', newContent);
//Fonction que l'on peut aisément 'prototyper' pour donner après:
td[i].replaceContent('%1<br>Ressources%2 nécessaires :', newContent);


M'enfin, c'est qu'une suggestion ^^

Ps: Pour aider, rien que fournir des idées c'est pas mal, mais si en plus tu fournis la fonction, qu'un autre "expert" peut améliorer ou simplifier, bah c'est mieux ^^
  • Go to the top of the page

SeyJoyeuh

Apprenti

Date of registration: Oct 30th 2008

Posts: 96

Gender: male

17

Thursday, October 30th 2008, 1:49am

Bouum les grands moyens ><
Donc, juste pour dire là encore:
J'ai fini le parsing principal.

La variable DATA peut être intégralement remplie.
Elle tire ses infos sur les pages Bâtiments, Laboratoire, Chantier Spatial, Défense, Ressources, Vue général + celles où ya la liste des planètes.

Merci de me prévenir de tout bug, ou de toute fonction utile à intégrer... j'y répondrai dans 4 jours ^^
  • Go to the top of the page

THSK

Diplomate

Date of registration: Jun 27th 2005

Posts: 952

Gender: male

Location: France, Nord

18

Thursday, October 30th 2008, 1:36pm

Ah d'accord , data.search ce sont les recherches du labo et donc rien à voir avec la page recherche ou avec une fonction de recherche de données. J'étais un peu confus sur ce point car je cherchais plutot un data.techs ou un data.research ^^ L'anglais n'a pas toujours du bon, même ça fait toujours plus stylé et qu'on peut envisager de passer à l'international :D

Je vais voir si je peux faire quelquechose dans les fonctions d'insertion, mais honnêtement rien que comprendre le fonctionnement de la dernière fonction que tu as écrite est un exploit pour moi --> pourquoi dataTxt est entré en argument et n'est pas utilisé dans la fonction alors qu'il est à priori nécessaire ? Et le for..in me parle pas beaucoup, d'autant que je crois que tu utilises elm comme deux choses différentes ???
  • Go to the top of the page

ChaosMage

Diplomate

Date of registration: Sep 12th 2008

Posts: 726

Gender: male

Location: Devant le pc

19

Thursday, October 30th 2008, 2:30pm

Il faudrait que tu nous fasse un petit résumé de comment obtenir quoi xO

Pasque si je veux la centrale de fusion, je fait quoi moi ? xO Je sais pas comment on dit centrale de fusion en anglais :P


ChaosMage... A.O.T.S.... Top 900... Uni 52
  • Go to the top of the page

THSK

Diplomate

Date of registration: Jun 27th 2005

Posts: 952

Gender: male

Location: France, Nord

20

Thursday, October 30th 2008, 4:48pm

Tout est dans le premier post ChaosMage

planet: {
id: -1, name: '', posi: '', maxtemp: 0, moonid: 0,
ceil: {used: 0, max: 0},
resource: {
stock: {m: 0, c: 0, d: 0, e: 0},
prod: {m: 0, c: 0, d: 0},
coef: {mmet: 1, mcri: 1, mdet: 1, cef: 1, ces: 1, ss: 1},
max: {m: 0, c: 0, d: 0},
time: 0
},
building: {mmet: 0, mcri: 0, mdet: 0, ces: 0, cef: 0, rob: 0, nan: 0, cspa: 0, hmet: 0, hcri: 0, hdet: 0, lab: 0, ter: 0, depo: 0, silo: 0, base: 0, phal: 0, port: 0,
build: {tag: '', type: '++', end: 0}
},
fleet: {pt: 0, gt: 0, cle: 0, clo: 0, crois: 0, vb: 0, vc: 0, rec: 0, esp: 0, bomb: 0, ss: 0, dest: 0, edlm: 0, traq: 0, build: []},
defence: {lm: 0, lle: 0, llo: 0, gauss: 0, ion: 0, pla: 0, pb: 0, gb: 0, mic: 0, mip: 0, build: []}
}

Quand tu as : et des accolades { }, ça signifie une subdivision de l'arbre.
Donc pour chercher la CEF, tu regardes dans la catégorie planet , building pour les batiments, et là t'as la liste des batiments et de leurs tags dans l'ordre en plus. Donc t'auras pas de mal à trouver DATA.planet.building.cef

Et même si tu as un doute, Seyguai a fait des variables TAG et TXT pour retrouver les tags de ce que tu cherches :

Quoted

Quelques variables présentes: * TAG, contient la liste de tag associés aux bâtiments & objets d'OGame. On ne peut en effet stocker 'Mine de métal niveau 18', ça prendrait beaucoup trop de place. On convient donc d'une liste de tag, dont ici, Mine de métal correspond à 'mmet'. Ces tags sont aisés à comprendre. * TXT, array associatif reliant les tags à leurs noms complets. TXT['mmet'] = 'Mine de métal';


J'ai testé simplement le script de parsing pour qu'il m'indique le niveau de la mine de métal d'une de mes planètes. Voilà le code (qui doit être placé après SSU dans la liste comme le monsieur a dit) :

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var selfFunctions = []; 
var selfPrototypes = []; 
var selfVariables = ['URL', 'JSON','DATA'];  
// Seyguai's Script - SSU Method 
switch (unsafeWindow.ssu) { 
// Diverses erreurs du script librairie. 
case undefined: 		unsafeWindow.ssu = false; 	
return alert("Ce script fait partie d'une suite créée par Seyguai.\nSon bon fonctionnement implique la présence du script \"Seyguai's Scripts Utilities\" fourni sur le site de l'auteur.\n\nSi toutefois ce script est déjà  installé, veuillez le placer en première position de la liste des autres scripts GreaseMonkey.\n(Il n'altérera en rien le fonctionnement des autres scripts)\n\nExécution des scripts interrompue."); 	
case false: 		return; 
case 'error': 	unsafeWindow.ssu = false; 
return alert("Une erreur s'est produite lors de l'exécution de la librairie \"Seyguai's Scripts Utilities\". Merci de contacter l'auteur.\n\nExécution des scripts interrompue."); }  eval(unsafeWindow.ssu.fun.evalFunctions(selfFunctions, selfPrototypes, selfVariables)); // Définition des fonctions/prototype/variables  

// Et enfin le code juste pour avoir ce que je veux

 	alert(DATA.planet[0].building.mmet);


Faudra juste faire un petit tuto pour déterminer facilement quelles sont les fonctions, prototypes et variables dont on a besoin. Pour moi les fonctions et variables ça va, les prototypes un peu moins.

This post has been edited 2 times, last edit by "THSK" (Oct 30th 2008, 5:01pm)

  • Go to the top of the page