|
You last visited: Today at 08:08
Advertisement
Problem with identifying
Discussion on Problem with identifying within the GW Bots forum part of the Guild Wars category.
05/09/2018, 10:28
|
#1
|
elite*gold: 0
Join Date: Jan 2013
Posts: 46
Received Thanks: 23
|
Problem with identifying
Hey,
so i have a vaettir bot that salvages items after every run, but after all the updates it gets stuck at identifying, everything else works fine.
I patched it with the GWA2_Patcher, there was a missing header but i added it in the header table, i just can't find out why it doesn't work.
Would be nice if anyone could help me
|
|
|
05/09/2018, 11:40
|
#2
|
elite*gold: 0
Join Date: Jul 2008
Posts: 1,826
Received Thanks: 226
|
The problem is your "Ident"-Function. During the identification process you have no check if there is still a Ident-Kit in your inventory.
If your Ident-Kit usages are gone during identing, your bot gets stuck because there is none in your inventory
Here is an example of an "working" Ident function:
Code:
Func Ident($bagIndex)
Local $aItem
Local $lBag = GetBag($bagIndex)
Local $iBagSlots = DllStructGetData($lBag, 'slots')
For $bagSlotIndex = 1 To $iBagSlots
If FindIdKit() = 0 Then
If GetGoldCharacter() < 500 and GetGoldStorage() > 499 Then
WithdrawGold(500)
Sleep(400)
Endif
Local $tryToBuyIdKid = 0
Do
BuyIDKit()
RndSleep(500)
$tryToBuyIdKit += 1
Until FindIDKit() <> 0 Or $tryToBuyIdKit = 3
RndSleep(500)
Endif
$aItem = GetItemBySlot($bagIndex, $bagSlotIndex)
IdentifyItem($aItem)
Sleep(Random(400, 750))
Next
EndFunc
I wasnt able to copy paste the function right now, thats just manually tipped, so sorry if there are any typos in it
_
mhaendler
|
|
|
05/09/2018, 12:14
|
#3
|
elite*gold: 0
Join Date: May 2014
Posts: 269
Received Thanks: 328
|
There is another Problem with Func FindIdKit() when you're in an explorable Area.
The regular Version of the Function searches for an IDKit in ALL Bags (including Xunlai) and might be trying to identify an Item with an IDKit what has been found in Xunlai.
You can make a new Function which could be used for such a Situation:
Code:
;~ Description: Returns item ID of ID kit in inventory outdoors.
Func FindOutdoorIDKit()
Local $lBagPtr
Local $lItemArrayPtr
Local $lItemPtr
Local $lKit = 0
Local $lUses = 101
For $lBag = 1 to 4
$lBagPtr = GetBagPtr($lBag)
$lItemArrayPtr = MemoryRead($lBagPtr + 24, 'ptr')
For $lSlot = 0 To MemoryRead($lBagPtr + 32, 'long') - 1
$lItemPtr = MemoryRead($lItemArrayPtr + 4 * ($lSlot), 'ptr')
If $lItemPtr = 0 Then ContinueLoop
Switch MemoryRead($lItemPtr + 44, 'long')
Case 2989
If MemoryRead($lItemPtr + 36, 'short') / 2 < $lUses Then
$lKit = MemoryRead($lItemPtr, 'long')
$lUses = MemoryRead($lItemPtr + 36, 'short') / 2
EndIf
Case 5899
If MemoryRead($lItemPtr + 36, 'short') / 2.5 < $lUses Then
$lKit = MemoryRead($lItemPtr, 'long')
$lUses = MemoryRead($lItemPtr + 36, 'short') / 2.5
EndIf
Case Else
ContinueLoop
EndSwitch
Next
Next
Return $lKit
EndFunc ;==>FindOutdoorIDKit
Take it just as an example.
|
|
|
05/09/2018, 13:26
|
#4
|
elite*gold: 0
Join Date: Jul 2008
Posts: 1,826
Received Thanks: 226
|
Quote:
Originally Posted by DerMoench14
There is another Problem with Func FindIdKit() when you're in an explorable Area.
The regular Version of the Function searches for an IDKit in ALL Bags (including Xunlai) and might be trying to identify an Item with an IDKit what has been found in Xunlai.
You can make a new Function which could be used for such a Situation:
Code:
;~ Description: Returns item ID of ID kit in inventory outdoors.
Func FindOutdoorIDKit()
Local $lBagPtr
Local $lItemArrayPtr
Local $lItemPtr
Local $lKit = 0
Local $lUses = 101
For $lBag = 1 to 4
$lBagPtr = GetBagPtr($lBag)
$lItemArrayPtr = MemoryRead($lBagPtr + 24, 'ptr')
For $lSlot = 0 To MemoryRead($lBagPtr + 32, 'long') - 1
$lItemPtr = MemoryRead($lItemArrayPtr + 4 * ($lSlot), 'ptr')
If $lItemPtr = 0 Then ContinueLoop
Switch MemoryRead($lItemPtr + 44, 'long')
Case 2989
If MemoryRead($lItemPtr + 36, 'short') / 2 < $lUses Then
$lKit = MemoryRead($lItemPtr, 'long')
$lUses = MemoryRead($lItemPtr + 36, 'short') / 2
EndIf
Case 5899
If MemoryRead($lItemPtr + 36, 'short') / 2.5 < $lUses Then
$lKit = MemoryRead($lItemPtr, 'long')
$lUses = MemoryRead($lItemPtr + 36, 'short') / 2.5
EndIf
Case Else
ContinueLoop
EndSwitch
Next
Next
Return $lKit
EndFunc ;==>FindOutdoorIDKit
...
Take it just as an example.
|
Why make a seperate function for it, wouldnt it be "easier" / cleaner to just edit the current FindIDKit Function for example like that:
Code:
Func FindIDKit($lookUpInStorage=false)
Local $iBags = 4
If $lookUpInStorage Then
$iBags = 16
EndIf
For $i = 1 To $iBags
.....
EndFunc
So you have the same Function for everything and can specifiy via parameter if you also want to check the storage (btw who the fuck has id and salvage kits in the storage)
|
|
|
05/09/2018, 13:49
|
#5
|
elite*gold: 0
Join Date: May 2014
Posts: 269
Received Thanks: 328
|
As i said ... was just an example.
But you're right ofc ... the code you posted is the correct method 
The only Problem is the diversity of different APIs ... for my private API i did it exactly the way you showed, for public APIs which are no longer really under support/development besides Hotfixes (like GWA2) it can cause problems when someone takes the bot.au3 and the not corresponding API and asking for help because of "Incorrect number of parameters in function call" ^^
|
|
|
05/09/2018, 14:27
|
#6
|
elite*gold: 0
Join Date: Jan 2013
Posts: 46
Received Thanks: 23
|
Ok thanks guys, looks like the findidkit was the faulty function, works again now
|
|
|
 |
