Aller au contenu


Photo

[Optimisation] Diverses Fonctions Revues


  • Ce sujet est fermé Ce sujet est fermé
52 réponses à ce sujet

#1 Marburg

Marburg

    Hard Gamer

  • Membres
  • 264 messages

Posté 16 August 2013 - 16:35

*
MESSAGE POPULAIRE !

Bonjour, j'établis ce post qui me servira de fourre-tout pour toutes les fonctions que je retouche et cherche à optimiser pour gagner du temps CPU

Dans toolkit.au3, la fonction _formattime()
Spoiler
peut devenir
Spoiler
Gain : Vitesse de la routine augmentée entre 30 % et 150 % selon la durée en input
Nota : A accompagner de modifications dans toolkit.au3 puisque la fonction n'est plus appelé de la même manière, on évite moultes affectations avec des = (je les publierai à mon retour de vacances)



Dans toolkit.au3, dans la fonction MoveToPos(), cette partie
Spoiler
peut devenir
Spoiler
Gain : Vitesse de la routine augmentée de 15%



Dans toolkit.au3, dans la fonction MoveToPos(), cette partie
Spoiler
peutdevenir
Spoiler
Gain : Vitesse de la routine augmentée de 15%

Dans toolkit.au3, dans la fonction Attack(), cette partie
Spoiler
peut devenir
Spoiler
Gain : en cours d'estimation, quoi qu'il en soit un CC est généré dès qu'un favorable est rencontré, d'où la volonté de séparer Is_Decor_Breakable() du reste pour s'affranchire d'un Or. Is_Loot() est placé en premier pour optimiser son appel



Statistiques supplémentaires dans la fonction StatsDisplay() dans toolkit.au3

Juste après
Spoiler
insérer le code
Spoiler

Dans la fonction StashAndRepair() du même fichier, remplacer cette partie
Spoiler
par
Spoiler
et enfin la fonction qui mesure l'or à ajouter en fin de fichier
Spoiler
Déclarer ensuite la nouvelle variable dans main.au3 à la suite des "Global" en rajoutant
Spoiler
Gain : Fonctionnalité qui consiste à afficher l'or obtenu en vendant des items


Dans toolkit.au3, dans la fonction StashAndRepair(), remplacer
Spoiler
par
Spoiler
Gain : Correction de bug (évite la double identification des items)
  • kog, vielgluck, miickey et 22 autres aiment ceci

Filter generator : Générateur de filtres avancés pour CorePlusField v7+ | %5Bbuild%5D Marburg's féticheur "high radius" | %5Bbuild%5D Marburg's sorcière "high speed"Moine %5B100%5D 196Kdps unbuff, 840Kgold/h, radius:14, Brigand 26Kdps, 8.0a | Moine %5B100%5D 120Kdps unbuff, 760Kgold/h max, Enchanteresse 15Kdps, 8.0aSorcière%5B100%5D 307Kdps unbuff, 974Kgold/h, radius:42, Enchanteresse 13Kdps, 8.1 | Féticheur%5B100%5D 275Kdps unbuff, 1025Kgold/h, radius:67, Enchanteresse 15Kdps, 8.1HC Féticheur%5B44%5D 57Kdps unbuff, 280Kgold/h, radius:45, Templier 3Kdps, 8.1Développement en cours : CoCbot, un bot pour Clash of Clan sur émulateur Androidbanner2.gif


#2 gmsMath

gmsMath

    Fragger

  • Membres
  • 981 messages
  • Location :Paris
  • Hobbies :Voyages, Moto, calembour hilarant et gms temple :)

Posté 16 August 2013 - 17:11

Pour une fonction appelée toutes les 6 minutes environ c'est non négligeable ^^
Merci Marburg
--Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.

#3 Marburg

Marburg

    Hard Gamer

  • Membres
  • 264 messages

Posté 16 August 2013 - 17:55

