edward sumerfield // User Search

edward sumerfield // User Search

1  2  3  4  5  6  ...  9  |  

cant find build number of aw.dll

Nov 8, 1998, 4:50pm
Look in aw.h for the define AW_BUILD.

You should ever need it though. When you call aw_init pass the define
AW_BUILD. The reason this is in there is to protect against people running
executable programs that are built against an old version of the library.

Edward Sumerfield

[View Quote] > ooohh, you wre after the *number*. . . it's build 7 as far as i know =)
>
[View Quote]

aw_wait modification

Nov 8, 1998, 4:55pm
You can set flags in your callback functions that are checked in the main
program loop.

bool finish = 0;
main() {
while (aw_wait(1000)) {
if (finish == 1) break;
}
}
void chat_callback() {
if (chat message == "quit") finish = 1;
}

Make sure that the finish flag is global or at least addressable by both
functions.

Edward Sumerfield.

[View Quote] > Hello,
>
> I wrote a bot program that is supposed to shutdown himself when a specific
> avatar tells him 'bot14 close'.
>
> But it seems that because the aw_wait function is still active during this
> time my prgram bugs !
>
> I was thinking about maybe Roland could implement a function that stops
> waiting, or is there another way to face my problem ?
>
> thank you

RC Version

Nov 9, 1998, 12:31am
Make sure you are passing AW_BUILD to aw_init. The aw.h file and the aw.dll file must
be the same version.

Edward Sumerfield

[View Quote] > Hi,
> You're using a differnt version of the dll than the header and lib files.
> My advice would be to download the SDK from the SDK webpage and just
> recompile using that, then use the aw.dll file you downloaded :)
>
> Dalthan <annette at hiwaay.net> wrote in article
> <3646371F.5EBB5624 at hiwaay.net>...

RC Version

Nov 10, 1998, 4:17pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
Post the code dude.
<P>Edward Sumerfield.
[View Quote]

I need a C Compiler!!

Nov 10, 1998, 4:21pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
The aforementioned compiler is available at
<P>&nbsp;&nbsp;&nbsp; <A HREF="http://www.cygnus.com">http://www.cygnus.com</A>
<P>Some prewriting code using the GNU compiler is available at
<P>&nbsp;&nbsp;&nbsp; <A HREF="http://members.xoom.com/esumerfd/">http://members.xoom.com/esumerfd/</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/* it is down at the moment as the upgrade machines */
<P>Edward Sumerfield
[View Quote]

Re: how do you goto another universe?

Aug 6, 1999, 1:27pm
You have to edit your aworld.ini configuration file.

Here is the configuration information for some universes. My notes are a
little old so they may not all work now. City4All was a free one last I was
there.

AW on auth.activeworlds.com 5670
Galileo on auth.activeworlds.com 5675
Ultraworld on auth.activeworlds.com 5671
City4All on 193.186.168.162 5670

Add these lines to your configuration file and change the IP and port as
appropriate.

[universe]
host=193.186.168.162
port=5670


[View Quote] > How do you go to another universe....and can someone tell me how to get to
> that free universe???

Oops - Build 9 now available

Nov 13, 1998, 4:16pm
--------------6C8D2F6312C34E1A4B116371
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<BODY BACKGROUND="cid:part1.364C776A.33B3D70 at poboxes.com">
454 means RC_VERSION_MISMATCH according to <A HREF="http://www.activeworlds.com/sdk/reason.htm">http://www.activeworlds.com/sdk/reason.htm</A>
<P>Either you haven't compiled this code again or the new aw.h file with
AW_BUILD set to 9 is not being picked up or Roland forgot to compile the
code that does the check before releasing.
<P>Edward Sumerfield.
[View Quote] </BODY>
</HTML>

--------------6C8D2F6312C34E1A4B116371
Content-Type: image/gif
Content-ID: <part1.364C776A.33B3D70 at poboxes.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\TEMP\nsmailG7.gif"

R0lGODdhgACAAPcAAPr37/307/r08fr07/r07P3y6/f07Prx7/rx7Pfy7/rx6ffx7Pfx6frv
7PTx7Prv6ffv7Pfv6ffv5vrt5vrs6fTv6vfs5vbs6ffs5PTs5vfp5PTp5PHo5PXm4PHl4O/c
16qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqiwAAAAAgACAAAAI/wAfIBh4gMDAAggeYHhgYQJD
Cw8eTKBgoSHBgRgjPBgw4MAAAhxDcjyAwGBEgQMhLFiAgOWCji5dMlgAYSaECAskWIgQoYPP
DhYWTnAo4YHGCAqSKniwFIHSBwhLotS4QUMHDBssQECgYUODCAOZnqRw1SeGihCDQhTYdCDS
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
--------------6C8D2F6312C34E1A4B116371--

Help please

Nov 16, 1998, 1:52pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
If you code with this sample make sure to remove the "#define AW_BUILD
5" from the .c file. This define exists in the aw.h file which is the one
that should be used.
<P>Further GNU information exists at <A HREF="http://members.xoom.com/esumerfd/ActiveWorlds/AWSDK.htm">http://members.xoom.com/esumerfd/ActiveWorlds/AWSDK.htm</A>
<P>Edward Sumerfield.
[View Quote] <A HREF="http://www.activeworlds.com/sdk/">www.activeworlds.com/sdk/</A>&nbsp;
Roland Vilett has done his utmost to make these pages as understandable
as possible....
[View Quote]

STATUS_ACCESS_VIOLATION

Nov 16, 1998, 2:01pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
Further to Walter's comments. It is your operating system giving you this
error. Your program is trying to write to memory that it is not allowed
to. It was kind enough to create you a core file which can be used to work
out where in your code the problem occurs (as long as the corruption was
not to bad).
<P>Bottom line, as Walter said, your code is wrong, post it and we will
take a look.
<P>Edward Sumerfield
[View Quote]

Bot Business

Nov 16, 1998, 2:10pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
I think your concern about people running others bot programs is unfounded.
AW has had a number of robot type programs in the past which a large number
of people have used with little fear of viruses. I agree the the possibility
exists but if I can get the source then I, as a programmer, would feel
much more comfortable.
<P>I don't like the idea of giving away the priv password for the reasons
that you mentioned.
<P>So, for me, the open source, free bot with lots of disclaimers is where
it should stay for awhile.
<P>Edward Sumerfield.
[View Quote]

Bot Business

Nov 20, 1998, 11:34pm
First, we need an official statement from COF stating whether this paragraph is understood and/or enforced. It should be
removed from the license if it is not appropriate.

Second, I don't think we have to worry. COF release a beta product that we are testing for them. They are not about to
start suing people for breach of contract.

Edward Sumerfield.

[View Quote] > I did--an *.exe is an application, mere code is not (an application is code in a form that users can execute on their
> computers). I just want to make sure that SDK programmers really could exchange code, as happens here on the newsgroup
> all the time, or post their source where other programmers could see it. We can also run our own SDK applications. But
> we can't distribute them: that's all that is currently forbidden.
>
[View Quote]

SDK for linux

Nov 17, 1998, 2:33am
Your SDK program does not have to run on the same machine as the World server.
If you have a spare windows machine available I would dive right in.

Edward Sumerfield.

[View Quote] > Hello Roland, and hello all,
> I've been away for awhile, and am glad to hear about the new SDK.
> I'd really like to start playing with it, but currently my world is
> running on
> a linux server. I'd like some input on whether it would make more sense
>
> to wait for the unix version of the SDK, or to move my world back to
> a PC. Do you have a general sense of when there might be a linux
> version
> of the SDK? If it's less than a month or two, I'd be inclined to wait.
> If it's
> a long way off, I suppose it would be better to just move my world.
>
> Thanks,
> Dave(latenite)

Finding a Bot's Owner

Nov 17, 1998, 9:02pm
Interesting scenario you are setting up. I see you are driven to make this a
financial environment aren't you. A couple of comments.

1. Why do you need a bot to deposit money into a VBank. Wouldn't real
people be doing that?

2. The depositors name is not enough to identify the depositor. I assume
that a VBank customer must open an account in order to deposit money? If that
is the case then the opening of an account can result in a new password for
the back account. When the depositor wishes to interact with a teller they
must whisper the password to the teller and therefore gain access to deposit
or withdraw from the account.

Edward Sumerfield.

[View Quote] > I'm trying to develop a Bank Teller Bot that will accept virtual
> deposits and withdrawals from another Bot that has been sent to the
> Bank. What method should the Teller Bot use to identify the Bot's Owner?
> The Bot's Session can be gotten from AW_EVENT_AVATAR_ADD, but this
> doesn't lead me to the Owner that is running the depositing avatar's
> Session. Doing a read of aw_login_owner seems to give me the Teller
> Bot's owner. Will I get from the depositor avatar's Name to its owner's
> Number (by way of aw_citizen_attributes_by_name) if I start from
> AW_AVATAR_NAME, even though the avatar is the avatar of a bot and not
> the avatar of a citizen?

