Board ArchivesSite FeaturesActiveworlds SupportHistoric Archives |
brant // User Search
brant // User Searchwhat the hell is with the new sdk?Feb 10, 2001, 10:55pm
There seems to be a problem with the Quickstart routine of the VB SDK. For
example, when I use QuickStart, IP querying a person returns 0.0.0.0 every time. However, when I log in the bot the traditional way, the AwAddress function works fine. My suggestion: avoid the QuickStart and QuickStop functions and log in the bot using AW's functions - maybe it will fix the problem. [View Quote] New World owner needs helpApr 17, 2001, 10:49pm
Andras also just created an informative page about running the AW browser
and server behind firewalls and networks - I believe the URL is posted in the worldbuilders newsgroup. [View Quote] VB installations using a 3rd party installer-toolApr 18, 2001, 6:15pm
My suggstion would be to just use the package and deployment wizard - while
it looks ugly, I used it for a year without problems as it's the least time-consuming way of distributing your programs. If, like me, however, the AW SDK doesn't register in the installation package, look for Visual Studio Installer on Microsoft's site (MrGrimm told me the URL I think, but I forgot its exact location). It looks nicer, and can determine all the dependencies of your application simply by scanning the VB source code. Just modify the installation directories, and you're set to go. Help needed.Apr 25, 2001, 8:21pm
Most likely, your problem is a result of MrGrimm's file naming practices.
Whereas previous builds of the VB SDK were named sequentially (Build 15 was awsdkocx.ocx, and build 17 was awsdkocx2.ocx), both builds 19 and 20 are AWSDKOCX3.OCX, and have the same internal name. Therefore, if you have both versions on your system, weird problems can result. To correct the problem, delete all instances of build 19, and install one version of build 20 to your system folder. Then make sure that the correct build is selected in the Components dialog. Hopefully this will fix your problem AwSdkOcx3 registration problems!!!Apr 29, 2001, 12:02am
Most likely, you're using Windows 95. You can fix the problem by
downloading the Winsock 2 fix at members.home.com/grimmcna or whatever the URL of the site is now. VB: Chat LoggingMay 11, 2001, 11:36pm
There's another way to do what you're asking besides using the "Open",
"Close", etc. commands. If you look in the MSDN library that comes with VB, there's an object called the FileSystemObject, which, when created and associated with a file, makes editing files easier. For example, if you declared object a as one of these objects, then you could simply say: f$ = a.readall() to read all of the text in a file into a string. The statements a.read(), a.write(), etc. would also work. I would cut and paste the documentation here, but it's on the other computer, which someone else is currently using. Free source code and classesMay 14, 2001, 5:51pm
For those of you who have been asking about session lists and keeping track
of avatars, I was finally able to get around to releasing a few of the classes that I commonly use. They allow a programmer to: -Keep a session list with three lines of code -Retrieve integer coordinates from a string such as "45n 45e 0a 45" -Look up error codes with intelligent error messages -Generate a coordinate string out of SDK coordinates The classes open up interesting possibilities. Since the default property is the session, you could whisper to a citizen by name (instead of by session): aw.AwWhisper Avatars( "Magine" ), "Message" or locate a specific property by name: Avatars( "Andras" ).X You can download this code at http://www.shoemakervillage.org/programs.html Free source code and classesMay 15, 2001, 4:40pm
Take a look at the help files for the program - they're located on the same
page - it explains everything you need to know. VB: Storing Values in INI FilesMay 18, 2001, 6:34pm
A good ini file editor is included with all of my programs (ini tools.ocx).
It's simple to use - just add it to your project. You can download any of the programs at www.shoemakervillage.org/programs.html Magsbot classes in exchange for script help?Sep 29, 2001, 6:14pm
Unlike those who are flaming you for posting in HTML, I would be
interested in taking one of these classes - how detailed would they be? [View Quote] Magsbot classes in exchange for script help?Oct 1, 2001, 10:30pm
Monday nights would be best for me - I don't have to go in until 9:30 on
Tuesdays, so if you're asking my opinion, that's when I'd say :) [View Quote] Magsbot classes in exchange for script help?Oct 1, 2001, 10:31pm
I should add that Saturday mornings (10am to 12am VRT) would also be a good
time, as I'd be able to find some time when I won't be disturbed. [View Quote] SDK for PocketPCDec 14, 2001, 11:55am
While you're at it, develop one for the Palm too, lol. I don't have a
pocketPC, but a palm SDK would at least be interesting :) [View Quote] Log Bot v1.0Dec 16, 2001, 4:05pm
Hey Gamer,
This bot doesn't append logs - you opened the file for "output" instead of for "append." When you open a file for output, it deletes all the information previously in the log. Unfortunately, when you run this bot, it would delete all the previous logs each time you log in. -Brant [View Quote] Log Bot v1.0Dec 16, 2001, 6:36pm
Still, you could eliminate all that code by simply using the "append" mode -
problem solved :) [View Quote] Log Bot v1.0Dec 16, 2001, 9:26pm
Use the Kupex INI Tools ocx that I use in all my programs. I'll find it and
send it to you. It makes writing INI files quick and easy :) [View Quote] Activeworlds Utility 1.10 with dynamic IP ejectionJan 3, 2002, 3:56pm
I'd like to announce the release of the brand new Activeworlds Utility 1.10,
an update to the previously released Activeworlds Utility 1.03. New users can download the entire program at http://www.shoemakervillage.org/programs.html, while existing users can simply run their existing versions and upgrade. If your upgrade utility stops functioning for 10 minutes or more, then simply download the full updated version. Most of this update is related to stability. Disconnection handling is now enabled so that the bots will automatically reconnect unless the disconnection is the result of a privilege password change. There are some speed increases and GUI improvements. Users of a Locator Bot can now "visit" other avatars using 3.2's teleportation capabilities. Finally, and most importantly, this version offers something that was never before available: ejection by citizen number, regardless of IP address. Citizens with eject in worlds can now set up a continuous patrol that will keep problematic citizens out of your world until you allow them to reenter. However, I also spent 10-15 hours programming several new features that deal with tourist property, all of which are now obsolete and I had to spend more time removing from the program before I released it. This time could have been much better spent on a variety of other activities instead of programming software that is now useless. In light of these recent events, I've decided to take a "watch and wait" stance, meaning that I've suspended all development of all of my software until the current situation stabilizes. Obviously, AW is in a grave situation right now to raise prices so high, and whether people will still be around to use bots or whether these bots will even be useful at all if AW folds in a year remains to be seen. This doesn't mean that I'm going to stop all my activities FOREVER and leave AW immediately like a lot of the overreacting citizens are preaching now; it just means that I want to be sure that my programs will be useful in the future before improving them further. I'm still going to help out with the other organizations in which I'm involved, so I'm not disappearing any time soon. I've also written some new help files at http://www.shoemakervillage.org/help that are long overdue and should help with most if not all of the questions I'm receiving regarding the program. Comments about the Utility are welcome. WARNING: IMPORTANTMar 31, 2002, 4:01pm
Quite frankly, Mod, I don't believe you. Until I personally see this list
of passwords, I'm not taking action in any of my worlds, nor would I suggest that anyone else waste their time either. Second, if you actually have, as some claim, downloaded and de-encrypted files to your hard drive that do not belong to you, then you are in violation of international copyright law. All it would take would be for one owner of any of these 53 worlds to file a lawsuit, and you (or your parents, depending on your age) could be out thousands of dollars, not to mention spending some time in jail. I seriously doubt the legitimacy of this claim. Until I see proof, I'm not going to panic. [View Quote] WARNING: IMPORTANTMar 31, 2002, 4:02pm
Why can't you reveal who's on the list? That, coupled with the capital
letters all over your message and subject lines, spells "HOAX" to me. [View Quote] Brant's paintball bot is full of errorsMay 4, 2002, 6:29pm
You obviously downloaded the beta version of the bot. As you can see at
shoemakervillage.org/programs.html and in the message that appears in the upgrade notification, the latest version 3.0 is a beta version and may contain errors - thus, in other words, download at your own risk if you like to search out bugs. If you're dissatisfied with the current version, you can retrograde to version 2.24, which is still available - just press "skip" to reject the upgrade. Next time, please read the webpages clearly or E-mail me with your question before making a hasty decision to post messages like these. -Brant [View Quote] Brant's paintball bot is full of errorsMay 4, 2002, 10:54pm
There is no code anywhere in the paintball bot that deletes score files, so
I don't know how your files would have disappeared. I also don't know how the program would have upgraded unless you specifically pressed the "upgrade" button - that same code is used in every program I've published and nobody has complained of anything of the sort in some 50,000 program runs in over two years, and I did investigate a lot of complaints about the upgrade process. But anyway, the more important question is don't you have any backups? The first rule of computers is that you make backups of EVERYTHING - I myself have three copies of my magazines, novel, and source code even though they take up five CD's. [View Quote] Brant's paintball bot is full of errorsMay 6, 2002, 11:02am
I welcome all comments and suggestions for improvement :)
But isn't there already a function to do that? When you start version 2.24 now, it should display a message saying that there is an upgrade available. The bottom part of the form displays what's new in the upgrade, or in other words simply downloads and displays http://www.shoemakervillage.org/pbwhatsnew.txt when an upgrade is available. As you can see in that file, it says that the upgrade is a beta version. Since the upgrade isn't mandatory, you should be able to simply press "skip" and continue using the program as normal if you so choose. Isn't the "skip" button what you were referring to, in a way? [View Quote] Making a bot move in a circle.May 20, 2002, 10:27am
To do this, you'd need to think of the movement as a math equation. The
parametric (or one variable) system of equations for a two-dimensional circle are: x = R*cos(t) y = R*sin(t), where t is in radians between 0 and 2 times pi, and R is the radius of the circle. Since AW uses the Z-axis instead of Y for depth, replace Z for Y in these equations. The speed at which the bot moves around the circle can be changed according to how fast the parameter (t) changes - so to make the bot move faster, use a for loop (in C++) or a timer (in VB) to increment the value t from zero to 2 times pi faster or slower depending on the speed you want. Replace R with the radius of the circle, and you should be all set. I would explain it more specifically, but I don't know which language you're using. Hope this helps, -Brant [View Quote] Unusual behavior of AW SDK in classesMay 20, 2002, 1:22pm
This morning, I continued working on a "sekrit project" that I announced a
few days ago. [Remember that phrase? :)] Before anyone asks what it's about, I will give one hint - that it will revolutionize the environment in AWTeen and perhaps affect the rest of the universe as well. That's all the info I'm divulging until it's released in two weeks. Now that that's over with, I was trying to create a "Bot" class this morning to unify all the other classes I've been using. Basically, this class would simplify the use of the SDK by automating things like session tables and object querying. For example, someone could use: Bots(1).Add Bots(1).Login(.....) Bots(1).Move("900n 30e") Bots(1).Disappear Bots(1).Whisper "Brant", "Hi" Bots(1).ConsoleMessageToAllUsers "Test message" var1 = Bots(1).AvatarList("Brant").session Bots(1).query("800n 50e") and so on. But as I was trying to do this, I tried to include an AWSdkOcx4 object in the class and have been receiving "Object with block or variable not set" errors. At first, I used these lines: Private AW as AWSdkOcx4 'as a class property Set AW = new AWSdkOcx4 'at first access but that fails with an "invalid use of New keyword." I tried making the object AW public, but there was no change. Even if you try to use the SDK as a simple variable (not as an object), it fails as well with a similar error. When I looked up the help on this issue in the MSDN library, it says: ---------------------- You tried to instantiate an Automation object, but it was not a creatable object. For example, you tried to create a new instance of a list box by specifying ListBox in a statement like the following: ' Valid syntax to create the variable. Dim MyListBox As ListBox Dim MyFormInst As Form ' Invalid syntax to instantiate the object. Set MyFormInst = New Form Set MyListBox = New ListBox ListBox and Form are class names, not specific object names. You can use them to specify that avariable will be a reference to a certainobject type, as with the valid Dim statements above. But you can't use them to instantiate the objects themselves in a Set statement. You must specify a specific object, rather than the generic class name, in the Set statement: ' Valid syntax to create new instance of a form or list box. Set MyFormInst = New Form1 Set MyListBox = New List1 --------------- I don't see why you'd have to use a different name when instantiating these objects. Anyone have any ideas on why this might be or how to solve the problem? -Brant Unusual behavior of AW SDK in classesMay 20, 2002, 6:10pm
Weatherbot? That's already been done, albeit in a much sloppier manner. I
thought I'd finally get a class like this together to save me a lot of work in the future, especially since I'm programming the classes and certain 3.2/non-AW functions now, and waiting until MrGrimm has put together the new VB SDK and AW 3.3 is out of the beta test phase before finishing up with the 3.3 only functions. [View Quote] Unusual behavior of AW SDK in classesMay 21, 2002, 12:16am
Unusual behavior of AW SDK in classesMay 30, 2002, 10:58am
I hadn't planned on making a reply, lol. Thor (and Thor 2) are programmed
such that they will only work in AWTeen. Massive changes would be necessary to make it work in another world, not to mention another backdrop or skybox series would be needed since Beardo and NoMad own the rights to the current projects. I wish I could help :( [View Quote] Re: bot classesMay 21, 2002, 11:21am
Well, in reply to your question, I was originally going to write this secret
project in C++. I decided against doing so for two reasons. 1. I have hundreds of pages of code already written to do just about anything with the SDK that could be easily changed to do what this particular bot is designed for. In C++, I would have to rewrite all that code from scratch. 2. While I've written a lot of programs using console functions in C++, I have no knowledge of how to use the Windows API to create nice looking forms. I should probably learn how to use it, but doing so would push the completion of the project back beyond next week, AFTER 3.3 is released. Plus, VB offers a lot of ease in debugging that will allow me to get a project that doesn't necessarily rely on speed off the ground quickly. The only problem with VB is that inheritance is not supported (I believe VB.net supports it though), meaning that the only way I can add application-specific reactions to SDK events is to create a "generic module" which has a set of subroutines that are called after the class processes events. In the AvatarAdd event, for example, the class first manages the list of avatars (used in all applications), and then passes a reference of the "Bot" object to a global Sub for actions taken by this specific application. It's somewhat sloppy to have to create a "dummy module" with just the prototypes and no implementation and then make a copy to modify each time you want to write a bot - but it's the best VB offers, unless someone else has a better idea how this could be implemented. By the way, in case anyone is wondering, I plan to release all of these classes to the public in the hopes of spurring on interesting bot development. The code won't be compiled into a DLL - it will be released as the original source so everyone can take a look - stay tuned :) [View Quote] Very Puzzling FunctionMay 24, 2002, 2:08pm
As part of the "sekrit project," I've been putting together hard-to-write
functions while I wait for MrGrimm (a.k.a. 9 9 9) to finish the VB version of the new SDK. One of the most difficult parts of the project is being able to determine whether there are any objects in a cell that encroach into the cell. To explain this better, imagine that there is a single walk001h.rwx filling an entire cell that needs to be built. This function is supposed to determine whether there are any other objects either in the cell or overlapping into the cell that would cause the walk001h.rwx to be in a state of encroachment. While other parts of the project have been relatively simple, I've been working on this part for four days straight and have yet to find an acceptable solution. Yesterday night, I finally got the function to work correctly, but unfortunately, it can take up to two seconds(!) for each call. If 30 people are in AWTeen at a time and if just 8 of them perform the action that requires this function to be called two times per minute, the bot will be grinding away computing encroachment values for half the time! The problem is that it has to search through all of the AWObjects in a large collection that contains a 5X5 query result. I can reduce the load to deal with 3X3 queries only, but the wait is still ridiculously long. Someone suggested to me to implement a binary search, but doing so wouldn't help because it would be impossible to sort the objects in such a manner as to eliminate some of them, because some are obviously larger than others and some can be very large (i.e. that blue wall section that takes up five cells). The nested For loops are killing the processor, but I can't see any ways to eliminate them. The function is below. Any help anyone could provide in improving the speed on this one would be much appreciated. -------------- 'CitNum is the number of the owner of the objects that should be ignored (i.e. the builder) Public Function CheckCellForEncroachment(ByRef AWObjectsCol As AWObjects, CellX As Long, CellZ As Long, CitNum As Long) Dim TempX As Long, TempZ As Long, XCounter As Long, ZCounter As Long Dim XCheck As Boolean Dim ZCheck As Boolean 'AWObj is an object representing an AW object - X here is the X coordinate, Z is the Z coordinate For Each AWObj In AWObjectsCol If AWObj.Owner <> CitNum Then 'This part takes care of the case when the object is actually in the cell If AWObj.X >= CellX And AWObj.X <= CellX + 1000 And AWObj.Z >= CellZ And AWObj.Z <= CellZ + 1000 Then CheckCellForEncroachment = True Exit Function End If TempX = mCol(AWObj.Model).X TempZ = mCol(AWObj.Model).Z XCheck = False ZCheck = False 'for loops are necessary in the case that an object fills more than two cells 'in this case, an object could acutally encroach by having both ends out of the cell 'in question, while the middle is in the building For XCounter = TempX To 0 Step -1000 For ZCounter = TempZ To 0 Step -1000 'coordinates of objects in negative numbered cells are LOWER than the cell coordinate, 'while the coordinates of objects in positive numbered cells are HIGHER than the coordinate 'this, either the slow abs() function must be used, or an if else clause is needed If AWObj.X > 0 Then If (AWObj.X - TempX > CellX And AWObj.X - TempX <= CellX + 1000) Or (AWObj.X + TempX > CellX And AWObj.X + TempX <= CellX + 1000) Then XCheck = True End If Else If (AWObj.X - TempX < CellX And AWObj.X - TempX >= CellX - 1000) Or (AWObj.X + TempX < CellX And AWObj.X + TempX >= CellX - 1000) Then XCheck = True End If End If If AWObj.Z > 0 Then If (AWObj.Z - TempZ > CellZ And AWObj.Z - TempZ <= CellZ + 1000) Or (AWObj.Z + TempZ > CellZ And AWObj.Z + TempZ <= CellZ + 1000) Then ZCheck = True End If Else If (AWObj.Z - TempZ < CellZ And AWObj.Z - TempZ >= CellZ + 1000) Or (AWObj.Z + TempZ < CellZ And AWObj.Z + TempZ >= CellZ - 1000) Then ZCheck = True End If End If If XCheck And ZCheck Then CheckCellForEncroachment = True Exit Function End If Next Next End If Next CheckCellForEncroachment = False 'if no object is found that encroaches, exit End Function Very Puzzling FunctionMay 24, 2002, 5:53pm
I appreciate the tips here, but I asked for help on the function, not the
language. As I said before, I had originally planned to write this program in C++, but because I already have a lot of classes for various purposes written in VB, I decided to use VB. To tell you the truth, I don't think that any language will be able to handle what this function is supposed to do perfectly, since it's just a work-around for the same function in the world server. Just getting it to work took four days - it'll take many more to get it optimized, and there are time constraints (i.e. the release of version 3.3) to deal with here. It would be interesting to see how Roland implemented this function in the world server. [View Quote] |