edward sumerfield // User Search

edward sumerfield // User Search

1  2  3  4  5  6  ...  9  |  

AWCPP - C++ release v0.2

Oct 30, 1998, 3:05am
Don't you just have to manipulate the results of the aw_query? It returns the objects in a
zone. Once retrieved, you can then decide on a center, select the objects and sequence through
each of them applying the same rotation algorithm.

I am not sure how you want to select your objects. Maybe by owner id, or specify some kind of
bounding box?

The algorithm you want is more complicated than mine. You don't want to work out the yaw of
the object as a tangent to your circle, that would get you into differentiation - hated that
in school. Given an objects position, a center and an angle of rotation you can work out the
new x,z coords.

Lets see, if you look at the problem as "how do I move to the edge of my circle at a specified
angle" then you have a simple forward movement from circle center algorithm.

All you have got to start with is the circle_x , circle_z and object_x, object_z numbers. You
have to work out the radius of the circle you want your object to scribe. I think this is the
hardest part of all this.

First work out the length of the sides of the triangle.

delta_x = circle_x - object_x;
delta_z = circle_z - object_z;

Now work out the angle represented by the object and the circle center. Remember that all
these angle things are in radians. This goes back to the tan(angle) = o/h equation so the
angle = inverse tan(o/h).

angle = atan(delta_x / delta_z); or = atan2(delta_x, delta_z);

So the radius is

radius = delta_z / cos(angle);

Now to work out the position on the edge of the circle for any angle is simple.

center_x = 100;
center_z = 100;
angle = 15;

edge_x = center_x + (radius * sin(angle));
edge_z = center_z + (radius * cos(angle));
Move object to edge_x, edge_z;

You could get fancy if you want to tilt your circle into the y plane.

angle_yaw = 0;
angle_pitch = 0;

edge_x = center_x + (radius * sin(angle_yaw));
edge_z = center_z + (radius * cos(angle_yaw));
edge_y = center_y + (radius * sin(angle_pitch));
Move object to edge_x, edge_z, edge_y;

We are using a constant radius here but what if you wanted to rotate in an ellipse. I guess
the radius would have to change with some function of the angle. Maybe you could set the
radius for each step using

radius = minimum_radius + (radius_variation * cos(angle));

That way your radius would vary from the minimum_radius to the maximum radius (minimum +
variation) based on the angle.

There is more. We currently have an ellipse whose minimum and maximum dimensions are aligned
with the NS and EW axis. You can now rotate your ellipse in the horizontal or vertical plane
by adding an angle constant to the radius calculation.

radius = minimum_radius + (radius_variation * cos(angle + (ANGLE%360)));

You are also going to have to change the yaw of your objects based on how far around the
circle they have moved but I think that's just a matter of adding the angle of rotation to the
objects yaw.

Of coarse, this is a total guess. Its has been years since I played with math's. Its quite fun
to get back into it again. I was working with my 15 year old son doing algebra the other day.
It takes a while for it all to come back, he is still faster at it than I am.

Edward Sumerfield.

[View Quote] > Yes, I can now see that your code does allow for all angles, and is certainly the model
> for the rest of us to follow. I think it should work in any world quadrant, too; I was
> trying to picture the avatar as the center of a circle with four quadrants. I noticed that
> AW yaw places the first quadrant on the NW of the avatar, which is different from standard
> trig, but blends well with AW practice making S and E negative directions.
> I want my builder bot to be able to rotate an entire building (including landscape, etc.)
> to suit the needs of a particular site, working from a standard blueprint. I was trying to
> relate my trig problem to your avatar solution. Instead of one avatar, it's like I'm
> choreographing a lot of avatars, who are all moving 5 degrees around concentric circles at
> various distances from the center of the dance performance. Each avatar has its own
> n-meter hypotenuse from the center; the problem is working out the sines and cosines for
> their initial (blueprint) positions and final (constructed) positions. I'll try to post
> the code as soon as I have a version that works.
>
[View Quote]

bot idea

Mar 19, 1999, 4:09pm
[awcommunity snipped]

Is Rolu doing a deer bot as well?

Mine, is coming together well. Working on the avatar at the moment.

[View Quote] > Hey rolu, how did the deer bot turn out? I havent kept up to date on it, and
> was just wondering.... thanks.
> Ashen

AWCPP - C++ release v0.2

Oct 30, 1998, 5:22pm
--------------A0F028B5D7500CF79F42F557
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

[View Quote] > except that I get the radius for each object (hypotenuse) by geometric
> means (courtesy of Pythagoras)

Of coarse, good old Pythag' I forgot about him. Now that is h squared = opposite square + adjacent
squared right? So your radius is root of opposite squared plus adjacent squared.

> and calculate the effect of the universal rotation starting from
> the object's arctan angle.

I don't get this. You are using the arctan of opposite / adjacent to get what? Which hypotenuse? There
is one from the center of the circle to the edge of the circle and one that connects two points on the
edge of the circle, from and to x,z locations. I feel a picture coming on. I see you are running
Mozilla 4.05 so should be able to see it as well.

[Image]

Do you mean h1 or h2 assuming the avatar direction follows the yellow arrow?

> To allow the avatar to move backwards,
> or sideways, while continuing to face the old way, one would have to declare a separate angle of
> motion,

I think I will add methods for move_right, move_left, move_up and move_down. All retaining the same
yaw.

I have decided to extrapolate movement patterns from the Movement class. So I will have a Shape class
that can have inherited shapes like circle, polygon or line even. Each version of the Shape class will
take a Position object and through multiple calls to its move method will translate the coordinates
within the Position object to the next location all around the edge of the shape.

You might end up with the following.

Circle c(position, radius, step, start angle);
for (int angle = 0; angle < 24; angle++) {
c.move()
aw_change_state
}

Edward Sumerfield.

>
>
[View Quote] --------------A0F028B5D7500CF79F42F557
Content-Type: multipart/related;
boundary="------------EDCD693794457AFB4845B423"


--------------EDCD693794457AFB4845B423
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
[View Quote] --------------EDCD693794457AFB4845B423
Content-Type: image/gif
Content-ID: <part1.363A1200.F3857832 at poboxes.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\TEMP\nsmailQC.gif"