AWCPP version 0.3 release.

Nov 19, 1998, 2:28am
Not too many significant changes in this release. It ended up being more of a
object model redesign.

You can find all the info at
http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP.htm

However there are a couple of things:

1. Implemented doxygen auto documentation style comments.

Almost all classes are now fully documented and you can find the output at

http://members.xoom.com/esumerfd/ActiveWorlds/doc/

This page also points you to the object models diagrams I have been creating
to design this framework.

2. Added avatar tracking.

This class intercepts all the avatar add, change and delete callbacks from the
SDK and stores all the avatar information into a memory map indexed with
instance. It also adds two more avatar events "eventDistLess" is triggered
when an avatar move within a specified distance from you and "eventDistMore"
is triggered when an avatar is added or moves a specified distance away from
you. I needed this for my deer to be able to react when someone got too close.

3. Three files to download.

It seems like there is one extra file to download each time I release this
thing. Well now we have a binary, a source and a documentation zip file. All
unzip into the same dir so there is no difference in the installation steps.

Next release will contain:

1. A command architecture. Built-in commands for aquire, and release a bot
plus a standard interface for you to implement to add your own commands.
2. Maybe, finally, a deer robot.

Known Bugs.

1. A memory leak in the AvatarMe class destructor.
2. Incorrect scale used to calculate distance in Convert class for METER.
It is actually calculating centi-meters instead of milli-meters as it should
be. So the difference between 1 and 1.5 is 5 meters instead of half a meter.
Doh. This actually is equivalent to the teleport command. 100N 100W is
actually 1000 meters north and 1000 meters west.
3. Documentation notes the release as 3.0 instead of 0.3.

Edward Sumerfield.

Cygwin32

Nov 19, 1998, 10:30am
Not that we know of.

However, you know you don't have to put this into every program right? Once
its written and added to a library you don't have to fuss with it again. My
implementation of the AWSDK class does not contain all the AW methods yet but
as I implement it will grow.

http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP.htm

Edward Sumerfield.

[View Quote] > Hi all, is there anyway to compile with cygwin32 other than having to
> put in all that complicated stuff so it will compile with the dll?

Cygwin32

Nov 19, 1998, 2:44pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
The development process involves taking C code, compiling it to objects
then linking them into exe files. You can put multiple object files into
a single exe file. You can also put multiple objects into a .lib file like
the aw.lib. Then when you link to create the exe file you can tell it to
use the objects plus any objects that it might find in a .lib.
<P>C -> objects --------> exe
<BR>C -> objects -> lib --> exe
<BR>C -> objects --------> dll&nbsp; &lt; just added for completeness.
>
<BR>C -> objects -> lib --> dll&nbsp; &lt; just added for completeness.
>
<P>In the case of the AWCPP you will notice that I am creating a file called
awcpp.lib. This file contains all the objects that I have written and want
to be part of my AW utilities. When I create a robot I just link this lib
file into the same exe.
<P>So the bottom line is that you only have to write all this code once.
<P>Edward Sumerfield.
[View Quote]

Cygwin32

Nov 19, 1998, 3:35pm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
Exactly.
<P>You are find an example in the file AWSDK.C at
<P>&nbsp;&nbsp;&nbsp; <A HREF="http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP.htm">http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP.htm</A>
<P>With the AWSDK class you can write code like this.
<P>&nbsp;&nbsp;&nbsp; main() {
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AWSDK aw;
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AWSDK::aw_init();
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AWSDK::aw_create();
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; etc
<BR>&nbsp;&nbsp;&nbsp; }
<P>Edward Sumerfield.
[View Quote]

Cygwin32

Nov 20, 1998, 10:01am
--------------93075CE1B3CFA22F48F74510
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

My implementation is in C++ as opposed to straight C. So, yes you would have
to access the functions using the class name in front.

You can still use the same concept in C. Look at the Makefile in the awcpp
directory and it will show you the ar command that is used to create the
awcpp.lib.

josh.lib: josh.o
ar ru josh.lib josh.o

Create yourself a josh.c file with the wrapper aw_init, aw_create etc
functions in it, much like AWSDK.C but without the class stuff, and run this
makefile and it will compile the .c into a .o and create a josh.lib file from
it.

ANYONE: HEY, COULD SOME NICE PERSON WITH AN IMPLIB
COMMAND CREATE JOSH A DLL WRAPPER FILE?

Now you can create a bot.c file and add the make lines as follows:

bot.exe : bot.o josh.lib
g++ bot.o josh.lib -o bot.exe

Of coarse, you don't even have to put it in a lib file if you don't want to.
Just link the existing object into the each exe file.

bot.exe: bot.o josh.o
g++ bot.o josh.o -o bot.exe

Its as simple as that.

[View Quote] > So with that I'd have to put AWSDK:: in front of all the commands?
>
[View Quote] --------------93075CE1B3CFA22F48F74510
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
My implementation is in C++ as opposed to straight C. So, yes you would
have to access the functions using the class name in front.
<p>You can still use the same concept in C. Look at the Makefile in the
awcpp directory and it will show you the ar command that is used to create
the awcpp.lib.
<p>&nbsp;&nbsp;&nbsp; josh.lib: josh.o
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ar ru josh.lib josh.o
<p>Create yourself a josh.c file with the wrapper aw_init, aw_create etc
functions in it, much like AWSDK.C but without the class stuff, and run
this makefile and it will compile the .c into a .o and create a josh.lib
file from it.
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#3333FF">ANYONE:
HEY, COULD SOME NICE PERSON WITH AN IMPLIB</font>
<br><font color="#3333FF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMMAND
CREATE JOSH A DLL WRAPPER FILE?</font>
<p>Now you can create a bot.c file and add the make lines as follows:
<p>&nbsp;&nbsp;&nbsp; bot.exe : bot.o josh.lib
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g++ bot.o josh.lib -o bot.exe
<p>Of coarse, you don't even have to put it in a lib file if you don't
want to. Just link the existing object into the each exe file.
<p>&nbsp;&nbsp;&nbsp; bot.exe: bot.o josh.o
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g++ bot.o josh.o -o bot.exe
<p>Its as simple as that.
[View Quote] --------------93075CE1B3CFA22F48F74510--

Cygwin32

Nov 21, 1998, 12:27am
Of coarse, you are right.

I did some more looking and found that GNU does not have a formal tool for this
work but does have a work around. I'll will lay it out here but haven't been
able to make it work myself yet. Maybe someone else will have more luck.

URL reference: http://sourceware.cygnus.com/cygwin/cygwin-ug-net/dll308.html
Commands:

echo EXPORTS > foo.def
nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def
dlltool --def foo.def --dllname foo.dll --output-lib foo.a

When I do the "nm aw.dll" I get the response

No symbols in "aw.dll".

So, I will keep trying.

Edward Sumerfield.

[View Quote] > Edward,
>
> implib programms are compiler specific nowadays. they collect the neccessary
> information for dynamic linking, but don't really create a standard libary
> with actual code in it anymore, so that the compiler can use the collected
> information to create dynamic linking code on the fly as needed.
>
> so that kind of library would have to be coded manually, using c only,
> released in source, and compiled by the one going to use it.
>
> On the other hand it's hard to believe that the Cygwin32 DLL support is that
> poor. a windows development is NOTHING with at least plain DLL import
> library support, so i wonder if CygWin32 does have an implib.exe equivalent
> which we do not know and which would have prevented a lot of work and
> thought.
>
> Walter
>
> Edward Sumerfield schrieb in Nachricht
> <36555A27.5CCCA932 at poboxes.com>...
> ANYONE: HEY, COULD SOME NICE PERSON WITH AN IMPLIB
> COMMAND CREATE JOSH A DLL WRAPPER FILE?

Cygwin32

Nov 21, 1998, 2:01am
I think I may have found a solution.

There is a utility called "impdef" (apparently the same name as a similar Borland
tool) that lists the methods in a dll file. You can find it at

http://www.geocities.com/Tokyo/Towers/6162/gcc-extra.html

Once you have this you must run it from a DOS prompt. Doesn't work from a bash
shell.

impdef aw.dll > awsdk.def

This generates an awsdk.def file which is just a text file that lists the functions
in the dll file. Now you can use the Cygwin utility dlltool to read this def file
and the dll file and create a new Cygwin compatible lib file.

dlltool --def awsdk.def --dllname ${AWSDK}/aw.dll --output-lib awsdk.lib

