cotarr // User Search

cotarr // User Search

1  |  

Linux bots?

May 21, 2000, 12:55am
As someone who's been running eggdrop bots for years in the unix
environment, I'll ask.... so why not a precompiled sdk for linux? The
source could remain proprietary. For simple tasks, like changing the
background file at night, a couple lines of c and you could drop it
right in on the same machine as the server forked in the background.

Is there any reason there are linux and sun versions of the server,
but not the sdk?

[View Quote] >That would only be possible if an linux AW SDK would be released.
>This is not the case, and therefore no bot programmer can provide a linux bot.
[View Quote]

compiler recommendation

Mar 27, 2000, 11:36pm
Does anyone have a recommendation for a c compiler that is compatable
with sdk? Is there a favorite?


compiler recommendation

Mar 30, 2000, 10:38pm
Thanks for both the recommendations,

[C++ 60] aw_init RC 518

Jun 3, 2006, 10:44pm
I start my .exe using a shortcut. I had the same problem until I put
the license into the same folder where the shortcut was located. For
some reason, it does not see the license located in the .exe folder.
It must use the current directory or some sort of working directory.
Mine starts fine now that I relocated the licesne.

Strange, it can find the dll but not the license.

On 3 Jun 2006 20:12:58 -0400, "dm mercury" <dmmercury at>
[View Quote] >I can not initilize the sdk period with any microsoft compiler i have 6.0 or
>.NET. The bot compiles everything is linked just fine. However the call to
>aw_init(AW_BUILD); always retruns 518. I have compiled the bot for stand
>alone and attempted to run in the ide. Both result in the same error code.
>I reported this problem in beta and it is still unfixed. I think that I am
>capable of placing liscense.awsdk in the same directory as a program or
>project. Hell just to test it was in the project/program dir i spewed the
>liscense file text out to the console, why can't the sdk detect it?

SDK terrain error

Jun 6, 2006, 7:39pm
At some point I guess it is just time to sit back and laugh,

I used the SDK to make a call to aw_world_attributes_change();

Look what it did to the terrain,


SDK terrain error

Jun 6, 2006, 8:25pm
more info,
I think this is a browser issue. If I leave the world and return, I
can still see the effect, but if I delete cache and then return the
effect is gone. It's not actually in the server database, it's in the

Each time i have reproduced this, the world log contains individual
CHANGE ATTRIB entries, each is followed by large numbers of TERRAIN

In the world, i can see the sky change color, but then the chat window
floods with terrain texture errors with high texture numbers in range
of terrain100 to terrain300 not found.

[View Quote] >Cotarr managed to reproduce this for me while I was in rratoc.
[View Quote]

SDK terrain error

Jun 6, 2006, 10:24pm
Actually, thank you, I was wondering the differences. That will be
useful when I update the build parts of my bot.

The error above did not occur during terrain upload. I was changing
the color of the sky, but the terrain changed unexpectedly, concurrent
with the sky color change.

Thanks for the upgrade info.

On 6 Jun 2006 19:33:57 -0400, "Dr. Squailboont"
[View Quote] >In 4.1, the terrain heights can now be much higher... Therefore, the
>type has been changed from "short" to "int".
>You will also need to set AW_TERRAIN_VERSION_NEEDED.
>Example C code:

SDK terrain error

Jun 18, 2006, 8:03pm
This is now fixed in browser build 951.
I can no longer reproduce it with the SDK function calls.

Thank you

aw_instance_event_set / aw_event_set / aw_event

Jun 7, 2006, 8:21am
I'm curious about the Instance=0 events also. The first thing I
noticed was that when starting the SDK, one initial Universe Update is
received with Instance=0. I've never seen instance=0 events in 3.6.

On 7 Jun 2006 05:20:52 -0400, "Grimble"
[View Quote] >Can anyone shed any light on how to use these methods properly please? For
>example, I assume that ...
>** aw_event_set works as before, setting a global event handler for all
>instances (?)
>** aw_instance_event_set sets the event handler for the current instance
>(identified with aw_instance_set)
>** aw_event returns the event handler based on the the current instance
>(identified with aw_instance_set - Instance = zero for global handler?)
>Assuming that the above is true (please correct me if not), if both the
>global and instance event handlers are installed, are they both called? ...
>and if so, in what order?
>I could experiment with this, but playing with the SDK at the moment is more
>of a chore than any fun with the current release, so any info would be
>Thanks, Grims

Object events

Jun 10, 2006, 10:20pm
Has anyone figured out the new V4 object event data types


AW_OBJECT_TYPE seems to be 0=Object 2=Zone 3=Emitter 4=Mover 5=Camera