R0lGODlhZABQAPcAAAAAAAAAUhAYxhAhzhgxzhg5zhhC1hhS1iFa3iFj3iFr3iGM5ykhximU
7ymc7yml7ym19yn/GDHG9zHO/zHe/zkpzkpCzlJK1mtj1nNr3oyE3pSM58YpMcbG7+fn9+/v
//f3c/8xAP//////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////ywAAAAAZABQAAAI/gBFCBxIsGBBChQmIEy4UCFC
hwwfNpwosWLEixAzUsS4UaHBjx8jarQ4kiPJjihPqjRJAaTLgQtTsixJU2bNlTVfupQIcabN
nziB+kSoE+TFozeHKk3KFGXRkCebBp26VCjEpwZZUpVadetPrAejWh3rtexFsAS1dl3Lte1E
tDDFmnU7VyhcgWrpsiVb9a6IlHoD873pd29dqgAARIgwuKHfv4Yja0xMWTFjwS0LNz5MoXJl
hIs3J3yMVHRNz5QrTgiNmbRFyRtRJ1a90LJp0g4VYmYoGwDtmAptt9Yck3Pv3xMdJg7NeQJu
hj2bHhdZXHd136w3u64OPLZs5Dy5/gfHzrj547/Ww0ucnlu8+5i+KSyOTvY8d/jfqXfvCd29
79Xl0beVfel1ll97+72XHH6gXfaaVOdBxt5r/SVoYXLxAUiRgDM9NuFRFS54oXoGLpTdhYT5
BUAILIIXIokwvsibRMzJyNR5LLa4kog8xpjebA7NV5x+PuGYo0oF9mgjiBPE9xBzBXJlJAU6
apWkj0zy9p+JDjY25ZFAXbkkf07qVmNJShn515FJKaikbkDGdKKVTj3GImRg1hRljC86GdGZ
MrGkJp4hdEfhoXyOx5GQgBVpZwh4KdSinhztGWKTG8kXoKGlWTQooYWqhSh/E8XJ04kcppqZ
X3dGSmWV/hrtKStGfvYEaKe4fgrZq6GOOiSI622Z3JwI7ujRowdJWih9s8Z6Ua3F3cpje1ch
m9ZCOpLq65DBVZoQsVk+uOpdraalbK/WMeutcmUOKS1yJemKF7awcnrfdWJp6OyA1oqwQQau
OsDBpBv252xwASDQkAQKLMBlpl192oEFMEmQgAL1IgpsZw8UEBECDzCgQIPq8ssqpAJNTNAE
Coxc5boJNglAxwtJoJADHmsILIT9TqxBBR781TKvom7sW8cKMGAzQg6MrCl1qpIkcQUiaKCB
QEMTbdLBJYZMQdYTFCBBg5lGHZHEFFstkAZOa731r/HRnHUDEDzZpbc4oV31/tV7RwRmUIpO
IPfIEDRAgQRjS8tfiicPpAEDHmBggQceXHCBB34vyymZCykggAQHFBByAQUQQPLmS8m7E0PZ
oi5zXnaLi3pFqq/uNoedlf0aqih2VPtO505bIpoa3UpqiiCQizJY9Goem6GW6uvejSKAkDxa
5TKvbNmmys4QoNoybj32y8OF0MsQtUv8w4t7nxFB42OVvfls8iRsoAqBX3BKBV3/1Pz0e1mJ
4EWSOSFpc/3zn04AGEDNYUopF9HfASlikPgtsHxTQshshPK9CBwPYlH6iAVdwsCTJSRDs8MI
lHB1JYeAZIQfyZEMZ0jDGtZQfY0iG+7ad5YXXtCGkUAMIosWQ8QiGvGIRUTJvjDiEhhG6CmW
QaIUj4grCo3kJU584ksAkJW1yIVE78OiArX4HMAd6oO008kYyUigQAlvT2DJIhvLiDciAccv
cpwjG+2lx+pdL499DOQcxwdIQRryickr5CEXeRfrKZKRkMSKIyNJSTw68pGVzKRALolJTXry
k6AMpShHScpSmlInAQEAOw==
--------------EDCD693794457AFB4845B423--

--------------A0F028B5D7500CF79F42F557--

AWCPP - C++ release v0.2

Oct 31, 1998, 1:58am
--------------0434EC37DB3981F43E4B7FA9
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Ok, I think I understand. The only thing I am concerned about is that you have
x/z which would give you the angle at the center of the circle. You want z/x
to give you the angle that the object has to more forward at.

Its hard to communicate this stuff this way. Just make it happen dude, I want
to see spinning buildings.

[View Quote] > Nothing special about the arctan business (= your atan2(delta_x, delta_z)
> ): it should yield the angle at the original object, just above the
> unlabelled radius on your cool colored diagram. To that angle, I add the
> user's selected rotation (in degrees). Which allows me to find out what the
> width of the angle above radius h2 is. On your diagram, the original angle
> looks like 100 degrees, the rotation like 65 degrees, and the angle of the
> object to be built looks like 165 degrees. Since it is 165 degrees, and the
> radius h2 is known, I can proceed to use the avatar solution of sine/cosine
> routes to the new x and z. Neither the yellow triangle nor the red triangle
> come into it at all. Of course, I've been so busy reading everybody's
> fascinating new bot and geometry ideas, that I still haven't tested this
> out!
>
[View Quote] --------------0434EC37DB3981F43E4B7FA9
Content-Type: multipart/related;
boundary="------------28C2B9174F3EF31CF54BEF48"


--------------28C2B9174F3EF31CF54BEF48
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Ok, I think I understand. The only thing I am concerned about is that you
have x/z which would give you the angle at the center of the circle. You
want z/x to give you the angle that the object has to more forward at.
<p>Its hard to communicate this stuff this way. Just make it happen dude,
I want to see spinning buildings.
[View Quote] --------------28C2B9174F3EF31CF54BEF48
Content-Type: image/gif
Content-ID: <part1.363A8AD7.77C2E8E8 at poboxes.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\TEMP\nsmailQC.gif"

R0lGODlhZABQAPcAAAAAAAAAUhAYxhAhzhgxzhg5zhhC1hhS1iFa3iFj3iFr3iGM5ykhximU
7ymc7yml7ym19yn/GDHG9zHO/zHe/zkpzkpCzlJK1mtj1nNr3oyE3pSM58YpMcbG7+fn9+/v
//f3c/8xAP//////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////ywAAAAAZABQAAAI/gBFCBxIsGBBChQmIEy4UCFC
hwwfNpwosWLEixAzUsS4UaHBjx8jarQ4kiPJjihPqjRJAaTLgQtTsixJU2bNlTVfupQIcabN
nziB+kSoE+TFozeHKk3KFGXRkCebBp26VCjEpwZZUpVadetPrAejWh3rtexFsAS1dl3Lte1E
tDDFmnU7VyhcgWrpsiVb9a6IlHoD873pd29dqgAARIgwuKHfv4Yja0xMWTFjwS0LNz5MoXJl
hIs3J3yMVHRNz5QrTgiNmbRFyRtRJ1a90LJp0g4VYmYoGwDtmAptt9Yck3Pv3xMdJg7NeQJu
hj2bHhdZXHd136w3u64OPLZs5Dy5/gfHzrj547/Ww0ucnlu8+5i+KSyOTvY8d/jfqXfvCd29
79Xl0beVfel1ll97+72XHH6gXfaaVOdBxt5r/SVoYXLxAUiRgDM9NuFRFS54oXoGLpTdhYT5
BUAILIIXIokwvsibRMzJyNR5LLa4kog8xpjebA7NV5x+PuGYo0oF9mgjiBPE9xBzBXJlJAU6
apWkj0zy9p+JDjY25ZFAXbkkf07qVmNJShn515FJKaikbkDGdKKVTj3GImRg1hRljC86GdGZ
MrGkJp4hdEfhoXyOx5GQgBVpZwh4KdSinhztGWKTG8kXoKGlWTQooYWqhSh/E8XJ04kcppqZ
X3dGSmWV/hrtKStGfvYEaKe4fgrZq6GOOiSI622Z3JwI7ujRowdJWih9s8Z6Ua3F3cpje1ch
m9ZCOpLq65DBVZoQsVk+uOpdraalbK/WMeutcmUOKS1yJemKF7awcnrfdWJp6OyA1oqwQQau
OsDBpBv252xwASDQkAQKLMBlpl192oEFMEmQgAL1IgpsZw8UEBECDzCgQIPq8ssqpAJNTNAE
Coxc5boJNglAxwtJoJADHmsILIT9TqxBBR781TKvom7sW8cKMGAzQg6MrCl1qpIkcQUiaKCB
QEMTbdLBJYZMQdYTFCBBg5lGHZHEFFstkAZOa731r/HRnHUDEDzZpbc4oV31/tV7RwRmUIpO
IPfIEDRAgQRjS8tfiicPpAEDHmBggQceXHCBB34vyymZCykggAQHFBByAQUQQPLmS8m7E0PZ
oi5zXnaLi3pFqq/uNoedlf0aqih2VPtO505bIpoa3UpqiiCQizJY9Goem6GW6uvejSKAkDxa
5TKvbNmmys4QoNoybj32y8OF0MsQtUv8w4t7nxFB42OVvfls8iRsoAqBX3BKBV3/1Pz0e1mJ
4EWSOSFpc/3zn04AGEDNYUopF9HfASlikPgtsHxTQshshPK9CBwPYlH6iAVdwsCTJSRDs8MI
lHB1JYeAZIQfyZEMZ0jDGtZQfY0iG+7ad5YXXtCGkUAMIosWQ8QiGvGIRUTJvjDiEhhG6CmW
QaIUj4grCo3kJU584ksAkJW1yIVE78OiArX4HMAd6oO008kYyUigQAlvT2DJIhvLiDciAccv
cpwjG+2lx+pdL499DOQcxwdIQRryickr5CEXeRfrKZKRkMSKIyNJSTw68pGVzKRALolJTXry
k6AMpShHScpSmlInAQEAOw==
--------------28C2B9174F3EF31CF54BEF48--