Héhé celle là je l'attendais ! ;) En effet, mais on sait jamais :D en fait à forcer de tourner en rond dans les fonctions, je me suis fait la main sur celle-ci. Ca me familiarise encore plus avec AutoIT et me permet de mesurer le gain en supprimant des variables locales, en changeant les fonctions appelées, etc ;)

J'ai passé une bonne heure avec ces maudites divisions sur les millisecondes, fallait bien que je la partage ;) De cet effort, j'ai pu constater que les appels multiples des variables locales et leur affectations : c'est la plaie :wacko:

Il y'en aura d'autres, dont une appelée 100x par seconde :D

Filter generator : Générateur de filtres avancés pour CorePlusField v7+ | %5Bbuild%5D Marburg's féticheur "high radius" | %5Bbuild%5D Marburg's sorcière "high speed"Moine %5B100%5D 196Kdps unbuff, 840Kgold/h, radius:14, Brigand 26Kdps, 8.0a | Moine %5B100%5D 120Kdps unbuff, 760Kgold/h max, Enchanteresse 15Kdps, 8.0aSorcière%5B100%5D 307Kdps unbuff, 974Kgold/h, radius:42, Enchanteresse 13Kdps, 8.1 | Féticheur%5B100%5D 275Kdps unbuff, 1025Kgold/h, radius:67, Enchanteresse 15Kdps, 8.1HC Féticheur%5B44%5D 57Kdps unbuff, 280Kgold/h, radius:45, Templier 3Kdps, 8.1Développement en cours : CoCbot, un bot pour Clash of Clan sur émulateur Androidbanner2.gif


#4 Tatane44

Tatane44

    Noburo

  • Membres
  • 331 messages

Posté 16 August 2013 - 19:23

Merci Marburg
+1

#5 RqideN

RqideN

    La concierge du mumble

  • Membre Senior
  • 2187 messages
  • Location :Cap d'agde (34)
  • Hobbies :Botter? What else?!

Posté 16 August 2013 - 19:27

Mais t'es un monstre !!

Merci de t'arracher autant le cul pour la communauté, GROS +1 ;)
xv6n.png

#6 gmsMath

gmsMath

    Fragger

  • Membres
  • 981 messages
  • Location :Paris
  • Hobbies :Voyages, Moto, calembour hilarant et gms temple :)

Posté 16 August 2013 - 19:37

moi je kiffe encore plus le côté maniaque du code qui aligne ^^
C'est bcp plus lisble je trouve aussi :)
--Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.

#7 gmsMath

gmsMath

    Fragger

  • Membres
  • 981 messages
  • Location :Paris
  • Hobbies :Voyages, Moto, calembour hilarant et gms temple :)

Posté 16 August 2013 - 19:41

tu peux ptet faire une modif similaire dans la fonction
Func IterateFilterAttack($IgnoreList) non?
--Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.

#8 Marburg

Marburg

    Hard Gamer

  • Membres
  • 264 messages

Posté 16 August 2013 - 20:24

Merci pour vos retours, c'est encourageant ;)

Oui je pense pouvoir, je vais m'imprégner de la fonction et voir ça de plus prêt, je me suis attardé sur MoveToPos() et Attack() car c'est depuis là que le problème de ramassage bien connu survient

Si j'indente correctement le code (et le commente) c'est justement pour le rendre plus lisible et pour pouvoir se repérer rapidement dans les boucles
En FAC (y'a 20 ans :D), on m'avait appris que c'était TRES utile, j'ai appliqué ;) (mylife)

Filter generator : Générateur de filtres avancés pour CorePlusField v7+ | %5Bbuild%5D Marburg's féticheur "high radius" | %5Bbuild%5D Marburg's sorcière "high speed"Moine %5B100%5D 196Kdps unbuff, 840Kgold/h, radius:14, Brigand 26Kdps, 8.0a | Moine %5B100%5D 120Kdps unbuff, 760Kgold/h max, Enchanteresse 15Kdps, 8.0aSorcière%5B100%5D 307Kdps unbuff, 974Kgold/h, radius:42, Enchanteresse 13Kdps, 8.1 | Féticheur%5B100%5D 275Kdps unbuff, 1025Kgold/h, radius:67, Enchanteresse 15Kdps, 8.1HC Féticheur%5B44%5D 57Kdps unbuff, 280Kgold/h, radius:45, Templier 3Kdps, 8.1Développement en cours : CoCbot, un bot pour Clash of Clan sur émulateur Androidbanner2.gif


