Aller au contenu


Photo

[Fonction] Nouvelle Version De Gestion D'affixes


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

#21 kinouxe

kinouxe

    Gamer lvl 2

  • Membres
  • 198 messages

Posté 08 December 2012 - 14:16

A Kinouxe,

J'ai réussi a installer ta sequence.

le bot retourne en ville puis relance partie au milieu de fort de pierre est ce normal ?? ou y a un truc qui cloche.

Merci


normal je pense, t'as pas du allonger le temps du run dans le settings.ini, perso j'ai mis maxgamelength=2000000 ce qui fait en gros 33min si tu laisses 20min, il va tp avant la fin ;)

#22 Chr1s

Chr1s

    Fragger

  • Membres
  • 756 messages

Posté 08 December 2012 - 14:39

Premier retour après une nuit de tests sur mon DH, il gagne à peu prés 5% de survie soit 15 morts contre 20 sur 100 runs, c'est donc mieux ;), j'ai même fait un peu plus d'or (530K/h.).

Merci pour ton travail :).

Compte 1 (collector) principal : BANNI

Compte 2 : Parangon 741

Compte 3 [ON] : Parangon 755

Compte 4 du frangin : Parangon 642

ROS Bot : Script DH 2.2 multi build modifié avec rafale (strafe)

 

 

MERCI à GMS et à tous les contributeurs !!! userbarre_diablo_purple.jpg MERCI à GMS et à tous les contributeurs !!!


#23 Fraust

Fraust

    Gamer lvl 2

  • Membres
  • 161 messages

Posté 08 December 2012 - 16:22

Merci kinouxe, exact on a pas l habitude d'un si gros run j'ai oublié de modifier cela.

#24 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 14 December 2012 - 09:02

Merci pour cette fonction, ça va bien aider mon sorcier :)

edit : beaucoup moins de morts qu'avant, c'est très efficace. Par contre, une question qui a été posée plus haut, ça ne gère pas les explosions des mobs ?

#25 kinouxe

kinouxe

    Gamer lvl 2

  • Membres
  • 198 messages

Posté 15 December 2012 - 10:31

salut, j'ai pris du retard dans la programmation mais je l'ai entièrement refaite, et normalement oui elle gère les explosions mais il peut y avoir quelques failles malheureusement, en cherchant un point safe, il peut passer dans une explo...
  • keitofu aime ceci

#26 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 17 December 2012 - 15:46

Ok merci de l'info :)
C'est rageant car maintenant le sorcier ne meurt qu'en allant chercher de l'or/objets et qu'il y a plusieurs explosions en même temps ;)

Merci pour le travail et vivement la nouvelle version :)

#27 kinouxe

kinouxe

    Gamer lvl 2

  • Membres
  • 198 messages

Posté 18 December 2012 - 09:58

salut, lol keitofu

je travaille sur une variante pour éviter ce soucis.

sinon, la nouvelle version devrait être assez énorme mais j'ai encore quelques bugs...

j'ai juste un soucis sur la gestion des perso cac, il retourne forcement dans l'affixe pour tapper, ou alors genre barbare faut le jouer avec le lancer d'arme pour esquiver ce prob, si vous avez une suggestion suis preneur

#28 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 19 December 2012 - 08:26

Est-ce que c'est si grave que ça pour les cac ? A mon avis la gestion des affixes est très intéressante pour les classes à distance qui ont généralement pas bcp de résistance / armure.
Je vois mon moine avec bcp moins de vie que le sorcier ne meurt presque jamais en arma 2/3, et à la limite il vaut mieux qu'il soit en train de taper (pour proc le LS ou LOH) que de bouger.
Enfin c'est mon point de vue ;)

#29 Gfreeman

Gfreeman

    Gamer lvl 2

  • Membres
  • 160 messages

Posté 28 December 2012 - 11:25

Je viens de parcourir en long et en large tes fonctions. Je ne veux pas être désagréable, mais ... franchement, elles ne servent strictement à rien, sauf à polluer inutilement le reste du code du bot. L'idée est bonne mais ça s'arrête là.

array_affix : A quoi sert cette fonction ??? A gérer les affixes et à stocker les infos dans un tableau. OK, mais le tableau, il devient quoi après ? pas de transfert de ce tableau par "ref", donc aucune récupération. Idem, la valeur 200, elle vient d’où pour définir ton tableau d'affixes ? Ne valait-il mieux pas définir un tableau "dynamique" et utiliser la fonction "redim" ?