--------------0434EC37DB3981F43E4B7FA9--

bot idea

Mar 20, 1999, 2:59pm
[awcommunity snipped]

Life keeps getting in the way of deer development. The end of Feb sounds like
one of my, ever enthusiastic, but totally unrealistic, estimates.

I could release the code before the avatar if you guys would like. It would
involve the new AWCPP 0.4 version and the Deer code. I may be able to get this
out by end of March.

Then I could release the avatar later when it is ready which wouldn't be until
end of April.

What do you think? One release or two?

[View Quote] > Oh yeah, I see, it was on the top of my list dated 2/5/99, and he had said
> that he would have it out by the end of the month hopefully. Has anybody
> given it a test? If so, does it work well?
> Ashen

AWCPP - C++ release v0.2

Nov 1, 1998, 2:01pm
Cool stuff, thanks for the tip.

Edward Sumerfield.

[View Quote] > The matrix math lines should read:
> newdeltaz := (deltaz * Cos(Rotation)) - (deltax * Sin(Rotation));
> deltax := (deltaz * Sin(Rotation)) + (deltax * Cos(Rotation));
> deltaz := newdeltaz;
>
[View Quote]

Bot positioning...

Oct 25, 1998, 2:06pm
The MY are your robots position and the AVATAR is the position of the avatar
that your bot noticed.

[View Quote]

Bot positioning...

Oct 25, 1998, 4:37pm
Certainly,

handler_avatar_add {

get AVATAR_X
get AVATAR_Y
get AVATAR_Z
get AVATAR_YAW

set MY_Z to AVATAR_X
set MY_Y to AVATAR_Y
set MY_Z to AVATAR_Z
set MY_YAW to AVATAR_YAW
aw_state_change
}

This will move you to exactly the same place as the avatar you have noticed.

Now the mathematical problem you have is working out how to put yourself
infront of and facing the avatar. Here is the algorithm:

distance from avatar required = 1000; /* 1 meter */

avatar direction in radians = (avatar yaw / 10) * (2PI/360);

Infront X = Avatar X + (distance * sin(avatar direction));
Infront Y = Avatar Y + (distance * sin(avatar direction));
Infront Z = Avatar Z + (distance * cos(avatar direction));
Infront YAW = (Avatar yaw + 1800) moduls 3600;

Some details to note:

1. The Ansi sin and cos functions take radians instead of degrees.
2. 360 degrees = 2*PI radians
3. Active world angle = 1/0 degree.

If you look at the Movement::modifyPosition method in the C++ AWCPP source
file Movement.C it shows you this logic for moving an avatar forward a
specific distance.

Hope this helps.

Edward Sumerfield.

[View Quote]

Bot positioning...

Oct 26, 1998, 1:55am
Exactly Walter. My appologies that is a typo. In reality it should read
"avatar vertical direction" which in your case will always be zero.

Edward Sumerfield.

[View Quote]

Bot positioning...

Oct 26, 1998, 11:06am
You know, that wasn't accurate either. The Y coordinate should remain
exactly the same as the avatars Y coordinate. After all, if an avatar is
flying over head you would want to run up to meet them wouldn't you.

So that same line should read.

Infront Y = Avatar Y;

Edward Sumerfield.

[View Quote]

API Add on

Oct 27, 1998, 1:00am
Are you thinking about game context tracking? Say, you want to develope a
fighting game where your avatars bump into each other until one dies. Each
avatar would require a "power" rating that would decrees with each bump. It
would require a server to track this kind of information.

It would be impossible for the AW server to realize all the game
functionality that you could think of but it would be possible for you to
create a bot that represented itself in the AW world but connected to a
seperate game server for tracking of "power" rating type stuff.

The only addition you need to the SDK is a way to add your sockets file
descriptors to the aw_wait event list. We have discussed this with Roland
already but it will probably be in a future release.

One of your design issues is deciding which UI you want to use. You talk
about pressing the left key and sending messages to the server. Does this
mean that you would be viewing the action on the AW browser but entering
keystrokes into your bot? Your bot can sence the left key and send
information to the server but what then.

One of the things I was debating this evening was the idea of whispering to
a bot and there fore have a private interface. I was thinking of it from a
bot debugging perspective but if you want one bot program to talk to a
seperate bot server for traking game info then this whisper idea might work.

Edward Sumerfield.

[View Quote]

Awjni-0.3.zip (1/1)

Nov 4, 1998, 7:30pm
In fact you are looking for DrChandra (Andrew Esh I believe?).

Edward Sumerfield.

[View Quote] >
> I'm not sure - you're asking specifically about the JNI, correct? The JNI
> was not developed by COF and I have yet to try it out myself. The author of
> the JNI posts here regularly, hopefully he will be able to answer your
> question.
>
> -Roland

Awjni-0.3.zip (1/1)

Nov 6, 1998, 10:09am
I am not sure if I understand the context here but may I suggest that you add a
layer on top of the callback to do the static to object routing.

From a java perspective you want a CallbackIF that any class can implement to
prove that it has the callback method in it.

You can then hide an array of CallbackIF objects with their respective instances
and when a callback occurs you look up the object based on the isntance and call
the appropriate method.

This is how I did it in AWCPP.

Edward Sumerfield.

[View Quote] > As I understand it, you are able to designate an object to pass to the C
> code portion of the JNI call. The C code must make JNI specific calls to
> call one of the methods of that object. My expectation is that we will have
> to agree on a name or some other agreed upon designator for that method.
> Then the callback catcher on the C side can be written to grab the object
> being referred to in the callback, and call the designated method, always.
>
> Since I did not write most of the code for this version of the AWJNI, I have
> not yet looked at how the callbacks are implemented. What this all means is
> that it is possible, but probably not yet implemented.
>
> Time is kind of hard to come by, lately. Maybe I can give a bteer answer
> tomorrow, or over the weekend. I still have to convert it to Build 7, too.
>
> DrChandra/PK-37
>
> --
> Andrew C. Esh mailto:andrew_esh at cnt.com
> http://www.mtn.org/~andrewes - ACE Home Page
>
[View Quote]

Collision detection.

Oct 29, 1998, 9:58am
AW is already doing collision detection between bots and objects but it is not
between avatars or between avatars and building objects that are moving.

I am thinking about a game of catch.

Would the ball be an object or a small round avatar? Object that are being
moved can not be seen.

Do I have to build collusion detection into my ball? After all it will have to
stop infront of avatars to simulate catching and bounce of objects.

Gravity doesn't exist for bots. The movement of the ball would have to
simulate this.

Throwing would be a new gesture sequence but distance and strength of throw
would be hard to implement.

Your thoughts?

Edward Sumerfield

Collision detection.

Oct 29, 1998, 11:02pm
[View Quote] > As you pointed out, a moving object can't be seen. and a avatar is made for
> "moving" :)
>
> but for collision detection, its implemented in the browser for avatars, not
> into the server or SDK for bots. or am i wrong at this point ? my bot daniel
> passes through everything without problems :)