Similar Threads
|
Dark Legacy: Identifying Players!!!
08/25/2012 - DarkOrbit - 3 Replies
To all Dark Legacy Players,
I post this because, some of us not knowing, so i post this so you can put your name and your company name.
Example:
purenico:EEF
So, lets start knowing
|
Need help identifying a cheater...
10/22/2010 - Eudemons Online - 2 Replies
Well i've been reading in the hacks/exploits section about speedhack and Legion gate jumping hack. There is a legion on the server I play on who manages to get inside legion land, to the pole and shield before the gates are down... My question is, is this them hacking? Also, is there a way to make it so the hack doesn't work... same with speed/zoom hack..
|
identifying effects
06/29/2009 - Conquer Online 2 - 2 Replies
so what i want to do is to remove most of the visual effects and leave just a few witch are worth keeping
if anyone else played with the effects before and knows their names in the ini file please post for the following:
ss
fb
cure
adv cure
stig
2fold
|
Identifying a Good Server
02/06/2009 - CO2 Private Server - 8 Replies
1. They (the owner/s) actually have a cool username, or use just their name in general.
Proof of this
Qonquer - Cool, Servers good
Ultimation - Cool, Good server
Hybrid - (Biased?) Cool, Good server
Andy - Normal Name, Good Server
XMasterrrr - Bad Name, Bad Server
koio - Bad Name, Bad Server
2. They understand how to port forward.
|
metdove identifying tool
06/14/2006 - Conquer Online 2 - 11 Replies
i serched all over this forum, i couldnt find any tool .
i tried encypt tool, but real dove is still same size with the rest.
plz, can any1 help me out?
|
All times are GMT +1. The time now is 08:10.
|
|