I compiled a little program with it that just called aw_init and it seemed to work
fine.

I added a second post with the awsdk.def file that I generated and the awsdk.lib
file that you should be able to link with.

Now bare in mind that the output lib file is just a stub for the dll. It is not a
copy of the functions in the dll. So when you run a program that is linked with
awsdk.lib is will still need to have aw.dll in the path.

[View Quote] > Of coarse, you are right.
>
> I did some more looking and found that GNU does not have a formal tool for this
> work but does have a work around. I'll will lay it out here but haven't been
> able to make it work myself yet. Maybe someone else will have more luck.
>
> URL reference: http://sourceware.cygnus.com/cygwin/cygwin-ug-net/dll308.html
> Commands:
>
> echo EXPORTS > foo.def
> nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def
> dlltool --def foo.def --dllname foo.dll --output-lib foo.a
>
> When I do the "nm aw.dll" I get the response
>
> No symbols in "aw.dll".
>
> So, I will keep trying.
>
> Edward Sumerfield.
>
[View Quote]

Cygwin32

Nov 21, 1998, 2:05am
This is a multi-part message in MIME format.
--------------89CB085191CAE404F9C516E5
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Attached files:

awsdk.def

Output from the impdef command on the aw.dll

awsdk.lib

Output from the dlltool from the awsdk.def and aw.dll.

bot.C

Sample program to see if the awsdk.lib would link.

Makefile

Makefile used to create the bot.exe program. Note that the impdef command is not
included because that must be run from DOS.

Edward Sumerfield.

--------------89CB085191CAE404F9C516E5
Content-Type: text/plain; charset=us-ascii;
name="Makefile"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="Makefile"

CPPFLAGS=-g -I. -I${AWSDK}

all: bot.exe

bot.exe: awsdk.lib bot.o
g++ bot.o awsdk.lib -o $ at

awsdk.lib:
dlltool --def awsdk.def --dllname ${AWSDK}/aw.dll --output-lib awsdk.lib

clean:
\rm *~ *.exe *.o awsdk.def awsdk.lib
--------------89CB085191CAE404F9C516E5
Content-Type: application/octet-stream;
name="awsdk.lib"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="awsdk.lib"

