GW1 Bots working in July 2017

08/27/2017 00:07 Ttrader#241
Quote:
Originally Posted by Wambofisch View Post
Is there any way to add Wayfarer's Marks to the CoF dervish bot? Thanks in advance :)
Haven't tested this but try adding:
If $ModelID == 37765 Then Return True ;37765 = Wayfarer Mark

in the CanPickUp function where you see the rest of these:
If $ModelID == 929 Then Return True ; 929 = Dust
If $ModelID == 24353 Then Return True ; Diessa
If $ModelID == 24354 Then Return True ; Rin
If $ModelID == 22751 Then Return True ; Lockpick
If $ModelID == 22191 Then Return True ; Clover

I'll test when I get home later tonight but that should work for you.
08/27/2017 15:15 Lillebror_1#242
hey can some 1 update this bot? its since 2013 :S
08/27/2017 16:59 calypso974fire#243
Hello all,

I'm doing my luxon title atm with the MQ bot.

1) Since i have a Legionnaire Summoning Crystal, i'd like the bot to use it to pop the legionnaire. any idea of how to do it ? its ID from GWToolbox is 37810.

2) I'm doing my chest title as well, but the MQ bot sell all the lockpicks i loot. Is it possible to exclude lockpicks from selling or to exclude one bag of the list of items to sell ?

ok i just commented this line and it works, it skill the 4th bag :

Func SellItemToMerchant()
CurrentAction("Storing Gold Unid")
StoreGolds()
RNDSLP(1000)
CurrentAction("Going to merchant")
$merchant = GetNearestNPCToCoords(-4318, 11298)
RNDSLP(1000)
GoToNPC($merchant)
BuyIDKit()
$IDKitBought = $IDKitBought + 1
RNDSLP(1000)
CurrentAction("Ident inventory")
Ident(1)
Ident(2)
Ident(3)
Ident(4)
CurrentAction("Sell inventory")
Sell(1)
Sell(2)
Sell(3)
;Sell(4)
EndFunc ;==>SellItemToMerchant

if anyone got an idea for the Summoning stone...
08/27/2017 22:56 Deadshot4241#244
Thanks for all the bots all work great! However on the EOTN VQ Bot for deldrimore it runs freezie lare after it does one run it does not successfully zone to the guild hall to refresh the quest so it cannot re enter the dungeon. Anyone have any idea how to fix this?

Also does anyone have a bot for cartographer? Or a text mod to make the title easier?

Thanks!
08/28/2017 08:21 Blan Balla#245
How can you make the Bandit farm work for pre?
Where do my ele skills need to be?
08/28/2017 10:32 mhaendler#246
Quote:
Originally Posted by calypso974fire View Post
Hello all,

I'm doing my luxon title atm with the MQ bot.

1) Since i have a Legionnaire Summoning Crystal, i'd like the bot to use it to pop the legionnaire. any idea of how to do it ? its ID from GWToolbox is 37810.

2) I'm doing my chest title as well, but the MQ bot sell all the lockpicks i loot. Is it possible to exclude lockpicks from selling or to exclude one bag of the list of items to sell ?

ok i just commented this line and it works, it skill the 4th bag :

Func SellItemToMerchant()
CurrentAction("Storing Gold Unid")
StoreGolds()
RNDSLP(1000)
CurrentAction("Going to merchant")
$merchant = GetNearestNPCToCoords(-4318, 11298)
RNDSLP(1000)
GoToNPC($merchant)
BuyIDKit()
$IDKitBought = $IDKitBought + 1
RNDSLP(1000)
CurrentAction("Ident inventory")
Ident(1)
Ident(2)
Ident(3)
Ident(4)
CurrentAction("Sell inventory")
Sell(1)
Sell(2)
Sell(3)
;Sell(4)
EndFunc ;==>SellItemToMerchant

if anyone got an idea for the Summoning stone...
Code:
Global Const $ITEM_ID_LEGIONNAIRE_STONE = 37810

Func UseLegionStone()
   Local $aBag
   Local $aItem
   Sleep(200)
   For $i = 1 To 4
	  $aBag = GetBag($i)
	  For $j = 1 To DllStructGetData($aBag, "Slots")
		 $aItem = GetItemBySlot($aBag, $j)
		 If DllStructGetData($aItem, "ModelID") == $ITEM_ID_LEGIONNAIRE_STONE Then 
			UseItem($aItem)
			Return True
		 EndIf
	  Next
   Next
EndFunc
There you go, a function to use the legion stone :)

For the bot to stop selling the lockpicks here is a hint what you can do:

In the sell function there is most likely a function like "cansell" or "allowedtosell" or something similar.
Where it moves of the current "bag" and looks up if its allowed to sell the "current" item. just add
a check like the one in the "UseLegionStone" Function if the "current item" is a "lockpick" // the modelid is same