#9 Xobevil

Xobevil

    Gamer lvl 1

  • Membres
  • 147 messages

Posté 16 August 2013 - 20:33

Bravo pour tout ce que tu fait pour la communauté.

Edit une question, avec tout les modifications qu'on peut trouver ici et la dans les post, je veut dire je pourrait intégrer tout les modifications du bot dans une archive de bot vierge pour le faire partager a la communauté ?

Je veut dire par la, intégrer tout les modifications de code qu'on trouve dans le spost ici, ceux des actes et tout sa et le donner tout fait ?

Est-ce autorisé par les rêgles du forum.

#10 Tatane44

Tatane44

    Noburo

  • Membres
  • 331 messages

Posté 17 August 2013 - 08:17

C'est pas interdit.

Si l'envie t'en prend, n'hésite pas cela ne devrait pas déplaire au plus grand nombre.

#11 moriced3

moriced3

    Hard Gamer

  • Membres
  • 418 messages
  • Hobbies :Informatique
    Père de famille
    Sculture

Posté 17 August 2013 - 21:53

Est que sa se pourrait que les statistique de temps ne marche plus avec la modification _formattime()
exemple de stastitique:Durée moyenne d'un run : 8 min 51 sec
Désoler de vous bombarder de question.

Et merci Marburg tu a l'aire très impliquer dans cette communauté +1
Pour Participé A D3ROS-Automatisation

MoriceD3

MERCI AUX DÉVELOPPEURS

BOT #1 |Barbare SC 290 Unbuff| Build Thunderstrike ModifierBOT #2 |Féticheur SC 190 Unbuff| Build Double Pluie

Image IPB= Merci Image IPBImage IPB


#12 Marburg

Marburg

    Hard Gamer

  • Membres
  • 264 messages

Posté 17 August 2013 - 22:57

Comme stipulé dans le 1er post, la fonction originale renvoie une valeur dans une variable globale

Celle fonction est ensuite appelé et son résultat est à nouveau affecté à une autre variable global

Un gâchis dont on peut s'affranchir en affectant directement le résultat dans un variable à l'appel

Il y'a juste quelque ligne à modifier, je l'ai fait dans mon toolkit.au3 je les publierai la semaine prochaine

Sinon chercher

_fonction()
a = $dif_timer_stat_formater

et remplacer par

a = _fontion(input)

A la semaine prochaine ;)

Filter generator : Générateur de filtres avancés pour CorePlusField v7+ | %5Bbuild%5D Marburg's féticheur "high radius" | %5Bbuild%5D Marburg's sorcière "high speed"Moine %5B100%5D 196Kdps unbuff, 840Kgold/h, radius:14, Brigand 26Kdps, 8.0a | Moine %5B100%5D 120Kdps unbuff, 760Kgold/h max, Enchanteresse 15Kdps, 8.0aSorcière%5B100%5D 307Kdps unbuff, 974Kgold/h, radius:42, Enchanteresse 13Kdps, 8.1 | Féticheur%5B100%5D 275Kdps unbuff, 1025Kgold/h, radius:67, Enchanteresse 15Kdps, 8.1HC Féticheur%5B44%5D 57Kdps unbuff, 280Kgold/h, radius:45, Templier 3Kdps, 8.1Développement en cours : CoCbot, un bot pour Clash of Clan sur émulateur Androidbanner2.gif


#13 Meldarion

Meldarion

    Gamer lvl 2

  • Membres
  • 188 messages
  • Location :Auvergne

Posté 18 August 2013 - 11:47