ITxhcmNoPgovICAgICAgICAgICAgICAgOTExNjIwMzU1ICAgMCAgICAgMCAgICAgMCAgICAg
ICAyMjk0ICAgICAgYAoAAABkAAAJOgAAC8YAAA6sAAAOrAAAEU4AABFOAAAT9gAAE/YAABbC
AAAWwgAAGV4AABleAAAb5gAAG+YAAB6qAAAeqgAAIXwAACF8AAAkBAAAJAQAACamAAAmpgAA
KTwAACk8AAAr5gAAK+YAAC6CAAAuggAAMTgAADE4AAAzwAAAM8AAADZWAAA2VgAAOOoAADjq
AAA7lgAAO5YAAD5CAAA+QgAAQOQAAEDkAABDeAAAQ3gAAEYuAABGLgAASNgAAEjYAABLhgAA
S4YAAE40AABONAAAUO4AAFDuAABTlgAAU5YAAFYyAABWMgAAWLoAAFi6AABbZAAAW2QAAF4C
AABeAgAAYIoAAGCKAABjEgAAYxIAAGWyAABlsgAAaEYAAGhGAABq2gAAatoAAG12AABtdgAA
cCoAAHAqAABywAAAcsAAAHV2AAB1dgAAeCAAAHggAAB6zgAAes4AAH18AAB9fAAAgFYAAIBW
AACDKAAAgygAAIXQAACF0AAAiHoAAIh6AACLGAAAixgAAI22AACNtl9fYXdzZGtfbGliX2lu
YW1lAF9faGVhZF9hd3Nka19saWIAX2F3X3dvcmxkX2xpc3QAX19faW1wX2F3X3dvcmxkX2xp
c3QAX2F3X3dvcmxkX2VqZWN0AF9fX2ltcF9hd193b3JsZF9lamVjdABfYXdfd29ybGRfYXR0
cmlidXRlc19jaGFuZ2UAX19faW1wX2F3X3dvcmxkX2F0dHJpYnV0ZXNfY2hhbmdlAF9hd193
aGlzcGVyAF9fX2ltcF9hd193aGlzcGVyAF9hd193YWl0AF9fX2ltcF9hd193YWl0AF9hd191
bml2ZXJzZV9lamVjdGlvbl9hZGQAX19faW1wX2F3X3VuaXZlcnNlX2VqZWN0aW9uX2FkZABf
YXdfdW5pdmVyc2VfYXR0cmlidXRlc19jaGFuZ2UAX19faW1wX2F3X3VuaXZlcnNlX2F0dHJp
YnV0ZXNfY2hhbmdlAF9hd190ZXJtAF9fX2ltcF9hd190ZXJtAF9hd19zdHJpbmdfc2V0AF9f
X2ltcF9hd19zdHJpbmdfc2V0AF9hd19zdHJpbmcAX19faW1wX2F3X3N0cmluZwBfYXdfc3Rh
dGVfY2hhbmdlAF9fX2ltcF9hd19zdGF0ZV9jaGFuZ2UAX2F3X3Nlc3Npb24AX19faW1wX2F3
X3Nlc3Npb24AX2F3X3NlY3Rvcl9mcm9tX2NlbGwAX19faW1wX2F3X3NlY3Rvcl9mcm9tX2Nl
bGwAX2F3X3NheQBfX19pbXBfYXdfc2F5AF9hd19yYW5kb20AX19faW1wX2F3X3JhbmRvbQBf
YXdfcXVlcnkAX19faW1wX2F3X3F1ZXJ5AF9hd19vYmplY3RfZGVsZXRlAF9fX2ltcF9hd19v
YmplY3RfZGVsZXRlAF9hd19vYmplY3RfY2hhbmdlAF9fX2ltcF9hd19vYmplY3RfY2hhbmdl
AF9hd19vYmplY3RfYWRkAF9fX2ltcF9hd19vYmplY3RfYWRkAF9hd19sb2dpbgBfX19pbXBf
YXdfbG9naW4AX2F3X2xpY2Vuc2VfcHJldmlvdXMAX19faW1wX2F3X2xpY2Vuc2VfcHJldmlv
dXMAX2F3X2xpY2Vuc2VfbmV4dABfX19pbXBfYXdfbGljZW5zZV9uZXh0AF9hd19saWNlbnNl
X2RlbGV0ZQBfX19pbXBfYXdfbGljZW5zZV9kZWxldGUAX2F3X2xpY2Vuc2VfY2hhbmdlAF9f
X2ltcF9hd19saWNlbnNlX2NoYW5nZQBfYXdfbGljZW5zZV9hdHRyaWJ1dGVzAF9fX2ltcF9h
d19saWNlbnNlX2F0dHJpYnV0ZXMAX2F3X2xpY2Vuc2VfYWRkAF9fX2ltcF9hd19saWNlbnNl
X2FkZABfYXdfaW50X3NldABfX19pbXBfYXdfaW50X3NldABfYXdfaW50AF9fX2ltcF9hd19p
bnQAX2F3X2luc3RhbmNlX3NldABfX19pbXBfYXdfaW5zdGFuY2Vfc2V0AF9hd19pbnN0YW5j
ZQBfX19pbXBfYXdfaW5zdGFuY2UAX2F3X2luaXQAX19faW1wX2F3X2luaXQAX2F3X2V4aXQA
X19faW1wX2F3X2V4aXQAX2F3X2V2ZW50X3NldABfX19pbXBfYXdfZXZlbnRfc2V0AF9hd19l
dmVudABfX19pbXBfYXdfZXZlbnQAX2F3X2VudGVyAF9fX2ltcF9hd19lbnRlcgBfYXdfZGVz
dHJveQBfX19pbXBfYXdfZGVzdHJveQBfYXdfY3JlYXRlX3Jlc29sdmVkAF9fX2ltcF9hd19j
cmVhdGVfcmVzb2x2ZWQAX2F3X2NyZWF0ZQBfX19pbXBfYXdfY3JlYXRlAF9hd19jaXRpemVu
X3ByZXZpb3VzAF9fX2ltcF9hd19jaXRpemVuX3ByZXZpb3VzAF9hd19jaXRpemVuX25leHQA
X19faW1wX2F3X2NpdGl6ZW5fbmV4dABfYXdfY2l0aXplbl9kZWxldGUAX19faW1wX2F3X2Np
dGl6ZW5fZGVsZXRlAF9hd19jaXRpemVuX2NoYW5nZQBfX19pbXBfYXdfY2l0aXplbl9jaGFu
Z2UAX2F3X2NpdGl6ZW5fYXR0cmlidXRlc19ieV9udW1iZXIAX19faW1wX2F3X2NpdGl6ZW5f
YXR0cmlidXRlc19ieV9udW1iZXIAX2F3X2NpdGl6ZW5fYXR0cmlidXRlc19ieV9uYW1lAF9f
X2ltcF9hd19jaXRpemVuX2F0dHJpYnV0ZXNfYnlfbmFtZQBfYXdfY2l0aXplbl9hZGQAX19f
aW1wX2F3X2NpdGl6ZW5fYWRkAF9hd19jYWxsYmFja19zZXQAX19faW1wX2F3X2NhbGxiYWNr
X3NldABfYXdfY2FsbGJhY2sAX19faW1wX2F3X2NhbGxiYWNrAF9hd19ib29sX3NldABfX19p
bXBfYXdfYm9vbF9zZXQAX2F3X2Jvb2wAX19faW1wX2F3X2Jvb2wAAGR0Lm8vICAgICAgICAg
ICA5MTE2MjAzNTEgICA1NDQgICA1MTMgICAxMDA2NjYgIDU5MiAgICAgICBgCkwBBgAAAAAA
LAEAAA8AAAAAAAUBLnRleHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYC5k
YXRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACAAADALmlkYXRhJDQAAAAAAAAAAAQAAAAEAQAAAAAAAAAA
AAAAAAAAAAAAQC5pZGF0YSQ1AAAAAAAAAAAEAAAACAEAAAAAAAAAAAAAAAAAAAAAAEAuaWRh
dGEkNwAAAAAAAAAAIAAAAAwBAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABmOi9lZHdhcmQv
cHJvZHVjdHMvYXdzZGsvYXcuZGxsAC5maWxlAAAAAAAAAP7/AABnAWZha2UAAAAAAAAAAAAA
AAAAAC50ZXh0AAAAAAAAAAEAAAADAQAAAAAAAAAAAAAAAAAAAAAAAC5kYXRhAAAAAAAAAAIA
AAADAQAAAAAAAAAAAAAAAAAAAAAAAC5ic3MAAAAAAAAAAAMAAAADAQAAAAAAAAAAAAAAAAAA
AAAAAC5pZGF0YSQ0AAAAAAQAAAADAQQAAAAAAAAAAAAAAAAAAAAAAC5pZGF0YSQ1AAAAAAUA
AAADAQQAAAAAAAAAAAAAAAAAAAAAAC5pZGF0YSQ3AAAAAAYAAAADASAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEAAAAAAAAAAYAAAACABYAAABfX2F3c2RrX2xpYl9pbmFtZQBkaC5vLyAgICAg
ICAgICAgOTExNjIwMzUxICAgNTQ0ICAgNTEzICAgMTAwNjY2ICA2ODEgICAgICAgYApMAQYA
AAAAAD4BAAASAAAAAAAEAS50ZXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAA
AGAuZGF0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAADALmJzcwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAwC5pZGF0YSQyAAAAAAAAAAAUAAAABAEAACAB
AAAAAAAAAwAAAAAAAEAuaWRhdGEkNQAAAAAAAAAABAAAABgBAAAAAAAAAAAAAAAAAAAAAABA
LmlkYXRhJDQAAAAAAAAAAAQAAAAcAQAAAAAAAAAAAAAAAAAAAAAAQAQAAAAAAAAAAAAAAAAA
AAAEAAAAAAAAAAAAAAAAAAAADgAAAAcADAAAABEAAAAHABAAAAAMAAAABwAuZmlsZQAAAAAA
AAD+/wAAZwFmYWtlAAAAAAAAAAAAAAAAAABobmFtZQAAAAQAAAAGAAAAAwBmdGh1bmsAAAQA
AAAFAAAAAwAudGV4dAAAAAAAAAABAAAAAwEAAAAAAAAAAAAAAAAAAAAAAAAuZGF0YQAAAAAA
AAACAAAAAwEAAAAAAAAAAAAAAAAAAAAAAAAuYnNzAAAAAAAAAAADAAAAAwEAAAAAAAAAAAAA
AAAAAAAAAAAuaWRhdGEkMgAAAAAEAAAAAwEUAAAAAwAAAAAAAAAAAAAAAAAuaWRhdGEkNQAA
AAAFAAAAAwEEAAAAAAAAAAAAAAAAAAAAAAAuaWRhdGEkNAAAAAAGAAAAAwEEAAAAAAAAAAAA
AAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAgAAAAAAFQAAAAAAAAAAAAAAAgAnAAAAX19oZWFk
X2F3c2RrX2xpYgBfX2F3c2RrX2xpYl9pbmFtZQAKZHM0OC5vLyAgICAgICAgIDkxMTYyMDM1
NCAgIDU0NCAgIDUxMyAgIDEwMDY2NiAgNjEzICAgICAgIGAKTAEHAAAAAAB4AQAACgAAAAAA
BAEudGV4dAAAAAAAAAAAAAAACAAAACwBAABQAQAAAAAAAAEAAAAgAABgLmRhdGEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAwC5ic3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIAAAMAuaWRhdGEkNwAAAAAAAAAABAAAADQBAABaAQAAAAAAAAEAAAAAAABA
LmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAAZAEAAAAAAAABAAAAAAAAQC5pZGF0YSQ0AAAAAAAA
AAAEAAAAPAEAAG4BAAAAAAAAAQAAAAAAAEAuaWRhdGEkNgAAAAAAAAAAEAAAAEABAAAAAAAA
AAAAAAAAAAAAAABA/yUAAAAAkJAAAAAAAAAAAAAAAAAwAGF3X3dvcmxkX2xpc3QAAgAAAAQA
AAAGAAAAAAAJAAAABwAAAAAABgAAAAcAAAAAAAYAAAAHAC50ZXh0AAAAAAAAAAEAAAADAC5k
YXRhAAAAAAAAAAIAAAADAC5ic3MAAAAAAAAAAAMAAAADAC5pZGF0YSQ3AAAAAAQAAAADAC5p
ZGF0YSQ1AAAAAAUAAAADAC5pZGF0YSQ0AAAAAAYAAAADAC5pZGF0YSQ2AAAAAAcAAAADAAAA
AAAEAAAAAAAAAAEAAAACAAAAAAATAAAAAAAAAAUAAAACAAAAAAAoAAAAAAAAAAAAAAACADkA
AABfYXdfd29ybGRfbGlzdABfX19pbXBfYXdfd29ybGRfbGlzdABfX2hlYWRfYXdzZGtfbGli
AApkczQ3Lm8vICAgICAgICAgOTExNjIwMzU0ICAgNTQ0ICAgNTEzICAgMTAwNjY2ICA2MTkg
ICAgICAgYApMAQcAAAAAAHwBAAAKAAAAAAAEAS50ZXh0AAAAAAAAAAAAAAAIAAAALAEAAFQB
AAAAAAAAAQAAACAAAGAuZGF0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAADA
LmJzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAwC5pZGF0YSQ3AAAAAAAA
AAAEAAAANAEAAF4BAAAAAAAAAQAAAAAAAEAuaWRhdGEkNQAAAAAAAAAABAAAADgBAABoAQAA
AAAAAAEAAAAAAABALmlkYXRhJDQAAAAAAAAAAAQAAAA8AQAAcgEAAAAAAAABAAAAAAAAQC5p
ZGF0YSQ2AAAAAAAAAAASAAAAQAEAAAAAAAAAAAAAAAAAAAAAAED/JQAAAACQkAAAAAAAAAAA
AAAAAC8AYXdfd29ybGRfZWplY3QAAAAAAgAAAAQAAAAGAAAAAAAJAAAABwAAAAAABgAAAAcA
AAAAAAYAAAAHAC50ZXh0AAAAAAAAAAEAAAADAC5kYXRhAAAAAAAAAAIAAAADAC5ic3MAAAAA
AAAAAAMAAAADAC5pZGF0YSQ3AAAAAAQAAAADAC5pZGF0YSQ1AAAAAAUAAAADAC5pZGF0YSQ0
AAAAAAYAAAADAC5pZGF0YSQ2AAAAAAcAAAADAAAAAAAEAAAAAAAAAAEAAAACAAAAAAAUAAAA
AAAAAAUAAAACAAAAAAAqAAAAAAAAAAAAAAACADsAAABfYXdfd29ybGRfZWplY3QAX19faW1w
X2F3X3dvcmxkX2VqZWN0AF9faGVhZF9hd3Nka19saWIACmRzNDYuby8gICAgICAgICA5MTE2
MjAzNTQgICA1NDQgICA1MTMgICAxMDA2NjYgIDY1NSAgICAgICBgCkwBBwAAAAAAiAEAAAoA
AAAAAAQBLnRleHQAAAAAAAAAAAAAAAgAAAAsAQAAYAEAAAAAAAABAAAAIAAAYC5kYXRhAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACAAADALmlkYXRhJDcAAAAAAAAAAAQAAAA0AQAAagEAAAAAAAABAAAA
AAAAQC5pZGF0YSQ1AAAAAAAAAAAEAAAAOAEAAHQBAAAAAAAAAQAAAAAAAEAuaWRhdGEkNAAA
AAAAAAAABAAAADwBAAB+AQAAAAAAAAEAAAAAAABALmlkYXRhJDYAAAAAAAAAAB4AAABAAQAA
AAAAAAAAAAAAAAAAAAAAQP8lAAAAAJCQAAAAAAAAAAAAAAAALgBhd193b3JsZF9hdHRyaWJ1
dGVzX2NoYW5nZQAAAAACAAAABAAAAAYAAAAAAAkAAAAHAAAAAAAGAAAABwAAAAAABgAAAAcA
LnRleHQAAAAAAAAAAQAAAAMALmRhdGEAAAAAAAAAAgAAAAMALmJzcwAAAAAAAAAAAwAAAAMA
LmlkYXRhJDcAAAAABAAAAAMALmlkYXRhJDUAAAAABQAAAAMALmlkYXRhJDQAAAAABgAAAAMA
LmlkYXRhJDYAAAAABwAAAAMAAAAAAAQAAAAAAAAAAQAAAAIAAAAAACAAAAAAAAAABQAAAAIA
AAAAAEIAAAAAAAAAAAAAAAIAUwAAAF9hd193b3JsZF9hdHRyaWJ1dGVzX2NoYW5nZQBfX19p
bXBfYXdfd29ybGRfYXR0cmlidXRlc19jaGFuZ2UAX19oZWFkX2F3c2RrX2xpYgAKZHM0NS5v
LyAgICAgICAgIDkxMTYyMDM1NCAgIDU0NCAgIDUxMyAgIDEwMDY2NiAgNjA3ICAgICAgIGAK
TAEHAAAAAAB4AQAACgAAAAAABAEudGV4dAAAAAAAAAAAAAAACAAAACwBAABQAQAAAAAAAAEA
AAAgAABgLmRhdGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAwC5ic3MAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAMAuaWRhdGEkNwAAAAAAAAAABAAAADQB
AABaAQAAAAAAAAEAAAAAAABALmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAAZAEAAAAAAAABAAAA
AAAAQC5pZGF0YSQ0AAAAAAAAAAAEAAAAPAEAAG4BAAAAAAAAAQAAAAAAAEAuaWRhdGEkNgAA
AAAAAAAADgAAAEABAAAAAAAAAAAAAAAAAAAAAABA/yUAAAAAkJAAAAAAAAAAAAAAAAAtAGF3
X3doaXNwZXIAAAAAAgAAAAQAAAAGAAAAAAAJAAAABwAAAAAABgAAAAcAAAAAAAYAAAAHAC50
ZXh0AAAAAAAAAAEAAAADAC5kYXRhAAAAAAAAAAIAAAADAC5ic3MAAAAAAAAAAAMAAAADAC5p
ZGF0YSQ3AAAAAAQAAAADAC5pZGF0YSQ1AAAAAAUAAAADAC5pZGF0YSQ0AAAAAAYAAAADAC5p
ZGF0YSQ2AAAAAAcAAAADAAAAAAAEAAAAAAAAAAEAAAACAAAAAAAQAAAAAAAAAAUAAAACAAAA
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
AAAAAAAABQAAAAIAAAAAACgAAAAAAAAAAAAAAAIAOQAAAF9hd19vYmplY3RfYWRkAF9fX2lt
cF9hd19vYmplY3RfYWRkAF9faGVhZF9hd3Nka19saWIACmRzMjkuby8gICAgICAgICA5MTE2
MjAzNTIgICA1NDQgICA1MTMgICAxMDA2NjYgIDU5OSAgICAgICBgCkwBBwAAAAAAdAEAAAoA
AAAAAAQBLnRleHQAAAAAAAAAAAAAAAgAAAAsAQAATAEAAAAAAAABAAAAIAAAYC5kYXRhAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACAAADALmlkYXRhJDcAAAAAAAAAAAQAAAA0AQAAVgEAAAAAAAABAAAA
AAAAQC5pZGF0YSQ1AAAAAAAAAAAEAAAAOAEAAGABAAAAAAAAAQAAAAAAAEAuaWRhdGEkNAAA
AAAAAAAABAAAADwBAABqAQAAAAAAAAEAAAAAAABALmlkYXRhJDYAAAAAAAAAAAwAAABAAQAA
AAAAAAAAAAAAAAAAAAAAQP8lAAAAAJCQAAAAAAAAAAAAAAAAHQBhd19sb2dpbgAAAgAAAAQA
AAAGAAAAAAAJAAAABwAAAAAABgAAAAcAAAAAAAYAAAAHAC50ZXh0AAAAAAAAAAEAAAADAC5k
YXRhAAAAAAAAAAIAAAADAC5ic3MAAAAAAAAAAAMAAAADAC5pZGF0YSQ3AAAAAAQAAAADAC5p
ZGF0YSQ1AAAAAAUAAAADAC5pZGF0YSQ0AAAAAAYAAAADAC5pZGF0YSQ2AAAAAAcAAAADAAAA
AAAEAAAAAAAAAAEAAAACAAAAAAAOAAAAAAAAAAUAAAACAAAAAAAeAAAAAAAAAAAAAAACAC8A
AABfYXdfbG9naW4AX19faW1wX2F3X2xvZ2luAF9faGVhZF9hd3Nka19saWIACmRzMjguby8g
ICAgICAgICA5MTE2MjAzNTIgICA1NDQgICA1MTMgICAxMDA2NjYgIDYzMyAgICAgICBgCkwB
BwAAAAAAgAEAAAoAAAAAAAQBLnRleHQAAAAAAAAAAAAAAAgAAAAsAQAAWAEAAAAAAAABAAAA
IAAAYC5kYXRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAA
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
Y2Vuc2VfZGVsZXRlAF9fX2ltcF9hd19saWNlbnNlX2RlbGV0ZQBfX2hlYWRfYXdzZGtfbGli
AApkczI1Lm8vICAgICAgICAgOTExNjIwMzUyICAgNTQ0ICAgNTEzICAgMTAwNjY2ICA2MjUg
ICAgICAgYApMAQcAAAAAAHwBAAAKAAAAAAAEAS50ZXh0AAAAAAAAAAAAAAAIAAAALAEAAFQB
AAAAAAAAAQAAACAAAGAuZGF0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAADA
LmJzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAwC5pZGF0YSQ3AAAAAAAA
AAAEAAAANAEAAF4BAAAAAAAAAQAAAAAAAEAuaWRhdGEkNQAAAAAAAAAABAAAADgBAABoAQAA
AAAAAAEAAAAAAABALmlkYXRhJDQAAAAAAAAAAAQAAAA8AQAAcgEAAAAAAAABAAAAAAAAQC5p
ZGF0YSQ2AAAAAAAAAAAUAAAAQAEAAAAAAAAAAAAAAAAAAAAAAED/JQAAAACQkAAAAAAAAAAA
AAAAABkAYXdfbGljZW5zZV9jaGFuZ2UAAgAAAAQAAAAGAAAAAAAJAAAABwAAAAAABgAAAAcA
AAAAAAYAAAAHAC50ZXh0AAAAAAAAAAEAAAADAC5kYXRhAAAAAAAAAAIAAAADAC5ic3MAAAAA
AAAAAAMAAAADAC5pZGF0YSQ3AAAAAAQAAAADAC5pZGF0YSQ1AAAAAAUAAAADAC5pZGF0YSQ0
AAAAAAYAAAADAC5pZGF0YSQ2AAAAAAcAAAADAAAAAAAEAAAAAAAAAAEAAAACAAAAAAAXAAAA
AAAAAAUAAAACAAAAAAAwAAAAAAAAAAAAAAACAEEAAABfYXdfbGljZW5zZV9jaGFuZ2UAX19f
aW1wX2F3X2xpY2Vuc2VfY2hhbmdlAF9faGVhZF9hd3Nka19saWIACmRzMjQuby8gICAgICAg
ICA5MTE2MjAzNTIgICA1NDQgICA1MTMgICAxMDA2NjYgIDYzNyAgICAgICBgCkwBBwAAAAAA
gAEAAAoAAAAAAAQBLnRleHQAAAAAAAAAAAAAAAgAAAAsAQAAWAEAAAAAAAABAAAAIAAAYC5k
YXRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAAAAAAAAAA
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
ZHMxMC5vLyAgICAgICAgIDkxMTYyMDM1MiAgIDU0NCAgIDUxMyAgIDEwMDY2NiAgNjMzICAg
ICAgIGAKTAEHAAAAAACAAQAACgAAAAAABAEudGV4dAAAAAAAAAAAAAAACAAAACwBAABYAQAA
AAAAAAEAAAAgAABgLmRhdGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAwC5i
c3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAMAuaWRhdGEkNwAAAAAAAAAA
BAAAADQBAABiAQAAAAAAAAEAAAAAAABALmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAAbAEAAAAA
AAABAAAAAAAAQC5pZGF0YSQ0AAAAAAAAAAAEAAAAPAEAAHYBAAAAAAAAAQAAAAAAAEAuaWRh
dGEkNgAAAAAAAAAAFgAAAEABAAAAAAAAAAAAAAAAAAAAAABA/yUAAAAAkJAAAAAAAAAAAAAA
AAAKAGF3X2NpdGl6ZW5fcHJldmlvdXMAAAACAAAABAAAAAYAAAAAAAkAAAAHAAAAAAAGAAAA
BwAAAAAABgAAAAcALnRleHQAAAAAAAAAAQAAAAMALmRhdGEAAAAAAAAAAgAAAAMALmJzcwAA
AAAAAAAAAwAAAAMALmlkYXRhJDcAAAAABAAAAAMALmlkYXRhJDUAAAAABQAAAAMALmlkYXRh
JDQAAAAABgAAAAMALmlkYXRhJDYAAAAABwAAAAMAAAAAAAQAAAAAAAAAAQAAAAIAAAAAABkA
AAAAAAAABQAAAAIAAAAAADQAAAAAAAAAAAAAAAIARQAAAF9hd19jaXRpemVuX3ByZXZpb3Vz
AF9fX2ltcF9hd19jaXRpemVuX3ByZXZpb3VzAF9faGVhZF9hd3Nka19saWIACmRzOS5vLyAg
ICAgICAgICA5MTE2MjAzNTIgICA1NDQgICA1MTMgICAxMDA2NjYgIDYyMSAgICAgICBgCkwB
BwAAAAAAfAEAAAoAAAAAAAQBLnRleHQAAAAAAAAAAAAAAAgAAAAsAQAAVAEAAAAAAAABAAAA
IAAAYC5kYXRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAADALmlkYXRhJDcAAAAAAAAAAAQAAAA0AQAA
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
ICAgICAgICAgIDkxMTYyMDM1MSAgIDU0NCAgIDUxMyAgIDEwMDY2NiAgNjY5ICAgICAgIGAK
TAEHAAAAAACMAQAACgAAAAAABAEudGV4dAAAAAAAAAAAAAAACAAAACwBAABkAQAAAAAAAAEA
AAAgAABgLmRhdGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAwC5ic3MAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAMAuaWRhdGEkNwAAAAAAAAAABAAAADQB
AABuAQAAAAAAAAEAAAAAAABALmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAAeAEAAAAAAAABAAAA
AAAAQC5pZGF0YSQ0AAAAAAAAAAAEAAAAPAEAAIIBAAAAAAAAAQAAAAAAAEAuaWRhdGEkNgAA
AAAAAAAAIgAAAEABAAAAAAAAAAAAAAAAAAAAAABA/yUAAAAAkJAAAAAAAAAAAAAAAAAGAGF3
X2NpdGl6ZW5fYXR0cmlidXRlc19ieV9udW1iZXIAAAACAAAABAAAAAYAAAAAAAkAAAAHAAAA
AAAGAAAABwAAAAAABgAAAAcALnRleHQAAAAAAAAAAQAAAAMALmRhdGEAAAAAAAAAAgAAAAMA
LmJzcwAAAAAAAAAAAwAAAAMALmlkYXRhJDcAAAAABAAAAAMALmlkYXRhJDUAAAAABQAAAAMA
LmlkYXRhJDQAAAAABgAAAAMALmlkYXRhJDYAAAAABwAAAAMAAAAAAAQAAAAAAAAAAQAAAAIA
AAAAACUAAAAAAAAABQAAAAIAAAAAAEwAAAAAAAAAAAAAAAIAXQAAAF9hd19jaXRpemVuX2F0
dHJpYnV0ZXNfYnlfbnVtYmVyAF9fX2ltcF9hd19jaXRpemVuX2F0dHJpYnV0ZXNfYnlfbnVt
YmVyAF9faGVhZF9hd3Nka19saWIACmRzNS5vLyAgICAgICAgICA5MTE2MjAzNTEgICA1NDQg
ICA1MTMgICAxMDA2NjYgIDY2MSAgICAgICBgCkwBBwAAAAAAiAEAAAoAAAAAAAQBLnRleHQA
AAAAAAAAAAAAAAgAAAAsAQAAYAEAAAAAAAABAAAAIAAAYC5kYXRhAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAEAAAMAuYnNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACAAADALmlkYXRhJDcAAAAAAAAAAAQAAAA0AQAAagEAAAAAAAABAAAAAAAAQC5pZGF0YSQ1
AAAAAAAAAAAEAAAAOAEAAHQBAAAAAAAAAQAAAAAAAEAuaWRhdGEkNAAAAAAAAAAABAAAADwB
AAB+AQAAAAAAAAEAAAAAAABALmlkYXRhJDYAAAAAAAAAACAAAABAAQAAAAAAAAAAAAAAAAAA
AAAAQP8lAAAAAJCQAAAAAAAAAAAAAAAABQBhd19jaXRpemVuX2F0dHJpYnV0ZXNfYnlfbmFt
ZQACAAAABAAAAAYAAAAAAAkAAAAHAAAAAAAGAAAABwAAAAAABgAAAAcALnRleHQAAAAAAAAA
AQAAAAMALmRhdGEAAAAAAAAAAgAAAAMALmJzcwAAAAAAAAAAAwAAAAMALmlkYXRhJDcAAAAA
BAAAAAMALmlkYXRhJDUAAAAABQAAAAMALmlkYXRhJDQAAAAABgAAAAMALmlkYXRhJDYAAAAA
BwAAAAMAAAAAAAQAAAAAAAAAAQAAAAIAAAAAACMAAAAAAAAABQAAAAIAAAAAAEgAAAAAAAAA
AAAAAAIAWQAAAF9hd19jaXRpemVuX2F0dHJpYnV0ZXNfYnlfbmFtZQBfX19pbXBfYXdfY2l0
aXplbl9hdHRyaWJ1dGVzX2J5X25hbWUAX19oZWFkX2F3c2RrX2xpYgAKZHM0Lm8vICAgICAg
ICAgIDkxMTYyMDM1MSAgIDU0NCAgIDUxMyAgIDEwMDY2NiAgNjE5ICAgICAgIGAKTAEHAAAA
AAB8AQAACgAAAAAABAEudGV4dAAAAAAAAAAAAAAACAAAACwBAABUAQAAAAAAAAEAAAAgAABg
LmRhdGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAwC5ic3MAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAMAuaWRhdGEkNwAAAAAAAAAABAAAADQBAABeAQAA
AAAAAAEAAAAAAABALmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAAaAEAAAAAAAABAAAAAAAAQC5p
ZGF0YSQ0AAAAAAAAAAAEAAAAPAEAAHIBAAAAAAAAAQAAAAAAAEAuaWRhdGEkNgAAAAAAAAAA
EgAAAEABAAAAAAAAAAAAAAAAAAAAAABA/yUAAAAAkJAAAAAAAAAAAAAAAAAEAGF3X2NpdGl6
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
--------------89CB085191CAE404F9C516E5
Content-Type: application/x-unknown-content-type-c_auto_file;
name="bot.C"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="bot.C"

