|
You last visited: Today at 17:30
Advertisement
GW Working Bots 2020
Discussion on GW Working Bots 2020 within the GW Exploits, Hacks, Bots, Tools & Macros forum part of the Guild Wars category.
02/01/2021, 10:00
|
#1516
|
elite*gold: 26
Join Date: Apr 2019
Posts: 65
Received Thanks: 28
|
Quote:
Originally Posted by OriginsEXE
Not going to lie. I don't get why we update old bots for people that literally cant even read an error code or take the time to figure out what it means to have a duplicate function somewhere. All it does is make more farming competition for the people that actually put in the minute amount of work that it takes to fix them.
|
I can't agree more with you on this matter...
That is why I am no longer responding to people asking for fixed bots and only helping those that have at least narrowed down their issues.
The basic reason for that policy is that :
* The first group did not bother at all to just read a "fùçk1n8" error message and just post "ouinouinouin bot is not working please fix it". Worse, some even forget the "please/thanks"...
Whereas the second one took at least 5-10m to "understand" what it could be and ask question to learn if and how they could fix it themselves.
Quote:
Originally Posted by list comprehension
Well as you have probably noticed less and less people update stuff publicly. The people who want to learn have slowly sifted into groups sharing private work that absolutely makes the public half broken bots look like a joke.
|
It is indeed sad but who have to be blamed about this ? The lazy leechers or the one that once provided real help and content ?
|
|
|
02/01/2021, 10:09
|
#1517
|
elite*gold: 0
Join Date: Apr 2016
Posts: 305
Received Thanks: 163
|
Quote:
Originally Posted by Yoshikawa91
I can't agree more with you on this matter...
That is why I am no longer responding to people asking for fixed bots and only helping those that have at least narrowed down their issues.
The basic reason for that policy is that :
* The first group did not bother at all to just read a "fùçk1n8" error message and just post "ouinouinouin bot is not working please fix it". Worse, some even forget the "please/thanks"...
Whereas the second one took at least 5-10m to "understand" what it could be and ask question to learn if and how they could fix it themselves.
It is indeed sad but who have to be blamed about this ? The lazy leechers or the one that once provided real help and content ?
|
Blame who ever you want - but stuff won't change people who want to really learn will find a way to connect the others will sit on the dry for a while until people decide they have a generous day
it fully depends on your efforts on which side you end up
|
|
|
02/01/2021, 10:50
|
#1518
|
elite*gold: 0
Join Date: Feb 2021
Posts: 4
Received Thanks: 0
|
Hey Folks,
I got a question to one function specifically. First of all I write all of my bots on my own so I got some basic knowledge of how most of the bots found in this forum work. I use the same GWA2.au3 as most others with some minor changes for personal preference.
But since the last header update I noticed, that the pickuploot()-function has gotten slow as hell. Like the character picks up stuff 40 seconds after killing the last foe and if he has to pick up multiple items it again needs like 10-15 seconds for the next one ... I didn't make any changed to this function so it's the same you all use.
So my question would be if anyone else encounters this problem or am I the only one?
Or does anyone has a fix for this? Basically all I did after the recent update was to update the headers, ans well bots are working - just the pickuploot() ist kinda well broken.
Any help is highly appreciated.
Peace out
|
|
|
02/01/2021, 10:55
|
#1519
|
elite*gold: 26
Join Date: Apr 2019
Posts: 65
Received Thanks: 28
|
Quote:
Originally Posted by famajop530
It looks like the new patch broke the TraderRequest function, does anyone have any idea how to fix it or how would one go around fixing it?
|
Quote:
Originally Posted by DerMoench14
The Function didn't change. It's the Trade-Function (CommandTraderSell and more) that havn't been fixed entirely accurate.
|
Here is the fix.
* On the left (red) what I suppose you have
* On the right (green) what you need to change to fix it
Quote:
Originally Posted by bubbletea1231
Hey Folks,
I got a question to one function specifically. First of all I write all of my bots on my own so I got some basic knowledge of how most of the bots found in this forum work. I use the same GWA2.au3 as most others with some minor changes for personal preference.
But since the last header update I noticed, that the pickuploot()-function has gotten slow as hell. Like the character picks up stuff 40 seconds after killing the last foe and if he has to pick up multiple items it again needs like 10-15 seconds for the next one ... I didn't make any changed to this function so it's the same you all use.
So my question would be if anyone else encounters this problem or am I the only one?
Or does anyone has a fix for this? Basically all I did after the recent update was to update the headers, ans well bots are working - just the pickuploot() ist kinda well broken.
Any help is highly appreciated.
Peace out
|
Personaly, I didn't encounter any issue with picking up loots recently.
Can you post your PickupLoot function so we can see what could be wrong with it (even if it should be the same that the rest of us) ?
|
|
|
02/01/2021, 11:06
|
#1520
|
elite*gold: 0
Join Date: Oct 2009
Posts: 25
Received Thanks: 8
|
Quote:
Originally Posted by uK Cooki3
Cheers
I started this when i was next to the Z chest but it failed to open. =[
|
i could check this, but i haven't changed anything in this area
an error code or simular you doesnt have? Only the chest doesnt open?
|
|
|
02/01/2021, 11:14
|
#1521
|
elite*gold: 0
Join Date: Feb 2021
Posts: 4
Received Thanks: 0
|
Code:
Func PickUpLoot()
Local $lAgent
Local $aItem
Local $lDeadlock
For $i = 1 To GetMaxAgents()
If GetIsDead(-2) Then Return
$lAgent = GetAgentByID($i)
If DllStructGetData($lAgent, 'Type') <> 0x400 Then ContinueLoop
$aItem = GetItemByAgentID($i)
If CanPickUp($aItem) Then
PickUpItem($aItem)
$lDeadlock = TimerInit()
While GetAgentExists($i)
Sleep(100)
If GetIsDead(-2) Then Return
If TimerDiff($lDeadlock) > 10000 Then ExitLoop
WEnd
EndIf
Next
EndFunc ;==>PickUpLoot
Code:
Func CanPickUp($aItem)
Local $lModelID = DllStructGetData(($aItem), 'ModelID')
Local $aExtraID = DllStructGetData($aItem, "ExtraID")
Local $lRarity = GetRarity($aItem)
Local $Requirement = GetItemReq($aItem)
If (($lModelID == 2511) And (GetGoldCharacter() < 99000)) Then
Return False ; gold coins (only pick if character has less than 99k in inventory)
ElseIf ($lModelID == $ITEM_ID_Dyes) Then ; if dye
If (($aExtraID == $ITEM_ExtraID_BlackDye) Or ($aExtraID == $ITEM_ExtraID_WhiteDye))Then ; only pick white and black ones
Return True
EndIf
ElseIf ($lRarity == $RARITY_Gold) And $PickUpAll Then ; gold items
Return True
ElseIf ($lRarity == $RARITY_Purple) And $PickUpAll Then ; purple items
Return False
ElseIf($lModelID == $ITEM_ID_Lockpicks)Then
Return True ; Lockpicks
Else
Return False
EndIf
EndFunc ;==>CanPickUp
Code:
Func PickUpItem($aItem)
Local $lAgentID
If IsDllStruct($aItem) = 0 Then
$lAgentID = $aItem
ElseIf DllStructGetSize($aItem) < 400 Then
$lAgentID = DllStructGetData($aItem, 'AgentID')
Else
$lAgentID = DllStructGetData($aItem, 'ID')
EndIf
Return SendPacket(0xC, $HEADER_ITEM_PICKUP, $lAgentID, 0)
EndFunc ;==>PickUpItem
Global Const $HEADER_ITEM_PICKUP = 0x3E
Maybe you see smth I dont ^^
|
|
|
02/01/2021, 11:24
|
#1522
|
elite*gold: 0
Join Date: Sep 2019
Posts: 32
Received Thanks: 0
|
Has someone the lunar Bot for LA?
|
|
|
02/01/2021, 11:30
|
#1523
|
elite*gold: 26
Join Date: Apr 2019
Posts: 65
Received Thanks: 28
|
Quote:
Originally Posted by Death_Fire
Has someone the lunar Bot for LA?
|
Search funtion would have led you there -->
Since post dates from june 2020, you probably will need to swap some GWA2.au3 and/or GWA2_Headers.au3 from more recent uploaded bots to make it work.
Quote:
Originally Posted by bubbletea1231
Code:
Func PickUpLoot()
Local $lAgent
Local $aItem
Local $lDeadlock
For $i = 1 To GetMaxAgents()
If GetIsDead(-2) Then Return
$lAgent = GetAgentByID($i)
If DllStructGetData($lAgent, 'Type') <> 0x400 Then ContinueLoop
$aItem = GetItemByAgentID($i)
If CanPickUp($aItem) Then
PickUpItem($aItem)
$lDeadlock = TimerInit()
While GetAgentExists($i)
Sleep(100)
If GetIsDead(-2) Then Return
If TimerDiff($lDeadlock) > 10000 Then ExitLoop
WEnd
EndIf
Next
EndFunc ;==>PickUpLoot
Code:
Func CanPickUp($aItem)
Local $lModelID = DllStructGetData(($aItem), 'ModelID')
Local $aExtraID = DllStructGetData($aItem, "ExtraID")
Local $lRarity = GetRarity($aItem)
Local $Requirement = GetItemReq($aItem)
If (($lModelID == 2511) And (GetGoldCharacter() < 99000)) Then
Return False ; gold coins (only pick if character has less than 99k in inventory)
ElseIf ($lModelID == $ITEM_ID_Dyes) Then ; if dye
If (($aExtraID == $ITEM_ExtraID_BlackDye) Or ($aExtraID == $ITEM_ExtraID_WhiteDye))Then ; only pick white and black ones
Return True
EndIf
ElseIf ($lRarity == $RARITY_Gold) And $PickUpAll Then ; gold items
Return True
ElseIf ($lRarity == $RARITY_Purple) And $PickUpAll Then ; purple items
Return False
ElseIf($lModelID == $ITEM_ID_Lockpicks)Then
Return True ; Lockpicks
Else
Return False
EndIf
EndFunc ;==>CanPickUp
Code:
Func PickUpItem($aItem)
Local $lAgentID
If IsDllStruct($aItem) = 0 Then
$lAgentID = $aItem
ElseIf DllStructGetSize($aItem) < 400 Then
$lAgentID = DllStructGetData($aItem, 'AgentID')
Else
$lAgentID = DllStructGetData($aItem, 'ID')
EndIf
Return SendPacket(0xC, $HEADER_ITEM_PICKUP, $lAgentID, 0)
EndFunc ;==>PickUpItem
Global Const $HEADER_ITEM_PICKUP = 0x3E
Maybe you see smth I dont ^^
|
They indeed all seem fine to me as long as "GetAgentExists" is working properly.
To narrow down where could be the time wasted, try to put some "logging" like this.
Code:
Func PickUpLoot()
Local $lAgent
Local $aItem
Local $lDeadlock
For $i = 1 To GetMaxAgents()
If GetIsDead(-2) Then Return
$lAgent = GetAgentByID($i)
If DllStructGetData($lAgent, 'Type') <> 0x400 Then ContinueLoop
$aItem = GetItemByAgentID($i)
Out("Before CanPickUp")
If CanPickUp($aItem) Then
Out("After CanPickUp")
Out("Before PickUpItem")
PickUpItem($aItem)
$lDeadlock = TimerInit()
While GetAgentExists($i)
Sleep(100)
If GetIsDead(-2) Then Return
If TimerDiff($lDeadlock) > 10000 Then ExitLoop
WEnd
Out("After PickUpItem")
EndIf
Next
EndFunc ;==>PickUpLoot
|
|
|
02/01/2021, 11:43
|
#1524
|
elite*gold: 0
Join Date: Dec 2016
Posts: 116
Received Thanks: 66
|
@ your pickuploot func is garbage. i bet one GetAgentExists() not working properly and then its waiting 10 second every time until it exists the loop. you dont have a block timer in it aswell (when you get stucked)
Code:
$lDeadlock = TimerInit()
While GetAgentExists($i)
Sleep(100)
If GetIsDead(-2) Then Return
If TimerDiff($lDeadlock) > 10000 Then ExitLoop
like this one is not good... try something like this
Code:
IF CANPICKUP($LITEM) THEN
DO
PICKUPITEM($LITEM)
SLEEP(GETPING())
DO
SLEEP(100)
$LME = GETAGENTBYID(-2)
UNTIL DLLSTRUCTGETDATA($LME, "MoveX") == 0 AND DLLSTRUCTGETDATA($LME, "MoveY") == 0
$LBLOCKEDTIMER = TIMERINIT()
DO
SLEEP(3)
$LITEMEXISTS = ISDLLSTRUCT(GETAGENTBYID($I))
UNTIL NOT $LITEMEXISTS OR TIMERDIFF($LBLOCKEDTIMER) > RANDOM(5000, 7500, 1)
IF $LITEMEXISTS THEN $LBLOCKEDCOUNT += 1
UNTIL NOT $LITEMEXISTS OR $LBLOCKEDCOUNT > 5
ENDIF
|
|
|
02/01/2021, 12:05
|
#1525
|
elite*gold: 0
Join Date: Feb 2021
Posts: 4
Received Thanks: 0
|
@ and @
Thanks to the both of you. I will try out your code and will report back if that solved my issue.
|
|
|
02/01/2021, 12:13
|
#1526
|
elite*gold: 0
Join Date: Dec 2016
Posts: 116
Received Thanks: 66
|
well you dont have to be a magician to see it. you say the bot waits arround 10 seconds between every pickup. if you look closer to your script it does:
Code:
PickUpItem($aItem)
$lDeadlock = TimerInit()
While GetAgentExists($i)
Sleep(100)
If GetIsDead(-2) Then Return
If TimerDiff($lDeadlock) > 10000 Then ExitLoop
and then a while loop that waits either 10 seconds or until the item stops to exist. since you wait exactly 10 seconds bewteen pickups your function is still giving out the existance of the item even if its picked up - and you only exit the loop over the timer (10 seconds)
|
|
|
02/01/2021, 12:19
|
#1527
|
elite*gold: 0
Join Date: Feb 2021
Posts: 4
Received Thanks: 0
|
Well I can tell you that with your script I just implemented real quick I got the same problem. I just used it on a quick fow run. Lets say there drop 2 dark remains after the last enemies. Character moves to first dark remain picks it up after like 4 seconds, after that there was a pause of like 10 seconds until it moved to second dark remain and pick that one up. So i guess the error is somewhere else
|
|
|
02/01/2021, 12:24
|
#1528
|
elite*gold: 0
Join Date: Dec 2016
Posts: 116
Received Thanks: 66
|
then its in your gwa2 i suppose, because even the one i posted has a time depended exit ( TIMERDIFF($LBLOCKEDTIMER) > RANDOM(5000, 7500, 1))... so all your bots are not reading out data correctly
|
|
|
02/01/2021, 12:31
|
#1529
|
elite*gold: 26
Join Date: Apr 2019
Posts: 65
Received Thanks: 28
|
Quote:
Originally Posted by bubbletea1231
Well I can tell you that with your script I just implemented real quick I got the same problem. I just used it on a quick fow run. Lets say there drop 2 dark remains after the last enemies. Character moves to first dark remain picks it up after like 4 seconds, after that there was a pause of like 10 seconds until it moved to second dark remain and pick that one up. So i guess the error is somewhere else
|
So it means you need to test if your function "GetAgentExists($aAgentID)" works properly.
|
|
|
02/01/2021, 15:36
|
#1530
|
elite*gold: 0
Join Date: Aug 2016
Posts: 33
Received Thanks: 6
|
Quote:
Originally Posted by zer0.de
i could check this, but i haven't changed anything in this area
an error code or simular you doesnt have? Only the chest doesnt open?
|
Was no error code just didn’t open I checked to make sure it went to right function
Quote:
Originally Posted by OriginsEXE
Not going to lie. I don't get why we update old bots for people that literally cant even read an error code or take the time to figure out what it means to have a duplicate function somewhere. All it does is make more farming competition for the people that actually put in the minute amount of work that it takes to fix them.
|
I’d love to learn how to write bots but I just don’t seem to find the time with work and kids but I’d be willing to try and learn I understand we’re to find errors and on occasion I have tried but to no avail as others have stated I appreciate all you guys do for the public.
Thanks again
|
|
|
All times are GMT +2. The time now is 17:30.
|
|