I have tried to use aw_data(AW_OBJECT_DATA, &mylength); The integer
mylength variable takes on a value equal to the length integer in the
admin.exe propdump file, but the data part includes hex CC-CC-CC-CC
compared to the propdump data block that starts with "000000..." Is
the data encoded, like Radix or something?

Anyone have a code example how to grab this data for V4 object types
when object events occur?

Also, if you try to read AW_OBJECT_DATA for for the old type=0
standard RWX objects, it crashes. It must only be intended for new V4

I notice several new integer fields in the admin.exe object propdump,
I assume these are for ID, SYNC, TYPE and the length of
AW_OBJECT_DATA. I'm not clear what they are for.


Object events

Jun 10, 2006, 11:25pm
Sorry, makes more sense now after some dinner,

Is this correct?

aw_data(AW_OBJECT_DATA, &mylength) seems to return a pointer to a
series of count=mylengh of 8 bit binary values. In the case of a zone,
the length returned is 51 bytes.

If I propdump a zone with admin.exe, then I see the "51" integer and a
hexadecimal ascii string of 51 bytes, which is exactly equal to what I
see in binary from the aw_data(AW_OBJECT_DATA....)

Next, if I look in aw.h at
typedef struct aw_object_data_zone
and then if I count up all the data type in the struct, i get:

5 float = 25 bytes
19 char = 19 bytes
5 short = 5 bytes
1 long = 2 bytes
Also equals 51 bytes.

So it would seem you could define a variable of type
aw_object_data_zone and just copy the binary. Is this how the object
events are intended to work?

[View Quote] >Has anyone figured out the new V4 object event data types
>AW_OBJECT_TYPE seems to be 0=Object 2=Zone 3=Emitter 4=Mover 5=Camera
>I have tried to use aw_data(AW_OBJECT_DATA, &mylength); The integer
>mylength variable takes on a value equal to the length integer in the
>admin.exe propdump file, but the data part includes hex CC-CC-CC-CC
>compared to the propdump data block that starts with "000000..." Is
>the data encoded, like Radix or something?
>Anyone have a code example how to grab this data for V4 object types
>when object events occur?
>Also, if you try to read AW_OBJECT_DATA for for the old type=0
>standard RWX objects, it crashes. It must only be intended for new V4
>I notice several new integer fields in the admin.exe object propdump,
>I assume these are for ID, SYNC, TYPE and the length of
>AW_OBJECT_DATA. I'm not clear what they are for.

Object events

Jun 15, 2006, 7:49pm

Thank you for the info on AW_OBJECT_SYNC.

As to the AW_OBJECT_DATA section, I have not tried to use the
predefined struct. Rather, I have just created a Hexadecimal text
string for each object type that exactly duplicate the Admin.Exe
propdump file format.

Although I can not alter the individual settings of an individual V4
object, I was successful with being able to interchange propdump files
from Admin.Exe for purpose of backup/move/copy/delete local areas of
objects. So far, all the V4 object I have tested were correctly
download and re-upload, using only the literal hexadecimal text string
and standard 4.1 prodpump format that I saw on page. (thanks
Mauz). Later on I was going to try the struct formats, for each object
type, but i've not had time.


On 14 Jun 2006 22:00:26 -0400, "Magine" <magine at>
[View Quote]

Terrain in 4.1

Jun 14, 2006, 11:00pm
Yes, helpful, thank you. -cotarr

On 14 Jun 2006 02:47:09 -0400, "Dr. Squailboont"
[View Quote] >As I have been encountering through working on Demeter's conversion to
>4.1, there have been a number of 'subtle' changes in the terrain system
>since its change from the "short" type to the normal signed "int" type.
>Changes I have 'discovered' thus far:
>* Terrain texture rotation types
> AW_TERRAIN_ROTATE_NONE 0x0000 0000000000000000
> AW_TERRAIN_ROTATE_LEFT 0x4000 0100000000000000
> AW_TERRAIN_ROTATE_OPPOSITE 0x8000 1000000000000000
> AW_TERRAIN_ROTATE_RIGHT 0xC000 1100000000000000
> These values are Logical OR'd with the texture value. If the overall
> value of the texture is exactly 0xFFFE (65534), a hole is placed in
> the terrain.
> I have yet to have this one explained to me, but I was told some
> time ago that this attribute must be set to an integer value of
> '2' (via aw_int_set)
>This hopefully will save some frustration for anyone else trying to
>figure out what they've done to terrain now.

dead bots do tell tales