I agree, you are right, but if my ball were an avatar it would have to do the
checking on the server side to decide where to move next. You could say that its
not the players that are moving the ball but the placement of the players that
make the ball decide where to go.

> if you don't use the gesture for ball treatment, but the move instead, you
> could have distance and strengt..
>
> if you run against your ball, it has much strength, it you just walk against
> it, it will run off more slow...
>
> which would mean you have to monitor the last few movements and time
> indices, as the browser does for interpolating the avatar paths, which,
> unfortunately means any network traffic jam would influence your ball
> response.

I have been tracking the changing positions and experience problems because of
all the debug tracing I have on. I will have to turn it all off to see what the
real impact is.

You are right though, maybe in a high traffic area the ball robot would not be
able to keep up with all the avatars running around it. It might choose to
bounce at odd times.

> just my 2 cents...

Worth a couple of marks at least.

> Walter
>
> Edward Sumerfield schrieb in Nachricht <36385854.F7C34D1D at poboxes.com>...
> not
> to

Collision detection.

Oct 30, 1998, 4:49pm
Depends on your perspective. If you are interfacing to a world via a bot
program then you are working with a client of the active world server. However,
if you are using the AW browser to interface to a robot running in the world
then the representation of the robot is on the server side.

Robot (client) -> World (Server) < - AW browser (client)

If you, as the browser, enter a chat message "throw ball" then you are sending
a message from the client to the world server that it could pass onto the robot
program so the robot is in effect a server or your browser.

The question came up the other day with regards building game stuff into a
world server. I said that it is not appropriate in the world server but should
be built into a separate game server. Now the players of the game, interfacing
via the AW browser, would interact with activities in the world. Now assume you
have an additional robot as part of the same game. It could socket connect
directly to the game server or just "whisper" to the game server avatar as a
form of transport layer between programs.

Robot ---------- Ether would work though one is more
efficient.
| |
v v
Game server -> World <- Aw Browser

All kinds of interesting architectures to play with.

Edward Sumerfied.

[View Quote] > Edward Sumerfield schrieb in Nachricht <36391029.9C628A93 at poboxes.com>...
> not
> daniel
> the
> that its
> that
>
> The server side ? why that ? the bot program (which, from the
> client/server-point of view is the client side) would do all the checking.
>
> Walter

Re: SDK App web site , was Re: <yawn>

Oct 30, 1998, 5:29pm
[removed "beta" cross post]

I would be happy to upload my releases to your site if you like. A central location would make it all much easier to handle.

By the way I have adopted doxygen as an auto documentation tool. It supports C/C++ and Java. Don't know about Delphi. It scrapes comments from the
code and generates html help files. Something like javadoc or DOC++. My next release should be almost totally documented.

http://www.stack.nl/~dimitri/doxygen/

Edward Sumerfield representing the AWCPP contingent.

[View Quote] > Easy, I'll set one up. I'll even setup a database so that the programs can be updated and the like, and submitted by people.
>
> Ie, resources like the delphi interface, the C++ wrappers and the newer builds of the sdk java codes can be contained on there. i can set up a
> "file library" for developers to to dynamically upload new apps that are coming out of the sdk work. . .because, theres more coming all the
> time.
>
> In fact, i think i might start setting this up now. . .
>
> Fac.
>
[View Quote]

AWBOT & TC 3.0

Oct 30, 1998, 7:17pm
Change it to

rc = aw_init...
if (rc == 0) {
life is good

The single equals is an assignment whereas the double equals is a comparison. The
compiler is just fussy really. Most compilers will let that one go.

The unresolved reference is because you are not including the aw.lib in your link
stage. Its probably a parameter in one of your configuration menues.

Edward Sumerfield.

[View Quote] > I work with Turbo C++ 3.0 but i can't build the exe-pgm with the simple1 source.
> Ok i'm not a C or C++ guru but now on the way to learn it :)
>
> If i try to build the awbot.exe i get 5 warnings like this:
> Warning AWBOT.C 19: Possibly incorrect assignment
> line19 are: "if ( rc = aw_init (AW_BUILD))"
> and 13 errors like this:
> Linker Error: Undefined symbol _aw_string in module AWBOT.C
>
> Did anyone know where i have to set the environment right or i have to change
> the source code??
>
> Thanks Plati

Help...

Oct 31, 1998, 2:03am
This is the only free compiler solution that we know about but you will not be
able to statically link with the aw.lib file. You have to code using the
aw.dll file. We have implemented solutions in this manner already so much of
the base code is already done for you.

Edward Sumerfield

[View Quote] > http://www.cygnus.com, look for CygWin32, and be prepared to learn a few
> basic UNIX shell commands :)
>
[View Quote]

Help...

Nov 1, 1998, 2:08pm
It would be cool if you could cut and paste the text from the error message.

Undeclared is usually a warning from the compiler meaning that there is no prototype
for the function.

main() {
fred();
}
fred() {
cout < "Hello";
}

This would give a warning because Fred is not declared as a function when it is
called.

int Fred();
main() {
...

This would remove the warning because Fred is declared before it is used.

However, it you are referring to the aw_???? functions then they are all declared in
aw.h (lines 247 to 311 in my version v7). So you should just have to make sure that
the .h file is included prior to you calling the functions.

Edward Sumerfield.

[View Quote] > About LCC it returns a problem in the sdk aw.h lines 238 - 258 (ones that use
> AWAPI) at the begging LCC says they are undeclared...
>
[View Quote]

Cygwin32 Help

Nov 1, 1998, 2:16pm
Xoom seems to be back up now. Its been farther unreliable this week.

Edward Sumerfield.

[View Quote] > Would have referred you to this page:
> http://members.xoom.com/esumerfd/ActiveWorlds/AWSDK.htm
> but it now gives a 404... :(
>
[View Quote]

Re: Bot Program wanted

Nov 5, 1998, 2:24am
What do you want it to do?

Edward Sumerfield

[View Quote] > i just want something besides hambot! <8^)

Bot Program wanted

Nov 7, 1998, 11:59am
One of the things I am thinking of doing is adding a class that reads in a
chat.ini file that contains

chat | Response
chat | Response

type formatting. That way you can set up a conversation sequence. For a real
greeter bot you are ask questions and based on the area that the visitor is
interested in you can give a canned response.

Though, kingben, this is what HamBot does. You can really do some fabulous
things with the HamBot language.

Edward Sumerfield.

[View Quote] > ok...
> i want one that can talk like a real person like the one the one in mandalay
> (doesnt have to be that good, just as good as you can make) thanx <8^)
>
[View Quote]

Simple error converter(13.8K): win32 app that asks for reason # and outputs the reason.

Nov 7, 1998, 12:06pm
[snip wish list cross post]

Put it in Facs App Resource Lib. Then you don't have to both getting your own URL.

http://isg.curtin.edu.au/fletch/worlds/sdk/

Edward Sumerfield

[View Quote] > oh yeah. forgot. ill get one. but i did say what was in the message in the
> title.
>
[View Quote]

help

Nov 7, 1998, 12:25pm
This is a multi-part message in MIME format.
--------------685478F83A8CC0B16451533F
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I do it in AWCPP

http://members.xoom.com/esumerfd/download/awcpp0_2.zip

Though my web page seem to be having repeated problems these days.

I have attached the small piece of code that actually does the interface with
the SDK using the DLL. I assume you have already read the posts about the
aw.lib not working with Gnu cygwin32 because of differing object formats.

The AWSDK class has some of the sdk calls built into it. I have only been
adding the ones I need for my Deer. Feel free to add some more and send it
back.

