Register for your free account! | Forgot your password?

You last visited: Today at 20:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



BotsHub

Discussion on BotsHub within the GW Exploits, Hacks, Bots, Tools & Macros forum part of the Guild Wars category.

Reply
 
Old 12/03/2025, 15:02   #181
 
elite*gold: 0
Join Date: Jul 2017
Posts: 8
Received Thanks: 0
Hi Kronos,

Here you have a better code

Func CreateValuableModsByWeaponTypeMap()
Local $ID_Type_Axe = 2
Local $ID_Type_Bow = 5
Local $ID_Type_Offhand = 12
Local $ID_Type_Hammer = 15
Local $ID_Type_Wand = 22
Local $ID_Type_Shield = 24
Local $ID_Type_Staff = 26
Local $ID_Type_Sword = 27
Local $ID_Type_Dagger = 32
Local $ID_Type_Scythe = 35
Local $ID_Type_Spear = 36

Local $tickedInscriptions = GetComponentsTickedCheckboxes('Inscriptions')
;Local $tickedMods = GetComponentsTickedCheckboxes('Mods')

Local $tickedAxe = GetComponentsTickedCheckboxes('Axe')
Local $tickedBow = GetComponentsTickedCheckboxes('Bow')
Local $tickedDagger = GetComponentsTickedCheckboxes('Dagger')
Local $tickedFocus = GetComponentsTickedCheckboxes('Suffix - Core')
Local $tickedHammer = GetComponentsTickedCheckboxes('Hammer')
Local $tickedScythe = GetComponentsTickedCheckboxes('Scythe')
Local $tickedShield = GetComponentsTickedCheckboxes('Shield')
Local $tickedSpear = GetComponentsTickedCheckboxes('Spear')
Local $tickedStaff = GetComponentsTickedCheckboxes('Staff')
Local $tickedSword = GetComponentsTickedCheckboxes('Sword')
Local $tickedWand = GetComponentsTickedCheckboxes('Wand')


Local $Incriptions_Structs_Array[UBound($tickedInscriptions)]
For $i = 0 To UBound($tickedInscriptions) - 1
Local $varName = $tickedInscriptions[$i]
$varname = StringRegExpReplace($varname,"\(.*?\)","")
Local $pos = StringInStr($varname, ".", 0, -1)
$varname = StringMid($varname, $pos +1)
If StringRight($varname, 1) = " " Then
$varname = StringTrimRight($varname, 1)
EndIf
$varName = 'STRUCT_INSCRIPTION_' & StringUpper(StringReplace($varname, " ", "_"))
$Incriptions_Structs_Array[$i] = Eval($varName)
Next

Local $Axe_Mods_Array = Extract_Mods_Struct($tickedAxe)
Local $Bow_Mods_Array = Extract_Mods_Struct($tickedBow)
Local $Dagger_Mods_Array = Extract_Mods_Struct($tickedDagger)
Local $Focus_Mods_Array = Extract_Mods_Struct($tickedFocus)
Local $Hammer_Mods_Array = Extract_Mods_Struct($tickedHammer)
Local $Scythe_Mods_Array = Extract_Mods_Struct($tickedScythe)
Local $Shield_Mods_Array = Extract_Mods_Struct($tickedShield)
Local $Spear_Mods_Array = Extract_Mods_Struct($tickedSpear)
Local $Staff_Mods_Array = Extract_Mods_Struct($tickedStaff)
Local $Sword_Mods_Array = Extract_Mods_Struct($tickedSword)
Local $Wand_Mods_Array = Extract_Mods_Struct($tickedWand)

_ArrayAdd($Axe_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Bow_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Dagger_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Focus_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Hammer_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Scythe_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Shield_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Spear_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Staff_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Sword_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Wand_Mods_Array, $Incriptions_Structs_Array)


Local Const $All_Weapons_Array = [$ID_Type_Shield, $ID_Type_Offhand, $ID_Type_Wand, $ID_Type_Staff, $ID_Type_Bow, $ID_Type_Axe, $ID_Type_Hammer, $ID_Type_Sword, $ID_Type_Dagger, $ID_Type_Scythe, $ID_Type_Spear]
Local Const $All_Weapons_Mods_Array = [$Shield_Mods_Array, $Focus_Mods_Array, $Wand_Mods_Array, $Staff_Mods_Array, $Bow_Mods_Array, $Axe_Mods_Array, $Hammer_Mods_Array, _
$Sword_Mods_Array, $Dagger_Mods_Array, $Scythe_Mods_Array, $Spear_Mods_Array]
Local Const $Valuable_Incriptions_and_mods_Structs_Array[] = MapFromArrays($All_Weapons_Array, $All_Weapons_Mods_Array)
Return $Valuable_Incriptions_and_mods_Structs_Array
EndFunc

Func Extract_Mods_Struct($index)
Local $Mods_Array [UBound($index)]
For $i = 0 To UBound($index) - 1
Local $varName = $index[$i]
$varName = StringRegExpReplace($varName,"\(.*?\)","") ;Take out everythˇng inside ()