Jun 15, 2006, 8:04pm
What I have noticed, it works exactly like 3.6 until it disconnects.
While it is connected, MFC timer events spawn threads, and inside the
timer service routine, call to aw_instance() return the current
instance number.

However, if the bot disconnects, and reconnects, after the reconnect,
inside the MFC timer handler subroutine, call to aw_instance() now
returns 0, and each call has to set aw_instance_set() first.

In both cases, when aw_instance() is checked inside an AW SDK spawned
event, the instance is always correct. This is only outside SDK
events with Windows generated evernts (not created by SDK).

I don't see this as a bug, because I always explicitly do
aw_instance_set() before SDK calls, but perhaps it will help solve a
piece of you puzzle.

Also, with only one instance running, each reconnect seems to generate
a different instance value. Perhaps they are stacking up.

Also, when the bot first connects to the universe, a
universe_attribute is received from aw_instance()=0, and 3.6 sdk I
have never seen instance=0 when the bot is started, again, not an
issue, just interesting observation.


On 14 Jun 2006 22:05:35 -0400, "Magine" <magine at>
[View Quote] >I've found that in 4.1 SDK build 60, after calling aw_destroy, I can
>still select the presumably nonexistant instance using aw_instance_set,
>without getting an error. (This kind of broke a function in Magsbot that
>expected to get an error if the instance had been destroyed. I fixed the
>problem as far as I'm concerned by doing some things differently, but
>it seems strange anyway.)

On a more constructive note ...

Jun 18, 2006, 8:17pm
Considering the changes in SDK we have seen so far, it sounds like
this would be a good experiment of the individual SDK functions
outside of the quirks of coverted 3.6 code.

I would be interested to read about what you discover about the SDK,
even if I didn't use the plug-in.

And I agree about the newsgroup, issues, solutions, questions,
answers, code examples.