I added the AW class so that you could see an example of how to call the AWSDK
methods. They are static methods so is is a little different if you are not a
C++ person.

Edward Sumerfield

[View Quote] > hello I have gottent he smaple code to compile but don't know how to
> onvert my own code for cygwin32

--------------685478F83A8CC0B16451533F
Content-Type: application/x-unknown-content-type-hpp_auto_file;
name="AW.hpp"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="AW.hpp"

I2lmbmRlZiBBV19IUFANCiNkZWZpbmUgQVdfSFBQDQoNCi8qKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlwN
CiAgYXcuaHBwDQoNCiAgVGhpcyBzb3VyY2UgZmlsZSBjb250YWlucyB0aGUgZGVmaW5pdGlv
biBvZiB0aGUgQWN0aXZlV29ybGRzIGNsYXNzLg0KICBUaGlzIGNsYXNzIGRlZmluZXMgQWN0
aXZlIFdvcmxkIHNwZWNpZmljIGNvbmNlcHRzIGFuZCBjb25zdGFudHMuDQpcKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovDQoNCiNpbmNsdWRlIDxBV1NESy5ocHA+DQoNCmNsYXNzIEFjdGl2ZVdvcmxk
cyB7DQoNCiNkZWZpbmUgTEVOX0FQUExJQ0FUSU9OX05BTUUgNjQNCg0KcHJpdmF0ZToNCg0K
ICBBV1NESyBhd3NkazsNCg0KcHVibGljOg0KDQogIC8vIEEgZ2VuZXJpYyBwbGFjZSB0byBz
dG9yZSB0aGUgYXBwbGljYXRpb24gbmFtZSBmb3IgdXNlIGluIHRoZQ0KICAvLyBBV0NQUCBj
bGFzc2VzLg0KDQogIHN0YXRpYyBjaGFyIGFwcGxpY2F0aW9uX25hbWVbTEVOX0FQUExJQ0FU
SU9OX05BTUUgKyAxXTsNCg0KICBBY3RpdmVXb3JsZHMoY2hhciAqYV9hcHBsaWNhdGlvbl9u
YW1lKTsNCiAgfkFjdGl2ZVdvcmxkcygpOw0KfTsNCg0KI2VuZGlmIEFXX0hQUA0K
--------------685478F83A8CC0B16451533F
Content-Type: application/x-unknown-content-type-c_auto_file;
name="AW.C"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="AW.C"

LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqXA0KICBBVy5DDQoNCiAgVGhpcyBzb3VyY2UgY29udGFpbnMg
YmFzaWMgaW5pdGlhbGl6YXRpb24gYW5kIGdlbmVyYWwgZnVuY3Rpb25zIGZyb20NCiAgdGhl
IFNESy4NClwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KI2luY2x1ZGUgPGlvc3RyZWFtLmg+DQoj
aW5jbHVkZSA8Y3N0cmluZz4NCiNpbmNsdWRlIDxjYXNzZXJ0Pg0KI2luY2x1ZGUgPHdpbmRv
d3MuaD4NCiNpbmNsdWRlIDxhdy5oPg0KDQojaW5jbHVkZSA8RGVidWcuaHBwPg0KI2luY2x1
ZGUgPEFXU0RLLmhwcD4NCiNpbmNsdWRlIDxBVy5ocHA+DQoNCkFjdGl2ZVdvcmxkczo6QWN0
aXZlV29ybGRzKGNoYXIgKmFfYXBwbGljYXRpb25fbmFtZSkgew0KDQogIGludCByYyA9IDA7
DQoNCiAgRU5URVIoIkFjdGl2ZVdvcmxkczo6QWN0aXZlV29ybGRzIik7DQoNCiAgLy9zdHJu
Y3B5KEFjdGl2ZVdvcmxkczo6YXBwbGljYXRpb25fbmFtZSwNCiAgLy8gYV9hcHBsaWNhdGlv
bl9uYW1lLCBMRU5fQVBQTElDQVRJT05fTkFNRSk7DQogIC8vQWN0aXZlV29ybGRzOjphcHBs
aWNhdGlvbl9uYW1lW0xFTl9BUFBMSUNBVElPTl9OQU1FXSA9ICdcMCc7DQoNCiAgaWYgKHJj
ID0gQVdTREs6OmF3X2luaXQoQVdfQlVJTEQpKSB7DQoNCiAgICBjb3V0IDw8ICJVbmFibGUg
dG8gaW5pdGlhbGl6ZSBBUEkgKHJlYXNvbiAiIDw8IHJjIDw8ICIpIiA8PCBlbmRsOw0KICAg
IGV4aXQocmMpOw0KICB9DQp9DQoNCkFjdGl2ZVdvcmxkczo6fkFjdGl2ZVdvcmxkcygpIHsN
Cg0KICBFTlRFUigiQWN0aXZlV29ybGRzOjp+QWN0aXZlV29ybGRzIik7DQoNCiAgQVdTREs6
OmF3X3Rlcm0oKTsNCn0NCg0KDQo=
--------------685478F83A8CC0B16451533F
Content-Type: application/x-unknown-content-type-c_auto_file;
name="AWSDK.C"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="AWSDK.C"

LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqXA0KICBBV1NESy5DDQoNCiAgVGhpcyBzb3VyY2UgZmlsZSBj
b250YWlucyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgQWN0aXZlV29ybGRzIGNsYXNzLg0KDQog
IEl0IGFjdHMgYXMgYW4gaW50ZXJmYWNlIGJldHdlZW4gbmV3IGFwcGxpY2F0aW9uIGRldmVs
b3BtZW50IGFuZCB0aGUNCiAgQ09GIHByb2R1Y3QuDQpcKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoN
CiNpbmNsdWRlIDxpb3N0cmVhbS5oPg0KI2luY2x1ZGUgPGNhc3NlcnQ+DQojaW5jbHVkZSA8
d2luZG93cy5oPg0KI2luY2x1ZGUgPGF3Lmg+DQoNCiNpbmNsdWRlIDxEZWJ1Zy5ocHA+DQoN
CiNpbmNsdWRlIDxBV1NESy5ocHA+DQoNCi8vIERMTCBwb2ludGVyLg0KDQpISU5TVEFOQ0Ug
QVdTREs6OmhBV0xpYjsNCg0KLy8gQWN0aXZlIFdvcmxkIFNESyBmdW5jdGlvbnMuDQoNCnRh
d19pbml0IEFXU0RLOjpwYXdfaW5pdDsNCnRhd19jcmVhdGUgQVdTREs6OnBhd19jcmVhdGU7
DQp0YXdfdGVybSBBV1NESzo6cGF3X3Rlcm07DQp0YXdfZGVzdHJveSBBV1NESzo6cGF3X2Rl
c3Ryb3k7DQp0YXdfd2FpdCBBV1NESzo6cGF3X3dhaXQ7DQp0YXdfZXZlbnRfc2V0IEFXU0RL
OjpwYXdfZXZlbnRfc2V0Ow0KdGF3X3NheSBBV1NESzo6cGF3X3NheTsNCnRhd19pbnQgQVdT
REs6OnBhd19pbnQ7DQp0YXdfaW50X3NldCBBV1NESzo6cGF3X2ludF9zZXQ7DQp0YXdfc3Ry
aW5nIEFXU0RLOjpwYXdfc3RyaW5nOw0KdGF3X3N0cmluZ19zZXQgQVdTREs6OnBhd19zdHJp
bmdfc2V0Ow0KdGF3X2VudGVyIEFXU0RLOjpwYXdfZW50ZXI7DQp0YXdfc3RhdGVfY2hhbmdl
IEFXU0RLOjpwYXdfc3RhdGVfY2hhbmdlOw0KdGF3X2xvZ2luIEFXU0RLOjpwYXdfbG9naW47
DQp0YXdfaW5zdGFuY2Vfc2V0IEFXU0RLOjpwYXdfaW5zdGFuY2Vfc2V0Ow0KdGF3X2luc3Rh
bmNlIEFXU0RLOjpwYXdfaW5zdGFuY2U7DQoNCkFXU0RLOjpBV1NESygpIHsNCg0KICBFTlRF
UigiQVdTREs6OkFXU0RLIik7DQoNCiAgaWYgKE5VTEwgPT0gaEFXTGliKSB7DQoNCiAgICBo
QVdMaWIgPSBMb2FkTGlicmFyeSgiYXcuZGxsIik7DQoNCiAgICBhc3NlcnQoaEFXTGliICE9
IE5VTEwpOw0KDQogICAgcGF3X2luaXQgPSAodGF3X2luaXQpIEdldFByb2NBZGRyZXNzKGhB
V0xpYiwgImF3X2luaXQiKTsNCiAgICBhc3NlcnQocGF3X2luaXQgIT0gTlVMTCk7DQogICAg
cGF3X2NyZWF0ZSA9ICh0YXdfY3JlYXRlKSBHZXRQcm9jQWRkcmVzcyhoQVdMaWIsICJhd19j
cmVhdGUiKTsNCiAgICBhc3NlcnQocGF3X2NyZWF0ZSAhPSBOVUxMKTsNCiAgICBwYXdfdGVy
bSA9ICh0YXdfdGVybSkgR2V0UHJvY0FkZHJlc3MoaEFXTGliLCAiYXdfdGVybSIpOw0KICAg
IGFzc2VydChwYXdfdGVybSAhPSBOVUxMKTsNCiAgICBwYXdfZGVzdHJveSA9ICh0YXdfZGVz
dHJveSkgR2V0UHJvY0FkZHJlc3MoaEFXTGliLCAiYXdfZGVzdHJveSIpOw0KICAgIGFzc2Vy
dChwYXdfZGVzdHJveSAhPSBOVUxMKTsNCiAgICBwYXdfd2FpdCA9ICh0YXdfd2FpdCkgR2V0
UHJvY0FkZHJlc3MoaEFXTGliLCAiYXdfd2FpdCIpOw0KICAgIGFzc2VydChwYXdfd2FpdCAh
PSBOVUxMKTsNCiAgICBwYXdfZXZlbnRfc2V0ID0gKHRhd19ldmVudF9zZXQpIEdldFByb2NB
ZGRyZXNzKGhBV0xpYiwgImF3X2V2ZW50X3NldCIpOw0KICAgIGFzc2VydChwYXdfZXZlbnRf
c2V0ICE9IE5VTEwpOw0KICAgIHBhd19zYXkgPSAodGF3X3NheSkgR2V0UHJvY0FkZHJlc3Mo
aEFXTGliLCAiYXdfc2F5Iik7DQogICAgYXNzZXJ0KHBhd19zYXkgIT0gTlVMTCk7DQogICAg
cGF3X2ludCA9ICh0YXdfaW50KSBHZXRQcm9jQWRkcmVzcyhoQVdMaWIsICJhd19pbnQiKTsN
CiAgICBhc3NlcnQocGF3X2ludCAhPSBOVUxMKTsNCiAgICBwYXdfaW50X3NldCA9ICh0YXdf
aW50X3NldCkgR2V0UHJvY0FkZHJlc3MoaEFXTGliLCAiYXdfaW50X3NldCIpOw0KICAgIGFz
c2VydChwYXdfaW50X3NldCAhPSBOVUxMKTsNCiAgICBwYXdfc3RyaW5nID0gKHRhd19zdHJp
bmcpIEdldFByb2NBZGRyZXNzKGhBV0xpYiwgImF3X3N0cmluZyIpOw0KICAgIGFzc2VydChw
YXdfc3RyaW5nICE9IE5VTEwpOw0KICAgIHBhd19zdHJpbmdfc2V0ID0gKHRhd19zdHJpbmdf
c2V0KSBHZXRQcm9jQWRkcmVzcyhoQVdMaWIsICJhd19zdHJpbmdfc2V0Iik7DQogICAgYXNz
ZXJ0KHBhd19zdHJpbmdfc2V0ICE9IE5VTEwpOw0KICAgIHBhd19lbnRlciA9ICh0YXdfZW50
ZXIpIEdldFByb2NBZGRyZXNzKGhBV0xpYiwgImF3X2VudGVyIik7DQogICAgYXNzZXJ0KHBh
d19lbnRlciAhPSBOVUxMKTsNCiAgICBwYXdfc3RhdGVfY2hhbmdlID0gKHRhd19zdGF0ZV9j
aGFuZ2UpIEdldFByb2NBZGRyZXNzKGhBV0xpYiwgImF3X3N0YXRlX2NoYW5nZSIpOw0KICAg
IGFzc2VydChwYXdfc3RhdGVfY2hhbmdlICE9IE5VTEwpOw0KICAgIHBhd19sb2dpbiA9ICh0
YXdfbG9naW4pIEdldFByb2NBZGRyZXNzKGhBV0xpYiwgImF3X2xvZ2luIik7DQogICAgYXNz
ZXJ0KHBhd19sb2dpbiAhPSBOVUxMKTsNCiAgICBwYXdfaW5zdGFuY2Vfc2V0ID0gKHRhd19p
bnN0YW5jZV9zZXQpIEdldFByb2NBZGRyZXNzKGhBV0xpYiwgImF3X2luc3RhbmNlX3NldCIp
Ow0KICAgIGFzc2VydChwYXdfaW5zdGFuY2Vfc2V0ICE9IE5VTEwpOw0KICAgIHBhd19pbnN0
YW5jZSA9ICh0YXdfaW5zdGFuY2UpIEdldFByb2NBZGRyZXNzKGhBV0xpYiwgImF3X2luc3Rh
bmNlIik7DQogICAgYXNzZXJ0KHBhd19pbnN0YW5jZSAhPSBOVUxMKTsNCiAgfQ0KfQ0KDQpp
bnQNCkFXU0RLOjphd19pbml0KGludCBhd19idWlsZCkgew0KDQogIEVOVEVSKCJBV1NESzo6
YXdfaW5pdCIpOw0KDQogIERFQlVHKCJMb2FkaW5nIFNESyBkbGwgdmVyc2lvbiAiIDw8IGF3
X2J1aWxkKTsNCg0KICBFWElUKCAiQVdTREs6OmF3X2luaXQiLCAocGF3X2luaXQpKGF3X2J1
aWxkKSApOw0KfQ0KDQppbnQNCkFXU0RLOjphd19jcmVhdGUoY2hhcip1bml2ZXJzZV9kb21h
aW4sIGludCB1bml2ZXJzZV9wb3J0LCB2b2lkKippbnN0YW5jZSkgew0KDQogIEVOVEVSKCJB
V1NESzo6YXdfY3JlYXRlIik7DQoNCiAgRVhJVCggIkFXU0RLOjphd19jcmVhdGUiLCAocGF3
X2NyZWF0ZSkodW5pdmVyc2VfZG9tYWluLCB1bml2ZXJzZV9wb3J0LCBpbnN0YW5jZSkpOw0K
fQ0KDQp2b2lkDQpBV1NESzo6YXdfdGVybSh2b2lkKSB7DQoNCiAgRU5URVIoIkFXU0RLOjph
d190ZXJtIik7DQoNCiAgcmV0dXJuIChwYXdfdGVybSkoKTsNCn0NCg0KaW50DQpBV1NESzo6
YXdfZGVzdHJveSh2b2lkKSB7DQoNCiAgRU5URVIoIkFXU0RLOjphd19kZXN0cm95Iik7DQoN
CiAgRVhJVCggIkFXU0RLOjphd19kZXN0cm95IiwgKHBhd19kZXN0cm95KSgpKTsNCn0NCg0K
aW50DQpBV1NESzo6YXdfd2FpdChpbnQgbWlsbGlfc2Vjb25kcykgew0KDQogIEVOVEVSKCJB
V1NESzo6YXdfd2FpdCIpOw0KDQogIEVYSVQoICJBV1NESzo6YXdfd2FpdCIsIChwYXdfd2Fp
dCkobWlsbGlfc2Vjb25kcykpOw0KfQ0KDQppbnQNCkFXU0RLOjphd19ldmVudF9zZXQoaW50
IGF0dHJpYnV0ZSwgdm9pZCAoKmZ1bmMpKHZvaWQpICkgew0KDQogIEVOVEVSKCJBV1NESzo6
YXdfZXZlbnRfc2V0Iik7DQoNCiAgRVhJVCgiQVdTREs6OmF3X2V2ZW50X3NldCIsIChwYXdf
ZXZlbnRfc2V0KShhdHRyaWJ1dGUsIGZ1bmMpKTsNCn0NCg0KaW50DQpBV1NESzo6YXdfc2F5
KGNoYXIgKnRleHQpIHsNCg0KICBFTlRFUigiQVdTREs6OmF3X3NheSIpOw0KDQogIEVYSVQo
IkFXU0RLOjphd19zYXkiLCAocGF3X3NheSkodGV4dCkpOw0KfQ0KDQppbnQNCkFXU0RLOjph
d19pbnQoaW50IGF0dHJpYnV0ZSkgew0KDQogIEVOVEVSKCJBV1NESzo6YXdfaW50Iik7DQoN
CiAgRVhJVCgiQVdTREs6OmF3X2ludCIsIChwYXdfaW50KShhdHRyaWJ1dGUpKTsNCn0NCg0K
aW50DQpBV1NESzo6YXdfaW50X3NldChpbnQgYXR0cmlidXRlLCBpbnQgdmFsdWUpIHsNCg0K
ICBFTlRFUigiQVdTREs6OmF3X2ludF9zZXQiKTsNCg0KICBFWElUKCJBV1NESzo6YXdfaW50
X3NldCIsIChwYXdfaW50X3NldCkoYXR0cmlidXRlLCB2YWx1ZSkpOw0KfQ0KDQppbnQNCkFX
U0RLOjphd19zdHJpbmdfc2V0KGludCBhdHRyaWJ1dGUsIGNoYXIgKnZhbHVlKSB7DQoNCiAg
RU5URVIoIkFXU0RLOjphd19zdHJpbmdfc2V0Iik7DQoNCiAgRVhJVCgiQVdTREs6OmF3X3N0
cmluZ19zZXQiLCAocGF3X3N0cmluZ19zZXQpKGF0dHJpYnV0ZSwgdmFsdWUpKTsNCn0NCg0K
aW50DQpBV1NESzo6YXdfZW50ZXIoY2hhciAqd29ybGQsIGludCBudW1iZXJfYXZhdGFycykg
ew0KDQogIEVOVEVSKCJBV1NESzo6YXdfZW50ZXIiKTsNCg0KICBFWElUKCJBV1NESzo6YXdf
ZW50ZXIiLCAocGF3X2VudGVyKSh3b3JsZCwgbnVtYmVyX2F2YXRhcnMpKTsNCn0NCg0KaW50
DQpBV1NESzo6YXdfc3RhdGVfY2hhbmdlKHZvaWQpIHsNCg0KICBFTlRFUigiQVdTREs6OmF3
X3N0YXRlX2NoYW5nZSIpOw0KDQogIEVYSVQoIkFXU0RLOjphd19zdGF0ZV9jaGFuZ2UiLCAo
cGF3X3N0YXRlX2NoYW5nZSkoKSk7DQp9DQoNCmludA0KQVdTREs6OmF3X2xvZ2luKHZvaWQp
IHsNCg0KICBFTlRFUigiQVdTREs6OmF3X2xvZ2luIik7DQoNCiAgRVhJVCgiQVdTREs6OmF3
X2xvZ2luIiwgKHBhd19sb2dpbikoKSk7DQp9DQoNCmNoYXIgKg0KQVdTREs6OmF3X3N0cmlu
ZyhpbnQgYXR0cmlidXRlKSB7DQoNCiAgRU5URVIoIkFXU0RLOjphd19zdHJpbmciKTsNCg0K
ICByZXR1cm4gKHBhd19zdHJpbmcpKGF0dHJpYnV0ZSk7DQp9DQoNCmludA0KQVdTREs6OmF3
X2luc3RhbmNlX3NldCh2b2lkICppbnN0YW5jZSkgew0KDQogIEVOVEVSKCJBV1NESzo6YXdf
aW5zdGFuY2Vfc2V0Iik7DQoNCiAgRVhJVCgiQVdTREs6YXdfaW5zdGFuY2Vfc2V0IiwgKHBh
d19pbnN0YW5jZV9zZXQpKGluc3RhbmNlKSk7DQp9DQoNCnZvaWQgKg0KQVdTREs6OmF3X2lu
c3RhbmNlKCkgew0KDQogIEVOVEVSKCJBV1NESzo6YXdfaW5zdGFuY2UiKTsNCg0KICBERUJV
RygiPC0uLkFXU0RLOmF3X2luc3RhbmNlIik7DQogIHJldHVybiAocGF3X2luc3RhbmNlKSgp
Ow0KfQ0KDQpBV1NESzo6fkFXU0RLKCkgew0KDQogIGlmIChoQVdMaWIgIT0gTlVMTCkgew0K
DQogICAgRnJlZUxpYnJhcnkoaEFXTGliKTsNCiAgfQ0KfQ0K
--------------685478F83A8CC0B16451533F
Content-Type: application/x-unknown-content-type-hpp_auto_file;
name="AWSDK.hpp"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="AWSDK.hpp"