If StringInStr(StringUpper($varName), "VAMPIRIC") Then
If StringInStr($varName, "bow") Or StringInStr($varName, "hammer") Then
$varName = StringRegExpReplace(StringUpper($varName),"VAMPIRI C","vampiric_5")
Else
$varName = StringRegExpReplace(StringUpper($varName),"VAMPIRI C","vampiric_3")
EndIf
EndIf

If StringInStr(StringUpper($varName), "MASTERY") Then
If StringInStr($varName, "axe") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","AXE_MASTERY")
ElseIf StringInStr($varName, "bow") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","MARKSMANSHIP_MASTERY")
ElseIf StringInStr($varName, "dagger") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","DAGGER_MASTERY")
ElseIf StringInStr($varName, "hammer") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","HAMMER_MASTERY")
ElseIf StringInStr($varName, "scythe") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","SCYTHE_MASTERY")
ElseIf StringInStr($varName, "spear") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","SPEAR_MASTERY")
ElseIf StringInStr($varName, "sword") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","SWORDMANSHIP_MASTERY")
ElseIf StringInStr($varName, "staff") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","STAFF_MASTERY")
EndIf
EndIf
Local $pos = StringInStr($varName, ".", 0, -1);Search position of last .
$varName = StringMid($varName, $pos +1);Delete everything before the last .

If StringRight($varName, 1) = " " Then ;Take out any space at the end
$varName = StringTrimRight($varName, 1)
EndIf
$varName = 'STRUCT_MOD_' & StringUpper(StringReplace($varName, " ", "_"));Set everything in uppercase
Info("Varname: " & $varName)
$Mods_Array [$i] = Eval($varName)
Next
Return $Mods_Array
EndFunc

I checked that all the mods and inscriptions got transalated. Now I need to test if they work when going to Merchant.

I see that for Staff they are a lot of masteries as they do not need to be aligned with the main attribute. It's an improvement to do on the GUI and then codify that

Hi Kronos,

Here you have a better code

Func CreateValuableModsByWeaponTypeMap()
Local $ID_Type_Axe = 2
Local $ID_Type_Bow = 5
Local $ID_Type_Offhand = 12
Local $ID_Type_Hammer = 15
Local $ID_Type_Wand = 22
Local $ID_Type_Shield = 24
Local $ID_Type_Staff = 26
Local $ID_Type_Sword = 27
Local $ID_Type_Dagger = 32
Local $ID_Type_Scythe = 35
Local $ID_Type_Spear = 36

Local $tickedInscriptions = GetComponentsTickedCheckboxes('Inscriptions')
;Local $tickedMods = GetComponentsTickedCheckboxes('Mods')

Local $tickedAxe = GetComponentsTickedCheckboxes('Axe')
Local $tickedBow = GetComponentsTickedCheckboxes('Bow')
Local $tickedDagger = GetComponentsTickedCheckboxes('Dagger')
Local $tickedFocus = GetComponentsTickedCheckboxes('Suffix - Core')
Local $tickedHammer = GetComponentsTickedCheckboxes('Hammer')
Local $tickedScythe = GetComponentsTickedCheckboxes('Scythe')
Local $tickedShield = GetComponentsTickedCheckboxes('Shield')
Local $tickedSpear = GetComponentsTickedCheckboxes('Spear')
Local $tickedStaff = GetComponentsTickedCheckboxes('Staff')
Local $tickedSword = GetComponentsTickedCheckboxes('Sword')
Local $tickedWand = GetComponentsTickedCheckboxes('Wand')


Local $Incriptions_Structs_Array[UBound($tickedInscriptions)]
For $i = 0 To UBound($tickedInscriptions) - 1
Local $varName = $tickedInscriptions[$i]
$varname = StringRegExpReplace($varname,"\(.*?\)","")
Local $pos = StringInStr($varname, ".", 0, -1)
$varname = StringMid($varname, $pos +1)
If StringRight($varname, 1) = " " Then
$varname = StringTrimRight($varname, 1)
EndIf
$varName = 'STRUCT_INSCRIPTION_' & StringUpper(StringReplace($varname, " ", "_"))
$Incriptions_Structs_Array[$i] = Eval($varName)
Next

Local $Axe_Mods_Array = Extract_Mods_Struct($tickedAxe)
Local $Bow_Mods_Array = Extract_Mods_Struct($tickedBow)
Local $Dagger_Mods_Array = Extract_Mods_Struct($tickedDagger)
Local $Focus_Mods_Array = Extract_Mods_Struct($tickedFocus)
Local $Hammer_Mods_Array = Extract_Mods_Struct($tickedHammer)
Local $Scythe_Mods_Array = Extract_Mods_Struct($tickedScythe)
Local $Shield_Mods_Array = Extract_Mods_Struct($tickedShield)
Local $Spear_Mods_Array = Extract_Mods_Struct($tickedSpear)
Local $Staff_Mods_Array = Extract_Mods_Struct($tickedStaff)
Local $Sword_Mods_Array = Extract_Mods_Struct($tickedSword)
Local $Wand_Mods_Array = Extract_Mods_Struct($tickedWand)

