|
|
|
Page 1 of 1 |
[ 14 posts ] |
|
 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
|
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!
|
|
|
|
|
Posted: March 28th, 2007, 10:41 pm
|
|
|
|
wyvernx
Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
|
Bumped for release.
_________________
Use Search first, ask questions later!
|
|
|
|
|
Posted: March 30th, 2007, 7:10 pm
|
|
|
|
problemchild
Total Posts: 15
Joined: February 24th, 2006, 8:35 am
problemchild's Reps: 0
|
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
|
|
|
|
|
Posted: March 30th, 2007, 9:33 pm
|
|
|
|
wyvernx
Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
|
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!
|
|
|
|
|
Posted: March 31st, 2007, 5:18 am
|
|
|
|
cornholiox
Total Posts: 11
Joined: March 16th, 2007, 9:46 pm
cornholiox's Reps: 0
|
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...
|
|
|
|
|
Posted: March 31st, 2007, 8:21 am
|
|
|
|
wyvernx
Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
|
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!
|
|
|
|
|
Posted: March 31st, 2007, 7:35 pm
|
|
|
|
cornholiox
Total Posts: 11
Joined: March 16th, 2007, 9:46 pm
cornholiox's Reps: 0
|
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.
|
|
|
|
|
Posted: March 31st, 2007, 9:03 pm
|
|
|
|
wyvernx
Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
|
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!
|
|
|
|
|
Posted: April 1st, 2007, 4:13 am
|
|
|
|
gheezer
gheezer's Reps:
|
Gee...Thanks Wyvern... I think with the new wrapper I have too many options.
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 
|
|
|
|
|
Posted: April 1st, 2007, 6:04 am
|
|
|
|
gheezer
gheezer's Reps:
|
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 
|
|
|
|
|
Posted: April 1st, 2007, 10:22 am
|
|
|
|
wyvernx
Total Posts: 6718
Joined: May 1st, 2004, 4:00 am
wyvernx's Reps: 21
|
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!
|
|
|
|
|
Posted: April 1st, 2007, 10:41 am
|
|
|
|
gheezer
gheezer's Reps:
|
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 
|
|
|
|
|
Posted: April 1st, 2007, 9:11 pm
|
|
|
|
cornholiox
Total Posts: 11
Joined: March 16th, 2007, 9:46 pm
cornholiox's Reps: 0
|
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.
|
|
|
|
|
Posted: April 2nd, 2007, 10:04 pm
|
|
|
|
gheezer
gheezer's Reps:
|
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....
|
|
|
|
|
Who is online |
|
Users browsing this forum: No registered users and 10 guests |
|
|
|