if yes -> return false to not sell the item

_mhaendler
08/28/2017 11:24 calypso974fire#247
WOW you are awesome mhaendler !
thank you very much, i updated the VQ function with this and it worked perfectly:

Code:
Func VQ()
	CurrentAction("Waiting to really complete load")
	rndslp(10000)
	CurrentAction("Poping Legionnaire thanks to mhaendler !!")
	UseLegionStone()
as i understand the function: to scan all the items one by one in the 4 bags until you find the idem with the code 37810 (previously define with a constant). Once you find it you use it with the fonction UseItem.

that's really good. simple but very effective.

For the lockpicks, i just excluded the 4th bag from the selling function. that wait i can keep idems on by characters and i'm sure they wont be sold.

My next step was to find a way to open chests and pick up loots during the runs. So i spent a bit of time this moring trying to find a solution to open chests during VQ and i found a way to do it.

i'm not a coder so my solution might be kinda trashy to some of you, but i didn't wanted to use whatever pepole post but i wanted to contribute :)

Here is my solution :

i picked up this code from the chest bot and made it complient with the luxon bot ($DeadOnTheRun = 0 vs Not $WeAreDead for exemple) :

Code:
Func DoChest()
	If $DeadOnTheRun = 0 then CurrentAction("Going To open This chest")
	If $DeadOnTheRun = 0 then GoSignpost(-1)
	local $TimeCheck = TimerInit()
	If $DeadOnTheRun = 0 then $chest = GetCurrentTarget()
	If $DeadOnTheRun = 0 then $oldCoordsX = DllStructGetData($chest, "X")
	If $DeadOnTheRun = 0 then $oldCoordsY = DllStructGetData($chest, "Y")
	If $DeadOnTheRun = 0 then
		Do
			rndslp(500)
		Until CheckArea($oldCoordsX, $oldCoordsY) Or TimerDiff($TimeCheck) > 90000 Or $DeadOnTheRun = 1
	EndIf
	If $DeadOnTheRun = 0 then rndslp(1000)
	If $DeadOnTheRun = 0 then OpenChest()
	If $DeadOnTheRun = 0 then rndslp(1000)
	If $DeadOnTheRun = 0 then TargetNearestItem()
	If $DeadOnTheRun = 0 then rndslp(500)
	If $DeadOnTheRun = 0 then $item = GetCurrentTarget()
	If $DeadOnTheRun = 0 then
		Do
			If $DeadOnTheRun = 0 then rndslp(500)
			If $DeadOnTheRun = 0 then PickUpItem($item)
		Until DllStructGetData($item, 'AgentID') = 0 Or TimerDiff($TimeCheck) > 90000 or $DeadOnTheRun = 1
	EndIf
EndFunc   ;==>DoChest

Func LookForChest()
	If $DeadOnTheRun = 0 then TargetNearestItem()
	If $DeadOnTheRun = 0 then rndslp(500)
	If DllStructGetData(GetCurrentTarget(), 'Type') = 512 and $DeadOnTheRun = 0 Then
		If $DeadOnTheRun = 0 then DoChest()
		If $DeadOnTheRun = 0 then rndslp(500)
	EndIf
EndFunc
the i added the fonction LookForChest() before moving to each aggro :

Code:
	If $DeadOnTheRun = 0 Then $enemy = "Yeti"
	[COLOR="red"]If $DeadOnTheRun = 0 Then LookForChest()[/COLOR]
	If $DeadOnTheRun = 0 Then AggroMoveToEx(-17348, -9895, $enemy)

	If $DeadOnTheRun = 0 Then $enemy = "Oni and Wallows"
	[COLOR="red"]If $DeadOnTheRun = 0 Then LookForChest()[/COLOR]
	If $DeadOnTheRun = 0 Then AggroMoveToEx(-14702, -6671, $enemy)

	If $DeadOnTheRun = 0 Then $enemy = "Oni and Wallows"
	[COLOR="Red"]If $DeadOnTheRun = 0 Then LookForChest()[/COLOR]
	If $DeadOnTheRun = 0 Then AggroMoveToEx(-11080, -6126, $enemy, 2000)
This might not be very efficient nor accurate, but it works : the bot oppened a chest after killing Yetis !!! :)

If someone has a better idea or a better way to do this i'm available to test it !
08/28/2017 13:26 mhaendler#248

Np you're welcome!

I have a suggestion for your "Chest looking"

In the "CommongFunction.au3" File is a Function called "Fight" this "Fight"-Function is called in your "AggroMoveToEx" and is used to fight the enemies and loot the stuff, which is dropped.