_ArrayAdd($Axe_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Bow_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Dagger_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Focus_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Hammer_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Scythe_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Shield_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Spear_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Staff_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Sword_Mods_Array, $Incriptions_Structs_Array)
_ArrayAdd($Wand_Mods_Array, $Incriptions_Structs_Array)


Local Const $All_Weapons_Array = [$ID_Type_Shield, $ID_Type_Offhand, $ID_Type_Wand, $ID_Type_Staff, $ID_Type_Bow, $ID_Type_Axe, $ID_Type_Hammer, $ID_Type_Sword, $ID_Type_Dagger, $ID_Type_Scythe, $ID_Type_Spear]
Local Const $All_Weapons_Mods_Array = [$Shield_Mods_Array, $Focus_Mods_Array, $Wand_Mods_Array, $Staff_Mods_Array, $Bow_Mods_Array, $Axe_Mods_Array, $Hammer_Mods_Array, _
$Sword_Mods_Array, $Dagger_Mods_Array, $Scythe_Mods_Array, $Spear_Mods_Array]
Local Const $Valuable_Incriptions_and_mods_Structs_Array[] = MapFromArrays($All_Weapons_Array, $All_Weapons_Mods_Array)
Return $Valuable_Incriptions_and_mods_Structs_Array
EndFunc

Func Extract_Mods_Struct($index)
Local $Mods_Array [UBound($index)]
For $i = 0 To UBound($index) - 1
Local $varName = $index[$i]
$varName = StringRegExpReplace($varName,"\(.*?\)","") ;Take out everythˇng inside ()

If StringInStr(StringUpper($varName), "VAMPIRIC") Then
If StringInStr($varName, "bow") Or StringInStr($varName, "hammer") Then
$varName = StringRegExpReplace(StringUpper($varName),"VAMPIRI C","vampiric_5")
Else
$varName = StringRegExpReplace(StringUpper($varName),"VAMPIRI C","vampiric_3")
EndIf
EndIf

If StringInStr(StringUpper($varName), "MASTERY") Then
If StringInStr($varName, "axe") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","AXE_MASTERY")
ElseIf StringInStr($varName, "bow") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","MARKSMANSHIP_MASTERY")
ElseIf StringInStr($varName, "dagger") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","DAGGER_MASTERY")
ElseIf StringInStr($varName, "hammer") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","HAMMER_MASTERY")
ElseIf StringInStr($varName, "scythe") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","SCYTHE_MASTERY")
ElseIf StringInStr($varName, "spear") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","SPEAR_MASTERY")
ElseIf StringInStr($varName, "sword") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","SWORDMANSHIP_MASTERY")
ElseIf StringInStr($varName, "staff") Then
$varName = StringRegExpReplace(StringUpper($varName),"MASTERY ","STAFF_MASTERY")
EndIf
EndIf
Local $pos = StringInStr($varName, ".", 0, -1);Search position of last .
$varName = StringMid($varName, $pos +1);Delete everything before the last .

If StringRight($varName, 1) = " " Then ;Take out any space at the end
$varName = StringTrimRight($varName, 1)
EndIf
$varName = 'STRUCT_MOD_' & StringUpper(StringReplace($varName, " ", "_"));Set everything in uppercase
$Mods_Array [$i] = Eval($varName)
Next
Return $Mods_Array
EndFunc

I see that for Staffs the are different Mastery suffixes as they do not need to be aligned with main attribute. This is something to improve on GUI and the codificated on Sctruct

Also please add me as contributor so I can upload the heroes stuff and this, so you can work on improve it. At the moment I cannot do a pull request as it says I'm not contributor
pepe botika is offline  
Old 12/03/2025, 23:49   #182
 
Kronos8's Avatar
 
elite*gold: 0
Join Date: Apr 2021
Posts: 57
Received Thanks: 57
/!\ Due to recent update, all bots are broken (that include toolbox, autoit, python bots ...) /!\
Enjoy that timeout by playing the game the way it is supposed to !

Hey @, thanks for your work
Unfortunately due to GW update, it will have to wait a little bit before I try it out.
Kronos8 is online now  
Old Yesterday, 14:52   #183
 
elite*gold: 0
Join Date: Aug 2010
Posts: 13
Received Thanks: 0
How hard would it be to add a pre-searing charr shrine/northlands clear?

EDIT: Obv once its back and running
Spartanzz is offline  
Old Today, 01:22   #184
 
Kronos8's Avatar
 
elite*gold: 0
Join Date: Apr 2021
Posts: 57
Received Thanks: 57
@ it's probably not very complicated to write though not sure how difficult it is to make it survive against charrs
Kronos8 is online now  
Reply

Tags
bot, botshub, farm, guild wars, hub




All times are GMT +1. The time now is 20:29.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.