Merci beaucoup pour le partage :)
Je vais tester ces modifs des que possible :wub:

Big up pour toi :hug:

933298meldarionsign.pngCompte 1 // Para 750 - Ban (wave pré 2.1)Compte 2 // Para 1200 - Moyennement legit :P Compte 3 // Para 100 Merci aux devs ^^


#14 Xobevil

Xobevil

    Gamer lvl 1

  • Membres
  • 147 messages

Posté 24 August 2013 - 12:43

Comme stipulé dans le 1er post, la fonction originale renvoie une valeur dans une variable globale

Celle fonction est ensuite appelé et son résultat est à nouveau affecté à une autre variable global

Un gâchis dont on peut s'affranchir en affectant directement le résultat dans un variable à l'appel

Il y'a juste quelque ligne à modifier, je l'ai fait dans mon toolkit.au3 je les publierai la semaine prochaine

Sinon chercher

_fonction()
a = $dif_timer_stat_formater

et remplacer par

a = _fontion(input)

A la semaine prochaine ;)


Je l'ai pas trouver celle la ??

#15 sjlc

sjlc

    Newbie lvl 4

  • Membres
  • 26 messages

Posté 25 August 2013 - 09:35


Comme stipulé dans le 1er post, la fonction originale renvoie une valeur dans une variable globale

Celle fonction est ensuite appelé et son résultat est à nouveau affecté à une autre variable global

Un gâchis dont on peut s'affranchir en affectant directement le résultat dans un variable à l'appel

Il y'a juste quelque ligne à modifier, je l'ai fait dans mon toolkit.au3 je les publierai la semaine prochaine

Sinon chercher

_fonction()
a = $dif_timer_stat_formater

et remplacer par

a = _fontion(input)

A la semaine prochaine ;)


Je l'ai pas trouver celle la ??


Pour maintenant, autant attendre le retour de Marburg ;)

#16 Marburg

Marburg

    Hard Gamer

  • Membres
  • 264 messages

Posté 28 August 2013 - 15:33

Voici les modifications à faire dans StatsDisplay()

ligne 4023 et 4054
Spoiler
devient
Spoiler


ligne 4060
Spoiler
devient
Spoiler


ligne 4072
Spoiler
devient
Spoiler

  • TheCat31, moriced3, sabrina;) et 1 autre aiment ceci

Filter generator : Générateur de filtres avancés pour CorePlusField v7+ | %5Bbuild%5D Marburg's féticheur "high radius" | %5Bbuild%5D Marburg's sorcière "high speed"Moine %5B100%5D 196Kdps unbuff, 840Kgold/h, radius:14, Brigand 26Kdps, 8.0a | Moine %5B100%5D 120Kdps unbuff, 760Kgold/h max, Enchanteresse 15Kdps, 8.0aSorcière%5B100%5D 307Kdps unbuff, 974Kgold/h, radius:42, Enchanteresse 13Kdps, 8.1 | Féticheur%5B100%5D 275Kdps unbuff, 1025Kgold/h, radius:67, Enchanteresse 15Kdps, 8.1HC Féticheur%5B44%5D 57Kdps unbuff, 280Kgold/h, radius:45, Templier 3Kdps, 8.1Développement en cours : CoCbot, un bot pour Clash of Clan sur émulateur Androidbanner2.gif


#17 sjlc

sjlc

    Newbie lvl 4

  • Membres
  • 26 messages

Posté 28 August 2013 - 17:22

Merci ;)

#18 moriced3

moriced3

    Hard Gamer

  • Membres
  • 418 messages
  • Hobbies :Informatique
    Père de famille
    Sculture

Posté 30 August 2013 - 04:44

Perso j'ai la version 8.1 si je peut permettre.

J'ai remplacer les lignes 4054 et 4055:
Spoiler

par:
Spoiler



et les lignes 4060 et 4061:
Spoiler

par:
Spoiler



et les lignes 4072 et 4073:
Spoiler

par:
Spoiler


