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
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
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
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)
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" ^^
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?