I2lmbmRlZiBBV1NES19ocHANCiNkZWZpbmUgQVdTREtfaHBwDQoNCi8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKlwNCiAgQVdTREsuaHBwDQoNCiAgVGhpcyBzb3VyY2UgZmlsZSBjb250YWlucyB0aGUg
ZGVmaW5pdGlvbiBvZiB0aGUgQVdTREsgbWV0aG9kcy4NClwqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8N
Cg0KdHlwZWRlZiBpbnQgICgqdGF3X2luaXQpKGludCk7DQp0eXBlZGVmIGludCAgKCp0YXdf
Y3JlYXRlKShjaGFyKiwgaW50LCB2b2lkKiopOw0KdHlwZWRlZiB2b2lkICgqdGF3X3Rlcm0p
KHZvaWQpOw0KdHlwZWRlZiBpbnQgICgqdGF3X2Rlc3Ryb3kpKHZvaWQpOw0KdHlwZWRlZiBp
bnQgICgqdGF3X3dhaXQpKGludCk7DQp0eXBlZGVmIGludCAgKCp0YXdfZXZlbnRfc2V0KShp
bnQsIHZvaWQgKCpmdW5jKSh2b2lkKSApOw0KdHlwZWRlZiBpbnQgICgqdGF3X3NheSkoY2hh
ciAqKTsNCnR5cGVkZWYgaW50ICAoKnRhd19pbnQpKGludCk7DQp0eXBlZGVmIGludCAgKCp0
YXdfaW50X3NldCkoaW50LCBpbnQpOw0KdHlwZWRlZiBjaGFyICooKnRhd19zdHJpbmcpKGlu
dCk7DQp0eXBlZGVmIGludCAgKCp0YXdfc3RyaW5nX3NldCkoaW50ICwgY2hhciAqKTsNCnR5
cGVkZWYgaW50ICAoKnRhd19lbnRlcikoY2hhciAqLCBpbnQpOw0KdHlwZWRlZiBpbnQgICgq
dGF3X3N0YXRlX2NoYW5nZSkodm9pZCk7DQp0eXBlZGVmIGludCAgKCp0YXdfbG9naW4pKHZv
aWQpOw0KdHlwZWRlZiBpbnQgICgqdGF3X2luc3RhbmNlX3NldCkodm9pZCAqKTsNCnR5cGVk
ZWYgdm9pZCAqKCp0YXdfaW5zdGFuY2UpKCk7DQoNCmNsYXNzIEFXU0RLIHsNCg0KcHJpdmF0
ZToNCg0KICAvLyBEZWZpbmUgdGhlIEMgZnVuY3Rpb25zIGZyb20gdGhlIEFXIFNESy4NCg0K
ICBzdGF0aWMgdGF3X2luaXQgcGF3X2luaXQgPSBOVUxMOw0KICBzdGF0aWMgdGF3X2NyZWF0
ZSBwYXdfY3JlYXRlID0gTlVMTDsNCiAgc3RhdGljIHRhd190ZXJtIHBhd190ZXJtID0gTlVM
TDsNCiAgc3RhdGljIHRhd19kZXN0cm95IHBhd19kZXN0cm95ID0gTlVMTDsNCiAgc3RhdGlj
IHRhd193YWl0IHBhd193YWl0ID0gTlVMTDsNCiAgc3RhdGljIHRhd19ldmVudF9zZXQgcGF3
X2V2ZW50X3NldCA9IE5VTEw7DQogIHN0YXRpYyB0YXdfc2F5IHBhd19zYXkgPSBOVUxMOw0K
ICBzdGF0aWMgdGF3X2ludCBwYXdfaW50ID0gTlVMTDsNCiAgc3RhdGljIHRhd19pbnRfc2V0
IHBhd19pbnRfc2V0ID0gTlVMTDsNCiAgc3RhdGljIHRhd19zdHJpbmcgcGF3X3N0cmluZyA9
IE5VTEw7DQogIHN0YXRpYyB0YXdfc3RyaW5nX3NldCBwYXdfc3RyaW5nX3NldCA9IE5VTEw7
DQogIHN0YXRpYyB0YXdfZW50ZXIgcGF3X2VudGVyID0gTlVMTDsNCiAgc3RhdGljIHRhd19z
dGF0ZV9jaGFuZ2UgcGF3X3N0YXRlX2NoYW5nZSA9IE5VTEw7DQogIHN0YXRpYyB0YXdfbG9n
aW4gcGF3X2xvZ2luID0gTlVMTDsNCiAgc3RhdGljIHRhd19pbnN0YW5jZV9zZXQgcGF3X2lu
c3RhbmNlX3NldCA9IE5VTEw7DQogIHN0YXRpYyB0YXdfaW5zdGFuY2UgcGF3X2luc3RhbmNl
ID0gTlVMTDsNCg0KICAvLyBQb2ludGVyIHRvIHRoZSBsb2FkZWQgYXcuZGxsDQoNCiAgc3Rh
dGljIEhJTlNUQU5DRSAgaEFXTGliID0gTlVMTDsNCg0KcHVibGljOg0KDQogIEFXU0RLKCk7
DQogIHN0YXRpYyBpbnQgIGF3X2luaXQoaW50IGF3X2J1aWxkKTsNCiAgc3RhdGljIGludCAg
YXdfY3JlYXRlKGNoYXIqLCBpbnQsIHZvaWQqKik7DQogIHN0YXRpYyB2b2lkIGF3X3Rlcm0o
dm9pZCk7DQogIHN0YXRpYyBpbnQgIGF3X2Rlc3Ryb3kodm9pZCk7DQogIHN0YXRpYyBpbnQg
IGF3X3dhaXQoaW50KTsNCiAgc3RhdGljIGludCAgYXdfZXZlbnRfc2V0KGludCwgdm9pZCAo
KmZ1bmMpKHZvaWQpICk7DQogIHN0YXRpYyBpbnQgIGF3X3NheShjaGFyICopOw0KICBzdGF0
aWMgaW50ICBhd19pbnQoaW50KTsNCiAgc3RhdGljIGludCAgYXdfaW50X3NldChpbnQsIGlu
dCk7DQogIHN0YXRpYyBjaGFyICphd19zdHJpbmcoaW50KTsNCiAgc3RhdGljIGludCAgYXdf
c3RyaW5nX3NldChpbnQgLCBjaGFyICopOw0KICBzdGF0aWMgaW50ICBhd19lbnRlcihjaGFy
ICosIGludCk7DQogIHN0YXRpYyBpbnQgIGF3X3N0YXRlX2NoYW5nZSh2b2lkKTsNCiAgc3Rh
dGljIGludCAgYXdfbG9naW4odm9pZCk7DQogIHN0YXRpYyBpbnQgIGF3X2luc3RhbmNlX3Nl
dCh2b2lkICopOw0KICBzdGF0aWMgdm9pZCAqYXdfaW5zdGFuY2UoKTsNCiAgfkFXU0RLKCk7
DQp9Ow0KDQojZW5kaWYgQVdTREtfaHBwDQo=
--------------685478F83A8CC0B16451533F--