Code:
Func Fight($x, $s = "enemies")
	Local $lastId = 99999, $coordinate[2],$timer
	CurrentAction("Fighting " & $s & " !")

	Do
		$Me = GetAgentByID(-2)
		$energy = GetEnergy()
		$skillbar = GetSkillbar()
		$useSkill = -1
		For $i = 0 To 7
			$recharged = DllStructGetData($skillbar, 'Recharge' & ($i + 1))
			$strikes = DllStructGetData($skillbar, 'AdrenalineA' & ($i + 1))
			If $recharged = 0 AND $intSkillEnergy[$i] <= $energy  Then
				$useSkill = $i + 1
				ExitLoop
			EndIf
		Next

		$target = GetNearestEnemyToAgent(-2)
		$distance = ComputeDistance(DllStructGetData($target, 'X'),DllStructGetData($target, 'Y'),DllStructGetData(GetAgentByID(-2), 'X'),DllStructGetData(GetAgentByID(-2), 'Y'))
		If $useSkill <> -1 AND $target <> 0 AND $distance < $x Then
			If DllStructGetData($target, 'Id') <> $lastId Then
				ChangeTarget($target)
				RndSleep(150)
				CallTarget($target)
				RndSleep(150)
				Attack($target)
				$lastId = DllStructGetData($target, 'Id')
				$coordinate[0] = DllStructGetData($target, 'X')
				$coordinate[1] = DllStructGetData($target, 'Y')
				$timer = TimerInit()
				Do
					Move($coordinate[0],$coordinate[1])
					rndsleep(500)
					$Me = GetAgentByID(-2)
					$distance = ComputeDistance($coordinate[0],$coordinate[1],DllStructGetData($Me, 'X'),DllStructGetData($Me, 'Y'))
				Until $distance < 1100 or TimerDiff($timer) > 10000
			EndIf
			RndSleep(150)
			$timer = TimerInit()
			Do
				$target = GetNearestEnemyToAgent(-2)
				$distance = ComputeDistance(DllStructGetData($target, 'X'),DllStructGetData($target, 'Y'),DllStructGetData(GetAgentByID(-2), 'X'),DllStructGetData(GetAgentByID(-2), 'Y'))
				If $distance < 1250 Then
					UseSkill($useSkill, $target)
					RndSleep(500)
				EndIf
				Attack($target)
				$Me = GetAgentByID(-2)
				$target = GetAgentByID(DllStructGetData($target, 'Id'))
				$coordinate[0] = DllStructGetData($target, 'X')
				$coordinate[1] = DllStructGetData($target, 'Y')
				$distance = ComputeDistance($coordinate[0],$coordinate[1],DllStructGetData($Me, 'X'),DllStructGetData($Me, 'Y'))
			Until DllStructGetData(GetSkillbar(), 'Recharge' & $useSkill) >0 or DllStructGetData($target, 'HP') < 0.005 Or $distance > $x Or TimerDiff($timer) > 5000
		EndIf
		$target = GetNearestEnemyToAgent(-2)
		$distance = ComputeDistance(DllStructGetData($target, 'X'),DllStructGetData($target, 'Y'),DllStructGetData(GetAgentByID(-2), 'X'),DllStructGetData(GetAgentByID(-2), 'Y'))
	Until DllStructGetData($target, 'ID') = 0 OR $distance > $x
	If CountSlots() = 0 then
		CurrentAction("Inventory full")
	Else
		CurrentAction("Picking up items")
		PickupItems(-1, $x)
                LookForChest() ;//ADD THIS LINE HERE
	EndIf
EndFunc
You can modify this function to look for chests after the bot picked up the loot (see the 3rd line from the bottom), that way you dont have to edit multiple lines of code and your bot looks for a chest after every fight he did

_mhaendler

//EDIT: Spoilered the large block
08/28/2017 14:13 calypso974fire#249
Yeah you are absolutly right !
I didn't dig deep enough :)

i'll test it

Quote:
Originally Posted by Deadshot4241 View Post
Also does anyone have a bot for cartographer? Or a text mod to make the title easier?
I'm not sure a bot exists for this as it'd be very complex to code, but you can find mods that helps a lot:
[Only registered and activated users can see links. Click Here To Register...]
08/28/2017 20:26 Demogan#250
anyway you might have the up to date dragon moss R/A bot or an outdated version I can update myself ?
08/28/2017 23:45 sawn8868#251
Anyone know how the Pre-searing bandits bot running?
What skills i need ?
Thanks.
08/29/2017 02:20 sasuke34#252
Hey thanks for all the bots !
Is there a bot for Gladiator title ?
thanks again for the sharing
08/29/2017 09:21 Overload91#253
Is there a bot to exchange wayfares marks? Gets really annoying since u can only exchange one at a time
08/29/2017 10:07 calypso974fire#254
You can do something very easy with a mouse recorder (like Mouse Recorder Pro 2).

Just record several exchange and then the recorder will do it by its own
08/29/2017 14:52 Lillebror_1#255
can some 1 update this? it keeps dieing when it try to run to the farming spot :(