Mise a jour:(ce post est tenue régulièrement a jour) 28 septembre 2013 mise en place de la version 2.0 4 novembre 2013 ajout de 3 statistiques 23 décembre 2013 correction d'un bug quand on configurais les 2 a false 23 décembre 2013 ajout d'un bot avec modification fait
Fonction Unid + Id 2.0 comparatif avec ancien version: -avant on allais au livre avant de faire unid plus maintenant (comportement plus humain) -ajout de ''switch'' true ou false dans setting (pour plus obtion Unid + Id ou Unid ou Id) -correction de bug:contais 2 fois repair dans les stast et corection pour pas bloqué dans act 1 quand on fait que de Unid(dans la porte avant vendeur)
Ce quel fait: Plusieurs mode avec la mise a jour car l'ajout dans le setting.ini de Identified et avec anciens Unidentifier fait en sorte qu'on peut combiner Ex: Unid + Id ou Unid ou Id. Quand on fait Unid + Id la grablist nais pas griller et le tout fait avec le livre de cain.
Tout d'abord je vous suggère de vous faire une copie de votre BOT sur votre bureau au cas ou vous n'aimeriez pas cette fonction, ces plus simple de le remplacer que remettre les bonne ligne.
#Pour ceux qui aurait l`anciens version je mettrais un OU et un texte en rouge dans les modification a faire. Donc pour ceux qu'il ne l'on pas, faire le texte en Noire
1.Dans toolkit.au3 ajouter ces 2 fonctions a la fin.: OU remplacer FilterBackpack2() et Take_BookOfCain2() par:
Spoiler
Func Zero_Point();function qui a pour bu de le placer au point voulu tester et functionnel
If _checkInventoryopen() = true Then
Send("i")
Sleep(150)
Endif
Switch $Act
Case 1
MoveToPos(2955.8681640625, 2803.51489257813, 24.0453319549561,0,20)
Case 2
;do nothing act 2
Case 3 To 4
;do nothing act 3 and 4
EndSwitch
sleep(50)
EndFunc
Func FilterBackpack2()
$Uni_manuel = false
Local $__ACDACTOR = triBackPack(IterateBackpack(0))
Local $iMax = UBound($__ACDACTOR)
If $iMax > 0 Then
Local $return[$iMax][4]
Send("{SPACE}") ; make sure we close everything
Send("i") ; open the inventory
Sleep(100)
CheckWindowD3Size()
_checkbackpacksize()
Zero_Point()
If $Unidentified="false" and $Identified="false" Then
Take_BookOfCain()
Sleep(Random(100, 200))
Send("{SPACE}")
Sleep(Random(100, 200))
Endif
For $i = 0 To $iMax - 1 ;c'est ici que l'on parcour (tours a tours) l'ensemble des items contenut dans notres bag
$ACD = GetACDOffsetByACDGUID($__ACDACTOR[$i][0])
$CurrentIdAttrib = _memoryread($ACD + 0x120, $d3, "ptr")
$quality = GetAttribute($CurrentIdAttrib, $Atrib_Item_Quality_Level) ;on definit la quality de l'item traiter ici
$itemDestination = CheckItem($__ACDACTOR[$i][0], $__ACDACTOR[$i][1], 1) ;on recupere ici ce que l'on doit faire de l'objet (stash/inventaire/trash)
#cs If $Uni_manuel = true Then
If $quality >= 6 And _MemoryRead($__ACDACTOR[$i][7] + 0x164, $d3, 'int') > 0 And ($itemDestination <> "Stash" Or trim(StringLower($Unidentified)) = "false") Then
;Ici on verifie que la qualité est bien superieur a 6 et que l'item as besoin d'etre identifier, si l'item doit aller dans le stash ou si on definit Unidentified a false
;Il faudra modifier/ajouter quelque chose ici pour gerer les uni sur les oranges et modifier le nom de la variable Unidentified !
; InventoryMove($__ACDACTOR[$i][3], $__ACDACTOR[$i][4]) ;met la souris sur l'item
; If IterateActorAtribs($__ACDACTOR[$i][0], $Atrib_Item_Quality_Level) > 8 Then ;verifie la quality de l'item pour connaitre le temps necessaire a l'identification de ce dernier
; Sleep(Random(250, 400))
; MouseClick("Right")
; Sleep(Random(4000, 4500))
; Else
; Sleep(Random(250, 400))
; MouseClick("Right")
; Sleep(Random(1000, 1500))
; EndIf
; EndIf
#ce EndIf
$return[$i][0] = $__ACDACTOR[$i][3] ;definit la collone de l'item
$return[$i][1] = $__ACDACTOR[$i][4] ;definit la ligne de l'item
$return[$i][3] = $quality
If $Unidentified="false" and $Identified="false" Then ;ajouter pour ne rien filtrer
If $itemDestination = "Stash_Filtre" Then ;on traite la qualité
If ($quality<9) Then;si la qualité est plus petite que 9 on jette
$return[$i][2] = "Trash"
_log('invalide', 1)
_log(' - ', 1)
EndIf
Else
$return[$i][2] = $itemDestination ;row
EndIf
Endif
If $Unidentified="true" then
If $itemDestination = "Stash_Filtre" Then ;Si c'est un item à filtrer
If checkFiltreFromtable($GrabListTab, $__ACDACTOR[$i][1], $CurrentIdAttrib) Then ;on lance le filtre sur l'item
_log('valide', 1)
_log(' - ', 1)
$return[$i][2] = "Stash"
Else
$return[$i][2] = "Trash"
_log('invalide', 1)
_log(' - ', 1)
EndIf
Else
$return[$i][2] = $itemDestination ;row
EndIf
Endif
Next
Send("{SPACE}") ; make sure we close everything
Return $return
EndIf
Return False
EndFunc ;==>FilterBackpack2
2.Toujours dans toolkit.au3 remplacer la fonction '' FilterBackpack() '' par: OU dans toolkit.au3 remplacer la fonction '' FilterBackpack() '' par:
Spoiler
Func FilterBackpack()
$Uni_manuel = false
Local $__ACDACTOR = triBackPack(IterateBackpack(0))
Local $iMax = UBound($__ACDACTOR)
If $iMax > 0 Then
Local $return[$iMax][4]
Send("{SPACE}") ; make sure we close everything
Send("i") ; open the inventory
Sleep(100)
CheckWindowD3Size()
_checkbackpacksize()
; if trim(StringLower($Unidentified)) = "false" Then
Take_BookOfCain()
; Else
; $Uni_manuel = true
; EndIF
For $i = 0 To $iMax - 1 ;c'est ici que l'on parcour (tours a tours) l'ensemble des items contenut dans notres bag
$ACD = GetACDOffsetByACDGUID($__ACDACTOR[$i][0])
$CurrentIdAttrib = _memoryread($ACD + 0x120, $d3, "ptr")
$quality = GetAttribute($CurrentIdAttrib, $Atrib_Item_Quality_Level) ;on definit la quality de l'item traiter ici
$itemDestination = CheckItem($__ACDACTOR[$i][0], $__ACDACTOR[$i][1], 1) ;on recupere ici ce que l'on doit faire de l'objet (stash/inventaire/trash)
#cs If $Uni_manuel = true Then
If $quality >= 6 And _MemoryRead($__ACDACTOR[$i][7] + 0x164, $d3, 'int') > 0 And ($itemDestination <> "Stash" Or trim(StringLower($Unidentified)) = "false") Then
;Ici on verifie que la qualité est bien superieur a 6 et que l'item as besoin d'etre identifier, si l'item doit aller dans le stash ou si on definit Unidentified a false
;Il faudra modifier/ajouter quelque chose ici pour gerer les uni sur les oranges et modifier le nom de la variable Unidentified !
; InventoryMove($__ACDACTOR[$i][3], $__ACDACTOR[$i][4]) ;met la souris sur l'item
; If IterateActorAtribs($__ACDACTOR[$i][0], $Atrib_Item_Quality_Level) > 8 Then ;verifie la quality de l'item pour connaitre le temps necessaire a l'identification de ce dernier
; Sleep(Random(250, 400))
; MouseClick("Right")
; Sleep(Random(4000, 4500))
; Else
; Sleep(Random(250, 400))
; MouseClick("Right")
; Sleep(Random(1000, 1500))
; EndIf
EndIf
#ce EndIf
$return[$i][0] = $__ACDACTOR[$i][3] ;definit la collone de l'item
$return[$i][1] = $__ACDACTOR[$i][4] ;definit la ligne de l'item
$return[$i][3] = $quality
If $itemDestination = "Stash_Filtre" Then ;Si c'est un item à filtrer
If checkFiltreFromtable($GrabListTab, $__ACDACTOR[$i][1], $CurrentIdAttrib) Then ;on lance le filtre sur l'item
_log('valide', 1)
_log(' - ', 1)
$return[$i][2] = "Stash"
Else
$return[$i][2] = "Trash"
_log('invalide', 1)
_log(' - ', 1)
EndIf
Else
$return[$i][2] = $itemDestination ;row
EndIf
Next
Send("{SPACE}") ; make sure we close everything
Return $return
EndIf
Return False
EndFunc ;==>FilterBackpack
3.Toujours dans toolkit.au3 la fonction '' Func StashAndRepair() '' cette parti ici: OU dans toolkit.au3 la fonction '' Func StashAndRepair() '' jusqu`a Repair():
Spoiler
_log("Func StashAndRepair")
$RepairORsell += 1
$item_to_stash = 0
While _checkInventoryopen() = False
Send("i")
Sleep(Random(200, 300))
WEnd
While Not offsetlist()
Sleep(10)
WEnd
Sleep(Random(500, 1000))
_log('Filter Backpack')
$items = FilterBackpack()
$ToStash = _ArrayFindAll($items, "Stash", 0, 0, 0, 1, 2)
If $ToStash <> -1 Then
Send("{SPACE}")
Sleep(500)
InteractByActorName('Player_Shared_Stash')
Sleep(700)
Local $stashtry = 0
While _checkStashopen() = False
If $stashtry <= 4 Then
_log('Fail to open Stash')
$stashtry += 1
InteractByActorName("Player_Shared_Stash")
Sleep(Random(100, 200))
Else
Send("{PRINTSCREEN}")
Sleep(200)
Log('Failed to open Stash after 4 try')
WinSetOnTop("Diablo III", "", 0)
MsgBox(0, "Impossible d'ouvrir le stash :", "SVP, veuillez reporter ce problème sur le forum. Erreur : s001 ")
Terminate()
EndIf
WEnd
$tabfull = 0
CheckWindowD3Size()
For $i = 0 To UBound($ToStash) - 1
_log($items[$ToStash[$i]][0] & " stash : " & $items[$ToStash[$i]][1])
Sleep(Random(100, 200))
InventoryMove($items[$ToStash[$i]][0], $items[$ToStash[$i]][1])
Sleep(Random(100, 500))
If $items[$ToStash[$i]][3] >= 6 Then
#cs $item_name = fastCheckuiValue("Root.TopLayer.item 2.stack.top_wrapper.stack.name", 1, 354)
$item_stats = fastCheckuiValue("Root.TopLayer.item 2.stack.frame body.stack.stats", 1, 827)
$item_to_stash += 1
;_log("name file -> " & $ftpfilename)
Xml_To_Str(xml_to_item($item_name, $item_stats), $ftpfilename)
#ce
EndIf
MouseClick('Right')
Sleep(Random(50, 200))
If Detect_UI_error(1) Then
_log('Tab is full : Switching tab')
CheckWindowD3Size()
$i = $i - 1
If $tabfull = 0 Then
MouseClick('left', 286, 194, 5)
$tabfull = 1
ElseIf $tabfull = 1 Then
MouseClick('left', 282, 266, 5)
$tabfull = 2
ElseIf $tabfull = 2 Then
_log('Stash is full : Botting stopped')
Terminate()
EndIf
Sleep(5000)
Else
$ItemToStash = $ItemToStash + 1
EndIf
Next
;If $item_to_stash > 0 Then
;Ftp_Upload_To_Xml($ftpfilename)
;EndIf
Sleep(Random(50, 100))
Send("{SPACE}")
Sleep(Random(100, 150))
;****************************************************************
If NOT Verif_Attrib_GlobalStuff() Then
_log("CHANGEMENT DE STUFF ON TOURNE EN ROND (Stash and Repair - Stash)!!!!!")
antiidle()
EndIf
;****************************************************************
EndIf
Sleep(Random(100, 200))
Send("{SPACE}")
Sleep(Random(100, 200))
Sleep(Random(500, 1000))
If $unidentified = true Then
Take_BookOfCain()
Endif
Remplacer par:
Spoiler
_log("Func StashAndRepair")
$RepairORsell += 1
$item_to_stash = 0
If trim(StringLower($Unidentified))="true" or (trim(StringLower($Unidentified)="false") and trim(StringLower($Identified))="false") Then
_log("Unidentified")
While _checkInventoryopen() = False
Send("i")
Sleep(Random(200, 300))
WEnd
While Not offsetlist()
Sleep(10)
WEnd
Sleep(Random(500, 1000))
_log('Filter Backpack2')
$items = FilterBackpack2()
$ToStash = _ArrayFindAll($items, "Stash", 0, 0, 0, 1, 2)
If $ToStash <> -1 Then
Send("{SPACE}")
Sleep(500)
InteractByActorName('Player_Shared_Stash')
Sleep(700)
Local $stashtry = 0
While _checkStashopen() = False
If $stashtry <= 4 Then
_log('Fail to open Stash')
$stashtry += 1
InteractByActorName("Player_Shared_Stash")
Sleep(Random(100, 200))
Else
Send("{PRINTSCREEN}")
Sleep(200)
Log('Failed to open Stash after 4 try')
WinSetOnTop("Diablo III", "", 0)
MsgBox(0, "Impossible d'ouvrir le stash :", "SVP, veuillez reporter ce problème sur le forum. Erreur : s001 ")
Terminate()
EndIf
WEnd
$tabfull = 0
CheckWindowD3Size()
For $i = 0 To UBound($ToStash) - 1
_log($items[$ToStash[$i]][0] & " stash : " & $items[$ToStash[$i]][1])
Sleep(Random(100, 200))
InventoryMove($items[$ToStash[$i]][0], $items[$ToStash[$i]][1])
Sleep(Random(100, 500))
If $items[$ToStash[$i]][3] >= 6 Then
#cs $item_name = fastCheckuiValue("Root.TopLayer.item 2.stack.top_wrapper.stack.name", 1, 354)
$item_stats = fastCheckuiValue("Root.TopLayer.item 2.stack.frame body.stack.stats", 1, 827)
$item_to_stash += 1
;_log("name file -> " & $ftpfilename)
Xml_To_Str(xml_to_item($item_name, $item_stats), $ftpfilename)
#ce
EndIf
MouseClick('Right')
Sleep(Random(50, 200))
If Detect_UI_error(1) Then
_log('Tab is full : Switching tab')
CheckWindowD3Size()
$i = $i - 1
If $tabfull = 0 Then
MouseClick('left', 286, 194, 5)
$tabfull = 1
ElseIf $tabfull = 1 Then
MouseClick('left', 282, 266, 5)
$tabfull = 2
ElseIf $tabfull = 2 Then
_log('Stash is full : Botting stopped')
Terminate()
EndIf
Sleep(5000)
Else
$ItemToStash = $ItemToStash + 1
EndIf
Next
;If $item_to_stash > 0 Then
;Ftp_Upload_To_Xml($ftpfilename)
;EndIf
Sleep(Random(50, 100))
Send("{SPACE}")
Sleep(Random(100, 150))
;****************************************************************
If NOT Verif_Attrib_GlobalStuff() Then
_log("CHANGEMENT DE STUFF ON TOURNE EN ROND (Stash and Repair - Stash)!!!!!")
antiidle()
EndIf
;****************************************************************
EndIf
Endif
If trim(StringLower($Identified)) = "true" Then
_log("Identified")
While _checkInventoryopen() = False
Send("i")
Sleep(Random(200, 300))
WEnd
While Not offsetlist()
Sleep(10)
WEnd
Sleep(Random(500, 1000))
_log('Filter Backpack')
$items = FilterBackpack()
$ToStash = _ArrayFindAll($items, "Stash", 0, 0, 0, 1, 2)
If $ToStash <> -1 Then
Send("{SPACE}")
Sleep(500)
InteractByActorName('Player_Shared_Stash')
Sleep(700)
Local $stashtry = 0
While _checkStashopen() = False
If $stashtry <= 4 Then
_log('Fail to open Stash')
$stashtry += 1
InteractByActorName("Player_Shared_Stash")
Sleep(Random(100, 200))
Else
Send("{PRINTSCREEN}")
Sleep(200)
Log('Failed to open Stash after 4 try')
WinSetOnTop("Diablo III", "", 0)
MsgBox(0, "Impossible d'ouvrir le stash :", "SVP, veuillez reporter ce problème sur le forum. Erreur : s001 ")
Terminate()
EndIf
WEnd
$tabfull = 0
CheckWindowD3Size()
For $i = 0 To UBound($ToStash) - 1
_log($items[$ToStash[$i]][0] & " stash : " & $items[$ToStash[$i]][1])
Sleep(Random(100, 200))
InventoryMove($items[$ToStash[$i]][0], $items[$ToStash[$i]][1])
Sleep(Random(100, 500))
If $items[$ToStash[$i]][3] >= 6 Then
#cs $item_name = fastCheckuiValue("Root.TopLayer.item 2.stack.top_wrapper.stack.name", 1, 354)
$item_stats = fastCheckuiValue("Root.TopLayer.item 2.stack.frame body.stack.stats", 1, 827)
$item_to_stash += 1
;_log("name file -> " & $ftpfilename)
Xml_To_Str(xml_to_item($item_name, $item_stats), $ftpfilename)
#ce
EndIf
MouseClick('Right')
Sleep(Random(50, 200))
If Detect_UI_error(1) Then
_log('Tab is full : Switching tab')
CheckWindowD3Size()
$i = $i - 1
If $tabfull = 0 Then
MouseClick('left', 286, 194, 5)
$tabfull = 1
ElseIf $tabfull = 1 Then
MouseClick('left', 282, 266, 5)
$tabfull = 2
ElseIf $tabfull = 2 Then
_log('Stash is full : Botting stopped')
Terminate()
EndIf
Sleep(5000)
Else
$ItemToStash = $ItemToStash + 1
EndIf
Next
;If $item_to_stash > 0 Then
;Ftp_Upload_To_Xml($ftpfilename)
;EndIf
Sleep(Random(50, 100))
Send("{SPACE}")
Sleep(Random(100, 150))
;****************************************************************
If NOT Verif_Attrib_GlobalStuff() Then
_log("CHANGEMENT DE STUFF ON TOURNE EN ROND (Stash and Repair - Stash)!!!!!")
antiidle()
EndIf
;****************************************************************
EndIf
EndIF
Sleep(Random(100, 200))
Send("{SPACE}")
Sleep(Random(100, 200))
Sleep(Random(500, 1000))
if (trim(StringLower($Unidentified)) = "true" and trim(StringLower($Identified)) = "false") Then
Take_BookOfCain()
Sleep(Random(100, 200))
Send("{SPACE}")
Sleep(Random(100, 200))
Endif
4.Dans Lib/settings.au3 ajouter la Global: OU même chose:
Global $Identified = "true"
Toujours dans Lib/settings.au3, chercher Func writeConfigs et ajouter ceci: OU même chose:
5.Dans settings.ini ajouter juste en dessous de Unidentified=: Ou même chose:
Identified=true
Si vous vous server Main.exe pour lancer votre bot il faut recompiler le script.
Comment ca marche:
Unidentified=false et Identified=true===>on ne fait que filtré les objet identifier comme le bot originel (ID) Unidentified=true et Identified=false===>on ne fait que filtré des objet non identifier comme le bot originel (UNID) Unidentified=true et Identified=true===>on filtre les l'objets non identifier et les l'objets identifier (UNID + ID) Unidentified=false et Identified=false===> rien du tout aucun filtre est appliquer donc tout va au vendeur (en faite si, Mais je filtre que la qualité de l'objet)
(Cette partit ici est importent) pour les rare que vous ne voulez pas identifier ex: amulette et ring il faut mettre dans votre Grablist L'attribut (lvlreq:0) car elle passe même si l'item nais pas identifier.
Exemple: de Grablist ou je garderais amulette et ring unid:
Spoiler
weapon1h=Axe_|Dagger_|Mace_|spear_|Sword_|Wand_
fclass75=(Dex:75 or Str:75 or Int:75) fclass100=(Dex:100 or Str:100 or Int:100) fclass130=(Dex:130 or Str:130 or Int:130) fclass150=(Dex:150 or Str:150 or Int:150) fclass170=(Dex:170 or Str:170 or Int:170) fclass180=(Dex:180 or Str:180 or Int:180) fres=Allres:40 fdpsx=(AtkSpeedBonus:3 and CritChance:3 and CritDamage:20) fdps5=((AtkSpeedBonus:5 and CritChance:5) or (AtkSpeedBonus:5 and CritDamage:30) or (CritChance:5 and CritDamage:30)) fdps3=((AtkSpeedBonus:3 and CritChance:3) or (AtkSpeedBonus:3 and CritDamage:20) or (CritChance:3 and CritDamage:20)) flife2=(Vita:20 or LifePercent:3) flife5=(Vita:50 or LifePercent:3) flife8=(Vita:80 or LifePercent:3) flife10=(Vita:100 or LifePercent:3) flife12=(Vita:120 or LifePercent:3) fgold=(gf:10 or mf:10) frad=Radius:5 fdam=AverageDamage:20 fdam30=AverageDamage:30 fdamSP=(CritDamage:20 or AtkSpeedBonusWeapon:3) fll=(loh:200 or leach:2) unid=(lvlreq:0)
Bracers_[ilvl:60][q:6]((fclass180 and CritChance:4.5 and (Vita:20 or fres)) or (fclass170 and CritChance:5 and (Vita:20 or fres)) or (fclass75 and CritChance:4 and Vita:70 and fres and (frad or ArmrBonus:100)) or (fclass100 and CritChance:5 and Vita:70 and fres) or (fclass130 and CritChance:4.5 and fres and (Vita:20 or ArmrBonus:100))) Gloves_[ilvl:60][q:6]((fclass100 and fdps5 and flife8) or (fclass100 and fdps5 and (frad or ArmrBonus:100)) or (fclass150 and fdps5) or (fclass100 and fres and fdps5) or (fclass100 and fdpsx)) weapon1h[ilvl:60][q:6](dps:1200 or (dps:900 and Sockets:1 and fll and fdamSP) or (dps:900 and fclass100 and Sockets:1 and (fll or AtkSpeedBonusWeapon:5 or CritDamage:30))) Ring_[ilvl:60][q:6](unid) Amulet_[ilvl:60][q:6](unid)
Bonus statistique compteur de Leg,Rare et Rare Unid
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Objets Stockés Dans le Coffre : 38 Nombre de Legs au Coffre : 8 Nombre de Rare ID au Coffre : 1 Nombre de Rare UNID au Coffre : 18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1 Dans main.au3 ajouter la déclaration de les variables $nbLegs,$nbRaresUnid et $nbRares : Pour s’eut qui on déjà la stat légendaire ne rajouter pas nbLegs.
Spoiler
Global $nbRares = 0
Global $nbLegs= 0
Global $nbRaresUnid = 0
2.1 Dans toolkit.au3 chercher la fonction FilterBackpack cette parti ci :
Spoiler
$quality = GetAttribute($CurrentIdAttrib, $Atrib_Item_Quality_Level) ;on definit la quality de l'item traiter ici
Ajouter juste en dessous les lignes suivantes :
Spoiler
if ($quality=9) Then
$nbLegs+=1
Elseif ($quality=6) Then
$nbRares+=0
EndIf
toujours dans la fonction FilterBackpack cette parti ci :
Spoiler
If $itemDestination = "Stash_Filtre" Then ;Si c'est un item à filtrer
If checkFiltreFromtable($GrabListTab, $__ACDACTOR[$i][1], $CurrentIdAttrib) Then ;on lance le filtre sur l'item
_log('valide', 1)
_log(' - ', 1)
$return[$i][2] = "Stash"
Ajouter juste en dessous de $return[$i][2] = "Stash" :
Spoiler
$nbRares+=1
3.1 Dans toolkit.au3 chercher la fonction FilterBackpack2 cette parti ci :
Spoiler
$quality = GetAttribute($CurrentIdAttrib, $Atrib_Item_Quality_Level) ;on definit la quality de l'item traiter ici
Ajouter juste en dessous les lignes suivantes :
Spoiler
if ($quality=9) Then
$nbLegs+=1
Elseif ($quality=6) Then
$nbRaresUnid+=0
EndIf
toujours dans la fonction FilterBackpack2 cette parti ci :
Spoiler
If $itemDestination = "Stash_Filtre" Then ;Si c'est un item à filtrer
If checkFiltreFromtable($GrabListTab, $__ACDACTOR[$i][1], $CurrentIdAttrib) Then ;on lance le filtre sur l'item
_log('valide', 1)
_log(' - ', 1)
$return[$i][2] = "Stash"
Ajouter juste en dessous de $return[$i][2] = "Stash" :
Spoiler
$nbRaresUnid+=1
4.1 toujours dans toolkit.au3 chercher la fonction StatsDisplay() cette parti ici :
Spoiler
$DebugMessage = $DebugMessage & "Nombre d'objet stocké dans le Coffre : " & $ItemToStash & @CRLF
Ajouter juste en dessous les lignes suivantes :
Spoiler
$DebugMessage = $DebugMessage & "Nombre de Legs au Coffre : " & $nbLegs & @CRLF
$DebugMessage = $DebugMessage & "Nombre de Rare au Coffre : " & $nbRares & @CRLF
$DebugMessage = $DebugMessage & "Nombre de Rare Unid au Coffre : " & $nbRaresUnid & @CRLF
Astuce pour ne pas bloquer au coffre Act 1
Dans Func Take_BookOfCain() ajouter ceci: (Marche a 100% je ne bloque plus a l'Act 1)
Switch $Act
Case 1
InteractByActorName("Waypoint_Town") ;<<<<<<<<<<<<<<<<<<<<<<<====== ICI
MoveToPos(2955.8681640625, 2803.51489257813, 24.0453319549561,0,20)
Case 2
;do nothing act 2
Case 3 To 4
MoveToPos(395.930847167969, 390.577362060547, 0.408410131931305,0,20)
EndSwitch
TÉLÉCHARGEMENT J'ai pris le BOT #2 de mon post de séquence ICI et fait les modification statistique et Unid + ID.
Voila bon bot
PS: j`aimerais avoir des commentaire sur la fonction , pour ma part fait déjà un bon bout quel est sur mon bot.
Merci pour cette modification de la fonction.
Si j'ai bien compris ça permet de tout ramasser, identifier et filtrer tout en pouvant faire de l'unid d'anneau et damulette rares, c'est bien ça ?
Oui et les Légendaire son j'aimais identifier.Mais on peut aussi choisir aussi unid ce que l'on veut il faut juste mettre(lvlreq:0)
comme attribut dans la grablist a l'objets qu'on ne veut pas identifier.
bonsoir jai eu un message d'erreur concernant $nbLegs+=1, je pense que sa doit etre comme ça $nbLegs += 1. Mais je ne sais pas si j'ai raison. si tu pouvais me répondre merci.
Salut plagya, concernant le message d'erreur $nbLegs+=1,ces totalement de ma faute. Ces du a une statistique que j'avais rajouter. Bref j'ai corriger l'erreur dans mon premier post et tester sur un bot clean et tout est OK. Je crois que si sa na pas affecter RqideN et LokiQc ces qu'il avais déjà cette statistique.
Tu as 2 option soit tu recommence les modification (car ces corriger) Sois tu supprime ces 3 ligne suivante dans toolkit.au3 la fonction '' Func FilterBackpack2() '':
Spoiler
if ($quality=9) Then
$nbLegs+=1
EndIf
Et Merci de m'avoir signaler l'erreur.(désoler pour le désagrément que sa pu occasionné.)
Salut,jutilise ta fonction depuis la semaine passer et sa va super bien sa fait que ces sposer faire .surprenant quel sois pas populaire,vue que jai vue quil y avait une demande et que tes seul qui la propose.tka merci.ho hé sa fait un petit up.
Merci ,j'avais mit de coter un peu cette fonction pour la communauté, vus sa impopularité. Mais il y a quelque temps que je les améliorer,car il y avais quelque désavantage,comme impossibilité revenir en arrière avec les légendaires (toujours unid) et on passait toujours 2 fois au livre de cain même si on voulait pas faire Unid.
Bref Je vais la mettre a jour au courent de la semaine, pour le moment je test la fonction a Rabbit2000 pour lui donner un retour rapide.
PS:Je vais mettre en mise a jour en haut pour les autre membres qui voudrais la tester ne fasse pas les modification déjà inscrit.
Salut,jai fait ta mise a jour et merci pour avoir panser a seu qui lavait deja.mais je vien de rende conte que le blocage au cofre act 1 que tu avait mis dans lautre post ne marche plus.a tu une solution pour moi svp car la seul qui marchais pour moi merci.
tu tes surement tromper de fonction,car dans mes modification pour faire Unid+ID, il y a 2 function FilterBackpack. Mais bon de tout manière j'ai changer mon approche, je ne l'intègre plus dans la fonction FilterBackpack. Je vais mettre la solution dans mon premier poste. Si je les pas intégré dans les modification, ces tout simplement que je ne voulais pas l’imposer a personne.
Et bientôt je rajouterai une stast unique a cet fonction
Marche super pour les unids direct dans le coffre, cependant j'ai du louper quelque chose car j'ai l'inventaire ouvert au vendeur avec la fameuse v001, dommage...;(
le repair=4, je n'ai pas de v001 /30runs donc c'est en bonne voie
Cependant, où pourrait-on ajouter un sleep apres avoir mis les unids ds le coffre ou meme apres ident? (ce qui semblerait eviter qu'un lag potentiel vienne générer la 001)
Pour ma part j'ai tester sur un bot clean et je n'ais pas cette erreur, J'ai fais une recherche et j'ai trouver quelque chose ICI.
Mais si tu veut augmenter les sleep je peut indiquer ou. Pour quand tu identifie c'est dans Toolkit Func Take_BookOfCain()cette partis ici le sleep (50)ligne 6574 si ta pas fait d'autre modif:
Spoiler
Switch $Act
Case 1
MoveToPos(2955.8681640625, 2803.51489257813, 24.0453319549561,0,20)
Case 2
;do nothing act 2
Case 3 To 4
MoveToPos(395.930847167969, 390.577362060547, 0.408410131931305,0,20)
EndSwitch
InteractByActorName("All_Book_Of_Cain")
While NOT fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512) AND NOT Detect_UI_error(3)
;_log("Ui : " & fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512) & " Error : " & fastcheckuiitemvisible("Root.TopLayer.error_notify.error_text", 1, 1185))
_log("tour boucle")
if NOT fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512) Then
InteractByActorName("All_Book_Of_Cain")
EndIf
WEnd
While fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512)
sleep(50)
Et pour après Unid c'est dans Toolkit Func StashAndRepair() le sleep juste avant les étoile ******* ligne 5234 si ta pas fait d"autre modif:
Spoiler
MouseClick('Right')
Sleep(Random(50, 200))
If Detect_UI_error(1) Then
_log('Tab is full : Switching tab')
CheckWindowD3Size()
$i = $i - 1
If $tabfull = 0 Then
MouseClick('left', 286, 194, 5)
$tabfull = 1
ElseIf $tabfull = 1 Then
MouseClick('left', 282, 266, 5)
$tabfull = 2
ElseIf $tabfull = 2 Then
_log('Stash is full : Botting stopped')
Terminate()
EndIf
Sleep(500);;;;;;;;;
Else
$ItemToStash = $ItemToStash + 1
EndIf
Next
;If $item_to_stash > 0 Then
;Ftp_Upload_To_Xml($ftpfilename)
;EndIf
Sleep(Random(50, 100))
Send("{SPACE}")
Sleep(Random(100, 150))
;****************************************************************
If NOT Verif_Attrib_GlobalStuff() Then
_log("CHANGEMENT DE STUFF ON TOURNE EN ROND (Stash and Repair - Stash)!!!!!")
antiidle()
EndIf
A titre information sleep(5000) = 5 secondes. J'espère t'avoir aider.
Pour ma part j'ai tester sur un bot clean et je n'ais pas cette erreur, J'ai fais une recherche et j'ai trouver quelque chose ICI.
Mais si tu veut augmenter les sleep je peut indiquer ou. Pour quand tu identifie c'est dans Toolkit Func Take_BookOfCain()cette partis ici le sleep (50)ligne 6574 si ta pas fait d'autre modif:
Spoiler
Switch $Act
Case 1
MoveToPos(2955.8681640625, 2803.51489257813, 24.0453319549561,0,20)
Case 2
;do nothing act 2
Case 3 To 4
MoveToPos(395.930847167969, 390.577362060547, 0.408410131931305,0,20)
EndSwitch
InteractByActorName("All_Book_Of_Cain")
While NOT fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512) AND NOT Detect_UI_error(3)
;_log("Ui : " & fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512) & " Error : " & fastcheckuiitemvisible("Root.TopLayer.error_notify.error_text", 1, 1185))
_log("tour boucle")
if NOT fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512) Then
InteractByActorName("All_Book_Of_Cain")
EndIf
WEnd
While fastcheckuiitemvisible("Root.NormalLayer.game_dialog_backgroundScreen.loopinganimmeter", 1, 1512)
sleep(50)
Et pour après Unid c'est dans Toolkit Func StashAndRepair() le sleep juste avant les étoile ******* ligne 5234 si ta pas fait d"autre modif:
Spoiler
MouseClick('Right')
Sleep(Random(50, 200))
If Detect_UI_error(1) Then
_log('Tab is full : Switching tab')
CheckWindowD3Size()
$i = $i - 1
If $tabfull = 0 Then
MouseClick('left', 286, 194, 5)
$tabfull = 1
ElseIf $tabfull = 1 Then
MouseClick('left', 282, 266, 5)
$tabfull = 2
ElseIf $tabfull = 2 Then
_log('Stash is full : Botting stopped')
Terminate()
EndIf
Sleep(500);;;;;;;;;
Else
$ItemToStash = $ItemToStash + 1
EndIf
Next
;If $item_to_stash > 0 Then
;Ftp_Upload_To_Xml($ftpfilename)
;EndIf
Sleep(Random(50, 100))
Send("{SPACE}")
Sleep(Random(100, 150))
;****************************************************************
If NOT Verif_Attrib_GlobalStuff() Then
_log("CHANGEMENT DE STUFF ON TOURNE EN ROND (Stash and Repair - Stash)!!!!!")
antiidle()
EndIf
A titre information sleep(5000) = 5 secondes. J'espère t'avoir aider.
Oui! merci pas besoin d'ajouter des sleep, tout marche nikel;) un Grand +1