On 18 Jun 2006 10:06:07 -0400, "Grimble"
[View Quote] >I've been playing recently with a concept that the SDK seems to lend itself
>to quite nicely, and with the current state of the SDK and the difficulties
>involved in using it at the moment, I thought now might be a good time for
>some healthy discussion on the subject.
>Based on my previous experience of the people that used the SDK and the way
>this newsgroup worked (it used to be more of a "how do I do this?" and "why
>doesn't my bot do what its supposed to?" forum with code snippets flying
>around and, sometimes, even active discussions on specific topics), it
>struck me that we would all be better served by something based on sharable,
>re-usable components.
>If you look for a basic OO abstraction of the SDK, you'll probably come up
>with a set of virtual methods in some form of base class to handle SDK
>events, which is great for laying down a template for developing bots. This
>still targets a single set of code per event, though.
>I've spent the last couple of weeks going through several iterations of
>prototype for a very simple framework that doesn't attempt to abstract the
>SDK, but rather puts in place a foundation for "plug-ins" - reusable
>components that can be connected to a base "bot" class, sharable in either
>code or binary form. The framework deals with enabling plugins to subscribe
>to SDK events and callbacks and their delivery to appropriate components
>when they arrive. Additional base class methods open up the plugins (and the
>base "bot" class in the framework) to the SDK methods whilst still
>protecting the operation of the framework.
>This "plug-in" framework enables all manner of components to be created
>ranging from the simple (for example, a plug-in for handling the bot's
>avatar in the world, logging chat messages, etc.) to the more complex
>(Demeter, game controllers, property managers, etc.). Plug-ins can use their
>own plug-ins within them and they can be extensible, enabling people to
>build on top of existing functionality by subclassing the plug-in.
>The prototype isn't ready for public consumption - I'm hoping to have plenty
>of examples and documentation before I throw the code up to be shot at - and
>it only exists in .NET 2.0 at the moment (the concept was inspired in the
>first place by delegates, although the idea of using delegates in the
>implementation was discarded after the first prototype).
>Most SDK applications spend 95% of the time doing nothing and often multiple
>bot instances are running simultaneously, picking up the same events and
>The reason for the (longer than I'd planned) post, was to see if anyone
>wanted to discuss ...
>(a) whether this has been tried/implemented before with any success/failure
>(b) the whole "plug-ins" concept and preferences on implementation,
>(c) possible target platforms,
>(d) whether you think anyone would use it,
>(e) anything else.
>This is nothing ground breaking, just a concept that seems to work quite
>nicely. It may even bridge the gap to "native" SDK development for those
>that haven't tried it before. There's a chronic lack of people involved in
>SDK development, which is sad.
>Any comments welcome, Grims.

aw_teleport (warp) under water

Jul 4, 2006, 2:13pm
I'm trying to get aw_teleport (warp) to work in 4.1 when the avatar is
under water. With each SDK teleport, the avatar rotates to face in
the correct direction, but the position does not advance.

It works fine above ground (walking and flying). This worked fine in
3.6 below the water. I've tried underwater friction = 0.0, 1.0. I've
tried underwater gravity 0.0 and 1.0, it makes no difference.

Are there any new teleport attributes in 4.1, or any new world
settings, that will allow aw_teleport (with warp) to work under the

Thanks, -cotarr

return code for aw_world_ejection_next()

Jul 14, 2006, 2:47pm
Has use of aw_world_ejection_next() changed in the 4.1 version? In
3.6, this function would return non-zero at the end of the last
ejection in the list. 4.1 seems to always return zero. Repeated calls
will return the last eject over and over, with rc=0.


[953] delete object using object id

Aug 13, 2006, 5:19pm
My understanding is that AW_OBJECT_NUMBER is used to uniquely identify
an object within a cell address (AW_OBJECT_X, AW_OBJECT_Z). You should
use AW_OBJECT_NUMBER to delete, and I think it will work for you, if
you have the X, Z cell address correct.

I believe AW_OBJECT_ID is intended to be used to uniquely identify an
object in the entire world, and that it does not change if the object
is edited. This is used primarily by game bots that track object
ownership. Perhaps also used for the tourist guard bots. For a game
bot, I think it is much simpler to use AW_OBJECT_ID, than trying to
track the OBJECT_NUMBERS, which can change, and are tied to cell

Perhaps one of the game bot programmers can clarify.


On 13 Aug 2006 14:37:38 -0400, "Magine" <magine at>
[View Quote] >It doesn't appear possible to delete an object using the object id. I do:
>// iObjectID, iObjectZ, iObjectX are set to the previously created
>object's ID and coordinates.
>aw_int_set(AW_OBJECT_NUMBER, 0);
>aw_int_set(AW_OBJECT_ID, iObjectID);
>aw_int_set(AW_OBJECT_Z, iObjectZ);
>aw_int_set(AW_OBJECT_X, iObjectX);
>...but the object doesn't get deleted. Sometimes aw_object_delete
>returns "no such object" and sometimes it returns successful (0) but the
>object doesn't disappear. Sometimes the wrong object disappears.
>There's no problem if I use object number instead of ID.
>Yes, I am getting the new object id and not the object number when I
>create the object with object number set to 0. The aw_object_change
>function works ok using the object id instead of the object number.

Any 4.1 SDK Info?

May 31, 2006, 9:06pm
I am assuming that the 4.1 SDK is not quite ready for release. I'm
cool with that.

However, it would be great if we could see a draft of some of the 4.1
SDK help pages. We could pre-code our bots, and when the release
becomes available, we would need only a brief debug.

I'm curious about changes in data types. With terrain, how is the
texture rotation orientation handed with 500 terrain textures? For the
objects, how are the new object types handled ( ie, AW_OBJECT_TYPE ?).
Any new events? What else has changed?

Earlier this year, I wrote several email to AW asking about
preliminary information about the 4.1 SDK, but I never had any
replies, (frustrating). Now I see that the first 4.1 bots are starting
to be distributed? Obviously there must be some technical information
posted somewhere. Any idea where we can find a summary of the SDK



Jun 29, 2006, 11:26pm
On the download page, could you please include the build number with
the administration tool admin.exe so that we can tell if our version
is current without having to download it.

as I watch it die

Jun 8, 2006, 7:50pm
Well, some of us are still on 3.6 because we have Linux hosted worlds
that are integrated with Linux bots and Linux web servers. We watch
with interest, looking forward to the day that we can move.

On 7 Jun 2006 21:42:50 -0400, "Lady NightHawk"
[View Quote] >I gotta wonder why there's 24 users still in 3.6 ... you I can understand
>but are all 24 users having the same problem, different problems, like 3.6
>better than 4.1?
[View Quote]

4.1 texture/mask bug

Jun 8, 2006, 7:43pm
Paul's method worked for me also.

I think perhaps it is some sort of obsolete BMP format that is not
supported. I also opened a couple broken sprites with 2-color masks,
and simply resaved the file in PSP-8, and they worked fine after. I
have some 2 color, 16 color and some 256 color masks as BMP that were
originally created with various versions of PSP over the years and
they all work fine. All of my problems were with old public domain
objects that were probably 8-10 years old.



Jun 21, 2006, 9:16am
This sounds like the perfect opportunity to create and test a global
chat server plug-in module.

We run a bot. One downside to using a bot is that if an abbusive user
enters, people can not mute console messages for that specific user
like you can whisper or world chat.


1  | is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn