Aller au contenu


Photo

[Fonction] Prendre Les Coffres


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

#1 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 26 October 2012 - 08:03

Bonjour,

Attention je manque de tests sur cette fonction, votre bot peut rester bloqué à un moment ou à un autre bien que j'ai récemment essayer d'effectuer une modif à ce sujet.
Pour l'instant je déconseille de laisser le bot tourner toute la nuit avec cette fonction.
J'ai aussi rajouté une expèce de sécurité qui vous fait normalement ignorer définitivement le coffre au bout de 4 secondes si celui-ci n'est pas pris à une distance de 5 et plus.
Merci aux mecs de la section dev pour les conseils (xoum,euclide,chrissou, et les autres j'en oublie^^).

Dans main.au3, aux lignes juste avant et juste après sequence() vous rajoutez :

Global $banlist = ""


A copier dans toolkit.au3 :

;
;coffs()
;
                                  
Func coffs($name, $offset, $guid)                       
Local $begin=timerinit()        
         
                 While iterateactoratribs($guid, $Atrib_chest_open) <> 1 and _playerdead()= false
                                         
                          If getdistance(_MemoryRead($offset + 0xB0, $d3, 'float'), _MemoryRead($offset + 0xB4, $d3, 'float'), _MemoryRead($offset + 0xB8, $d3, 'float')) >= 5 Then
                                   
                                    If timerdiff($begin)>4000 Then
                                    checkforpotion()
                                    checkforspell()
                                    Return false 
                                    Exitloop                                            
                                    Endif
                                                
                                  $Coords = FromD3toScreenCoords(_MemoryRead($offset + 0xB0, $d3, 'float'), _MemoryRead($offset + 0xB4, $d3, 'float'), _MemoryRead($offset + 0xB8, $d3, 'float'))
                                  MouseMove($Coords[0], $Coords[1], 3)
                           
                         Endif

                  Interact(_MemoryRead($offset + 0xB0, $d3, 'float'), _MemoryRead($offset + 0xB4, $d3, 'float'), _MemoryRead($offset + 0xB8, $d3, 'float'))             
                                  
               Wend                     
                                                      
Endfunc   ;coffs





Et dans toolkit.au3 vous recherchez attack() et vous remplacez :

If $item[0] <> "" And $item[0] <> 0xFFFFFFFF And $item[9] < 120 And StringInStr($IgnoreList, $item[8]) == 0 And StringInStr($IgnoreItemList, $item[1]) = 0 Then


par :

$mypos = getcurrentpos()

If $item[0] <> "" and $item[0] <> 0xFFFFFFFF And $item[9] < 120 and abs($item[4]-$mypos[2])<=10 and StringInStr($IgnoreList, $item[8]) = 0 and checkfromlist($banlist, $item[8]) = 0 And StringInStr($IgnoreList, $item[8]) == 0 Then


Vous rajoutez juste après :

If stringinstr($item[1],'chest') or stringinstr($item[1],'container') or stringinstr($item[1],'rack') and stringinstr($item[1],'chestarmor')=false  and stringinstr($item[1],'bloodcontainer')=false and IterateActorAtribs($item[0], $Atrib_chest_open) <> 1 Then
                                   
                                   If coffs($item[1], $item[8], $item[0])=false Then
                                          _log('chest is banlisted')
                                          $banlist = $banlist &"|"& $item[8]
                                   Endif
                            EndIf

Retours bienvenus.

Modifié par plpp, 29 October 2012 - 03:46.


#2 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 26 October 2012 - 10:08

J'avais oublié de dire de rajouter
$mypos = getcurrentpos()
dans attack. C'est chose faite.

#3 Chr1s

Chr1s

    Fragger

  • Membres
  • 756 messages

Posté 26 October 2012 - 10:37

Salut,
merci pour cette contribution :), je ne suis pas sûr de savoir quoi copier et ou, je tenterai quand même au risque de tout planter, sauvegarde requise au cas ou.

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 !!!


#4 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 26 October 2012 - 10:45

Salut,
merci pour cette contribution :), je ne suis pas sûr de savoir quoi copier et ou, je tenterai quand même au risque de tout planter, sauvegarde requise au cas ou.

N'hésites pas à me dire ce qui n'est pas clair dans la manière de coller le code, je sais que ce n'est pas évident de s'y retrouver.

#5 Chr1s

Chr1s

    Fragger

  • Membres
  • 756 messages

Posté 26 October 2012 - 11:20

Merci pour ton aide, pour le moment je vais tester tes contribs pour le rajout de la sequence fort de pierre et pour ramasser les items 63, j'ai tout modifié et là je vais copier et tester, à suivre ;).

Je ferai éventuellement les modifs pour les shrines et coffres plus tard.

Des fois que ça te soit utile j'avais récupéré cette liste pour les coffres :

Lore_AzmodanChest1|Lore_AzmodanChest2|Lore_AzmodanChest3|a1dun_Cath_chest|a1dun_Cath_chest_Rare|a1dun_Cath_chest_Rare_Orbs|a2dun_Swr_Chest|a2dun_Swr_Chest_Rare|a3dun_Crater_ST_Chest|
a3dun_Crater_ST_Chest_Rare|a3dun_crater_st_Demon_BloodContainer_A|a3dun_Keep_Chest_A|a3dun_Keep_Chest_Lift|a3dun_Keep_Chest_Rare|A3_Battlefield_Chest_Frosty|A3_Battlefield_Chest_Rare_Frosty|
A3_Battlefield_Chest_Rare_Snowy|A3_Battlefield_Chest_Snowy|


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 !!!


#6 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 28 October 2012 - 14:37

Modif : comme pour les shrines, j'ai déplacé le return false pour le mettre dans le test de timing. (premier post modifié comme d'hab).

#7 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 28 October 2012 - 18:05

Modification mineure de la façon d'ajouter et checker la banlist avec ajout d'un délimiteur.

#8 Crush33

Crush33

    Hard Gamer

  • Membres
  • 314 messages

Posté 28 October 2012 - 22:07

Attention il y a une coquille dans ton code :

If stringinstr($item[1],'chest') or if stringinstr($item[1],'container')...

Ce if est en trop.

Attention aussi aux majuscules, ça ne pète pas lors de l'execution du bot mais c'est juste histoire que ça reste en rigueur avec le code existant :

stringinstr || stringInStr

EDIT : je m'aperçois d'un truc, il détecte les coffres à perpette, avant même qu'il ne soit visible sur l'écran. Y'a moyen de réduire son range de détection ? Je bot sur une séquence Act 2 et il voit les coffres par delà les gros fossés, ce qui est assez gênant :s

En tout cas merci !!! Good Job !

#9 Garg

Garg

    Newbie lvl 3

  • Membres
  • 10 messages

Posté 28 October 2012 - 22:26

Oubliez ca pas bon comme post.....

Modifié par Garg, 28 October 2012 - 22:40.


#10 Lokiro

Lokiro

    Fragger

  • Bannis
  • 911 messages
  • Location :Quebec
  • Hobbies :GMS Hacks/Bots

Posté 28 October 2012 - 22:56

Attention il y a une coquille dans ton code :

If stringinstr($item[1],'chest') or if stringinstr($item[1],'container')...

Ce if est en trop.

Attention aussi aux majuscules, ça ne pète pas lors de l'execution du bot mais c'est juste histoire que ça reste en rigueur avec le code existant :

stringinstr || stringInStr

EDIT : je m'aperçois d'un truc, il détecte les coffres à perpette, avant même qu'il ne soit visible sur l'écran. Y'a moyen de réduire son range de détection ? Je bot sur une séquence Act 2 et il voit les coffres par delà les gros fossés, ce qui est assez gênant :s

En tout cas merci !!! Good Job !


If getdistance(_MemoryRead($offset + 0xB0, $d3, 'float'), _MemoryRead($offset + 0xB4, $d3, 'float'), _MemoryRead($offset + 0xB8, $d3, 'float')) >= 5 Then
Reduit le 5 a 2-3 sa devrait etre mieux


☻ℓιкε α ßõ§§ ☺

Image IPB

Mes Fonctions

[Fonction] Désactiver L'identification D'items

Ma Chaine Youtube

http://www.youtube.com/user/JokersQc


#11 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 29 October 2012 - 03:56

@crush33 : merci c'est modifié. Pour la distance de détection c'est la même que les mobs.
Tu peux rajouter :