maffmove : La fonction principale.
Je passe sur la définition de variables inutilisées et le reste du code. Juste un exemple. Ou définis-tu la variable "$ii" dans tes boucles for ? avec local au début de l'initialisation des variables ? Si oui, à quoi ça sert de faire un for de "$$a" vers "$ii" si "$aa" est à 0 et "$ii" également à 0 ? "$ii" n'est jamais modifiée.

Définir ta fonction dans "killermob" n'est pas une bonne idée. Il faut partir à la source. Directement dans "MoveToPos". La zone où je souhaite me déplacer est-elle "safe" ? Si oui, y aller, dans le cas contraire, continuer en "courant". Tout simplement.

Bref, une mise à jour de ton code s'impose grandement.
  • faramir aime ceci

#30 decardcain

decardcain

    Débutant lvl 3

  • Membres
  • 70 messages

Posté 28 December 2012 - 11:36

Je me mêle de ce qui ne me regarde de pas, mais en lisant post j'avais l'impression d'un prof corrigeant vertement la copie de son élève.

Tu as l'air de savoir de quoi tu parles alors pourquoi ne pas proposer ta version?

ps: perso le ton employé me plairais moyen..

#31 kickbar

kickbar

    Devlopette

  • Membre
  • 539 messages
  • Hobbies :Informatiques, jeux vidéo, botting !!!! ;D

Posté 28 December 2012 - 12:08

Je viens de parcourir en long et en large tes fonctions. Je ne veux pas être désagréable, mais ... franchement, elles ne servent strictement à rien, sauf à polluer inutilement le reste du code du bot. L'idée est bonne mais ça s'arrête là.

array_affix : A quoi sert cette fonction ??? A gérer les affixes et à stocker les infos dans un tableau. OK, mais le tableau, il devient quoi après ? pas de transfert de ce tableau par "ref", donc aucune récupération. Idem, la valeur 200, elle vient d’où pour définir ton tableau d'affixes ? Ne valait-il mieux pas définir un tableau "dynamique" et utiliser la fonction "redim" ?

maffmove : La fonction principale.
Je passe sur la définition de variables inutilisées et le reste du code. Juste un exemple. Ou définis-tu la variable "$ii" dans tes boucles for ? avec local au début de l'initialisation des variables ? Si oui, à quoi ça sert de faire un for de "$$a" vers "$ii" si "$aa" est à 0 et "$ii" également à 0 ? "$ii" n'est jamais modifiée.

Définir ta fonction dans "killermob" n'est pas une bonne idée. Il faut partir à la source. Directement dans "MoveToPos". La zone où je souhaite me déplacer est-elle "safe" ? Si oui, y aller, dans le cas contraire, continuer en "courant". Tout simplement.

Bref, une mise à jour de ton code s'impose grandement.



Avant tout, juste LOL !

1) ce n'est pas un concours de développement, que le code soit "moche" ou non, tout le monde s'en fou, au moins LUI (kinouxe) propose une nouvelle fonctionnalité

2) au lieu de cracher sur le code, modifie le toi même si tu n'es pas content, puis envoie le a kinouxe qui se fera un plaisir de mettre a jour son poste !

3) je trouve sa vraiment facile de commenter le travaille des autres lorsque l'on a soit même rien fait !

4)

Newbie lvl 1

Ajouter à mes amis
Envoyer un MP à ce membre

Groupe : Membres
Messages : 2
Inscrit(e) : 21-novembre 12

seulement 2 messages, tu participes vachement dis moi !

#32 Gfreeman

Gfreeman

    Gamer lvl 2

  • Membres
  • 160 messages

Posté 28 December 2012 - 12:09

Je me mêle de ce qui ne me regarde de pas, mais en lisant post j'avais l'impression d'un prof corrigeant vertement la copie de son élève.
ps: perso le ton employé me plairais moyen..


C'est dommage de sabrer une bonne idée avec un code pareil. Le thon ? quel thon ?

Tu as l'air de savoir de quoi tu parles alors pourquoi ne pas proposer ta version?