et la ligne 4023 même modification que toi. Sans ces modification sa ne marchais pas pour les stats.
Merci Marburg +1 et le a = _fontion(input) :blink: j'aurrais jamais trouver, ces toi pro.

PS: je ne te corrige pas, ces juste que ce qui peut paraitre évident pour certain peu l'être moins pour d'autre.:)
  • H4WK2z, TheCat31, sabrina;) et 1 autre aiment ceci
Pour Participé A D3ROS-Automatisation

MoriceD3

MERCI AUX DÉVELOPPEURS

BOT #1 |Barbare SC 290 Unbuff| Build Thunderstrike ModifierBOT #2 |Féticheur SC 190 Unbuff| Build Double Pluie

Image IPB= Merci Image IPBImage IPB


#19 FanDia

FanDia

    Esprit Shaolin

  • Membres
  • 18 messages

Posté 01 September 2013 - 18:32

Bonsoir à tous et à toutes.
Je voudrais déjà remercier Marburg pour sa contribution au développement du programme CorePlusField ;)
Maintenant je voudrais savoir pourquoi, en modifiant mes fichiers à la lettre (sauf erreur de ma part) comme le prescrit Marburg, j’obtiens un message d'erreur.
Lorsque je lance le main.au3 voici ce qu'il m'indique :

WARNING: $test_iterateallobjectslist: possibly used before declaration.
handle_Loot($item, $IgnoreList, $test_iterateallobjectslist)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\****\Desktop\CorePlusField V8.1\CorePlusField V8.1\toolkit.au3(4088,72) : WARNING: $GoldBySale: possibly used before declaration.
$DebugMessage &= " par vente : " & formatNumber(Ceiling($GoldBySale)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\****\Desktop\CorePlusField V8.1\CorePlusField V8.1\toolkit.au3(5308,1) : ERROR: missing Wend.
EndFunc
^
C:\Users\****\Desktop\CorePlusField V8.1\CorePlusField V8.1\toolkit.au3(5261,3) : REF: missing Wend.
While
^
C:\Users\****\Desktop\CorePlusField V8.1\CorePlusField V8.1\toolkit.au3(5308,1) : ERROR: missing EndIf.
EndFunc
^
C:\Users\****\Desktop\CorePlusField V8.1\CorePlusField V8.1\toolkit.au3(5254,24) : REF: missing EndIf.
If $ToTrash <> -1 Then
~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\****\Desktop\CorePlusField V8.1\CorePlusField V8.1\main.au3 - 2 error(s), 2 warning(s)



#20 Marburg

Marburg

    Hard Gamer

  • Membres
  • 264 messages

Posté 01 September 2013 - 19:41

Parce que déjà j'ai oublié la partie main.au3 où la déclaration des variables est à faire, mea culpa, je corrige le post 1

Si tu souhaites toutes les faires, modifies les fonctions les unes après les autres et teste. Je me suis basé sur la 8.1 officielle pour les modifications, mais il y'en a de nombreuses proposées, attention à ne pas les faire chavaucher

Filter generator : Générateur de filtres avancés pour CorePlusField v7+ | %5Bbuild%5D Marburg's féticheur "high radius" | %5Bbuild%5D Marburg's sorcière "high speed"Moine %5B100%5D 196Kdps unbuff, 840Kgold/h, radius:14, Brigand 26Kdps, 8.0a | Moine %5B100%5D 120Kdps unbuff, 760Kgold/h max, Enchanteresse 15Kdps, 8.0aSorcière%5B100%5D 307Kdps unbuff, 974Kgold/h, radius:42, Enchanteresse 13Kdps, 8.1 | Féticheur%5B100%5D 275Kdps unbuff, 1025Kgold/h, radius:67, Enchanteresse 15Kdps, 8.1HC Féticheur%5B44%5D 57Kdps unbuff, 280Kgold/h, radius:45, Templier 3Kdps, 8.1Développement en cours : CoCbot, un bot pour Clash of Clan sur émulateur Androidbanner2.gif