|
You last visited: Today at 09:49
Advertisement
[GWA2] ModStructs For Perfect Items
Discussion on [GWA2] ModStructs For Perfect Items within the GW Guides & Templates forum part of the Guild Wars category.
11/14/2019, 19:27
|
#31
|
elite*gold: 0
Join Date: Oct 2019
Posts: 11
Received Thanks: 2
|
oh it seems youre correct since the patch a number of modstructs had changed but i didnt bother to check os ones and just assumed that they also just changed but it seems atleast the ones i got werent affected. thanks andy!
|
|
|
01/21/2024, 21:31
|
#32
|
elite*gold: 0
Join Date: May 2011
Posts: 111
Received Thanks: 94
|
Been a while since I have updated these, but I noticed (after about 5 years) that there are some items I never find. This is because I was missing some specific combinations, and also the mod struct for +5^50 and +5wEnch were wrong  So perfect wands were never really found since 20/20 is so unbelievably rare.
I have also added more combinations of focus to keep (+30 20% +1 20/10 etc) since on skins like Paper Lanterns and Paper Fans this can be a pretty expensive item.
Enjoy!
Edit: I actually think the 10% mods were wrong too, I have modified them, but they require further testing. Its hard to find these mods on weapons to test! I also added the high energy mods quickly, so it should save these on wands and foci. Again, if any issues, please comment!
Code:
Func IsPerfectCaster($aItem)
Local $ModStruct = GetModStruct($aItem)
Local $A = GetItemAttribute($aItem)
; Universal mods
Local $PlusFive = StringInStr($ModStruct, "05320823", 0, 1) ; Mod struct for +5^50
Local $PlusFiveEnch = StringInStr($ModStruct, "0500F822", 0, 1)
Local $EnergyAlways15 = StringInStr($ModStruct, "0F00D822", 0 ,1) ; Energy +15
Local $EnergyRegen = StringInStr($ModStruct, "0100C820", 0 ,1) ; Energy regeneration -1
Local $10Cast = StringInStr($ModStruct, "000A0822", 0, 1) ; Mod struct for 10% cast
Local $10Recharge = StringInStr($ModStruct, "000AA823", 0, 1) ; Mod struct for 10% recharge
Local $Plus30 = StringInStr($ModStruct, "1E4823", 0, 1) ; Mod struct for +30 (shield only?)
; Plus 1 Mods
Local $PlusIllusion = StringInStr($ModStruct, "0118240", 0, 1) ; +1 Illu 20%
Local $PlusDomination = StringInStr($ModStruct, "0218240", 0, 1) ; +1 Dom 20%
Local $PlusInspiration = StringInStr($ModStruct, "0318240", 0, 1) ; +1 Insp 20%
Local $PlusBlood = StringInStr($ModStruct, "0418240", 0, 1) ; +1 Blood 20%
Local $PlusDeath = StringInStr($ModStruct, "0518240", 0, 1) ; +1 Death 20%
Local $PlusSoulReap = StringInStr($ModStruct, "0618240", 0, 1) ; +1 SoulR 20%
Local $PlusCurses = StringInStr($ModStruct, "0718240", 0, 1) ; +1 Curses 20%
Local $PlusAir = StringInStr($ModStruct, "0818240", 0, 1) ; +1 Air 20%
Local $PlusEarth = StringInStr($ModStruct, "0918240", 0, 1) ; +1 Earth 20%
Local $PlusFire = StringInStr($ModStruct, "0A18240", 0, 1) ; +1 Fire 20%
Local $PlusWater = StringInStr($ModStruct, "0B18240", 0, 1) ; +1 Water 20%
Local $PlusHealing = StringInStr($ModStruct, "0D18240", 0, 1) ; +1 Heal 20%
Local $PlusSmite = StringInStr($ModStruct, "0E18240", 0, 1) ; +1 Smite 20%
Local $PlusProt = StringInStr($ModStruct, "0F18240", 0, 1) ; +1 Prot 20%
Local $PlusDivine = StringInStr($ModStruct, "1018240", 0, 1) ; +1 Divine 20%
; Ele mods
Local $Fire20Casting = StringInStr($ModStruct, "0A141822", 0, 1) ; Mod struct for 20% fire
Local $Fire20Recharge = StringInStr($ModStruct, "0A149823", 0, 1)
Local $Water20Casting = StringInStr($ModStruct, "0B141822", 0, 1) ; Mod struct for 20% water
Local $Water20Recharge = StringInStr($ModStruct, "0B149823", 0, 1)
Local $Air20Casting = StringInStr($ModStruct, "08141822", 0, 1) ; Mod struct for 20% air
Local $Air20Recharge = StringInStr($ModStruct, "08149823", 0, 1)
Local $Earth20Casting = StringInStr($ModStruct, "09141822", 0, 1)
Local $Earth20Recharge = StringInStr($ModStruct, "09149823", 0, 1)
Local $Energy20Casting = StringInStr($ModStruct, "0C141822", 0, 1)
Local $Energy20Recharge = StringInStr($ModStruct, "0C149823", 0, 1)
; Monk mods
Local $Smiting20Casting = StringInStr($ModStruct, "0E141822", 0, 1) ; Mod struct for 20% smite
Local $Smiting20Recharge = StringInStr($ModStruct, "0E149823", 0, 1)
Local $Divine20Casting = StringInStr($ModStruct, "10141822", 0, 1) ; Mod struct for 20% divine
Local $Divine20Recharge = StringInStr($ModStruct, "10149823", 0, 1)
Local $Healing20Casting = StringInStr($ModStruct, "0D141822", 0, 1) ; Mod struct for 20% healing
Local $Healing20Recharge = StringInStr($ModStruct, "0D149823", 0, 1)
Local $Protection20Casting = StringInStr($ModStruct, "0F141822", 0, 1) ; Mod struct for 20% protection
Local $Protection20Recharge = StringInStr($ModStruct, "0F149823", 0, 1)
; Rit mods
Local $Channeling20Casting = StringInStr($ModStruct, "22141822", 0, 1) ; Mod struct for 20% channeling
Local $Channeling20Recharge = StringInStr($ModStruct, "22149823", 0, 1)
Local $Restoration20Casting = StringInStr($ModStruct, "21141822", 0, 1)
Local $Restoration20Recharge = StringInStr($ModStruct, "21149823", 0, 1)
Local $Communing20Casting = StringInStr($ModStruct, "20141822", 0, 1)
Local $Communing20Recharge = StringInStr($ModStruct, "20149823", 0, 1)
Local $Spawning20Casting = StringInStr($ModStruct, "24141822", 0, 1) ; Spawning - Unconfirmed
Local $Spawning20Recharge = StringInStr($ModStruct, "24149823", 0, 1) ; Spawning - Unconfirmed
; Mes mods
Local $Illusion20Recharge = StringInStr($ModStruct, "01149823", 0, 1)
Local $Illusion20Casting = StringInStr($ModStruct, "01141822", 0, 1)
Local $Domination20Casting = StringInStr($ModStruct, "02141822", 0, 1) ; Mod struct for 20% domination
Local $Domination20Recharge = StringInStr($ModStruct, "02149823", 0, 1) ; Mod struct for 20% domination recharge
Local $Inspiration20Recharge = StringInStr($ModStruct, "03149823", 0, 1)
Local $Inspiration20Casting = StringInStr($ModStruct, "03141822", 0, 1)
; Necro mods
Local $Death20Casting = StringInStr($ModStruct, "05141822", 0, 1) ; Mod struct for 20% death
Local $Death20Recharge = StringInStr($ModStruct, "05149823", 0, 1)
Local $Blood20Recharge = StringInStr($ModStruct, "04149823", 0, 1)
Local $Blood20Casting = StringInStr($ModStruct, "04141822", 0, 1)
Local $SoulReap20Recharge = StringInStr($ModStruct, "06149823", 0, 1)
Local $SoulReap20Casting = StringInStr($ModStruct, "06141822", 0, 1)
Local $Curses20Recharge = StringInStr($ModStruct, "07149823", 0, 1)
Local $Curses20Casting = StringInStr($ModStruct, "07141822", 0, 1)
Switch $A
Case 1 ; Illusion
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Illusion20Casting > 0 Or $Illusion20Recharge > 0 Then
Return True
EndIf
EndIf
If $Illusion20Recharge > 0 Or $Illusion20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Illusion20Recharge > 0 Then
If $Illusion20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Illusion20Casting > 0 Or $Illusion20Recharge > 0 Or $PlusIllusion > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 2 ; Domination
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Domination20Casting > 0 Or $Domination20Recharge > 0 Then
Return True
EndIf
EndIf
If $Domination20Recharge > 0 Or $Domination20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Domination20Recharge > 0 Then
If $Domination20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Domination20Casting > 0 Or $Domination20Recharge > 0 Or $PlusDomination > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 3 ; Inspiration
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Inspiration20Casting > 0 Or $Inspiration20Recharge > 0 Then
Return True
EndIf
EndIf
If $Inspiration20Recharge > 0 Or $Inspiration20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Inspiration20Recharge > 0 Then
If $Inspiration20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Inspiration20Casting > 0 Or $Inspiration20Recharge > 0 Or $PlusInspiration > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 4 ; Blood
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Blood20Casting > 0 Or $Blood20Recharge > 0 Then
Return True
EndIf
EndIf
If $Blood20Recharge > 0 Or $Blood20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Blood20Recharge > 0 Then
If $Blood20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Blood20Casting > 0 Or $Blood20Recharge > 0 Or $PlusBlood > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 5 ; Death
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Death20Casting > 0 Or $Death20Recharge > 0 Then
Return True
EndIf
EndIf
If $Death20Recharge > 0 Or $Death20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Death20Recharge > 0 Then
If $Death20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Death20Casting > 0 Or $Death20Recharge > 0 Or $PlusDeath > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 6 ; SoulReap - Doesnt drop?
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $SoulReap20Casting > 0 Or $SoulReap20Recharge > 0 Then
Return True
EndIf
EndIf
If $SoulReap20Recharge > 0 Or $SoulReap20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $SoulReap20Recharge > 0 Then
If $SoulReap20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $SoulReap20Casting > 0 Or $SoulReap20Recharge > 0 Or $PlusSoulReap > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
If ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
If $Blood20Casting > 0 Or $Blood20Recharge > 0 Or $Death20Casting > 0 Or $Death20Recharge > 0 Or $Curses20Casting > 0 Or $Curses20Recharge > 0 Or $SoulReap20Casting > 0 Or $SoulReap20Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 7 ; Curses
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Curses20Casting > 0 Or $Curses20Recharge > 0 Then
Return True
EndIf
EndIf
If $Curses20Recharge > 0 Or $Curses20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Curses20Recharge > 0 Then
If $Curses20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Curses20Casting > 0 Or $Curses20Recharge > 0 Or $PlusCurses > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 8 ; Air
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Air20Casting > 0 Or $Air20Recharge > 0 Then
Return True
EndIf
EndIf
If $Air20Recharge > 0 Or $Air20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Air20Recharge > 0 Then
If $Air20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Air20Casting > 0 Or $Air20Recharge > 0 Or $PlusAir > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 9 ; Earth
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Earth20Casting > 0 Or $Earth20Recharge > 0 Then
Return True
EndIf
EndIf
If $Earth20Recharge > 0 Or $Earth20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Earth20Recharge > 0 Then
If $Earth20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Earth20Casting > 0 Or $Earth20Recharge > 0 Or $PlusEarth > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 10 ; Fire
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Fire20Casting > 0 Or $Fire20Recharge > 0 Then
Return True
EndIf
EndIf
If $Fire20Recharge > 0 Or $Fire20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Fire20Recharge > 0 Then
If $Fire20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Fire20Casting > 0 Or $Fire20Recharge > 0 Or $PlusFire > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 11 ; Water
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Water20Casting > 0 Or $Water20Recharge > 0 Then
Return True
EndIf
EndIf
If $Water20Recharge > 0 Or $Water20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Water20Recharge > 0 Then
If $Water20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Water20Casting > 0 Or $Water20Recharge > 0 Or $PlusWater > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 12 ; Energy Storage
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Energy20Casting > 0 Or $Energy20Recharge > 0 Or $Water20Casting > 0 Or $Water20Recharge > 0 Or $Fire20Casting > 0 Or $Fire20Recharge > 0 Or $Earth20Casting > 0 Or $Earth20Recharge > 0 Or $Air20Casting > 0 Or $Air20Recharge > 0 Then
Return True
EndIf
EndIf
If $Energy20Recharge > 0 Or $Energy20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or $Water20Casting > 0 Or $Water20Recharge > 0 Or $Fire20Casting > 0 Or $Fire20Recharge > 0 Or $Earth20Casting > 0 Or $Earth20Recharge > 0 Or $Air20Casting > 0 Or $Air20Recharge > 0 Then
Return True
EndIf
EndIf
If $Energy20Recharge > 0 Then
If $Energy20Casting > 0 Then
Return True
EndIf
EndIf
If $10Cast > 0 Or $10Recharge > 0 Then
If $Water20Casting > 0 Or $Water20Recharge > 0 Or $Fire20Casting > 0 Or $Fire20Recharge > 0 Or $Earth20Casting > 0 Or $Earth20Recharge > 0 Or $Air20Casting > 0 Or $Air20Recharge > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Water20Casting > 0 Or $Water20Recharge > 0 Or $Fire20Casting > 0 Or $Fire20Recharge > 0 Or $Earth20Casting > 0 Or $Earth20Recharge > 0 Or $Air20Casting > 0 Or $Air20Recharge > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
If ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
If $Water20Casting > 0 Or $Water20Recharge > 0 Or $Fire20Casting > 0 Or $Fire20Recharge > 0 Or $Earth20Casting > 0 Or $Earth20Recharge > 0 Or $Air20Casting > 0 Or $Air20Recharge > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 13 ; Healing
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Healing20Casting > 0 Or $Healing20Recharge > 0 Then
Return True
EndIf
EndIf
If $Healing20Recharge > 0 Or $Healing20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Healing20Recharge > 0 Then
If $Healing20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Healing20Casting > 0 Or $Healing20Recharge > 0 Or $PlusHealing > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 14 ; Smiting
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Then
Return True
EndIf
EndIf
If $Smiting20Recharge > 0 Or $Smiting20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Smiting20Recharge > 0 Then
If $Smiting20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Or $PlusSmite > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 15 ; Protection
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Protection20Casting > 0 Or $Protection20Recharge > 0 Then
Return True
EndIf
EndIf
If $Protection20Recharge > 0 Or $Protection20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Protection20Recharge > 0 Then
If $Protection20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Protection20Casting > 0 Or $Protection20Recharge > 0 Or $PlusProt > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 16 ; Divine
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Divine20Casting > 0 Or $Divine20Recharge > 0 Or $Healing20Casting > 0 Or $Healing20Recharge > 0 Or $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Or $Protection20Casting > 0 Or $Protection20Recharge > 0 Then
Return True
EndIf
EndIf
If $Divine20Recharge > 0 Or $Divine20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or $Healing20Casting > 0 Or $Healing20Recharge > 0 Or $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Or $Protection20Casting > 0 Or $Protection20Recharge > 0 Then
Return True
EndIf
EndIf
If $Divine20Recharge > 0 Then
If $Divine20Casting > 0 Then
Return True
EndIf
EndIf
If $10Cast > 0 Or $10Recharge > 0 Then
If $Healing20Casting > 0 Or $Healing20Recharge > 0 Or $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Or $Protection20Casting > 0 Or $Protection20Recharge > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Healing20Casting > 0 Or $Healing20Recharge > 0 Or $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Or $Protection20Casting > 0 Or $Protection20Recharge > 0 Then
Return True
EndIf
EndIf
If ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
If $Healing20Casting > 0 Or $Healing20Recharge > 0 Or $Smiting20Casting > 0 Or $Smiting20Recharge > 0 Or $Protection20Casting > 0 Or $Protection20Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 32 ; Communing
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Communing20Casting > 0 Or $Communing20Recharge > 0 Then
Return True
EndIf
EndIf
If $Communing20Recharge > 0 Or $Communing20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Communing20Recharge > 0 Then
If $Communing20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Communing20Casting > 0 Or $Communing20Recharge > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 33 ; Restoration
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Restoration20Casting > 0 Or $Restoration20Recharge > 0 Then
Return True
EndIf
EndIf
If $Restoration20Recharge > 0 Or $Restoration20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Restoration20Recharge > 0 Then
If $Restoration20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Restoration20Casting > 0 Or $Restoration20Recharge > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 34 ; Channeling
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Channeling20Casting > 0 Or $Channeling20Recharge > 0 Then
Return True
EndIf
EndIf
If $Channeling20Recharge > 0 Or $Channeling20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Channeling20Recharge > 0 Then
If $Channeling20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Channeling20Casting > 0 Or $Channeling20Recharge > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
Case 36 ; Spawning - Unconfirmed
If $PlusFive > 0 Or $PlusFiveEnch > 0 Then
If $Spawning20Casting > 0 Or $Spawning20Recharge > 0 Then
Return True
EndIf
EndIf
If $Spawning20Recharge > 0 Or $Spawning20Casting > 0 Then
If $10Cast > 0 Or $10Recharge > 0 Or ($EnergyAlways15 > 0 And $EnergyRegen > 0) Then
Return True
EndIf
EndIf
If $Spawning20Recharge > 0 Then
If $Spawning20Casting > 0 Then
Return True
EndIf
EndIf
If $Plus30 > 0 Then
If $Spawning20Casting > 0 Or $Spawning20Recharge > 0 Or $10Recharge > 0 Then
Return True
EndIf
EndIf
Return False
EndSwitch
Return False
EndFunc
|
|
|
02/28/2024, 21:39
|
#33
|
elite*gold: 0
Join Date: Feb 2024
Posts: 19
Received Thanks: 3
|
Hello! Much appreciation for all the work done here.
I have recently dug into gwa2. If an item drops, I have found that there are functions which return that item's ModelID, Rarity, and Requirement. However I was wondering if there's anyway to return the damage/armor numbers on the item (before picking it up). For example if I want to only pickup max damage swords and not anything less (i.e. 11-21). Is this information stored in the modstruct somewhere?
|
|
|
02/29/2024, 17:39
|
#34
|
elite*gold: 0
Join Date: May 2011
Posts: 111
Received Thanks: 94
|
Quote:
Originally Posted by albino albatross
Hello! Much appreciation for all the work done here.
I have recently dug into gwa2. If an item drops, I have found that there are functions which return that item's ModelID, Rarity, and Requirement. However I was wondering if there's anyway to return the damage/armor numbers on the item (before picking it up). For example if I want to only pickup max damage swords and not anything less (i.e. 11-21). Is this information stored in the modstruct somewhere?
|
You could "probably" do this using item type and GetItemMaxDmg.
Code:
Func IsItemMaxDmgSword($aItem)
Local $dStruct = DllStructGetData($aItem, 'Type')
Local $tSword = 27
Local $fDmg = GetItemMaxDmg($aItem)
If $dStruct == $tSword And $fDmg == 22 Then
Return True ; Max dmg sword
Else
Return False
EndIf
EndFunc
I havent tested this myself, but I dont see any reason why it wouldnt work.
|
|
|
02/29/2024, 23:11
|
#35
|
elite*gold: 0
Join Date: Feb 2024
Posts: 19
Received Thanks: 3
|
Thank you GetItemMaxDmg worked!
If anyone is interested, I modified the function to return the entire damage range.
Func GetItemDamageRange($aItem)
If Not IsDllStruct($aItem) Then $aItem = GetItemByItemID($aItem)
Local $lModString = GetModStruct($aItem)
Local $lPos = StringInStr($lModString, "A8A7") ; Weapon Damage
If $lPos = 0 Then $lPos = StringInStr($lModString, "C867") ; Energy (focus)
If $lPos = 0 Then $lPos = StringInStr($lModString, "B8A7") ; Armor (shield)
If $lPos = 0 Then
Local $errorRange[2] = [-1, -1] ; Properly initialize the error array
Return $errorRange ; Return the error array
EndIf
Local $damageRange[2] ; Declare an array to hold the damage range
$damageRange[0] = Int("0x" & StringMid($lModString, $lPos - 4, 2)) ; Minimum damage
$damageRange[1] = Int("0x" & StringMid($lModString, $lPos - 2, 2)) ; Maximum damage
Return $damageRange ; Return the array
EndFunc
This successfully returns the minimum and maximum damage number for the item.
It returns 8-16 for max shields and 6-12 for max off-hands since these are the minimum values for these items.
|
|
|
03/26/2024, 11:18
|
#36
|
elite*gold: 0
Join Date: Feb 2024
Posts: 19
Received Thanks: 3
|
Need Help To Count Item Mods
Hello everyone! I am once again in need of your assistance.
I have been looking at the perfect modstructs Underavelvetmoon has so graciously provided. They are very useful, but I was wondering if there was a way to detect the number of mods an item has, regardless of what those mods are?
I want to use this to note the number of items I get with dual mods vs single mods, and a function which counts the number of mods on an item would be very useful.
This is what I came up with so far:
Code:
Func CountMods($aItem)
Local $ModStruct = GetModStruct($aItem)
Local $modCount = 0
; List of unique mod patterns identified from the perfect item checker.
Local $modPatterns = ["05320823", "0500F822", "0F00D822", "0100C820", "000A0822", "000AA823", "1E4823", "0118240", "0218240", "0318240", "0418240", "0518240", "0618240", "0718240", "0818240", "0918240", "0A18240", "0B18240", "0D18240", "0E18240", "0F18240", "1018240", "0A141822", "0A149823", "0B141822", "0B149823", "08141822", "08149823", "09141822", "09149823"]
; Iterate through each mod pattern and check if it exists in the ModStruct.
For $i = 0 To UBound($modPatterns) - 1
If StringInStr($ModStruct, $modPatterns[$i]) Then
$modCount += 1
EndIf
Next
Return $modCount
EndFunc
I think this should work for detecting the presence of the perfect mods, but is there any easy way to modify this for detecting the presence of ALL mods, short of adding every single individual mod pattern to the list?
|
|
|
03/27/2024, 12:25
|
#37
|
elite*gold: 0
Join Date: Jul 2016
Posts: 19
Received Thanks: 29
|
You could check only for the identifiers of the mods that interests you, the last 4 digits.
For instance, hp+30 will be 001E4823, identifier 4823 for this mod.
So, this will give you a match if any hp+xx is present
Code:
StringRegExp($ModStruct, '.{4}4823')
Basically the same as you have but your $modPaterns would look more like this.
Code:
Local $modPatterns = ["C820", "0822", "1822", "D822", "F822", "0823", "4823", "9823", "A823", "8240",
And your test loop
Code:
For $i = 0 To UBound($modPatterns) - 1
If StringRegExp($ModStruct, '.{4}' & $modPatterns[$i]) Then
$modCount += 1
If $modCount = 2 Then ExitLoop ; I guess you can stop the iteration if it gets to 2 mods already
EndIf
Next
|
|
|
03/27/2024, 16:24
|
#38
|
elite*gold: 0
Join Date: May 2011
Posts: 111
Received Thanks: 94
|
Quote:
Originally Posted by jukia
You could check only for the identifiers of the mods that interests you, the last 4 digits.
For instance, hp+30 will be 001E4823, identifier 4823 for this mod.
So, this will give you a match if any hp+xx is present
Code:
StringRegExp($ModStruct, '.{4}4823')
Basically the same as you have but your $modPaterns would look more like this.
Code:
Local $modPatterns = ["C820", "0822", "1822", "D822", "F822", "0823", "4823", "9823", "A823", "8240",
And your test loop
Code:
For $i = 0 To UBound($modPatterns) - 1
If StringRegExp($ModStruct, '.{4}' & $modPatterns[$i]) Then
$modCount += 1
If $modCount = 2 Then ExitLoop ; I guess you can stop the iteration if it gets to 2 mods already
EndIf
Next
|
I like that quite a bit, the only problem, and this is the problem I had with other methods of doing this is that we want to exclude undesirable combos of mods, like -2 stance and +45while enchanted, and so on, so eventually it will come back to needing to have the mess of the code that it already is to specify the mods haha
Maybe there is someway to integrate what you suggested half way and reduce the clutter, I'll give it some thought!
|
|
|
03/31/2024, 03:55
|
#39
|
elite*gold: 0
Join Date: Feb 2024
Posts: 19
Received Thanks: 3
|
Thank you jukia, your method worked great. I'll post what I have working so far. This function returns the number of mods of the item in the first slot of your first bag. I have noted the mod associated with each mod pattern in the comments.
Code:
Func CountMods()
Local $modCount = 0 ; Initialize mod counter
Local $aItem = GetItemBySlot(1, 1) ; Get item in slot 1 of bag 1.
Local $ModStruct = GetModStruct($aItem) ; Get mod structure string of item
; Array of mod identifier endings to check
Local $modPatterns = ["A820","9820","8820","7820","6823","8823","7823","4823","1824","1821","4821","7824","0822","A823","1822","9823","A821","B821","9821","8821","0821","C821","5821","2821","0823","1823","2823","D822","F822"]
;A820:-DMG(ST) || 9820:-DMG(Hexed) || 8820:-DMG(EN) || 7820:-DMG(%) || 6823:+HP(EN) || 8823:+HP(ST) || 7823:+HP(HEX) || 4823:+HP || 1824:+1Attribute(%) || 1821:+AR Vs DamageType || 4821:+AR Vs EnemyType || 7824:Reduces X Duration 20% ||
;0822:HCT All Spells || A823:HSR All Spells || 1822:HCT Attribute || 9823:HSR Attribute ||
;A821:+AR(>50%HP) || B821:+AR(<50%HP) || 9821:+AR(EN) || 8821:+AR(Casting) ||C821:+AR(Hexed) || 5821:+AR(vsPhysical) || 2821:+AR(vsElemental) || 0821:[+AR/+AR(-EnergyRegen)]
;0823:+Energy(>50%HP) || 1823:+Energy(<50%HP) || 2823:+Energy(Hexed) || F822:+Energy(EN) || D822:[+Energy/+Energy(-EnergyRegen)]
; Loop through each pattern and search in ModStruct
For $i = 0 To UBound($modPatterns) - 1
; Regex checks 4 any chars followed by mod identifier
If StringRegExp($ModStruct, '.{4}' & $modPatterns[$i]) Then
$modCount += 1 ; Increment counter for each match
EndIf
Next
MsgBox(0, "Mod Count", "The number of mods counted: " & $modCount)
Return $modCount ; Return the total mod count found
EndFunc ;==>CountMods
So far, I believe this function works for all shields, off-hands, and wands. I will add more mod patterns later for martial weapons and staves.
|
|
|
05/11/2024, 07:30
|
#40
|
elite*gold: 0
Join Date: Feb 2024
Posts: 66
Received Thanks: 13
|
Thanks for this, amazing!
How can I do the same but for Q4 shields?
Func GetItemMaxReq4($aItem)
Local $Type = DllStructGetData($aItem, "Type")
Local $Dmg = GetItemMaxDmg($aItem)
Local $Req = GetItemReq($aItem)
Switch $Type
Case 24 ;~ Shield
If $Dmg == 8 And $Req == 4 Then
Return True
Else
Return False
EndIf
EndSwitch
EndFunc
Made this for a feather farmer but I'm unsure about how to apply it.
|
|
|
05/11/2024, 20:51
|
#41
|
elite*gold: 0
Join Date: May 2011
Posts: 111
Received Thanks: 94
|
Quote:
Originally Posted by ATbs
Thanks for this, amazing!
How can I do the same but for Q4 shields?
Func GetItemMaxReq4($aItem)
Local $Type = DllStructGetData($aItem, "Type")
Local $Dmg = GetItemMaxDmg($aItem)
Local $Req = GetItemReq($aItem)
Switch $Type
Case 24 ;~ Shield
If $Dmg == 8 And $Req == 4 Then
Return True
Else
Return False
EndIf
EndSwitch
EndFunc
Made this for a feather farmer but I'm unsure about how to apply it.
|
If you add that into the CanPickUp/CanSell/etc functions it should work fine!
Code:
Func CanPickUp($aItem)
Local $Req4Shield = GetItemMaxReq4($aItem)
Local $Type = DllStructGetData($aItem, "Type")
Switch $Type
Case 24
If $Req4Shield Then
Return True
Else
Return False
EndIf
EndSwitch
I combine all mine into one function, like all Req8 things are checked together rather than req8 sword, shield, staff, etc, so it looks more complex than it is.
|
|
|
05/11/2024, 23:47
|
#42
|
elite*gold: 0
Join Date: Feb 2024
Posts: 66
Received Thanks: 13
|
Thx a lot, to test i can change values and use whatever shield yes.
I don't want to skip all golds in case a q4 max ar shield drops!
|
|
|
05/31/2024, 08:20
|
#43
|
elite*gold: 0
Join Date: Feb 2024
Posts: 66
Received Thanks: 13
|
So i'm making a test on a feather bot i have, and is not working. Maybe u can help me figure out why.
( i have a q0 max11 dmg spear im testing with)
If CountFreeSlots() >= 3 Then
Local $Rarity = GetRarity($lItem)
Local $aReq = GetItemReq($lItem)
Local $lType = DllStructGetData($lItem, 'Type')
Local $IsReq0 = IsReq0Max($lItem)
Switch $Rarity
Case 2624
Switch $lType
Case 24
If $aReq = 4 And GetItemMaxDmg($lItem) = 12 Then
$Shields += DllStructGetData($lItem, 'Quantity')
GUICtrlSetData($ShieldsCount, $Shields)
Out("Q4 AR12 GOLD SHIELD looted.")
Return True
EndIf
If $aReq = 5 And GetItemMaxDmg($lItem) = 13 Then
$Shields += DllStructGetData($lItem, 'Quantity')
GUICtrlSetData($ShieldsCount, $Shields)
Out("Q5 AR13 GOLD SHIELD looted.")
Return True
EndIf
EndSwitch
Case 2623
Switch $lType
Case 36
Switch $IsReq0
Return True
EndSwitch
EndSwitch
EndSwitch
Else
Thats on the pickup func, these are shields and it works fine, with the spear it doesnt.
Then i have:
Func GetItemMaxReq0($aItem)
Local $Type = DllStructGetData($aItem, "Type")
Local $Dmg = GetItemMaxDmg($aItem)
Local $Req = GetItemReq($aItem)
Switch $Type
Case 35 ;~ Scythe
If $Dmg == 17 And $Req == 0 Then
Return True
Else
Return False
EndIf
Case 36 ;~ Spear
If $Dmg == 11 And $Req == 0 Then
Return True
Else
Return False
EndIf
EndSwitch
EndFunc
Func IsReq0Max($aItem)
Local $Type = DllStructGetData($aItem, "Type")
Local $Rarity = GetRarity($aItem)
Local $MaxDmgScythe = GetItemMaxReq0($aItem)
Local $MaxDmgSpear = GetItemMaxReq0($aItem)
Switch $Rarity
Case 2623 ;~ Purple?
Switch $Type
Case 35 ;~ Scythe
If $MaxDmgScythe = True Then
Return True
Else
Return False
EndIf
Case 36 ;-Spear
If $MaxDmgSpear = True Then
Return True
Else
Return False
EndIf
EndSwitch
EndSwitch
Return False
EndFunc
Func GetItemMaxDmg($aItem)
If Not IsDllStruct($aItem) Then $aItem = GetItemByItemID($aItem)
Local $lModString = GetModStruct($aItem)
Local $lPos = StringInStr($lModString, "A8A7") ; Weapon Damage
If $lPos = 0 Then $lPos = StringInStr($lModString, "C867") ; Energy (focus)
If $lPos = 0 Then $lPos = StringInStr($lModString, "B8A7") ; Armor (shield)
If $lPos = 0 Then Return 0
Return Int("0x" & StringMid($lModString, $lPos - 2, 2))
EndFunc
|
|
|
04/02/2025, 22:06
|
#44
|
elite*gold: 0
Join Date: Feb 2024
Posts: 66
Received Thanks: 13
|
I don't see why this isn't working...
Func ShieldsIntoChest()
Local $lItem, $lType
Local $IsShield = IsPerfectShield($lItem)
For $i = 1 To 4
For $j = 1 To DllStructGetData(GetBag($i), 'slots')
$lItem = GetItemBySlot($i, $j)
If DllStructGetData($lItem, 'ID') = 0 Then ContinueLoop
If DllStructGetData($lItem, 'Type') == 24 Then
Switch $IsShield
Case True
MoveItemsToChest($lItem)
Out("Shield Stored.")
Sleep(GetPing() + 500)
EndSwitch
EndIf
Next
Next
EndFunc
|
|
|
04/17/2025, 13:36
|
#45
|
elite*gold: 0
Join Date: May 2011
Posts: 111
Received Thanks: 94
|
Here's my functions for finding and keeping the new +5 mods. The mods are correct but the functions are not fully tested just yet.
Add this to your CanSell function:
Code:
Func CanSell($aItem)
Local $PlusFiveMod = IsPlusFiveMod($aItem)
Switch $PlusFiveMod
Case True
If PlusFiveModFilter($aItem) = "1" Then
KeepStrengthWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "2" Then
KeepExpertiseWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "3" Then
KeepSoulReapingWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "4" Then
KeepFastCastingWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "5" Then
KeepEnergyStorageWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "6" Then
KeepDivineFavorWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "7" Then
KeepSpawningPowerWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "8" Then
KeepCritStrikeWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "9" Then
KeepLeadershipWeapons($aItem)
ElseIf PlusFiveModFilter($aItem) = "10" Then
KeepMysticismWeapons($aItem)
Else
Return True
EndIf
EndSwitch
EndFunc
And put this garbled mess into wherever you keep your item filtering:
Code:
Func IsPlusFiveMod($aItem)
Local $ModStruct = GetModStruct($aItem)
Local $Strength = StringInStr($ModStruct, "0511A828", 0, 1)
Local $Expertise = StringInStr($ModStruct, "0517A828", 0, 1)
Local $SoulReaping = StringInStr($ModStruct, "0506A828", 0, 1)
Local $FastCasting = StringInStr($ModStruct, "0500A828", 0, 1)
Local $EnergyStorage = StringInStr($ModStruct, "050CA828", 0, 1)
Local $DivineFavor = StringInStr($ModStruct, "0510A828", 0, 1)
Local $SpawningPower = StringInStr($ModStruct, "0524A828", 0, 1)
Local $CritStrikes = StringInStr($ModStruct, "0523A828", 0, 1)
Local $Leadership = StringInStr($ModStruct, "0528A828", 0, 1)
Local $Mysticism = StringInStr($ModStruct, "052CA828", 0, 1)
If $Strength > 0 Then
Return True
EndIf
If $Expertise > 0 Then
Return True
EndIf
If $SoulReaping > 0 Then
Return True
EndIf
If $FastCasting > 0 Then
Return True
EndIf
If $EnergyStorage > 0 Then
Return True
EndIf
If $DivineFavor > 0 Then
Return True
EndIf
If $SpawningPower > 0 Then
Return True
EndIf
If $CritStrikes > 0 Then
Return True
EndIf
If $Leadership > 0 Then
Return True
EndIf
If $Mysticism > 0 Then
Return True
EndIf
Return False
EndFunc
Func PlusFiveModFilter($aItem)
Local $ModStruct = GetModStruct($aItem)
Local $Strength = StringInStr($ModStruct, "0511A828", 0, 1)
Local $Expertise = StringInStr($ModStruct, "0517A828", 0, 1)
Local $SoulReaping = StringInStr($ModStruct, "0506A828", 0, 1)
Local $FastCasting = StringInStr($ModStruct, "0500A828", 0, 1)
Local $EnergyStorage = StringInStr($ModStruct, "050CA828", 0, 1)
Local $DivineFavor = StringInStr($ModStruct, "0510A828", 0, 1)
Local $SpawningPower = StringInStr($ModStruct, "0524A828", 0, 1)
Local $CritStrikes = StringInStr($ModStruct, "0523A828", 0, 1)
Local $Leadership = StringInStr($ModStruct, "0528A828", 0, 1)
Local $Mysticism = StringInStr($ModStruct, "052CA828", 0, 1)
If $Strength > 0 Then
Return "1"
EndIf
If $Expertise > 0 Then
Return "2"
EndIf
If $SoulReaping > 0 Then
Return "3"
EndIf
If $FastCasting > 0 Then
Return "4"
EndIf
If $EnergyStorage > 0 Then
Return "5"
EndIf
If $DivineFavor > 0 Then
Return "6"
EndIf
If $SpawningPower > 0 Then
Return "7"
EndIf
If $CritStrikes > 0 Then
Return "8"
EndIf
If $Leadership > 0 Then
Return "9"
EndIf
If $Mysticism > 0 Then
Return "10"
EndIf
Return False
EndFunc
Func KeepStrengthWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return False
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return False
Case 26 ; Staff
Return False
Case 27 ; Sword
Return False
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return False
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepExpertiseWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return True
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return True
Case 22 ; Wand
Return False
Case 26 ; Staff
Return True
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return False
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepSoulReapingWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return True
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return True
Case 26 ; Staff
Return True
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return True
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepFastCastingWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return True
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return True
Case 26 ; Staff
Return True
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return True
Case 35 ; Scythe
Return True
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepEnergyStorageWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return True
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return False
Case 26 ; Staff
Return True
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return True
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepDivineFavorWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return False
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return False
Case 26 ; Staff
Return False
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return False
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepSpawningPowerWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return True
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return False
Case 26 ; Staff
Return False
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return False
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepCritStrikeWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return True
Case 5 ; Bow
Return True
Case 15 ; Hammer
Return True
Case 22 ; Wand
Return False
Case 26 ; Staff
Return False
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return True
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Func KeepLeadershipWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return False
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return True
Case 26 ; Staff
Return True
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return False
Case 36 ; Spear
Return False
EndSwitch
Return False
EndFunc
Func KeepMysticismWeapons($aItem)
Local $lWeaponType = GetItemType($aItem)
Switch $lWeaponType
Case 2 ; Axe
Return False
Case 5 ; Bow
Return False
Case 15 ; Hammer
Return False
Case 22 ; Wand
Return True
Case 26 ; Staff
Return True
Case 27 ; Sword
Return True
Case 32 ; Daggers
Return False
Case 35 ; Scythe
Return False
Case 36 ; Spear
Return True
EndSwitch
Return False
EndFunc
Change the 'KeepXWeapons' as you see fit so you only keep the mods you want.
Enjoy and post here if there are any problems with it.
EDIT: Depending on what GWA2 version you are using, you may need to change 'GetItemType' to 'DllStructGetData($aItem, "Type")'
|
|
|
 |
|
Similar Threads
|
Keiran GWA2 Version PvEovled
07/02/2014 - GW Exploits, Hacks, Bots, Tools & Macros - 7 Replies
Closed because no feedback from community
|
[GWA2] War Supply Bot
06/01/2014 - Trading - 0 Replies
Opening up a thread here again to advertise my war supply bot. I've sold over 80 copies on ************ and sold it a couple times to epvpers a few years ago.
You can reach me on ************ or on skype: raskofshadows.
Prices are set in stone and source is available for a fee.
|
gwa2 autoit broblem
04/06/2014 - GW Bots - 0 Replies
Hat Sich Erledigt kann Gelöscht werden ^^
|
GWA2 A/mo Vaettir Bot; Need Help!!
02/19/2012 - GW Bots - 1 Replies
http://www.elitepvpers.com/forum/gw-exploits-hacks -bots-tools-macros/1568881-gwa-vaettir-mo-farm-bot .html
ENGLISH:
I can't seem to get this to work. I've spent 3-4 hours, read the entire thread here, tried to search for a detailed guide on how to get this to work but it's not.
What I've done was: Downloaded the 2 files shown in the Original Post... "GWA2 A_Mo Vaettirs Farm by bl4ck3lit3.zip"
Extracted it to desktop
Ran GW.EXE as admin.
Set-up assassin with appropriate gear and...
|
All times are GMT +1. The time now is 09:53.
|
|