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
|