Hi,
Is the vaettir farmer able to pickup event loot? Like Halloween drops e.g.?
Is the vaettir farmer able to pickup event loot? Like Halloween drops e.g.?
Cannot upload the screen but toolbox tell me the ModelID for Trick-or-Treat Bag is 28434 if it's can help.Quote:
Keep in mind that the ModelID for halloween items could have changed, I can verify this if anyone has any Halloween items from last year I can scan it to see if ModelID remain the same or can wait till 18th and I can check when I get a drop.
Quote:
In the attachment below, inside the vaettir script I gave the following list as Global Const
More than it needs to be but whatever, doesn't matter.Code:#Region Global Items Global Const $RARITY_White = 2621 Global Const $RARITY_Blue = 2623 Global Const $RARITY_Gold = 2624 Global Const $RARITY_Purple = 2626 Global Const $RARITY_Green = 2627 Global Const $RARITY_Red = 33026 #Region Merchant Items Global Const $ITEM_ID_Belt_Pouch = 34 Global Const $ITEM_ID_Bag = 35 Global Const $ITEM_ID_Rune_of_Holding = 2988 Global Const $ITEM_ID_ID_Kit = 2989 Global Const $ITEM_ID_SUP_ID_Kit = 5899 Global Const $ITEM_ID_Salvage_Kit = 2992 Global Const $ITEM_ID_EXP_Salvage_Kit = 2991 Global Const $ITEM_ID_SUP_Salvage_Kit = 5900 Global Const $ITEM_ID_Small_Equipment_Pack = 31221 Global Const $ITEM_ID_Light_Equipment_Pack = 31222 Global Const $ITEM_ID_Large_Equipment_Pack = 31223 Global Const $ITEM_ID_Heavy_Equipment_Pack = 31224 #EndRegion Merchant Items #Region Keys Global Const $ITEM_ID_Ascalonian_Key = 5966 Global Const $ITEM_ID_Steel_Key = 5967 Global Const $ITEM_ID_Krytan_Key = 5964 Global Const $ITEM_ID_Maguuma_Key = 5965 Global Const $ITEM_ID_Elonian_Key = 5960 Global Const $ITEM_ID_Shiverpeak_Key = 5962 Global Const $ITEM_ID_Darkstone_Key = 5963 Global Const $ITEM_ID_Miners_Key = 5961 Global Const $ITEM_ID_Shing_Jea_Key = 6537 Global Const $ITEM_ID_Canthan_Key = 6540 Global Const $ITEM_ID_Kurzick_Key = 6535 Global Const $ITEM_ID_Stoneroot_Key = 6536 Global Const $ITEM_ID_Luxon_Key = 6538 Global Const $ITEM_ID_Deep_Jade_Key = 6539 Global Const $ITEM_ID_Forbidden_Key = 6534 Global Const $ITEM_ID_Istani_Key = 15557 Global Const $ITEM_ID_Kournan_Key = 15559 Global Const $ITEM_ID_Vabbian_Key = 15558 Global Const $ITEM_ID_Ancient_Elonian_Key = 15556 Global Const $ITEM_ID_Margonite_Key = 15560 Global Const $ITEM_ID_Demonic_Key = 19174 Global Const $ITEM_ID_Phantom_Key = 5882 Global Const $ITEM_ID_Obsidian_Key = 5971 Global Const $ITEM_ID_Lockpick = 22751 Global Const $ITEM_ID_Zaishen_Key = 28571 Global Const $ITEM_ID_Bogroots_Boss_Key = 2593 #EndRegion Keys #Region Dyes Global Const $ITEM_ID_Dyes = 146 Global Const $ITEM_ExtraID_Blue_Dye = 2 Global Const $ITEM_ExtraID_Green_Dye = 3 Global Const $ITEM_ExtraID_Purple_Dye = 4 Global Const $ITEM_ExtraID_Red_Dye = 5 Global Const $ITEM_ExtraID_Yellow_Dye = 6 Global Const $ITEM_ExtraID_Brown_Dye = 7 Global Const $ITEM_ExtraID_Orange_Dye = 8 Global Const $ITEM_ExtraID_Silver_Dye = 9 Global Const $ITEM_ExtraID_Black_Dye = 10 Global Const $ITEM_ExtraID_Gray_Dye = 11 Global Const $ITEM_ExtraID_White_Dye = 12 Global Const $ITEM_ExtraID_Pink_Dye = 13 #EndRegion Dyes #Region Scrolls Global $Blue_Scroll_Array[3] = [5853, 5975, 5976] Global $Gold_Scroll_Array[8] = [3256, 3746, 5594, 5595, 5611, 21233, 22279, 22280] Global Const $ITEM_ID_Passage_Scroll_Urgoz = 3256 Global Const $ITEM_ID_Passage_Scroll_UW = 3746 Global Const $ITEM_ID_Heros_Insight_Scroll = 5594 Global Const $ITEM_ID_Berserkers_Insight_Scroll = 5595 Global Const $ITEM_ID_Slayers_Insight_Scroll = 5611 Global Const $ITEM_ID_Adventurers_Insight_Scroll = 5853 Global Const $ITEM_ID_Rampagers_Insight_Scroll = 5975 Global Const $ITEM_ID_Hunters_Insight_Scroll = 5976 Global Const $ITEM_ID_Scroll_of_the_Lightbringer = 21233 Global Const $ITEM_ID_Passage_Scroll_Deep = 22279 Global Const $ITEM_ID_Passage_Scroll_FoW = 22280 #EndRegion Scrolls #Region Alcohol ; For pickup use Global $Alcohol_Array[19] = [910, 2513, 5585, 6049, 6366, 6367, 6375, 15477, 19171, 19172, 19173, 22190, 24593, 28435, 30855, 31145, 31146, 35124, 36682] ; For using them Global $OnePoint_Alcohol_Array[11] = [910, 5585, 6049, 6367, 6375, 15477, 19171, 19172, 19173, 22190, 28435] Global $ThreePoint_Alcohol_Array[7] = [2513, 6366, 24593, 30855, 31145, 31146, 35124] Global $FiftyPoint_Alcohol_Array[1] = [36682] ; Data Global Const $ITEM_ID_Hunters_Ale = 910 Global Const $ITEM_ID_Flask_of_Firewater = 2513 Global Const $ITEM_ID_Dwarven_Ale = 5585 Global Const $ITEM_ID_Witchs_Brew = 6049 Global Const $ITEM_ID_Spiked_Eggnog = 6366 Global Const $ITEM_ID_Vial_of_Absinthe = 6367 Global Const $ITEM_ID_Eggnog = 6375 Global Const $ITEM_ID_Bottle_of_Rice_Wine = 15477 Global Const $ITEM_ID_Zehtukas_Jug = 19171 Global Const $ITEM_ID_Bottle_of_Juniberry_Gin = 19172 Global Const $ITEM_ID_Bottle_of_Vabbian_Wine = 19173 Global Const $ITEM_ID_Shamrock_Ale = 22190 Global Const $ITEM_ID_Aged_Dwarven_Ale = 24593 Global Const $ITEM_ID_Hard_Apple_Cider = 28435 Global Const $ITEM_ID_Bottle_of_Grog = 30855 Global Const $ITEM_ID_Aged_Hunters_Ale = 31145 Global Const $ITEM_ID_Keg_of_Aged_Hunters_Ale = 31146 Global Const $ITEM_ID_Krytan_Brandy = 35124 Global Const $ITEM_ID_Battle_Isle_Iced_Tea = 36682 #EndRegion Alcohol #Region Sweets Global $Sweet_Town_Array[10] = [15528, 15479, 19170, 21492, 21812, 22644, 30208, 31150, 35125, 36681] Global Const $ITEM_ID_Creme_Brulee = 15528 Global Const $ITEM_ID_Red_Bean_Cake = 15479 Global Const $ITEM_ID_Mandragor_Root_Cake = 19170 Global Const $ITEM_ID_Fruitcake = 21492 Global Const $ITEM_ID_Sugary_Blue_Drink = 21812 Global Const $ITEM_ID_Chocolate_Bunny = 22644 Global Const $ITEM_ID_MiniTreats_of_Purity = 30208 Global Const $ITEM_ID_Jar_of_Honey = 31150 Global Const $ITEM_ID_Krytan_Lokum = 35125 Global Const $ITEM_ID_Delicious_Cake = 36681 #Region Sweet Pcon Global $Sweet_Pcon_Array[13] = [17060, 17061, 17062, 22269, 22752, 28431, 28432, 28436, 29431, 31151, 31152, 31153, 35121] Global Const $ITEM_ID_Drake_Kabob = 17060 Global Const $ITEM_ID_Bowl_of_Skalefin_Soup = 17061 Global Const $ITEM_ID_Pahnai_Salad = 17062 Global Const $ITEM_ID_Birthday_Cupcake = 22269 Global Const $ITEM_ID_Golden_Egg = 22752 Global Const $ITEM_ID_Candy_Apple = 28431 Global Const $ITEM_ID_Candy_Corn = 28432 Global Const $ITEM_ID_Slice_of_Pumpkin_Pie = 28436 Global Const $ITEM_ID_Lunar_Fortune_2008 = 29425 ; Rat Global Const $ITEM_ID_Lunar_Fortune_2009 = 29426 ; Ox Global Const $ITEM_ID_Lunar_Fortune_2010 = 29427 ; Tiger Global Const $ITEM_ID_Lunar_Fortune_2011 = 29428 ; Rabbit Global Const $ITEM_ID_Lunar_Fortune_2012 = 29429 ; Dragon Global Const $ITEM_ID_Lunar_Fortune_2013 = 29430 ; Snake Global Const $ITEM_ID_Lunar_Fortune_2014 = 29431 ; Horse Global Const $ITEM_ID_Blue_Rock_Candy = 31151 Global Const $ITEM_ID_Green_Rock_Candy = 31152 Global Const $ITEM_ID_Red_Rock_Candy = 31153 #EndRegion Sweet Pcon #EndRegion Sweets #Region DP Removal Global $DPRemoval_Sweets[8] = [6370, 19039, 21488, 21489, 22191, 26784, 28433, 35127] Global Const $ITEM_ID_Peppermint_CC = 6370 Global Const $ITEM_ID_Refined_Jelly = 19039 Global Const $ITEM_ID_Elixir_of_Valor = 21227 Global Const $ITEM_ID_Wintergreen_CC = 21488 Global Const $ITEM_ID_Rainbow_CC = 21489 Global Const $ITEM_ID_Four_Leaf_Clover = 22191 Global Const $ITEM_ID_Honeycomb = 26784 Global Const $ITEM_ID_Pumpkin_Cookie = 28433 Global Const $ITEM_ID_Oath_of_Purity = 30206 Global Const $ITEM_ID_Seal_of_the_Dragon_Empire = 30211 Global Const $Item_ID_Shining_Blade_Ration = 35127 #EndRegion DP Removal #Region Special Drops Global $Special_Drops[7] = [556, 18345, 21491, 37765, 21833, 28433, 28434] Global Const $ITEM_ID_CC_Shard = 556 Global Const $ITEM_ID_Flame_of_Balthazar = 2514 ; Not really a drop Global Const $ITEM_ID_Golden_Flame_of_Balthazar = 22188 ; Not really a drop Global Const $ITEM_ID_Celestial_Sigil = 2571 ; Not really a drop Global Const $ITEM_ID_Victory_Token = 18345 Global Const $ITEM_ID_Wintersday_Gift = 21491 ; Not really a drop Global Const $ITEM_ID_Wayfarer_Mark = 37765 Global Const $ITEM_ID_Lunar_Token = 21833 Global Const $ITEM_ID_Lunar_Tokens = 28433 Global Const $ITEM_ID_ToT = 28434 #EndRegion Special Drops #Region Stupid Drops Global $Map_Pieces_Array[4] = [24629, 24630, 24631, 24632] Global Const $Item_ID_Kilhn_Testibries_Cuisse = 2113 Global Const $Item_ID_Kilhn_Testibries_Greaves = 2114 Global Const $Item_ID_Kilhn_Testibries_Crest = 2115 Global Const $Item_ID_Kilhn_Testibries_Pauldron = 2116 Global Const $ITEM_ID_Map_Piece_TL = 24629 Global Const $ITEM_ID_Map_Piece_TR = 24630 Global Const $ITEM_ID_Map_Piece_BL = 24631 Global Const $ITEM_ID_Map_Piece_BR = 24632 Global Const $ITEM_ID_Golden_Lantern = 4195 ; Mount Qinkai Quest Item Global Const $ITEM_ID_Hunk_of_Fresh_Meat = 15583 ; NF Quest Item for Drakes on a Plain Global Const $ITEM_ID_Zehtukas_Great_Horn = 15845 Global Const $ITEM_ID_Jade_Orb = 15940 Global Const $ITEM_ID_Herring = 26502 ; Mini Black Moa Chick incubator item Global Const $ITEM_ID_Encrypted_Charr_Battle_Plans = 27976 Global Const $ITEM_ID_Ministerial_Decree = 29109 ; WoC quest item Global Const $ITEM_ID_Keirans_Bow = 35829 ; Not really a drop #EndRegion Stupid Drops #Region Tomes ; All Tomes Global $Tome_Array[20] = [21786, 21787, 21788, 21789, 21790, 21791, 21792, 21793, 21794, 21795, 21796, 21797, 21798, 21799, 21800, 21801, 21802, 21803, 21804, 21805] ;~ Elite Tomes Global $Elite_Tome_Array[10] = [21786, 21787, 21788, 21789, 21790, 21791, 21792, 21793, 21794, 21795] Global Const $ITEM_ID_Assassin_EliteTome = 21786 Global Const $ITEM_ID_Mesmer_EliteTome = 21787 Global Const $ITEM_ID_Necromancer_EliteTome = 21788 Global Const $ITEM_ID_Elementalist_EliteTome = 21789 Global Const $ITEM_ID_Monk_EliteTome = 21790 Global Const $ITEM_ID_Warrior_EliteTome = 21791 Global Const $ITEM_ID_Ranger_EliteTome = 21792 Global Const $ITEM_ID_Dervish_EliteTome = 21793 Global Const $ITEM_ID_Ritualist_EliteTome = 21794 Global Const $ITEM_ID_Paragon_EliteTome = 21795 ;~ Normal Tomes Global $Regular_Tome_Array[10] = [21796, 21797, 21798, 21799, 21800, 21801, 21802, 21803, 21804, 21805] Global Const $ITEM_ID_Assassin_Tome = 21796 Global Const $ITEM_ID_Mesmer_Tome = 21797 Global Const $ITEM_ID_Necromancer_Tome = 21798 Global Const $ITEM_ID_Elementalist_Tome = 21799 Global Const $ITEM_ID_Monk_Tome = 21800 Global Const $ITEM_ID_Warrior_Tome = 21801 Global Const $ITEM_ID_Ranger_Tome = 21802 Global Const $ITEM_ID_Dervish_Tome = 21803 Global Const $ITEM_ID_Ritualist_Tome = 21804 Global Const $ITEM_ID_Paragon_Tome = 21805 #EndRegion Tomes #Region Consumable Crafter Items Global $Conset_Array[7] = [24859, 24860, 24861] Global Const $ITEM_ID_Armor_of_Salvation = 24860 Global Const $ITEM_ID_Essence_of_Celerity = 24859 Global Const $ITEM_ID_Grail_of_Might = 24861 Global Const $ITEM_ID_Powerstone_of_Courage = 24862 Global Const $ITEM_ID_Scroll_of_Resurrection = 26501 Global Const $ITEM_ID_Star_of_Transference = 25896 Global Const $ITEM_ID_Perfect_Salvage_Kit = 25881 #EndRegion Consumable Crafter Items #Region Tonics Global $Tonic_Party_Array[23] = [4730, 15837, 21490, 22192, 30624, 30626, 30628, 30630, 30632, 30634, 30636, 30638, 30640, 30642, 30646, 30648, 31020, 31141, 31142, 31144, 31172, 37771, 37772] Global Const $ITEM_ID_Sinister_Automatonic_Tonic = 4730 Global Const $ITEM_ID_Transmogrifier_Tonic = 15837 Global Const $ITEM_ID_Yuletide_Tonic = 21490 Global Const $ITEM_ID_Beetle_Juice_Tonic = 22192 Global Const $ITEM_ID_Abyssal_Tonic = 30624 Global Const $ITEM_ID_Cerebral_Tonic = 30626 Global Const $ITEM_ID_Macabre_Tonic =30628 Global Const $ITEM_ID_Trapdoor_Tonic = 30630 Global Const $ITEM_ID_Searing_Tonic = 30632 Global Const $ITEM_ID_Autmatonic_Tonic = 30634 Global Const $ITEM_ID_Skeletonic_Tonic = 30636 Global Const $ITEM_ID_Boreal_Tonic = 30638 Global Const $ITEM_ID_Gelatinous_Tonic = 30640 Global Const $ITEM_ID_Phantasmal_Tonic = 30642 Global Const $ITEM_ID_Abominable_Tonic = 30646 Global Const $ITEM_ID_Frosty_Tonic = 30648 Global Const $ITEM_ID_Mischievious_Tonic = 31020 Global Const $ITEM_ID_Mysterious_Tonic = 31141 Global Const $ITEM_ID_Cottontail_Tonic = 31142 Global Const $ITEM_ID_Zaishen_Tonic = 31144 Global Const $ITEM_ID_Unseen_Tonic = 31172 Global Const $ITEM_ID_Spooky_Tonic = 37771 Global Const $ITEM_ID_Minutely_Mad_King_Tonic = 37772 #EndRegion Tonics #Region Wintergreen Weapons Global Const $ITEM_ID_Wintergreen_Axe = 15835 Global Const $ITEM_ID_Wintergreen_Bow = 15836 Global Const $ITEM_ID_Wintergreen_Sword = 16130 Global Const $ITEM_ID_Wintergreen_Daggers = 15838 Global Const $ITEM_ID_Wintergreen_Hammer = 15839 Global Const $ITEM_ID_Wintergreen_Wand = 15840 Global Const $ITEM_ID_Wintergreen_Scythe = 15877 Global Const $ITEM_ID_Wintergreen_Shield = 15878 Global Const $ITEM_ID_Wintergreen_Spear = 15971 Global Const $ITEM_ID_Wintergreen_Staff =16128 #EndRegion Wintergreen Weapons
Then I went ahead and added
Only added 3 ModelID codes add the rest yourself by doing Ctrl+F and looking for the item you want to add then do Ctrl+F and look for halloween and will take you to the code above. Once you are done delete the empty ($ModelID ==) that you didn't use, the line must end withCode:ElseIf ($ModelID == 28434) Or ($ModelID == 28431) Or ($ModelID == 28433) Or ($ModelID == ) Or ($ModelID == ) Or ($ModelID == ) Or ($ModelID == ) Or ($ModelID == )Then Return True; Halloween StuffYou can also add code to do a CheckArray if u want it to look for example all Sweets inside the #Region Sweets... could would go like thisCode:Then Return True;
But then you'll also need to add a code around line 2114 like this:Code:ElseIf CheckArraySweets_Town($lModelID)Then ; Return True
followed by adding inside #Region ArraysCode:If CheckArraySweets($ModelID) Then Return False
but don't do the arrays unless you know what you're doing, In my opinion.Code:Func CheckArraySweets_Town($lModelID) For $p = 0 To (UBound($Array_sweet_town) -1) If ($lModelID == $Array_sweet_town[$p]) Then Return True Next EndFunc
If you got questions, comments, concerns, or suggestions let me know.
Also someone let me know if any issues arise, I sadly cannot test it since I do not have a character that can do the farm at the moment. Keep in mind that the ModelID for halloween items could have changed, I can verify this if anyone has any Halloween items from last year I can scan it to see if ModelID remain the same or can wait till 18th and I can check when I get a drop.
Can you post Error Screen shot? So i know what's going on! I don't have any characters that can run this at the moment, If i do i think it's in one of my accounts that i have to find and try to log into.Quote:
Hello,
It crashed after one run
Quote:
Can you post Error Screen shot? So i know what's going on! I don't have any characters that can run this at the moment, If i do i think it's in one of my accounts that i have to find and try to log into.
Also did you make any changes at all or just ran it the way i posted it? Did you use the newest GWA2 and Headers?
the code currently hasQuote:
Hi,
Here you go, i'm testing as well.
I used only the file you posted and i guess i used the newest GWA2 and headers (the one from the v3,0 Vaeittir file)
Global Const $ITEM_ID_Lockpick = 22751
ElseIf ($lModelID == $ITEM_ID_Lockpick)Then
Return True ; Lockpicks
Well I downloaded it a while back from the first page, I wasn't even aware those Globals were missing. I uploaded it with the changes.Quote:
There is an issue where AgentArray and ProximityCount are not declared and throw an error, so I have added:
Global $lAgentArray = 0
Global $lProximityCount = 0
underneath bot Global Variables at the beginning of the script. I am not sure if that is the correct thing to do but it allows the bot to run. Also, is it possible to have the script wait until the Vaettir hex "Clumsiness" is right about to wear off, to attack with Eremite's skill? I am trying to adapt this script to the D/N vaettir farming build on pvxwiki. I am very slightly familiar with how the coding works, but I am just jigsaw puzzle piecing things together and don't really know what functions allow for waiting until a hex timer is wearing off to use the skill. I can post what I've cobbled together if someone is interested in helping me. I also was wondering if this 0.3 version is the most "updated" model of this script? thanks for your time.
While True ; Main game loop
; Check if your character is NOT hexed and the Eremites skill is recharged
Local $lMe = GetAgentByID(-2)
If Not GetHasHex($lMe) And IsRecharged($Skill_Eremites) Then
UseSkillEx($Skill_Eremites, $lMe) ; Use the skill on yourself
EndIf
Sleep(100) ; Don't peg the CPU, adjust sleep as necessary
WEnd
;~ Description: Tests if an agent is hexed.
Func GetHasHex($aAgent)
If IsDllStruct($aAgent) = 0 Then $aAgent = GetAgentByID($aAgent)
Return BitAND(DllStructGetData($aAgent, 'Effects'), 0x0800) > 0
EndFunc
Thank you Mrjambix. I have another gigi Vaettir script that says version 4.1.6aQuote:
...in summary, this portion while its only a template example should do for Eremites will NOT be used if your character is hexed with "Clumsiness" (or any other hex identified by the GetHasHex function).
Well, just having some input is helping me learn to connect things together. If you have a suggestion I would really appreciate it :)Quote:
gethashex is a poor choice
; ==== Build ====
Global Const $SkillBarTemplate = "OgSjcorILT7XqisXsifbWCNX9gA"
; declare skill numbers to make the code WAY more readable (UseSkill($regen) is better than UseSkill(3))
Global Const $intimidating = 1
Global Const $drunken = 2
Global Const $regen = 3
Global Const $dwarf = 4
Global Const $vos = 5
Global Const $mop = 6
Global Const $eremite = 7
Global Const $eternal = 8
; Store skills energy cost
Global $skillCost[9]
$skillCost[$intimidating] = 10
$skillCost[$drunken] = 5
$skillCost[$regen] = 10
$skillCost[$dwarf] = 5
$skillCost[$vos] = 5
$skillCost[$mop] = 10
$skillCost[$eremite] = 5
$skillCost[$eternal] = 15
;~ Skill IDs
Global Const $SKILL_ID_INTIMIDATING = 1531
Global Const $Skill_ID_DRUNKEN = 2218
Global Const $SKILL_ID_REGEN = 1516
Global Const $SKILL_ID_DWARF = 2220
Global Const $SKILL_ID_VOS = 1759
Global Const $SKILL_ID_MOP = 150
Global Const $SKILL_ID_EREMITE = 1485
Global Const $SKILL_ID_ETERNAL = 2109
Global Const $SKILL_ID_CLUMSINESS = 43
Global Const $SKILL_ID_GROG = 2923
Func CombatLoop()
$CurGold = GetGoldCharacter()
Local $tGold = GetGoldCharacter() ;<== Required for totalising platinum
GUICtrlSetData($Goldies, "Current Gold: " & $CurGold)
Local $lTimer = TimerInit()
If Not $RenderingEnabled Then ClearMemory()
Local $norntitle = GetNornTitle()
If $norntitle > 100 And $norntitle < 160000 Then
Out("Taking Blessing")
GoNearestNPCToCoords(13318, -20826)
Dialog(132)
EndIf
SendChat("")
DisplayCounts()
ChangeWeaponSet(2)
UseSkillEx($eternal)
Sleep(GetPing()+2000)
UseSkillEx($dwarf)
UseSkillEx($regen)
UseSkillEx($drunken)
Out("☾�� Grabbing left ball.") ; Gathering first group of vaettir.
MoveTo(13501, -20925)
MoveTo(13172, -22137)
TarGetNearestEnemy()
MoveAggroing(12496, -22600, 150)
MoveAggroing(11375, -22761, 150)
MoveAggroing(10925, -23466, 150)
MoveAggroing(10917, -24311, 150)
MoveAggroing(9910, -24599, 150)
WaitFor(1*1000)
TargetNearestEnemy()
Out("Preparing MOP for later...") ; Cast initial Mark of Pain. Need to tune this so the Next MoP is cast before the first wears off, and then kill while both are active...
UseSkillEx($mop)
MoveAggroing(8995, -23177, 150)
MoveAggroing(8307, -23187, 150)
MoveAggroing(8213, -22829, 150)
MoveAggroing(8307, -23187, 150)
MoveAggroing(8213, -22829, 150)
MoveAggroing(8740, -22475, 150)
MoveAggroing(8880, -21384, 150)
MoveAggroing(8684, -20833, 150)
MoveAggroing(8982, -20576, 150)
Out("⌛ Holding left ball...") ; Allowing vaettir to group together.
WaitFor(12*1000)
Out("Blasting first ball ��") ; Killing first group of vaettir.
Kill()
WaitFor(2000)
If GetIsDead(-2) Then
Out("☯Ball dropped, try again☯")
$FailCount += 1
GUICtrlSetData($FailsLabel, $FailCount)
Else
Out("Slapped ball sillycessfully.")
$RunCount += 1
GUICtrlSetData($RunsLabel, $RunCount)
EndIf
Buff($lAgentArray)
WaitFor(1200)
Out("✨꘏✨꘏Cleaning mess off floor꘏✨꘏✨") ; Picking up loot.
PickUpLoot()
Buff($lAgentArray)
Out("��☽ Grabbing right ball.") ; Gathering second group of vaettir.
MoveAggroing(10196, -20124, 150)
MoveAggroing(9976, -18338, 150)
MoveAggroing(11316, -18056, 150)
MoveAggroing(10392, -17512, 150)
MoveAggroing(10114, -16948, 150)
MoveAggroing(10729, -16273, 150)
MoveAggroing(10810, -15058, 150)
MoveAggroing(11120, -15105, 150)
MoveAggroing(11670, -15457, 150)
MoveAggroing(12604, -15320, 150)
TarGetNearestEnemy()
MoveAggroing(12476, -16157)
Out("⏳ Holding balls...")
WaitFor(3*1000)
TargetNearestEnemy()
Out("��Throwing MOP at vaettir��")
UseSkillEx($mop)
Out("⌛ Holding balls...")
MoveAggroing(12920, -17032, 30)
MoveAggroing(12847, -17136, 30)
MoveAggroing(12720, -17222, 30)
Out("�� Squeezing balls together...")
WaitFor(200)
MoveAggroing(12617, -17273, 30)
WaitFor(200)
MoveAggroing(12518, -17305, 20)
WaitFor(200)
MoveAggroing(12445, -17327, 10)
;Avoids a rare-ish occurence where the bot starts the kill sequence just before SF runs out. Most noticeable on non Assassin primary Professions.
; Out("Waiting for Shadow Form...")
; Local $lDeadlock_2 = TimerInit()
; $sf_Time = TimerDiff($timer)
; Out($sf_Time)
; Do
; WaitFor(100)
; If GetIsDead(-2) = 1 Then Return
; Until (TimerDiff($timer)) < $sf_Time Or (TimerDiff($lDeadlock_2) > 20000)
Out("✋✋✋ Slapping the balls!") ; Killing second group of vaettir.
Kill()
If GetIsDead(-2) Then
Out("We got played.")
$FailCount += 1
GUICtrlSetData($FailsLabel, $FailCount)
Else
Out("We drained them dry")
$RunCount += 1
GUICtrlSetData($RunsLabel, $RunCount)
EndIf
ChangeWeaponSet(2)
Buff($lAgentArray)
WaitFor(1200)
IF NOT (GUICtrlRead($DisableLooting) == $GUI_Checked) Then
Out("₵£₤₳₦₰₦₲ M₤$$")
PickUpLoot()
EndIf
;==> update rolling totals ==<
updateStatistics($tGold)
;===> Test Start ===>
; Out("Pausing")
;GUICtrlSetData($Button, "Paused")
; Sleep(500)
; Do
; Sleep(100)
;Until GUICtrlRead($Button) <> "Paused"
;<=== Test End# <===
If GetIsDead(-2) Then
$FailCount += 1
GUICtrlSetData($FailsLabel, "Fails: " & $FailCount)
; StoreRun(GetCharname(), TimerDiff($lTimer), 0)
Else
$RunCount += 1
GUICtrlSetData($RunsLabel, "Runs: " & $RunCount)
; StoreRun(GetCharname(), TimerDiff($lTimer), 1)
EndIf
Out("☝ One More Time")
MoveAggroing(12289, -17700)
MoveAggroing(15318, -20351)
Local $tDeadLock = TimerInit()
While GetIsDead(-2)
Out("☠☠☠ DEAD ☠☠☠")
Sleep(1000)
If TimerDiff($tDeadLock) > 60000 Then
$Deadlocked = True
Return
EndIf
WEnd
Out("Zoning to Bjora Marches")
Move(15865, -20531)
WaitMapLoading($Map_ID_BJORA)
Sleep(GetPing()+2000)
Out("Zoning to Jaga Moraine")
MoveTo(-19968, 5564)
Move(-20076, 5580, 30)
WaitMapLoading($Map_ID_JAGA)
Sleep(GetPing()+2000)
ClearMemory()
; _PurgeHook()
EndFunc
Func Buff(Const ByRef $lAgentArray)
CastRegen($lAgentArray)
If GetEffectTimeRemaining($Skill_ID_REGEN) < 2000 Then CastRegen($lAgentArray)
Sleep(GetPing() + 250)
If GetEffectTimeRemaining($Skill_ID_DWARF) < 3000 Then UseSkillEx($dwarf)
Sleep(GetPing() + 500)
If GetEffectTimeRemaining($Skill_ID_INTIMIDATING) < 3000 Then UseSkillEx($intimidating)
If IsRecharged($intimidating) And DllStructGetData(GetEffect($intimidating), "SkillID") == 0 Then
UseSkillEx($intimidating)
ElseIf DllStructGetData(-2, "HP") < 1 Then
UseSkillEx($intimidating)
ElseIf $lAdjCount > 20 Then
CastRegen($lAgentArray)
UseSkillEx($dwarf)
UseSkillEx($Intimidating)
EndIf
BeFast($lProximityCount)
EndFunc
Func CastEternal()
If IsRecharged($eternal) Then UseSkillEx($eternal)
EndFunc ;==>Cast Eternal Aura
Func CastRegen($lAgentArray)
If GetIsDead(-2) Then Return
If DllStructGetData(-2, "HP") < 1 And IsRecharged($regen) Then
UseSkillEx($regen)
EndIf
EndFunc ;==>Cast Regen
Func BeFast($lProximityCount)
If GetEffectTimeRemaining($Skill_ID_DRUNKEN) < 3000 And IsRecharged($drunken) Then
UseSkillEx($drunken)
EndIf
EndFunc
Func Eremite()
If IsRecharged($vos) And IsRecharged($regen) Then
UseSkillEx($vos)
UseSkillEx($regen)
While True ; Main game loop
Local $lMe = GetAgentByID(-2) ; Check if your character is NOT hexed and the Eremites skill is recharged
If Not GetEffectTimeRemaining($Skill_ID_CLUMSINESS, $lMe) <=100 Then ContinueLoop
If GetEffectTimeRemaining($Skill_ID_CLUMSINESS, $lMe) <= 100 And IsRecharged($eremite) Then
ChangeWeaponSet(1)
UseSkillEx($eremite, $lMe) ; Use the skill on yourself
EndIf
Sleep(50) ; Don't peg the CPU, adjust sleep as necessary
WEnd
EndIf
EndFunc
Func Kill()
TargetNearestEnemy()
If GetIsDead(-2) Then
Return
If Not IsRecharged($mop) Then
Return
EndIf
If IsRecharged($mop) Then
UseSkillEx($mop)
Eremite()
EndIf
EndIf
ChangeWeaponSet(2)
Buff($lAgentArray)
EndFunc ;==>Kill
"GetEffectTimeRemaining(43) = 0 " if you only care about clumsiness.. i think otherwise he will never attack since there are plenty of other hexes you dont care aboutQuote:
Thank you Mrjambix. I have another gigi Vaettir script that says version 4.1.6a
but I really have no idea how to tell. It seems similar to the one you linked on the previous page.
Well, just having some input is helping me learn to connect things together. If you have a suggestion I would really appreciate it :)
I am slowly going through GWA2 file and reading what the functions are.
thanks again.
Edit:GWToolbox identifies the skill ID as 43 when I hover over Clumsiness.
Global Const $SKILL_ID_CLUMSINESS = 43
Is this what I should use in place of GetHasHex, and use GetHasEffect?
These are the main areas I think I don't understand how to make work together:
And also, should i stick with Autoit 3.14.5 or use the newest 3.16.1?Code:; ==== Build ==== Global Const $SkillBarTemplate = "OgSjcorILT7XqisXsifbWCNX9gA" ; declare skill numbers to make the code WAY more readable (UseSkill($regen) is better than UseSkill(3)) Global Const $intimidating = 1 Global Const $drunken = 2 Global Const $regen = 3 Global Const $dwarf = 4 Global Const $vos = 5 Global Const $mop = 6 Global Const $eremite = 7 Global Const $eternal = 8 ; Store skills energy cost Global $skillCost[9] $skillCost[$intimidating] = 10 $skillCost[$drunken] = 5 $skillCost[$regen] = 10 $skillCost[$dwarf] = 5 $skillCost[$vos] = 5 $skillCost[$mop] = 10 $skillCost[$eremite] = 5 $skillCost[$eternal] = 15 ;~ Skill IDs Global Const $SKILL_ID_INTIMIDATING = 1531 Global Const $Skill_ID_DRUNKEN = 2218 Global Const $SKILL_ID_REGEN = 1516 Global Const $SKILL_ID_DWARF = 2220 Global Const $SKILL_ID_VOS = 1759 Global Const $SKILL_ID_MOP = 150 Global Const $SKILL_ID_EREMITE = 1485 Global Const $SKILL_ID_ETERNAL = 2109 Global Const $SKILL_ID_CLUMSINESS = 43 Global Const $SKILL_ID_GROG = 2923 Func CombatLoop() $CurGold = GetGoldCharacter() Local $tGold = GetGoldCharacter() ;<== Required for totalising platinum GUICtrlSetData($Goldies, "Current Gold: " & $CurGold) Local $lTimer = TimerInit() If Not $RenderingEnabled Then ClearMemory() Local $norntitle = GetNornTitle() If $norntitle > 100 And $norntitle < 160000 Then Out("Taking Blessing") GoNearestNPCToCoords(13318, -20826) Dialog(132) EndIf SendChat("") DisplayCounts() ChangeWeaponSet(2) UseSkillEx($eternal) Sleep(GetPing()+2000) UseSkillEx($dwarf) UseSkillEx($regen) UseSkillEx($drunken) Out("☾�� Grabbing left ball.") ; Gathering first group of vaettir. MoveTo(13501, -20925) MoveTo(13172, -22137) TarGetNearestEnemy() MoveAggroing(12496, -22600, 150) MoveAggroing(11375, -22761, 150) MoveAggroing(10925, -23466, 150) MoveAggroing(10917, -24311, 150) MoveAggroing(9910, -24599, 150) WaitFor(1*1000) TargetNearestEnemy() Out("Preparing MOP for later...") ; Cast initial Mark of Pain. Need to tune this so the Next MoP is cast before the first wears off, and then kill while both are active... UseSkillEx($mop) MoveAggroing(8995, -23177, 150) MoveAggroing(8307, -23187, 150) MoveAggroing(8213, -22829, 150) MoveAggroing(8307, -23187, 150) MoveAggroing(8213, -22829, 150) MoveAggroing(8740, -22475, 150) MoveAggroing(8880, -21384, 150) MoveAggroing(8684, -20833, 150) MoveAggroing(8982, -20576, 150) Out("⌛ Holding left ball...") ; Allowing vaettir to group together. WaitFor(12*1000) Out("Blasting first ball ��") ; Killing first group of vaettir. Kill() WaitFor(2000) If GetIsDead(-2) Then Out("☯Ball dropped, try again☯") $FailCount += 1 GUICtrlSetData($FailsLabel, $FailCount) Else Out("Slapped ball sillycessfully.") $RunCount += 1 GUICtrlSetData($RunsLabel, $RunCount) EndIf Buff($lAgentArray) WaitFor(1200) Out("✨꘏✨꘏Cleaning mess off floor꘏✨꘏✨") ; Picking up loot. PickUpLoot() Buff($lAgentArray) Out("��☽ Grabbing right ball.") ; Gathering second group of vaettir. MoveAggroing(10196, -20124, 150) MoveAggroing(9976, -18338, 150) MoveAggroing(11316, -18056, 150) MoveAggroing(10392, -17512, 150) MoveAggroing(10114, -16948, 150) MoveAggroing(10729, -16273, 150) MoveAggroing(10810, -15058, 150) MoveAggroing(11120, -15105, 150) MoveAggroing(11670, -15457, 150) MoveAggroing(12604, -15320, 150) TarGetNearestEnemy() MoveAggroing(12476, -16157) Out("⏳ Holding balls...") WaitFor(3*1000) TargetNearestEnemy() Out("��Throwing MOP at vaettir��") UseSkillEx($mop) Out("⌛ Holding balls...") MoveAggroing(12920, -17032, 30) MoveAggroing(12847, -17136, 30) MoveAggroing(12720, -17222, 30) Out("�� Squeezing balls together...") WaitFor(200) MoveAggroing(12617, -17273, 30) WaitFor(200) MoveAggroing(12518, -17305, 20) WaitFor(200) MoveAggroing(12445, -17327, 10) ;Avoids a rare-ish occurence where the bot starts the kill sequence just before SF runs out. Most noticeable on non Assassin primary Professions. ; Out("Waiting for Shadow Form...") ; Local $lDeadlock_2 = TimerInit() ; $sf_Time = TimerDiff($timer) ; Out($sf_Time) ; Do ; WaitFor(100) ; If GetIsDead(-2) = 1 Then Return ; Until (TimerDiff($timer)) < $sf_Time Or (TimerDiff($lDeadlock_2) > 20000) Out("✋✋✋ Slapping the balls!") ; Killing second group of vaettir. Kill() If GetIsDead(-2) Then Out("We got played.") $FailCount += 1 GUICtrlSetData($FailsLabel, $FailCount) Else Out("We drained them dry") $RunCount += 1 GUICtrlSetData($RunsLabel, $RunCount) EndIf ChangeWeaponSet(2) Buff($lAgentArray) WaitFor(1200) IF NOT (GUICtrlRead($DisableLooting) == $GUI_Checked) Then Out("₵£₤₳₦₰₦₲ M₤$$") PickUpLoot() EndIf ;==> update rolling totals ==< updateStatistics($tGold) ;===> Test Start ===> ; Out("Pausing") ;GUICtrlSetData($Button, "Paused") ; Sleep(500) ; Do ; Sleep(100) ;Until GUICtrlRead($Button) <> "Paused" ;<=== Test End# <=== If GetIsDead(-2) Then $FailCount += 1 GUICtrlSetData($FailsLabel, "Fails: " & $FailCount) ; StoreRun(GetCharname(), TimerDiff($lTimer), 0) Else $RunCount += 1 GUICtrlSetData($RunsLabel, "Runs: " & $RunCount) ; StoreRun(GetCharname(), TimerDiff($lTimer), 1) EndIf Out("☝ One More Time") MoveAggroing(12289, -17700) MoveAggroing(15318, -20351) Local $tDeadLock = TimerInit() While GetIsDead(-2) Out("☠☠☠ DEAD ☠☠☠") Sleep(1000) If TimerDiff($tDeadLock) > 60000 Then $Deadlocked = True Return EndIf WEnd Out("Zoning to Bjora Marches") Move(15865, -20531) WaitMapLoading($Map_ID_BJORA) Sleep(GetPing()+2000) Out("Zoning to Jaga Moraine") MoveTo(-19968, 5564) Move(-20076, 5580, 30) WaitMapLoading($Map_ID_JAGA) Sleep(GetPing()+2000) ClearMemory() ; _PurgeHook() EndFunc Func Buff(Const ByRef $lAgentArray) CastRegen($lAgentArray) If GetEffectTimeRemaining($Skill_ID_REGEN) < 2000 Then CastRegen($lAgentArray) Sleep(GetPing() + 250) If GetEffectTimeRemaining($Skill_ID_DWARF) < 3000 Then UseSkillEx($dwarf) Sleep(GetPing() + 500) If GetEffectTimeRemaining($Skill_ID_INTIMIDATING) < 3000 Then UseSkillEx($intimidating) If IsRecharged($intimidating) And DllStructGetData(GetEffect($intimidating), "SkillID") == 0 Then UseSkillEx($intimidating) ElseIf DllStructGetData(-2, "HP") < 1 Then UseSkillEx($intimidating) ElseIf $lAdjCount > 20 Then CastRegen($lAgentArray) UseSkillEx($dwarf) UseSkillEx($Intimidating) EndIf BeFast($lProximityCount) EndFunc Func CastEternal() If IsRecharged($eternal) Then UseSkillEx($eternal) EndFunc ;==>Cast Eternal Aura Func CastRegen($lAgentArray) If GetIsDead(-2) Then Return If DllStructGetData(-2, "HP") < 1 And IsRecharged($regen) Then UseSkillEx($regen) EndIf EndFunc ;==>Cast Regen Func BeFast($lProximityCount) If GetEffectTimeRemaining($Skill_ID_DRUNKEN) < 3000 And IsRecharged($drunken) Then UseSkillEx($drunken) EndIf EndFunc Func Eremite() If IsRecharged($vos) And IsRecharged($regen) Then UseSkillEx($vos) UseSkillEx($regen) While True ; Main game loop Local $lMe = GetAgentByID(-2) ; Check if your character is NOT hexed and the Eremites skill is recharged If Not GetEffectTimeRemaining($Skill_ID_CLUMSINESS, $lMe) <=100 Then ContinueLoop If GetEffectTimeRemaining($Skill_ID_CLUMSINESS, $lMe) <= 100 And IsRecharged($eremite) Then ChangeWeaponSet(1) UseSkillEx($eremite, $lMe) ; Use the skill on yourself EndIf Sleep(50) ; Don't peg the CPU, adjust sleep as necessary WEnd EndIf EndFunc Func Kill() TargetNearestEnemy() If GetIsDead(-2) Then Return If Not IsRecharged($mop) Then Return EndIf If IsRecharged($mop) Then UseSkillEx($mop) Eremite() EndIf EndIf ChangeWeaponSet(2) Buff($lAgentArray) EndFunc ;==>Kill