BallBot

Nov 7, 1998, 12:38pm
Cool. Can I see. How about scheduling a viewing or give us the source or
binaries.

Edward Sumerfield

[View Quote] > hey all,
> I finally got around to it and made that ballbot on the bot ideas page
> :)
> now to get him to only respond to gesutres played with in 1 meter of it

BallBot

Nov 7, 1998, 12:46pm
Never mind, I found it in AWPres.

It Rocks.

Does each gesture do a specific thing or are they random. It seems that the
ball moves a random distance and rolls around in circles a little.

Edward Sumerfield

[View Quote] > Cool. Can I see. How about scheduling a viewing or give us the source or
> binaries.
>
> Edward Sumerfield
>
[View Quote]

Re: Deer Bot

Jul 30, 1999, 12:00pm
http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP.htm

[View Quote] > Does anybody know where i can get that deer bot that i keep seeing ppl
> talking about on this newsgroup, thanks
>
> Sir Bok

walking bots

Nov 7, 1998, 9:20pm
Roland answered this a few threads ago. It comes down to understanding three
things:

1. The sequences are implemented by the AW browser and therefore your robot
has no DIRECT impact on how the browser represents the avatar. Its more of a
mythical art.

2. A sequence is started for each move an avatar makes. This is started by
the world server sending the browser a new position.

3. The world server sends position information to the browser at a maximum
of once per second.

Roland said that if you move your avatar at about one meter per second then
you should see a repeating sequence.

Edward Sumerfield

[View Quote] > Hi, I'm part owner of BallBot and I made a ball av for the bot and have
> a rolling sq for the walk seq and the roll only works for the first few
> meters of the movement. can you tell me how to fix it?

walking bots

Nov 8, 1998, 1:32am
It is driven by a combination of your aw_wait time and the distance moved. So you
should have something like.

kick_distance = 0; // meters kicked.
while( aw_wait(1000) ) { // Wait for 1 second.
if (kick_distance > 0) {

move ball forward 1 meter.
kick_distance--;
}
}
void avatar_change() {
if (gesture == kick) {
kick_distance = 10;
}
}

So when the ball is not kicked it does not move but kicking it sets the kick
distance to some value based on how hard it was kicked. Once the kick distance is
set then the ball will not forward one meter every second.

Edward Sumerfield

[View Quote] > 1 meter a second? hmmm... I have no idea what ballbot is moving at...
>
[View Quote]

1  2  3  4  5  6  ...  9  |  
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn