taultunleashed logoCreate your own .Net App now with VGExtreme (VGEWrapper.dll) : VGExtreme General Discussion
newtopic  postreply
 [ 14 posts ] 
blue large dot

Create your own .Net App now with VGExtreme (VGEWrapper.dll) : VGExtreme General Discussion

Posted: March 27th, 2007, 9:03 pm
 
wyvernx

Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
User avatar
administrator
premium
See the VGEService thread for details, but...


For those that want to make their own apps... Grab CSharpExpress (free download from microsoft) and make your own apps using VGE!

Just include the VGEWrapper.dll, create the VGExtreme.VGEWrapper object class and you are set.

Dox coming.

AutoIT support coming tomorrow also! So stay tuned!

_________________
Use Search first, ask questions later!


Reply with quote
Posted: March 28th, 2007, 10:41 pm
 
wyvernx

Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
User avatar
administrator
premium
Bumped for release.

_________________
Use Search first, ask questions later!


Reply with quote
Posted: March 30th, 2007, 7:10 pm
 
problemchild

Total Posts: 15
Joined: February 24th, 2006, 8:35 am
problemchild's Reps: 0
User avatar
Hey wyvernx,

I started playing with the VGEWrapper.dl, and everything so far seems great.

The only problem i have is that when I unload or close my application it seems to crash vgextreme and i have to manually load it up before running my app again. ( i don't have much more info yet on the crash but i will see what i can track down)

In the meantime I was wondering if you could add the ability to login to vgextreme through the dll. Or maybe another more automate-able method?

I wouldn't need much, just login(user,pass), logout and isConnected. It would save so much time with my testing and debugging.
Basically I'm trying to take an extra step out of using the bot I'm making and so i can also manage disconnects to the login server.

Hopefully i should have a nice app out for the community in a a week or two. It would be a general class trainer to start off, but I'm planning on making it very expandable.

Best,
PC


Reply with quote
Posted: March 30th, 2007, 9:33 pm
 
wyvernx

Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
User avatar
administrator
premium
Yes and a few more new features coming very shortly.

Not sure on yoru crash issue. I suggest removing to barebones and add stuff back in slowly until you find it.

_________________
Use Search first, ask questions later!


Reply with quote
Posted: March 31st, 2007, 5:18 am
 
cornholiox

Total Posts: 11
Joined: March 16th, 2007, 9:46 pm
cornholiox's Reps: 0
User avatar
premium
Can we get some VG specific mouse click functions added real quick?

Specifically -
LeftClick(x,y,n) - clicks x,y in the VG window n times
RightClick(x,y,n) - clicks x,y in the VG window n times
getColor(x,y) - returns the R/G/B int array of the color of the pixel at the point

I see there are functions in VGHelper.Win32API but I am a bit lazy at the moment to implement them in my code atm...

(along with my diplomancy functions I requested in the diplomancy requested thread).

Currently I am building a diplomacy bot - now I get to use c# - my native language. I want to build something with a friendly user interface, allowing the user to edit the move scripts and mobs to parley at will, but to really do so, I need those base functions extracted from the information form VG...


Reply with quote
Posted: March 31st, 2007, 8:21 am
 
wyvernx

Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
User avatar
administrator
premium
They are.

Add in the VGEhelper.dll and there are a few functions in there.

its like VGHelper.ScriptHost.FullMouseMove(), MouseLClick(), etc.

_________________
Use Search first, ask questions later!


Reply with quote
Posted: March 31st, 2007, 7:35 pm
 
cornholiox

Total Posts: 11
Joined: March 16th, 2007, 9:46 pm
cornholiox's Reps: 0
User avatar
premium
right now the VGHelper is asking for reference objects for the x, y, clicks and bool values instead of int,int,int,bool its requesting byref. Can you change them to byval instead? Or include a wrapper in VGExtreme.VGWrapper which automatically focuses the window and calls these functions.

The other issue is that I'm searching for the window hwind and none of the functions return any int with that value - thus the requests for specific interfaces within the VGExtreme.dll.

There is a FocusVGWindow - but that returns nothing - maybe change it so it returns the hwind?

And still a lot of functions asking for reference values (ByRef) which I see no need for, since they do not modify the (or at least should not) values passed to them. Unless its a large object, I don't see the need for reference passing with the .NET code optimization algorithms.


Reply with quote
Posted: March 31st, 2007, 9:03 pm
 
wyvernx

Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
User avatar
administrator
premium
It was done that way I beleive originally because of VBScript. All variables are objects. So you didnt have to send a CLng(x) you just passed in x.

But yea, I can add a wrapper for it in VGE.

ForusVGWindow just makes VG have focus, but yea I can change it so it passes back the HWND of vg.


I dont follow this:
thus the requests for specific interfaces within the VGExtreme.dll


If you are talking about the VGHelper.dll its a visual basic app not a .net app. And it was specifically coded for VBScript for XU. Its a very old dll that needs to be completely redone.

_________________
Use Search first, ask questions later!


Reply with quote
Posted: April 1st, 2007, 4:13 am
 
gheezer
gheezer's Reps:
User avatar
Gee...Thanks Wyvern... I think with the new wrapper I have too many options. :P

I've gone from VBScript GDI -> C# GDI+ -> MEC++ GDI+ -> Win32 GDI with CLR support while searching for speed. So far Win32 GDI with /CLR seems to be a tad faster.

Hell, next I guess I'll try a version in MSIL and Assembly.... j/k

Damn SOE/Vigil....downtime right when I was hot on the trail of this bottleneck :)

