EU Bot for Vindictus

Posts 106120 of 160 · Page 8 of 11
Code:
;Push Replay button
Send("{ALT DOWN}")
MouseClick ( "left" , $NextXpos, $NextYpos , 2 , 10 )
Send("{ALT UP}")
sleep(12000)
Send("{ALT DOWN}")
MouseClick ( "left" , $ReplayXpos, $ReplayYpos , 2 , 10 )
Send("{ALT UP}")
;Wait for the boat
Sleep($boatreturnTime)
EndFunc
I need next and replay position for 1024x768 because it completely misses them, i could do it myself but idk what program to use to get those coordinates :s

btw it's for nightmareattheruins
Actually, this is my first post. However, i'm not gonna say 'meh, doesn't work for me!!!11!' (tho it doesn't, white tyrant challenge not even a bit). I just wanted to point out that you can improve your Bot alot by just using some dynamic checks for loads!

I could be talking about memories and pixels. Actually, i'm not entirely sure whether HackShield detects simple ReadProcessMemory calls.
But that doesn't really matter (though i don't know if you are familiar with such stuff, i could write a DLL that hook's the LoadScreen and send it to you. that way you are able to immediatly tell if loading is done). However, you can also check the HP Bar !

Either read the memory of HP (if HP > 0 loaded = true), OR ! Just make a dynamic PixelCheck. For Example, Red HP Pixel on 800x600 is at
100, 100. You probably know how to convert it to e.g. 1440x900 ( its e.g. 100/800*1449, of course :P )

Before hitting Start, you perform a PixelGetColor(100, 100), and later on you will check that 100, 100 for the returned Color of PixelGetColor. If it matches, you are loaded (HP is displayed!). Just an idea

I also noticed that you ask for activating the Vindictus window within 5 seconds. AutoIT provides WinActivate and WinWaitActive to perform such actions.

Next thing is the window title. I had to change it in the GUI.au3, because HackShield just detected the 'Bot' in it. You may want to change that.

I just wanted to point these things out And just saying, it's great that you are providing this ! If you need any help or cool tips, don't hesitate to ask me (and yes, i have experience in these things :P)

Btw, would be great if you'd just use a IniRead to reload the configurations on restart.

I hope i could 'help' or contribute a bit!

(excuse me if my english sucks)

so long, buFFy
Quote Originally Posted by buFFy View Post
Actually, this is my first post. However, i'm not gonna say 'meh, doesn't work for me!!!11!' (tho it doesn't, white tyrant challenge not even a bit). I just wanted to point out that you can improve your Bot alot by just using some dynamic checks for loads!

I could be talking about memories and pixels. Actually, i'm not entirely sure whether HackShield detects simple ReadProcessMemory calls.
But that doesn't really matter (though i don't know if you are familiar with such stuff, i could write a DLL that hook's the LoadScreen and send it to you. that way you are able to immediatly tell if loading is done). However, you can also check the HP Bar !

Either read the memory of HP (if HP > 0 loaded = true), OR ! Just make a dynamic PixelCheck. For Example, Red HP Pixel on 800x600 is at
100, 100. You probably know how to convert it to e.g. 1440x900 ( its e.g. 100/800*1449, of course :P )

Before hitting Start, you perform a PixelGetColor(100, 100), and later on you will check that 100, 100 for the returned Color of PixelGetColor. If it matches, you are loaded (HP is displayed!). Just an idea

I also noticed that you ask for activating the Vindictus window within 5 seconds. AutoIT provides WinActivate and WinWaitActive to perform such actions.

Next thing is the window title. I had to change it in the GUI.au3, because HackShield just detected the 'Bot' in it. You may want to change that.

I just wanted to point these things out And just saying, it's great that you are providing this ! If you need any help or cool tips, don't hesitate to ask me (and yes, i have experience in these things :P)

Btw, would be great if you'd just use a IniRead to reload the configurations on restart.

I hope i could 'help' or contribute a bit!

(excuse me if my english sucks)

so long, buFFy

Hi and welcome.
Most say, first nice post buffy
yeah i have been thinking of that too, but i dont wanna risk anything with hackshield but that could be one ide to, yeah been thinking of doing that too, will see what i do next time, im thinking of something new.
Good to know with the WinActivate, havent coded in autoit since high school, so refreshing my memory alot with stuff.
Will change it, till next relase that will be tonight.
I use Iniread for most stuff, if you where thinking for resulotion? you dont need to save it more then, the first time since after that, it will be in the resulotion.ini file wich resulotion you use.
seems like ppl still have problem.
i will try and solve them, missing the button for 1024x768? i have to check that. Something most be messed with my cords i have.
If ppl wanna share there cords for each mouse position for each resulotion, it would make my work easyer
Quote Originally Posted by Spiken View Post
seems like ppl still have problem.
i will try and solve them, missing the button for 1024x768? i have to check that. Something most be messed with my cords i have.
If ppl wanna share there cords for each mouse position for each resulotion, it would make my work easyer
Alright, making things WAY EASIER for you now.
I just searched for my old function (posted long ago in another forum i won't mention)
Here you go:

Code:
Func _ConvertCoords($x, $y, $CurResol, $NewResol)
	$Cur = StringSplit($CurResol, "x")
	$New = StringSplit($NewResol, "x")
	Local $Coords[2]
	$Coords[0] = Round($x / $Cur[1] * $New[1])
	$Coords[1] = Round($y / $Cur[2] * $New[2])
	Return $Coords
EndFunc

$NewCoords = _ConvertCoords(500, 700, "800x600", "1024x768")
Syntax should be clear, however:
Code:
array _ConvertCoords(
_int x
_int y
_LPCSTR CurResol
_LPCSTR NewResol
What it does is obvious! You can simply take YOUR OWN coordinates and convert it to whatever resolution!
Quote Originally Posted by buFFy View Post
Alright, making things WAY EASIER for you now.
I just searched for my old function (posted long ago in another forum i won't mention)
Here you go:

Code:
Func _ConvertCoords($x, $y, $CurResol, $NewResol)
	$Cur = StringSplit($CurResol, "x")
	$New = StringSplit($NewResol, "x")
	Local $Coords[2]
	$Coords[0] = Round($x / $Cur[1] * $New[1])
	$Coords[1] = Round($y / $Cur[2] * $New[2])
	Return $Coords
EndFunc

$NewCoords = _ConvertCoords(500, 700, "800x600", "1024x768")
Syntax should be clear, however:
Code:
array _ConvertCoords(
_int x
_int y
_LPCSTR CurResol
_LPCSTR NewResol
What it does is obvious! You can simply take YOUR OWN coordinates and convert it to whatever resolution!
Thanks nice tool.

added msgbox

Code:
Func _ConvertCoords($x, $y, $CurResol, $NewResol)
    $Cur = StringSplit($CurResol, "x")
    $New = StringSplit($NewResol, "x")
    Local $Coords[2]
    $Coords[0] = Round($x / $Cur[1] * $New[1])
    $Coords[1] = Round($y / $Cur[2] * $New[2])
    Return $Coords
EndFunc

$NewCoords = _ConvertCoords(291, 701, "1680x1050", "1024x768")
MsgBox(0x40, "", "X: " & $NewCoords[0] & @crlF & "Y: " & $NewCoords[1])
if other ppl wants it
Quote Originally Posted by r0xy View Post
in game options ôo

@lamafao
(if u know what u r doing!) u can find the coordinats in the core file

and what should i check there? o.O
my char got Spear in hes Sub Weapon
and to throw them i pres F then left mosue click
Quote Originally Posted by alberto3223 View Post
and what should i check there? o.O
my char got Spear in hes Sub Weapon
and to throw them i pres F then left mosue click
auto-throw with pressing F should be activated
Spiken but tell me one thing how ur bot can make 100 runs on resolution 1680x1050 if my bot stop working after kill boss ;P i mean he dont even try to move mouse on next and replay,just afk.Some guys are here lucky because them bot try to click next and replay but miss its easy to make cords for self.
Any idea spiken or someone?Its my problem from the beginning from version 1 to 3,5 and noone can help me.
So, for all who have problems with the coordinates here is the way how u can fix them by yourselves.

1. Make a screenshot of your boatscreen and open it with paint



2. Go with the cursor on "start" and check the x,y positions below
3. Open core file of the bot and change the coordinates of ur resolution



4. Save
Quote Originally Posted by r0xy View Post
I just played around a lil bit with the times and got that now:

Code:
[waittime]
; timer settings in milliseconds (1000 = 1 sec)
boatstart=8000
intermediate=8000
last=10000
boatreturn=10000
battleend=60000
runwait=0
everything is fine, but now the bot needs 2:21 til clicking "next" (timed after sound of battle cleared).
Any suggestions?

edit // and with battleend=80000 it takes 2:56 oO wth
(btw. in both runs i killed bloodlord with first spear)
Try this one:

[waittime]
; timer settings in milliseconds (1000 = 1 sec)
boatstart=25000
intermediate=8000
last=10000
boatreturn=10000
battleend=25000
runwait=0

it clicks next few seconds after it shows up
Nono you dont get what i mean. What you want to do is Dump ALL of your Coordinates (just for ONE resolution).
Then call $x = _ConvertCoordinates with (dumpedx, dumpedy, the resolution used for dumping, GuiCtrlRead(yourresolutioncombo))

Now you can simply use MouseMove($x[0], $x[1]) .. just saying. you only need constant coordinates ONCE.
This will assure that all the coordinates are correct on any resolution, since you dumped them. Got it?

Don't forget the format for _ConvertCoordinates is WidthxHeight (e.g. "800x600")

sample:
Code:
Func _ConvertCoords($x, $y, $CurResol, $NewResol)
    $Cur = StringSplit($CurResol, "x")
    $New = StringSplit($NewResol, "x")
    Local $Coords[2]
    $Coords[0] = Round($x / $Cur[1] * $New[1])
    $Coords[1] = Round($y / $Cur[2] * $New[2])
    Return $Coords
EndFunc

;in 800x600 dumped coords:
$x = 500
$y = 700
$myResol = "800x600"

;converting to 1024x768:
$newxy = _ConvertCoords($x, $y, $myResol, "1024x768")
MsgBox(0x40, "Coordinates",  StringFormat("x: %i\ny: %i", $newxy[0], $newxy[1]))
Quote Originally Posted by buFFy View Post
Nono you dont get what i mean. What you want to do is Dump ALL of your Coordinates (just for ONE resolution).
Then call $x = _ConvertCoordinates with (dumpedx, dumpedy, the resolution used for dumping, GuiCtrlRead(yourresolutioncombo))

Now you can simply use MouseMove($x[0], $x[1]) .. just saying. you only need constant coordinates ONCE.
This will assure that all the coordinates are correct on any resolution, since you dumped them. Got it?

Don't forget the format for _ConvertCoordinates is WidthxHeight (e.g. "800x600")
oo yeah, stupid of me , alot easier that way.
I need some sleep rly , thanks mate
Quote Originally Posted by Spiken View Post
oo yeah, stupid of me , alot easier that way.
I need some sleep rly , thanks mate
added a sample
Anyone getting either kobold chief or counter to work?
Posts 106120 of 160 · Page 8 of 11
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?