C'est tout simplement "inutile". En fait... En utilisant au mieux les ressources disponibles, on arrive assez facilement, même avec un "DH" en "papier" (ou avec n'importe quelle classe) à "contourner" ces affixes à la noix ou. Un "ranged" est par définition une classe peu résistante. Elle doit donc compenser par une meilleur mobilité. J'ai tout dit.


attackRange=60
attacktimeout=680


Le but est de ne pas rester immobile trop longtemps. Avec ces valeurs, les classes "ranged" le sont vraiment...

#33 Gfreeman

Gfreeman

    Gamer lvl 2

  • Membres
  • 160 messages

Posté 28 December 2012 - 12:19

1) ce n'est pas un concours de développement, que le code soit "moche" ou non, tout le monde s'en fou, au moins LUI (kinouxe) propose une nouvelle fonctionnalité

Non désolé, tout le monde ne s'en fout pas. Les non-initiés au développement peut-être. L'utilisateur "lambda" peut-être, mais ceux qui veulent, comme moi mettre les mains dans le "camboui", porte un intérêt majeur à ce genre de détails.

2) au lieu de cracher sur le code, modifie le toi même si tu n'es pas content, puis envoie le a kinouxe qui se fera un plaisir de mettre a jour son poste !

J'ai justement essayé de modifier son code, car son idée était séduisante. Mais devant l'ampleur des travaux, il vaut mieux tout refaire.

3) je trouve sa vraiment facile de commenter le travaille des autres lorsque l'on a soit même rien fait !

Si tu le dis <_<.

seulement 2 messages, tu participes vachement dis moi !

Je lis beaucoup et évite de poster des âneries. Surtout.

PS: Du code... tu en auras -_-. Bientôt.

#34 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 28 December 2012 - 13:11

Citation :

"Définir ta fonction dans "killermob" n'est pas une bonne idée. Il faut partir à la source. Directement dans "MoveToPos". La zone où je souhaite me déplacer est-elle "safe" ? Si oui, y aller, dans le cas contraire, continuer en "courant". Tout simplement."

Donc on évite pas les affixes en plein combat ?

#35 Gfreeman

Gfreeman

    Gamer lvl 2

  • Membres
  • 160 messages

Posté 28 December 2012 - 13:36

Citation :

"Définir ta fonction dans "killermob" n'est pas une bonne idée. Il faut partir à la source. Directement dans "MoveToPos". La zone où je souhaite me déplacer est-elle "safe" ? Si oui, y aller, dans le cas contraire, continuer en "courant". Tout simplement."

Donc on évite pas les affixes en plein combat ?


Func MoveToPos($_x, $_y, $_z, $_a, $m_range)
Local $TimeOut = TimerInit()
$grabtimeout = 0
$killtimeout = 0
If _playerdead() Or $GameOverTime = True Or $GameFailed = 1 Or $SkippedMove > 6 Then
$GameFailed = 1
Return
EndIf
Local $toggletry = 0
Global $lastwp_x = $_x
Global $lastwp_y = $_y
Global $lastwp_z = $_z
If $_a = 1 Then Attack($a_range, $monsterList)


MoveToPos est récursive. Les attaques partent de cette fonction procédure, et non l'inverse.

_dorun()
sequence()
movetopos()


#36 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 28 December 2012 - 15:57

Donc la solution c'est de changer constamment de cible et pas d'éviter les affixes tant que le mob est pas mort ?

La fonc attack ne consiste pas à list les mobs et lancer killmob pour chacun d'eux ?

#37 Gfreeman

Gfreeman

    Gamer lvl 2

  • Membres
  • 160 messages

Posté 28 December 2012 - 16:10

Donc la solution c'est de changer constamment de cible et pas d'éviter les affixes tant que le mob est pas mort ?

La fonc attack ne consiste pas à lister les mobs et lancer killmob pour chacun d'eux ?


