| Script par outils Greasemonkey (amroth et jeyries) | |
|
+23Talsi djogzz Scalou Loup Solitaire Adira Feanor45 Dark Revan Larsen sergewing Delrusant Tatzoof Logain Angarak Kidj El Desdichado Barrik vodkarus Jactari ptijy Tandyys oshrat Akosh amroth 27 participants |
|
Auteur | Message |
---|
amroth
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Ven 27 Aoû 2010 - 13:44 | |
| Merci, c'est pas directement là dessus que je me base, mais ça montre bien le problème. | |
|
| |
amroth
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Ven 27 Aoû 2010 - 18:52 | |
| Une nouvelle version avec essentiellement des corrections esthétiques (pour les forums phpbb2 à fond sombre, notamment, c'était illisible). On va voir bientôt pour une version phpbb3 plus jolie (cette fin de semaine, peut-être), mais nécessitant une configuration des CSS et BBCodes du forum par l'administrateur (Merci à Desdichado). | |
|
| |
Angarak
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Sam 28 Aoû 2010 - 3:36 | |
| Merci amroth pour ces nouvelles updates, notamment la fonctionnalité de Rapport ! C'est vraiment sympathique d'avoir une visu de l'ensemble de son royaume d'un coup. J'en profite donc pour partager avec vous une 'tite suggestion de présentation... En bref, j'ai modifié l'emplacement du lien (renommé en Kingdom) et le markup du popup. C'est pas optimal vu que je n'ai pas utilisé de CSS, mais ça marche ;-) pour l'affichage du lien 'Rapport' et la gestion du popup ( report.js) - Code:
-
HOMMK_EXT.report = new Object(); HOMMK_EXT.report.report = function() { var result = new Object(); result.inctotal = [0,0,0,0,0,0,0]; result.restotal = [0,0,0,0,0,0,0]; result.prodtotal = new Object(); result.unittotal = new Object(); var cities = HOMMK.elementPool.get('RegionCity'); result.cities = new Array(); var recruits = HOMMK.elementPool.get('RecruitmentFrame'); for(var id in cities.obj) { var c = cities.obj[id]; if(c) { var o = new Object(); o.id = id; o.cityName = c.content.cityName; o.factionEntityName = c.content.factionEntityName; o.x = c.content.x; o.y = c.content.y; o.resources = c.content.attachedRessourceStackList; var r; // if(recruits) r = recruits.obj[id]; if(r) { r = r.content.recruitableUnitList; o.recruits = new Object(); for(var i in r) { var uid = r[i].unitEntityId; var name = r[i].unitEntityName; if(r[i].upgraded && r[i].upgraded.baseIncome) { uid = r[i].upgraded.unitEntityId; name = r[i].upgraded.unitEntityName; } if(uid && r[i].baseIncome) { if(!result.unitname) result.unitname = new Object(); if(!result.unitname[uid]) { result.unitname[uid] = name; result.unittotal[uid] = 0; result.prodtotal[uid] = 0; } o.recruits[uid] = new Object(); o.recruits[uid].avail = r[i].avail; o.recruits[uid].baseIncome = r[i].baseIncome; result.unittotal[uid] += r[i].avail; result.prodtotal[uid] += r[i].baseIncome; } } } result.cities.push(o); } } $('#GameHiderLoading').addClass('hidden'); $('#GameHider').css('opacity', 0.5).removeClass('hidden'); $("#KingdomFrame").html(HOMMK.reportTemplate.get(result)) .find('a[rel]').click(function() { var element = document.getElementById('RegionCity' + $(this).attr('rel') + 'SummaryViewImage'); if (document.createEvent) { // dispatch for firefox & others var evt = document.createEvent('HTMLEvents'); evt.initEvent('click', true, true); // event type, bubbling, cancelable !element.dispatchEvent(evt); } else { // dispatch for IE var evt = document.createEventObject(); element.fireEvent('onclick', evt) } return false; }).end() .show().css('visibility', 'visible').find('#KingdomClose').click(function() { $('#GameHider').addClass('hidden'); $('#KingdomFrame').hide(); }); } HOMMK_EXT.report.condition = "true"; HOMMK_EXT.report.setup = function() { $('#SidebarTop tr:first').each(function() { $('<td>' + $(this).find('td:last').html() + '</td>') .find('div>div') .filter('#RankingImage').attr('id', 'KingdomImage').css('background-position', '-280px 0').end() .filter('#RankingText').attr('id', 'KingdomText').text('Kingdom').end() .hover(function() { $(this).siblings().andSelf().addClass('over').filter('#KingdomImage').css('background-position', '-280px -40px'); }, function() { $(this).siblings().andSelf().removeClass('over').filter('#KingdomImage').css('background-position', '-280px 0'); }) .click(function() { if ($('#KingdomFrame').length == 0) { HOMMK.reportTemplate = $.createTemplate(GM_getResourceText('report')); $('<div id="KingdomFrame" class="largeFrame absolutePosition" style="z-index:2"></div>').hide().appendTo('#FrameMainContainer'); } for (var i = 0; i < HOMMK.displayedFrameList.length; i++) { HOMMK.displayedFrameList[i].hide(); } $('#GameHiderLoading').removeClass('hidden'); HOMMK_EXT.report.report(); return false; }) .end() .appendTo(this); $(this).find('td>div').click(function() { $('#KingdomFrame').hide(); }); }); };
$.extend({
formatNumber: function(number) { var ret = '' + number, differs = true; var rgx = /(\d+)(\d{3})/; for (;;) { var rep = ret.replace(rgx, '$1 $2'); if (rep == ret) { break; } ret = rep; } return ret; }
});
pour l'affichage du contenu du rapport ( report.txt) - Code:
-
<table cellspacing="0" cellpadding="0" border="0" class="frameContainerTopBarContainer"> <tbody> <tr> <td class="size0 frameContainerTopLeft"></td> <td class="size0 frameContainerTop"></td> <td class="size0 frameContainerTopRight"><div id="KingdomClose" class="zIndex1 frameContainerCloseImage absolutePosition clickable" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/SideBar_Shortcuts.gif') 0px -160px;width:23px;height:24px"></div></td> </tr> <tr> <td class="frameContainerMiddleLeft"></td> <td class="beigeBg"> <div> <div class="center size11 uppercase white boldFont titleBar"><span class="Hoffset3R"></span>Kingdom <span style="font-size:0.7em;font-weight:normal;text-transform:none;float:left;margin-right:-75px;padding-left:5px">HOMMK_EXT <b>v{HOMMK_EXT.version}</b></span></div> <div class="Voffset7" style="max-height:460px;overflow:auto;padding:1em"> <table id="KingdomData" border="1" style="border-collapse:collapse;border:2px inset Sienna;background:url('{unsafeWindow.HOMMK.IMG_URL}/message/messageListBackground.gif') 0 10px;width:100%"> <thead> <tr style="height:50px;color:white;background:url('{unsafeWindow.HOMMK.IMG_URL}/frame/ranking/rankingHeader_WEALTH_01.jpg') 0 0"> <th></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -250px -155px;margin:auto;width:20px;height:20px;"></div></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -20px 0;margin:auto;width:20px;height:20px;"></div></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -40px 0;margin:auto;width:20px;height:20px;"></div></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -60px 0;margin:auto;width:20px;height:20px;"></div></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -80px 0;margin:auto;width:20px;height:20px;"></div></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -120px 0;margin:auto;width:20px;height:20px;"></div></th> <th><div class="ressourceStackImage" style="background:url('{unsafeWindow.HOMMK.IMG_URL}/css_sprite/Ressources.gif') -100px 0;margin:auto;width:20px;height:20px;"></div></th> </tr> </thead> <tbody> {#foreach $T.cities as city} <tr style="height:40px"> <td style="padding:4px;white-space:nowrap"><a href="#" rel="{$T.city.id}">{$T.city.cityName}<br/>[<tt>{$T.city.x},{$T.city.y}</tt>]</a></td> {#foreach $T.city.resources as res} <td style="padding:4px;white-space:nowrap;text-align:right"><tt>{$T.restotal[$T.res$index]+=$T.res.quantity,$.formatNumber(Math.round($T.res.quantity))}</tt> / <tt>{$.formatNumber($T.res._storageLimit)}</tt><br/><tt>{$T.res.income < 0 ? '' : '+'}{$T.inctotal[$T.res$index]+=$T.res.income,$.formatNumber(Math.round($T.res.income,1))}</tt></td> {#/for} </tr> {#/for} <tr style="height:40px;background:#634a33;color:#ffffff"> <td style="padding:4px;vertical-align:middle;font-weight:bolder">Total</td> {#foreach $T.inctotal as inc} <td style="padding:4px;white-space:nowrap;text-align:right;font-weight:bolder"><tt>{$.formatNumber(Math.round($T.restotal[$T.inc$key]))}</tt><br/><tt>{$T.inc < 0 ? '' : '+'}{$.formatNumber(Math.round($T.inc,1))}</tt></td> {#/for} </tr> </tbody> </table> {#if $T.unitname} <table border="0"> <tr style="height:40px"><th>Cité</th> {#foreach $T.unitname as unit} <th>{$T.unit}</th> {#/for} </tr> {#foreach $T.cities as city} {#if $T.city.recruits} <tr style="height:40px"><td>{$T.city.cityName}</td> {#foreach $T.unitname as unit} <td> {#if $T.city.recruits[$T.unit$key]} {Math.round($T.city.recruits[$T.unit$key].avail)}<br/>+{Math.round($T.city.recruits[$T.unit$key].baseIncome,1)} {#/if} </td> {#/for} </tr> {#/if} {#/for} <tr style="height:40px"><th>Total</th> {#foreach $T.unitname as unit} <th>{Math.round($T.unittotal[$T.unit$key])}<br/>+{Math.round($T.prodtotal[$T.unit$key])}</th> {#/for} </tr> </table> {#/if} </div> </div> </td> <td class="frameContainerMiddleRight"></td> </tr> <tr> <td class="size0 frameContainerBottomLeft"></td> <td class="size0 frameContainerBottom"></td> <td class="size0 frameContainerBottomRight"></td> </tr> </tbody> </table>
J'ai laissé intacte la partie concernant les troupes, sachant qu'elle était commentée. On pourrait éventuellement ajouter des onglets, et afficher chaque type d'information (production et armée) dans son propre onglet. voilà voilà... -- Angarak | |
|
| |
amroth
| |
| |
Larsen
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 10:10 | |
| J'ai une différence entre le rapport et mon stock d'or de ville (avec une seule ville c'est facile de comparer ) - Spoiler:
C'est normal docteur ? edit : minerai aussi d'ailleurs... | |
|
| |
sergewing
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 10:28 | |
| Pareil pour moi, j avais pas fait attention avant | |
|
| |
Kidj
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 10:28 | |
| J'ai eu ça hier Larsen, j'ai du faire F5 pour recharger la page et s'était bon! | |
|
| |
Larsen
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 10:32 | |
| F5 marche pour l'or, par contre le rapport indique toujours 1 minerai de trop...
Ca doit être une question d'arrondi. | |
|
| |
Adira
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 11:10 | |
| - Larsen a écrit:
Ca doit être une question d'arrondi. Je confirme qu'il y a des soucis d'arrondis au moins sur la prod : quand tu produit 6,6, Ubi indique 6 dans la fenêtre de ville alors qu'Amroth fait l'arrondi à 7. Par contre, j'ai effectivement aussi un décalage de 1 sur le stock de cailloux... | |
|
| |
ptijy
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 11:22 | |
| Merci bcp pour ces nouvelles fonctions, ce script est vraiment genial. Par contre, comme Adira, j'ai 1 de difference en stock de minerai (et j'ai aussi la difference d'arrondi mais je pense que c'est la methode d'amroth la plus precise donc je serai pour ne rien changer a ce niveau-la). | |
|
| |
Larsen
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 11:26 | |
| L'arrondi dont je parlais c'est aussi pour les stock. Une possibilité est qu'Amroth indique l'arrondi du stock alors que Ubi n'indique que les cailloux entièrement présents (et donc utilisables)
Ca n'explique pas pourquoi c'est que sur les cailloux cependant... | |
|
| |
Jactari
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 11:36 | |
| Pour les arrondis, il ne faut pas chercher à comprendre, leur gestion en jeu est incohérente. | |
|
| |
Larsen
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 12:48 | |
| La pour les stock ça semble se confirmer. J'ai maintenant 7 en bois, et le rapport dit 8. Donc ça montre que ce n'est pas uniquement la pierre.
Cette fois par contre (si c'est bien ça) ubi a raison de tronquer la valeur. On ne peut utiliser une ressource que si elle est entièrement là. | |
|
| |
ptijy
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 13:07 | |
| Effectivement, l'explication de larsen semble la bonne. Donc dans ce cas, il devrait suffire de remplacer dans le fichier generant le rapport les "math.round" relatifs aux stocks d'or et de ressources par des "math.floor" qui arrondissent au + grand entier inferieur ou egal a la valeur. Edit: j'ai verifie, ca semble marcher chez moi. Pour ceux que ca interesseraient, j'ai remplacer le 1er round des lignes 6 et 12 de report.txt par des floor. | |
|
| |
amroth
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 14:18 | |
| Autant je comprends un arrondi par défaut sur les stocks (pas présent donc pas utilisable...), autant ça me semble une mauvaise idée pour la production (si je produis 17.8, je préfère voir 18 que 17, c'est moins trompeur). Mais dans tous les cas c'est faux, et si c'est important, la bonne chose à faire, ce n'est pas changer la règle d'arrondi, mais ne plus arrondir... Est-ce important ?
Je précise un dernier détail: je fais les arrondis après le total, donc si vous avez 4 villes qui produisent 6.6, votre royaume produira 26, et non pas 24 ou 28. | |
|
| |
El Desdichado
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 15 Sep 2010 - 14:34 | |
| Je suis de l'avis d'amroth quant aux arrondis, mais l'arrondi gène autant garder la valeur non arrondie pour la prod ... Par contre sur notre forum c'est toujours l'export phpBB3 qu'on attend tous avec impatience ^^ | |
|
| |
Loup Solitaire
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Lun 20 Sep 2010 - 16:38 | |
| Merci pour ce script,bien pratique! J'attends avec impatience la version comportant le résumé des armées! | |
|
| |
Akosh
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 13 Oct 2010 - 12:23 | |
| J'ai des petits soucis avec le script de Jeyries depuis ce matin. Je le vois même pas apparaitre en haut de ma fenêtre de jeu.
Quelqu'un a le même problème ?
J'ai tenté de le réinstaller sans succès (enfin, il s'installe, mais toujours pas de fenêtre).
Après, j'ai pas mal de soucis de connexion, ça vient peut être de la. | |
|
| |
Adira
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 13 Oct 2010 - 12:48 | |
| Pas de soucis particuliers chez moi, ça marche parfaitement... | |
|
| |
amroth
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 13 Oct 2010 - 15:02 | |
| Pourquoi depuis ce matin? c'est étrange, qu'est-ce qui aurait changé? | |
|
| |
Akosh
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 13 Oct 2010 - 15:07 | |
| J'ai tout vérifié : Greasemonkey est actif, et le scipt HOMMK est actif également (en bas à droite sur la tête de singe). Mais comme ma connexion est un peu aléatoire en ce moment avec mon 3G, je pense que cela vient de la, car cela fonctionnait parfaitement sur mon poste perso en ADSL. Je m'en passerai le temps que ma connexion se stabilise un peu (j'ai du dépasser les 500Mo ce mois ) | |
|
| |
Invité Invité
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Mer 13 Oct 2010 - 15:31 | |
| - amroth a écrit:
- Pourquoi depuis ce matin? c'est étrange, qu'est-ce qui aurait changé?
Ya des jours pourris des fois.... Vas savoir |
|
| |
amroth
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Dim 17 Oct 2010 - 6:20 | |
| En attendant d'intégrer les millions de "choses à faire", voila toujours le support de Google Chrome, à travers un plugin (ce qui au final, est plus simple que greasemonkey, pour tout le monde...) Tous les détails ici: http://amroth.free.fr/hommk/ | |
|
| |
Scalou
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Dim 17 Oct 2010 - 14:22 | |
| Bonjour,
J'ai fais une petite maj pour le lien Jactari. Malheureusement depuis lors il y'a conflit entre le script pour Jactari et celui pour les haltes, ressources journalières. Impossible de faire fonctionner les deux en même temps. Apparement je ne suis pas le seul à avoir le problème. Petite idée? Et encore merci pour le boulot que vous faites! | |
|
| |
amroth
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) Dim 17 Oct 2010 - 15:15 | |
| Non, aucune idée. Personellement je suis resté sur la version 0.51 du script de jeyries (elle date d'août, je crois...), mais je crois que certains utilisent la dernière version sans problème ici. Faut voir avec lui, je ne sais pas trop ce qu'il a changé et j'ai du mal à lire son code. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Script par outils Greasemonkey (amroth et jeyries) | |
| |
|
| |
| Script par outils Greasemonkey (amroth et jeyries) | |
|