If getdistance(_MemoryRead($offset + 0xB0, $d3, 'float'), _MemoryRead($offset + 0xB4, $d3, 'float'), _MemoryRead($offset + 0xB8, $d3, 'float')) <= 55 Then
avant If coffs(... etc.
J'ai mis 55 mais tu peux ajuster.

@lokiro67 : 5 normalement c'est bon, si je mets trop pres ça peut créer des problèmes et le bot va trop chercher à se coller au coffre. De toute façon à 5 il interagit et se rapproche à la distance suffisante s'il le faut. Après libre à chacun d'ajuster la distance.

#12 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 29 October 2012 - 08:57

Merci pour cette fonction également, en cours de tests chez moi (avec les bénédictions également) et ça à l'air pas mal du tout !
C'est possible par contre d'attaquer en priorité et ensuite d'ouvrir les coffres ? Car la il fait souvent des allers-retours car il snob un paquet de mob pour un coffre (ou shrine) et ensuite revient.
peut-etre qu'il me suffit juste d'ajuster un range.

merci beaucoup en tout cas !

edit : où faut-il mettre un sleep pour qu'il fasse une légère pause après avoir ouvert un coffre ? n'ayant pas un rayon de pickup énorme il ouvre le coffre, part, voit l'or et fait demi-tour, c'est un peu dommage.

#13 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 29 October 2012 - 09:27

Merci pour cette fonction également, en cours de tests chez moi (avec les bénédictions également) et ça à l'air pas mal du tout !
C'est possible par contre d'attaquer en priorité et ensuite d'ouvrir les coffres ? Car la il fait souvent des allers-retours car il snob un paquet de mob pour un coffre (ou shrine) et ensuite revient.
peut-etre qu'il me suffit juste d'ajuster un range.

merci beaucoup en tout cas !

edit : où faut-il mettre un sleep pour qu'il fasse une légère pause après avoir ouvert un coffre ? n'ayant pas un rayon de pickup énorme il ouvre le coffre, part, voit l'or et fait demi-tour, c'est un peu dommage.

Tu peux essayer de mettre sleep après :

Interact(_MemoryRead($offset + 0xB0, $d3, 'float'), _MemoryRead($offset + 0xB4, $d3, 'float'), _MemoryRead($offset + 0xB8, $d3, 'float'))             
                                  
               Wend

Pour ce qui est de la prorité, essaie de mettre plutôt :

ElseIf stringinstr($item[1],'chest') or stringinstr($item[1],'container') or stringinstr($item[1],'rack') and stringinstr($item[1],'chestarmor')=false  and stringinstr($item[1],'bloodcontainer')=false and IterateActorAtribs($item[0], $Atrib_chest_open) <> 1 Then
                                   
                                   If coffs($item[1], $item[8], $item[0])=false Then
                                          _log('chest is banlisted')
                                          $banlist = $banlist &"|"& $item[8]
                                   Endif

avant :

ElseIf $item[5] = 2 And $item[6] = -1 Then ;1,04

dans attack() dans toolkit.au3.

Du coup bien sur tu supprimes celui qui est mis plus haut.

#14 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 29 October 2012 - 10:23

Pour le sleep nickel.

Pour la priorité j'ai testé la modification. S'il lui arrive encore en plein combat d'aller prendre un coffre, globalement c'est bien mieux !
Je continue de regarder et te tiens au courant. (au passage le dernier EndIf est de trop).

Merci beaucoup :)

#15 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 29 October 2012 - 13:27

Oui du coup merci pour le endif je l'enlève.

#16 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 29 October 2012 - 18:16

y'a moyen de filtrer pour qu'il ne prenne pas les rateliers d'arme (y'en a quelques uns sur les champs du malheur, vides en général) ?

#17 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 29 October 2012 - 18:43

y'a moyen de filtrer pour qu'il ne prenne pas les rateliers d'arme (y'en a quelques uns sur les champs du malheur, vides en général) ?

Oui enlève le morceau où il y a écrit 'rack' (le morceau entier pas seulement le mot rack je précise toujours) sans oublier de ne pas avoir 2 "or" à côté, si tu vois ce que je veux dire.

#18 keitofu

keitofu

    Gamer lvl 2

  • Membres
  • 163 messages

Posté 29 October 2012 - 18:55

Parfait :)

#19 asufeld_ins

asufeld_ins

    Hard Gamer

  • Membres
  • 293 messages
  • Location :Belgium
  • Hobbies :Reconstitution historique ( antiquité ). Forge.

Posté 01 November 2012 - 15:07

re plpp

Pour les coffre , vu que j'ai déjà une partie de tes script pour le shrine.
Si je comprend bien , il ne me reste plus qu'a ajouter:
Spoiler


Dans mon toolkit ? vu que le reste à déà été fait pour les shrine !!

#20 plpp

plpp

    Fragger débutant

  • Membres
  • 524 messages

Posté 01 November 2012 - 15:46

Je vais pas te répondre de bêtise. Je risque d'oublier un truc ou deux. Si tu go this way je vais pas assurer le SAV :D.