Non absolument pas. Enfin pas tout à fait. La fonction Attack ne liste absolument rien. Elle ne fait que récupérer des infos issues de ces deux fonctions principales (et bien d'autres...) pour les réutiliser ensuite.

startIterateObjectsList($index, $offset, $count)
			iterateObjectsList($index, $offset, $count, $item)

Demonhunter_Female-54.51234451004616
Hireling_Templar-2413.031316846288
LootType3_BastionsKeepGuard_Melee_Corpse_05-16659.834447219873
Shrine_Global_Hoarder-16751.7051967861836
a3dun_Bridge_Statue_B-16975.5904467824054
a3dun_Keep_Crate_E_charred-17064.0147110530748
a3dun_Keep_Barrel_B_Breakable_charred-17158.4932976697191
a3dun_Keep_Barrel_B_Breakable_charred-17258.9146934540213
a3dun_Keep_Crate_B_charred-17353.8508524433003
LootType3_BastionsKeepGuard_Melee_Corpse_04-17424.080084364717
a3dun_Keep_Crate_D_Snow-17588.2609524258913
MarkerLocation-176130.725579622037
rmpt_FloorExplosion_directional-177300.942234861407
MarkerLocation-178124.54938981615
MarkerLocation-179135.235822147681
MarkerLocation-180114.695608581675
MarkerLocation-181120.945691855793
MarkerLocation-182125.905916028439
MarkerLocation-183137.054850644115
MarkerLocation-184127.526819335961
MarkerLocation-185138.220407414466

Ce code est repris un peu partout dans toutes les fonctions et procédures. Donc non, attack ne "liste" pas les mob.

Là où tu as raison, c'est concernant killmob.

If KillMob($item[1], $item[8], $item[0]) = False Then

PS: Suffit juste de lire le code.
		$item[0] = _MemoryRead($offset + 0x4, $d3, 'ptr') ; GUID
		$item[1] = _MemoryRead($offset + 0x8, $d3, 'char[64]') ; Name
		$item[2] = _MemoryRead($offset + 0xB0, $d3, 'float') ; PosX
		$item[3] = _MemoryRead($offset + 0xB4, $d3, 'float') ; PosY
		$item[4] = _MemoryRead($offset + 0xB8, $d3, 'float') ; PosZ
		$item[5] = _MemoryRead($offset + 0x200, $d3, 'int') ; Data1
		$item[6] = _MemoryRead($offset + 0x1D0, $d3, 'int') ; Data2
		$item[7] = _MemoryRead($offset + 0x1C4, $d3, 'int') ; Data3
		$item[8] = $offset ; Current Offset
		$item[9] = getDistance($item[2], $item[3], $item[4]) ; Distance

Quel est le but de ces questions plpp ?
  • faramir aime ceci

#38 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 28 December 2012 - 16:30

Par lister je voulais dire constater la présence, mal exprimé.

But ? Clarifier c'est tout. Puisque tu me donnes raison concernant killmob, c'est que ces questions ne sont pas stupides.

Je ne suis pas aboslument sûr de moi comme tu en as par contre l'air, donc je pose des questions.

Ai-je paru agressif ?

#39 Gfreeman

Gfreeman

    Gamer lvl 2

  • Membres
  • 160 messages

Posté 28 December 2012 - 19:43

Par lister je voulais dire constater la présence, mal exprimé.

But ? Clarifier c'est tout. Puisque tu me donnes raison concernant killmob, c'est que ces questions ne sont pas stupides.

Je ne suis pas aboslument sûr de moi comme tu en as par contre l'air, donc je pose des questions.

Ai-je paru agressif ?

Non. Nullement. Pour information, je reprends son idée et refais le tout. Je vous tiens au courant.
  • faramir et bilabou aiment ceci

#40 Capped

Capped

    Débutant lvl 1

  • Membres
  • 40 messages

Posté 31 December 2012 - 00:44

Perso j'avais modifie la fonction d'attaque pour checker si le mob est dans une zone dangereuse, si c'est le cas on attaque pas le mob. Ça permettait a mon bot d'attendre que les affixes disparaissaient en général sinon il tapait les mobs en lieu sur ^^

Pour cela il suffit d'utiliser le même algo que celui pour que le joueur évite les affixes.

Un autre PB est dans les zones restreintes ou le joueur risque de se bloquer en essayant d'éviter, du coup il se prend les affixes et en plus ne tape pas ce qui est au final pire que sans gestion des affixes ;)

J'avais alors che ker 500ms après l'esquive d'un affixe si le joueur avait parcouru plus de 5m. Si c'était pas le cas je considérai le perso bloque donc je checke un autre point de sûreté en enregistrant le point inaccessible précédent dans un tableau temporaire qui se supprime quand il n'y a plus d'affixe.