I2luY2x1ZGUgPGlvc3RyZWFtLmg+DQoNCiNpbmNsdWRlIDxhdy5oPg0KDQptYWluKCkgew0K
DQogIGF3X2luaXQoQVdfQlVJTEQpOw0KfQ0K
--------------89CB085191CAE404F9C516E5
Content-Type: text/plain; charset=us-ascii;
name="awsdk.def"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="awsdk.def"

EXPORTS
aw_init
aw_term
aw_create
aw_destroy
aw_login
aw_wait
aw_int
aw_int_set
aw_string
aw_string_set
aw_event
aw_event_set
aw_callback
aw_callback_set
aw_instance
aw_instance_set
aw_enter
aw_state_change
aw_say
aw_whisper
aw_object_add
aw_object_change
aw_object_delete
aw_query
aw_random
aw_license_attributes
aw_license_add
aw_license_change
aw_license_delete
aw_license_next
aw_license_previous
aw_bool
aw_bool_set
aw_citizen_attributes_by_name
aw_citizen_attributes_by_number
aw_citizen_add
aw_citizen_change
aw_citizen_delete
aw_citizen_next
aw_citizen_previous
aw_session
aw_world_list
aw_create_resolved
aw_world_attributes_change
aw_universe_attributes_change
aw_world_eject
aw_exit
aw_universe_ejection_add
aw_sector_from_cell