With my radar if I walk in an area that is heavily populated and the range is about 10000, the radar slows down to 3-7 fps. Seems to happen whether I'm actually drawing or not. I was just profiling the way I was enumerating the ArrayList using gcroot<> when they shut down :)


Reply with quote
Posted: April 1st, 2007, 6:04 am
 
gheezer
gheezer's Reps:
User avatar
FYI: Found a good free profiler, AMD Code Analyst. I hear it work with Pentiums too but I haven't tried it. Just google it and take the link to the AMD site and register to download.

And btw....MS put in pin_ptr...but where is nailgun_ptr? Damn slippery managed pointers :(


Reply with quote
Posted: April 1st, 2007, 10:22 am
 
wyvernx

Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
User avatar
administrator
premium
If you get a chance, try turning off one processor in processor affinity in the task manager for the vg process and for VGE. Make them the same processor (ie 1 or 0) And see if it speeds things up. If it does, I'll have to recode my memory reads to be non-threadded.


I have a feeling that because of hyperthreading it is slowing down due to context switches from VGE and VG for the memory reads.

_________________
Use Search first, ask questions later!


Reply with quote
Posted: April 1st, 2007, 10:41 am
 
gheezer
gheezer's Reps:
User avatar
Ok, I will check that now. The profiler results show a lot of time spent in the service. Although I thnk a big chunk of time was spent in marshaling/remoting as well.

I didn't save the report, but if I run it again I will post some of the higher numbers. Hrm...I think I can do Thread/Core profiling too...

Still learning this new tool :)

As a side note...looks like I might be dumping Win32 with GDI and going back to C# and GDI+

Using Win32 involved a lot of pinning pointers and copying data to the native heap. (Especially those damn System::String^) and C# with GDI has too much PInvoke overhead... can't seem to make it worth the effort. Been workin on this straight for about 24 hours and only gained a few fps....bah! But hey...I learned a lot of new stuff and even applied it to the VBScript Radar, which now has double buffering and no control flicker :)


Reply with quote
Posted: April 1st, 2007, 9:11 pm
 
cornholiox

Total Posts: 11
Joined: March 16th, 2007, 9:46 pm
cornholiox's Reps: 0
User avatar
premium
The "interface" i am referring to are the functions in VGWrapper which take standard values byval rather then byref for functions which only need standard type inputs (e.g. int, bool, etc...)

This combined with the automatic focusing of the window and performing the tasks. - left click, right click, get pixel color at.

For example VG_LTclick(int x, int y, int clicks) - would focus the VG window and send the click - taking int by val.

this would give us a standard interface to program with, rather then have everyone implement different iterations of the same function.

Another low level suggestion, would be to somehow be able to manipulate the various windows within VG somehow - extracting structure, locations, text etc.. from the various displays in the interface. But I think something like that may be to complex to implement - since all the windows are different. The main reason I ask this is that in diplomancy several parley types appear under the parley assess menu as well as various things which have to be clicked through. If there were some way to automatically extract the text of these "choices" as well as their location, it would make it easier to program a window location/resolution independant solution for my diplomancy bot. Right now it relies on the windo being in a specific location, and the text cues being in a specific order, however, if this information can be extracted and coded against, then it would make it easier to counter things such as different parley types being available at different times, windows movement (and the eventual random window placement that I forsee Sigil putting in the game to discourage us).

An example of an implementation of this would be VGGetDiplomancyWindow - this would return all clickable choices in an array of strings - null length returned if the window were not opened- each choice string in a different string loc. The click function would look something like this VGClickDiplomancyWindow(int choice). Based on the diplomancy window strings array, the clickable options could be searched through and the clickwindow function would automatically focus the VG window and based on the array loc passed, click the correct diplomancy choice.


Reply with quote
Posted: April 2nd, 2007, 10:04 pm
 
gheezer
gheezer's Reps:
User avatar
Ok WyvernX, I tried the proc affinity test and the results aren't what I expected. I pick up almost 5 fps just by making sure VGClient and VGExtreme are using different cores....


Reply with quote
Want Advertisements After The Last Post Removed? Create A Free Account!

blue large dot Who is online
Users browsing this forum: No registered users and 28 guests

Popular Sections
SWTOR Cheats
Guild Wars 2 Cheats
Guild Wars 2 Hacks
Guild Wars 2 Bots
Diablo 3 Cheats
Guild Wars 2 Mods

Popular Sections
WoW Cataclysm Cheats & Exploits
WoW Cataclysm Hacks & Bots
Star Wars The Old Republic Cheats
SWTOR Mods
Torchlight 2 Cheats
SWTOR Space Mission Bots
Site Nav and RSS
RSS Feed of VGExtreme General Discussion RSS Feed 
Sitemap of VGExtreme General Discussion Sitemap 
SitemapIndex SitemapIndex
RSS Feed RSS Feed
Channel list Channel list
left bottom corner Site and Contents Copyright 2001-2012 All Rights Reserved TaultUnleashed.com bottom corner
top left
top right
createaccount
Username:   Password:   Remember Me?