--------------89CB085191CAE404F9C516E5--

Cygwin32

Nov 21, 1998, 7:10pm
I found that out when I moved my dll. The dlltool puts a full path name in the
awsdk.lib file. I assume it is adding code that does a LoadLibrary("full path
name");

You will have to recreate the awsdk.lib from the dlltool command so that it find
the aw.dll in the correct place.

[View Quote] > awsdk.lib wont work for me it compiles but ti says I need a aw.dll on f:\
> drive which is my cd-rom I think its the way the compiler made the dll
> directory specific...
>
[View Quote]

Moving the bots

Nov 21, 1998, 2:39am
--------------2177A608EA2C86C1B6B1E676
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

You are asking for a couple of different concepts.

1. avatar distance from robot.

I implemented this using Pythagarous in the code in the AWCPP - Avatar.C,
distanceFrom() method. Here is an excerpt

// Convert all positions to their absolute values. No negatives.

if (delta_x < 0) delta_x = -delta_x;
if (delta_y < 0) delta_y = -delta_y;
if (delta_z < 0) delta_z = -delta_z;

// Work out the horizontal hypotenuse using Pythagarous theorem.
//
// hypotenuse squared = opposite squared + adjacent squared;

float hor_h = sqrt(((delta_x * delta_x) + (delta_z * delta_z)));

// The vertical hypotenuse is the the actual distance between the
// the avatars.

float distance_from_avatar = sqrt(((hor_h * hor_h) + (delta_y * delta_y)));

2. x, z follow position.

I implemented this using old fashioned trig (haven't worked out the matrix
math yet) in AWCPP - Movement.C in the follow() method. Another excerpt

// Set my yaw to the same direction that the avatar is facing. We must
// do this now because we are going to turn the avatar yaw around for the
// direction calculation.

my_yaw = avatar_yaw;

// Because we will be facing the avatar from behind we can set our
// yaw to the same as the avatars. However, the new position is
// calculated as some distance in the opposite direction from where
// the avatar is facing so we must add 180 degrees for the trig
// equation.

avatar_yaw += (CIRCLE_AW / 2); // This is 3600/2
mod_float(&avatar_yaw, CIRCLE_AW); // Just a modulus function on a float
type.

// Convert the degrees to radians for use with the cos and
// sin functions. This may not be necessary depending on your
// development language.

float yaw_radians = Convert::DegreesToRadians(avatar_yaw);

// Calculate the delta changes in position for each of the
// x, y and z axes.

float delta_x_coord = distance * sin(yaw_radians);
float delta_z_coord = distance * cos(yaw_radians);

// Apply the delta changes to the existing position. Checking for the world
boundaries.

my_x_coord += delta_x_coord;
if (my_x_coord > MAX_X_COORD) {

my_x_coord = MAX_X_COORD;
}
else if (my_x_coord < MIN_X_COORD) {

my_x_coord = MIN_X_COORD;
}

my_z_coord += delta_z_coord;
if (my_z_coord > MAX_Z_COORD) {

my_z_coord = MAX_Z_COORD;
}
else if (my_z_coord < MIN_Z_COORD) {

my_z_coord = MIN_Z_COORD;
}

// Altitude stays the same.

my_altitude = avatar_altitude;

Program structure.

aw_event_set(AW_AVATAR_CHANGE, avatar_change);

timer = 0;
avatar_session = -1;
robot_state = WAITING;
while (aw_wait(1000)) {
if (robot_state == FOLLOWING) {
get position of avatar with avatar_session
move robot position using following function above.
timer--;
if (timer <= 0) {
state = WAITING;
avatar_session = -1;
}
}
}
void avatar_change() { // Called when avatar moves.
calculate distance using distance calculation above.
if (distance < SOME DISTANCE) {
state = FOLLOWING;
timer = 60; // Represents 60 loops around the 1
second loop. Follow or a minute
avatar_session = aw_int(AW_AVATAR_SESSION);
}
}

The only caveat I would add is that I have tested distanceFrom code but never
tested the follow code. Let me know if it works.

Hope this helps. Good luck.

Edward Sumerfield.

[View Quote] > I want to know how I can get the bot to respond to avatars within a
> certain radius of himself, and follow them for a distance, then return
> to his original position... any takers?

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

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
You are asking for a couple of different concepts.
<p><b>1.&nbsp;&nbsp;&nbsp; avatar distance from robot.</b>
<p>I implemented this using Pythagarous in the code in the AWCPP - Avatar.C,
distanceFrom() method. Here is an excerpt
<p>&nbsp; // Convert all positions to their absolute values. No negatives.
<p>&nbsp; if (delta_x &lt; 0) delta_x = -delta_x;
<br>&nbsp; if (delta_y &lt; 0) delta_y = -delta_y;
<br>&nbsp; if (delta_z &lt; 0) delta_z = -delta_z;
<p>&nbsp; // Work out the horizontal hypotenuse using Pythagarous theorem.
<br>&nbsp; //
<br>&nbsp; // hypotenuse squared = opposite squared + adjacent squared;
<p>&nbsp; float hor_h = sqrt(((delta_x * delta_x) + (delta_z * delta_z)));
<p>&nbsp; // The vertical hypotenuse is the the actual distance between
the
<br>&nbsp; // the avatars.
<p>&nbsp; float <b>distance_from_avatar</b> = sqrt(((hor_h * hor_h) + (delta_y
* delta_y)));
<p><b>2.&nbsp;&nbsp;&nbsp; x, z follow position.</b>
<p>I implemented this using old fashioned trig (haven't worked out the
matrix math yet) in AWCPP - Movement.C in the follow() method. Another
excerpt
<p>&nbsp; // Set my yaw to the same direction that the avatar is facing.
We must
<br>&nbsp; // do this now because we are going to turn the avatar yaw around
for the
<br>&nbsp; // direction calculation.
<p>&nbsp; my_yaw = avatar_yaw;
<p>&nbsp; // Because we will be facing the avatar from behind we can set
our
<br>&nbsp; // yaw to the same as the avatars. However, the new position
is
<br>&nbsp; // calculated as some distance in the opposite direction from
where
<br>&nbsp; // the avatar is facing so we must add 180 degrees for the trig
<br>&nbsp; // equation.
<p>&nbsp; avatar_yaw += (CIRCLE_AW / 2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// This is 3600/2
<br>&nbsp; mod_float(&amp;avatar_yaw, CIRCLE_AW);&nbsp;&nbsp;&nbsp; //
Just a modulus function on a float type.
<p>&nbsp; // Convert the degrees to radians for use with the cos and
<br>&nbsp; // sin functions. <b>This may not be necessary depending on
your</b>
<br><b>&nbsp; // development language.</b>
<p>&nbsp; float yaw_radians = Convert::DegreesToRadians(avatar_yaw);
<p>&nbsp; // Calculate the delta changes in position for each of the
<br>&nbsp; // x, y and z axes.
<p>&nbsp; float delta_x_coord = distance * sin(yaw_radians);
<br>&nbsp; float delta_z_coord = distance * cos(yaw_radians);
<p>&nbsp; // Apply the delta changes to the existing position. Checking
for the world boundaries.
<p>&nbsp; my_x_coord += delta_x_coord;
<br>&nbsp; if (my_x_coord > MAX_X_COORD) {
<p>&nbsp;&nbsp;&nbsp; my_x_coord = MAX_X_COORD;
<br>&nbsp; }
<br>&nbsp; else if (my_x_coord &lt; MIN_X_COORD) {
<p>&nbsp;&nbsp;&nbsp; my_x_coord = MIN_X_COORD;
<br>&nbsp; }
<p>&nbsp; my_z_coord += delta_z_coord;
<br>&nbsp; if (my_z_coord > MAX_Z_COORD) {
<p>&nbsp;&nbsp;&nbsp; my_z_coord = MAX_Z_COORD;
<br>&nbsp; }
<br>&nbsp; else if (my_z_coord &lt; MIN_Z_COORD) {
<p>&nbsp;&nbsp;&nbsp; my_z_coord = MIN_Z_COORD;
<br>&nbsp; }
<p>&nbsp;&nbsp;&nbsp; // Altitude stays the same.
<p>&nbsp; my_altitude = avatar_altitude;
<p>Program structure.
<p>&nbsp;&nbsp;&nbsp; aw_event_set(AW_AVATAR_CHANGE, avatar_change);
<p>&nbsp;&nbsp;&nbsp; timer = 0;
<br>&nbsp;&nbsp;&nbsp; avatar_session = -1;
<br>&nbsp;&nbsp;&nbsp; robot_state = WAITING;
<br>&nbsp;&nbsp;&nbsp; while (aw_wait(1000)) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (robot_state == FOLLOWING)
{
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
get position of avatar with avatar_session
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
move robot position using following function above.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
timer--;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (timer &lt;= 0) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
state = WAITING;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
avatar_session = -1;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp; void avatar_change() {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Called when avatar moves.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; calculate distance using
distance calculation above.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (distance &lt; SOME DISTANCE)
{
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
state = FOLLOWING;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
timer = 60;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Represents 60 loops around the 1 second loop. Follow or a minute
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
avatar_session = aw_int(AW_AVATAR_SESSION);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp; }
<p>The only caveat I would add is that I have tested distanceFrom code
but never tested the follow code. Let me know if it works.
<p>Hope this helps. Good luck.
<p>Edward Sumerfield.
[View Quote] --------------2177A608EA2C86C1B6B1E676--

Moving the bots

Nov 21, 1998, 12:52pm
Robots don't have session number they have instance numbers.
Likewise other avatars wandering around only have session numbers.

So for you two robot problem you would need an array on session numbers for
each instance number.

Edward Sumerfield.

[View Quote] > 1. BTW, I'm not sure if AW_AVATAR_SESSION refers to the bot or the
> avatar, you also have AW_AVATAR_NAME, the login name of the avatar -
> my bot is deaf in visual basic.
>
> 2. Can anyone clarify this: how do I know for which bot an event is
> triggered? Supposing I have bots in different worlds, how do I know in
> which world the trapped avatar is? If one can't use threads, one
> should be able to identify a relation between event and bot, methinks.
>
> XelaG

Moving the bots

Nov 21, 1998, 1:04pm
--------------D9FAD9029313D38C91C2DB76
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Xelag said it.

AWCPP is implemented entirely in GNU G++. The version implemented by Cygnus at
http://www.cygnus.com

You can find the source I referenced at

http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP/

Infact, I just released version 0.3 that supports a complete Avatar tracking
model.

The one thing I might modify in Xelags write-up is the design approach and
this depends entirely on where you are coming from as a developer. Xelag
mentioned the idea of multiple robots and how to keep track of the appropriate
positions. That is a C design problem. With the AWCPP design in C++ we already
have all that encapsulation. This is an excellent example of why OO design is
so powerful.

So, if you are learning C I would recommend learning C++ straight away and
forget C. If you are a C programmer I would recommend getting into C++ fast.
It has taken me, a veteran C programmer, 5 years now to feel comfortable
working with OO design concepts.

It seems to be an industry problem for procedural programmers (C) to
reenginner their thinking processes to become OO programmers (C++). Good luck.

Roland, thanks for the tip. I didn't spot that one.

Edward Sumerfield.

[View Quote] > I am not sure I see what you are going for. I am using the GNU, which I
> think is of somwhat difference from the AWCPP. I don't know what the
> delta_x, z variables represent in the programming source.
> I also want to understand what each of the values represent (ie, what sets
> the react range, and the follow distance) so I can modify the code myself
> once I get successfull implementation. Also, where in the source of the bot
> would these lines take place? I am not sure if you would need to call
> another event header or what...
>
[View Quote] --------------D9FAD9029313D38C91C2DB76
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Xelag said it.
<p>AWCPP is implemented entirely in GNU G++. The version implemented by
Cygnus at <A HREF="http://www.cygnus.com">http://www.cygnus.com</A>
<p>You can find the source I referenced at
<p>&nbsp;&nbsp;&nbsp; <A HREF="http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP/">http://members.xoom.com/esumerfd/ActiveWorlds/AWCPP/</A>
<p>Infact, I just released version 0.3 that supports a complete Avatar
tracking model.
<p>The one thing I might modify in Xelags write-up is the design approach
and this depends entirely on where you are coming from as a developer.
Xelag mentioned the idea of multiple robots and how to keep track of the
appropriate positions. That is a C design problem. With the AWCPP design
in C++ we already have all that encapsulation. This is an excellent example
of why OO design is so powerful.
<p>So, if you are learning C I would recommend learning C++ straight away
and forget C. If you are a C programmer I would recommend getting into
C++ fast. It has taken me, a veteran C programmer, 5 years now to feel
comfortable working with OO design concepts.
<p>It seems to be an industry problem for procedural programmers (C) to
reenginner their thinking processes to become OO programmers (C++). Good
luck.
<p>Roland, thanks for the tip. I didn't spot that one.
<p>Edward Sumerfield.
[View Quote] </body>
</html>

--------------D9FAD9029313D38C91C2DB76--

Moving the bots

Nov 21, 1998, 7:03pm
You are correct. You are using the instance to id the bot that received the
event. However, you didn't describe in your model what happens when two or more
avatars approach your bot at the same time. Each avatar that approaches will
have a separate session number (AW_AVATAR_SESSION).

For example, I use the session number to identify an object that keeps track of
conversation information with a specific avatar. You can track the same
conversation with different approaching avatars at the same time. Of coarse the
chat window looks a little crazy.

[bot] Hello A
A: What's up
[bot] A, do you want something?
[bot] Hello B
A: What is the time?
B: Robot dude. What's happenin.
[bot] B, do you want something?
[bot] A, it is 10 am.
B: No go away.
[bot] B, see ya.

And so it goes on, and so on.

If you look at my AvatarTrackerIF class if defines the callback as receiving
AvatarThem* and void* as parameters. The AvatarThem represents the avatar that
is chatting/moving and the void* represents a context object that I created and
stored with the avatar information when the the avatar was added. The Nervous
sample program implements this.

Edward Sumerfield.

[View Quote] > Edward
>
> Edward Sumerfield schrieb in Nachricht <3656D39C.9D01AB at poboxes.com>...
>
> Really ? I never needed the session numbers. In every event callback i have
> the instance, and then pass all the event information the the c++ bot object
> responsible for that bot instance. doing it this way a bot object does only
> get the information related to him. If an avatar comes close to more than
> one bot at a time, i get the event twice, once for each bot instance, so
> that approach works just fine.
>
> i still have no idea for what the session number is needed outside the
> aw.dll.
>
> Walter
>

Moving the bots

Nov 21, 1998, 7:06pm
--------------0FDF5ACF3EB4D242E50707D6
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

GNU C++.

[View Quote] > What is G++ compared to C++ ? :) Walter
>
> Edward Sumerfield schrieb in Nachricht
> <3656D683.B846DB09 at poboxes.com>...Xelag said it.
>
> AWCPP is implemented entirely in GNU G++. The version implemented
> by Cygnus at http://www.cygnus.com
>
>
>

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

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
GNU C++.
[View Quote] </body>
</html>

--------------0FDF5ACF3EB4D242E50707D6--

Moving the bots

Nov 21, 1998, 7:08pm
--------------B73AD52D3543021FCD4E9763
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

There is full source, documentation and binary downloads on the download page.

[View Quote] > I went to your AWCPP page, but I haven't been able to make much sense of it.
> In part, because I haven't done much in C++, just normal C.... The page says
> you have examples, but at the moment, if I'm to get started in this thing,
> it would be a great deal easier if I could just see the straight source of
> an example... like Rolland Vilett has on his SDK documentation...
>
[View Quote] --------------B73AD52D3543021FCD4E9763
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
There is full source, documentation and binary downloads on the download
page.
[View Quote] </body>
</html>

--------------B73AD52D3543021FCD4E9763--

Moving the bots

Nov 22, 1998, 2:01pm
I just did an experiment. Enter a world, spot a tourist, select Login->Tourist
and enter the same name. You can login just fine. This would not work for
citizens of coarse.

Now, session ids have this funky recovery problem, where the world can hit a
glitch and reassign a session number to an avatar. I haven't coded around this
yet. I just assume there will be no glitches.

[View Quote] > One more thing. i noticed that i am able to have my bot program run 3 bots,
> all with the same name. i don't know for avatars, but if 2 avatars have the
> same name, like my bots, but if they differ in session id's, then i see the
> real advantage over my approach outlined below.
>
> Walter
>
> Walter Knupe schrieb in Nachricht <3657f6d1.0 at homer>...
> of
> the

Moving the bots

Nov 24, 1998, 11:32am
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
So the movements are not ignored, but recorded for your robot, its just
that other users will only see the new positions once every second?
<P>Edward Sumerfield.
[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