tom russell // User Search

tom russell // User Search

1  |  

Re: Mega BOT V. 1.02 FINALLY UP AND READY FOR DEMONSTRATION D/L . . .

Jul 28, 1999, 12:11am
How about adding a control to allow the user to specify the port? I've
noticed that it is uncommon for bot programmers to do this, which limits its
use and is quite easy to add.

Tom Russell

What's wrong with my code

Aug 3, 1999, 2:17am
That would mean putting aw.lib in this directory, right?
C:\Program Files\Microsoft Visual Studio\VC98\Lib

I've been thinking about how to make a .dll(or .lib) out of Ed Sumerfield's
AWCPP C++ framework, and I'm thinking that it would go in this directory, so
this kind of straightened that out for me. Thanks.

Tom Russell

[View Quote]

Getting Co-Ordinates based on Session ID?

Aug 4, 1999, 10:33pm
Here's a way to keep track of avatars in the area of your running instance.
I think this applies to what you're doing. It's a code snippet from Ed
Sumerfield's AWCPP wrapper.

#include <map>

using namespace std;

typedef struct {
AvatarThem *avatar; // this is an object with members for session,
position, etc.
void *context; // just space to store relevant info.
} StoreContent;

typedef map <int, StoreContent *, less<int> > AvatarStorage;


[View Quote]

Re: Struct...

Aug 5, 1999, 9:12pm
In the AWCPP classes, there are no #includes in the .hpp files, although
they depend on definitions existing in other .hpp files. For example,
there's no #include Avatar.hpp in AvatarMe.hpp. When I try to compile
AvatarMe.C, I get compiler complaints. How can this be?

Tom Russell
[View Quote]

BOT Universe Logins using IP address ( Some Problems it may cause ).

Aug 9, 1999, 9:35pm
But can't we just use "auth.activeworlds.com" ? Please say yes...

Tom Russell

[View Quote]

Re: Struct...

Aug 9, 1999, 9:54pm
Ok. I'm going to go through the files and simply #include <AWCPP.h> in all
the .cpp files, and if that doesn't work(which I suspect is the case), then
I'll put it in all my .h files.
Thanks.

Tom Russell

[View Quote]

Re: Struct...

Aug 10, 1999, 1:55am
Yes! That totally handled the whole thing! All I had to do after including
AWCPP.h in all my .cpp files was figure out where all the ostream&
ambiguities were coming from. As it turned out, I had included <iostream.h>
(and referenced ostream&) in one or more compilation units in which the
declarations in the standard library had been made global by my utilization
of the following statement:

using namespace std;

Very cool. Back on track.

Tom Russell

[View Quote]

Re: AWCPP Wrapper

Aug 12, 1999, 11:06pm
Well, here's the first part of the port. I am making available the files
necessary to build awcpp.lib. from Ed Sumerfield's AWCPP C++ classes, the
object framework you can use to create all kinds of cool stuff without too
much trouble(hopefully).
I haven't figured out how to interface it with a Windows GUI (like a dialog
box) yet, but hopefully someone with more experience with this will see the
value in this object package and work out some of those porting issues.
For now, however, all that's required is that you load up the workspace and
create the .lib file. There are a number of sample programs that are ready
to run, which I've included. Have fun and let me know if you need any help.
Happy botting...

Tom Russell
[View Quote]

Have I lost my mind, or is this Error IMPOSSIBLE to Trace?

Sep 7, 1999, 9:42pm
This is a multi-part message in MIME format.

------=_NextPart_000_004D_01BEF94F.F3C725C0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I am assuming that your bot name variable "chBotName" was actually not =
getting filled and you've gotten it working using Walter's advice.

Tom Russell
[View Quote]
------=_NextPart_000_004D_01BEF94F.F3C725C0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>

<META content=3Dtext/html;charset=3Diso-8859-1 =
http-equiv=3DContent-Type><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 =
Transitional//EN">
<META content=3D'"MSHTML 4.72.3110.7"' name=3DGENERATOR>
<STYLE></STYLE>

</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I am assuming that your bot name =
variable&nbsp;=20
&quot;chBotName&quot; was actually not getting filled and you've gotten =
it=20
working using Walter's advice.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Tom Russell</FONT></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 solid 2px; MARGIN-LEFT: 5px; PADDING-LEFT: =
5px">
[View Quote] rc;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;aw_destroy();<BR>&nbsp;Whois =
=3D=20
FALSE;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;sprintf(reply2,&quot;=20
&quot;);<BR>&nbsp;m_StatusLog.Append =
(status);<BR>&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;sprintf(reply2,&quot;Attempting to Login to=20
:&quot;);<BR>&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;sprintf(reply2,&quot;The Universe %s using SDK =
Build=20
%d&quot;, chUniverse, AW_BUILD);<BR>&nbsp;m_StatusLog.Append=20
(status);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><BR>&nbsp;if (rc =3D aw_init=20
(AW_BUILD))<BR>&nbsp;&nbsp;Login_Error (rc);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;else<BR>&nbsp;{<BR>&nbsp;&nbsp;aw_int_set=20
(AW_LOGIN_OWNER, (nCitnum));<BR>&nbsp;&nbsp;aw_string_set=20
(AW_LOGIN_PRIVILEGE_PASSWORD, chPassword);<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Ultra Bot =
%s&quot;,chVersion);<BR>&nbsp;&nbsp;aw_string_set=20
(AW_LOGIN_APPLICATION, message);<BR>&nbsp;&nbsp;aw_string_set=20
(AW_LOGIN_NAME, chBotName);<BR>&nbsp;&nbsp;aw_int_set (AW_MY_X,=20
0);<BR>&nbsp;&nbsp;aw_int_set (AW_MY_Y, =
0);<BR>&nbsp;&nbsp;aw_int_set=20
(AW_MY_Z, 0);<BR>&nbsp;&nbsp;aw_int_set (AW_MY_YAW,=20
0);<BR>&nbsp;&nbsp;aw_int_set (AW_MY_TYPE, =
253);<BR>&nbsp;}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;if (rc =3D aw_create=20
(chIP,nPort,0))<BR>&nbsp;&nbsp;Login_Error=20
(rc);<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;else if (rc =3D aw_login=20
())<BR>&nbsp;&nbsp;Login_Error =
(rc);<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;else if=20
(rc =3D aw_enter (chWorld,0))<BR>&nbsp;&nbsp;Login_Error=20
(rc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;else if (rc =3D=20
aw_state_change ())<BR>&nbsp;&nbsp;Login_Error (rc);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;if (rc =3D=3D =
0)<BR>&nbsp;&nbsp;return=20
TRUE;<BR><BR>&nbsp;else<BR>&nbsp;&nbsp;return =
FALSE;<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>void Login_Error (int=20
m_nError)<BR>{</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial=20
size=3D2><BR>&nbsp;switch(m_nError)<BR>&nbsp;{<BR>&nbsp;case=20
1:<BR>&nbsp;&nbsp;sprintf (message,&quot;Citizen Number Has=20
Expired&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
3:<BR>&nbsp;&nbsp;sprintf (message,&quot;Citizen Number=20
Invalid&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
4:<BR>&nbsp;&nbsp;sprintf (message,&quot;Message Too=20
Long&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
5:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Passwords Cannot Contain=20
Spaces&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
6:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Password Is Too=20
Long&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
7:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Password Is Too=20
Short&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
8:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Range Too =
Large&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
9:<BR>&nbsp;&nbsp;sprintf (message,&quot;Range Too=20
Short&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
10:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Too Many =
Users&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
11:<BR>&nbsp;&nbsp;sprintf (message,&quot;Too Few=20
Users&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
12:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_LICENSE_WORLD_CONTAINS_SPACE&quot;);<BR>&nbsp;&nbsp;bre=
ak;<BR>&nbsp;case=20
13:<BR>&nbsp;&nbsp;sprintf (message,&quot;Invalid=20
Password&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
14:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_UNABLE_TO_MAIL_BACK_NUMBER&quot;);<BR>&nbsp;&nbsp;break=
;<BR>&nbsp;case=20
15:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_LICENSE_WORLD_TOO_SHORT&quot;);<BR>&nbsp;&nbsp;break;<B=
R>&nbsp;case=20
16:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_LICENSE_WORLD_TOO_LONG&quot;);<BR>&nbsp;&nbsp;break;<BR=
>&nbsp;case=20
17:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_SERVER_OUT_OF_MEMORY&quot;);<BR>&nbsp;&nbsp;break;<BR>&=
nbsp;case=20
27:<BR>&nbsp;&nbsp;sprintf (message,&quot;World Is Not=20
Running&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
31:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_LOGGED_IN&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;ca=
se=20
32:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_UNAUTHORIZED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;cas=
e=20
33:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_ALREADY_LICENSED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
34:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NO_SUCH_LICENSE&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
39:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_IDENTITY_ALREADY_IN_USE&quot;);<BR>&nbsp;&nbsp;break;<B=
R>&nbsp;case=20
40:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_UNABLE_TO_REPORT_LOCATION&quot;);<BR>&nbsp;&nbsp;break;=
<BR>&nbsp;case=20
41:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_INVALID_EMAIL&quot;);&nbsp;<BR>&nbsp;&nbsp;break;<BR>&n=
bsp;case=20
42:<BR>&nbsp;&nbsp;sprintf (message,&quot;Citizen Number Doesn't=20
Exist&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
43:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Invalid =
Password&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
58:<BR>&nbsp;&nbsp;sprintf (message,&quot;Upgrade=20
Required&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
59:<BR>&nbsp;&nbsp;sprintf (message,&quot;BOT Limit=20
Reached&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
64:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_LICENSE_STARTS_WITH_NUMBER&quot;);<BR>&nbsp;&nbsp;break=
;<BR>&nbsp;case=20
66:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NO_SUCH_EJECTION&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
67:<BR>&nbsp;&nbsp;sprintf (message,&quot;No Such Session=20
Number&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
100:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_CONTAINS_INVALID_CHAR&quot;);<BR>&nbsp;&nbsp;brea=
k;<BR>&nbsp;case=20
101:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_ENDS_WITH_BLANK&quot;);<BR>&nbsp;&nbsp;break;<BR>=
&nbsp;case=20
102:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_MISSING_DOT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
103:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_MISSING_AT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
104:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_STARTS_WITH_BLANK&quot;);<BR>&nbsp;&nbsp;break;<B=
R>&nbsp;case=20
105:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_TOO_LONG&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
106:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EMAIL_TOO_SHORT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
107:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_ALREADY_USED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
108:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_CONTAINS_INVALID_CHAR&quot;);<BR>&nbsp;&nbsp;break=
;<BR>&nbsp;case=20
109:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_CONTAINS_INVALID_BLANK&quot;);<BR>&nbsp;&nbsp;brea=
k;<BR>&nbsp;case=20
110:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_DOESNT_EXIST&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
111:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_ENDS_WITH_BLANK&quot;);<BR>&nbsp;&nbsp;break;<BR>&=
nbsp;case=20
112:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_TOO_LONG&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;ca=
se=20
113:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_TOO_SHORT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
114:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NAME_UNUSED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=
=20
115:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_PASSWORD_TOO_LONG&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
116:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_PASSWORD_TOO_SHORT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nb=
sp;case=20
117:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_PASSWORD_IS_WRONG&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
126:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NUMBER_ALREADY_USED&quot;);<BR>&nbsp;&nbsp;break;<BR>&n=
bsp;case=20
127:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NUMBER_OUT_OF_RANGE&quot;);<BR>&nbsp;&nbsp;break;<BR>&n=
bsp;case=20
128:<BR>&nbsp;&nbsp;sprintf (message,&quot;Privilege Password Too=20
Short&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
203:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_CHANGE_OWNER&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
204:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_CANT_FIND_OLD_ELEMENT&quot;);<BR>&nbsp;&nbsp;break;<BR>=
&nbsp;case=20
211:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_CANT_CHANGE_OWNER&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
216:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_CANT_BUILD_HERE&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
232:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_ALLOWED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=
=20
300:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_ENCROACHES&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =

301:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NO_SUCH_OBJECT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
302:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_DELETE_OWNER&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
303:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_TOO_MANY_BYTES&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
306:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_UNREGISTERED_OBJECT&quot;);<BR>&nbsp;&nbsp;break;<BR>&n=
bsp;case=20
308:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_ELEMENT_ALREADY_EXISTS&quot;);<BR>&nbsp;&nbsp;break;<BR=
>&nbsp;case=20
311:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NO_BUILD_RIGHTS&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
313:<BR>&nbsp;&nbsp;sprintf (message,&quot;Object Outside Of World =
Property=20
Limits&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
314:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_RESTRICTED_OBJECT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
400:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_OUT_OF_MEMORY&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;ca=
se=20
401:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_YET&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
402:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;TIMEOUT&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
403:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NULL_POINTER&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;cas=
e=20
404:<BR>&nbsp;&nbsp;sprintf (message,&quot;Unable To Contact=20
Universe&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
405:<BR>&nbsp;&nbsp;sprintf (message,&quot;Unable To Contact=20
World&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
406:<BR>&nbsp;&nbsp;sprintf (message,&quot;Invalid World=20
Name&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
415:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_SEND_FAILED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=
=20
416:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_RECEIVE_FAILED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
421:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_STREAM_EMPTY&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;cas=
e=20
422:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_STREAM_MESSAGE_TOO_LONG&quot;);<BR>&nbsp;&nbsp;break;<B=
R>&nbsp;case=20
423:<BR>&nbsp;&nbsp;sprintf (message,&quot;World Name Too=20
Long&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case =
426:<BR>&nbsp;&nbsp;sprintf=20
(message,&quot;Message Too =
Long&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
429:<BR>&nbsp;&nbsp;sprintf (message,&quot;Unable To Connect to %s : =

%d&quot;,chIP,nPort);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
439:<BR>&nbsp;&nbsp;sprintf (message,&quot;No=20
Connection&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
442:<BR>&nbsp;&nbsp;sprintf (message,&quot;Unable To Initialize=20
Network&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
443:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;Incorrect_Message_Length&quot;);<BR>&nbsp;&nbsp;break;<BR>=
&nbsp;case=20
444:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_INITIALIZED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
445:<BR>&nbsp;&nbsp;sprintf (message,&quot;No BOT Instance=20
Exists.&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
446:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_OUT_BUFFER_FULL&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
447:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_INVALID_CALLBACK&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
448:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_INVALID_ATTRIBUTE&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
449:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_TYPE_MISMATCH&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;ca=
se=20
450:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_STRING_TOO_LONG&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
451:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_READ_ONLY&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
453:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_INVALID_INSTANCE&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
454:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_VERSION_MISMATCH&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp=
;case=20
461:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_IN_BUFFER_FULL&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
463:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_PROTOCOL_ERROR&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;c=
ase=20
464:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_QUERY_IN_PROGRESS&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbs=
p;case=20
466:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_EJECTED&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=20
467:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_WELCOME&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case=
=20
471:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_CONNECTION_LOST&quot;);<BR>&nbsp;&nbsp;break;<BR>&nbsp;=
case=20
474:<BR>&nbsp;&nbsp;sprintf=20
=
(message,&quot;RC_NOT_AVAILABLE&quot;);<BR>&nbsp;&nbsp;break;&nbsp;&nbsp;=
<BR>&nbsp;}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;m_StatusLog.DoClear();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;if (m_nError =3D=3D=20
0)<BR>&nbsp;{<BR>&nbsp;&nbsp;PlaySound=20
(&quot;Audio/Logfinish.wav&quot;,NULL,SND_ASYNC);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;sprintf(reply2, =
&quot;Bot Name :=20
[%s]&quot;, chBotName);<BR>&nbsp;&nbsp;m_HistoryEdit.Append=20
(status);<BR>&nbsp;&nbsp;sprintf(reply2, &quot;Citizen Number : =
%d&quot;,=20
nCitnum);<BR>&nbsp;&nbsp;m_HistoryEdit.Append=20
(status);<BR>&nbsp;&nbsp;sprintf (reply2,&quot;=20
&quot;);<BR>&nbsp;&nbsp;m_HistoryEdit.Append=20
(status);<BR>&nbsp;&nbsp;sprintf(reply2, &quot;Universe : %s&quot;,=20
chUniverse);<BR>&nbsp;&nbsp;m_HistoryEdit.Append=20
(status);<BR>&nbsp;&nbsp;sprintf(reply2, &quot;World : %s&quot;,=20
chWorld);<BR>&nbsp;&nbsp;m_HistoryEdit.Append=20
(status);<BR>&nbsp;&nbsp;sprintf(reply2, &quot;Location : Not Coded=20
Yet&quot;);<BR>&nbsp;&nbsp;m_HistoryEdit.Append=20
(status);<BR>&nbsp;&nbsp;sprintf (reply2,&quot;=20
&quot;);<BR>&nbsp;&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;&nbsp;sprintf(reply2, &quot;Time Running : Not =
Coded=20
Yet&quot;);<BR>&nbsp;&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;else<BR>&nbsp;{<BR>&nbsp;&nbsp;PlaySound=20
(&quot;Audio/Error.wav&quot;,NULL,SND_ASYNC);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;sprintf (reply2,&quot;=20
&quot;);<BR>&nbsp;&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;&nbsp;m_StatusLog.Append =
(status);<BR>&nbsp;&nbsp;sprintf=20
(reply2,&quot;LOGIN =
FAILURE&quot;);<BR>&nbsp;&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;&nbsp;sprintf (reply2,&quot;Reason :=20
%s&quot;,message);<BR>&nbsp;&nbsp;m_StatusLog.Append=20
(status);<BR>&nbsp;}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial=20
=
size=3D2>-----------------------------------------------------------</FON=
T></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Thanks in advance,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Andon Coleman</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Senior Software =
Engineer</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>R&amp;D</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Nothing, Inc.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV></FONT></DIV></BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_004D_01BEF94F.F3C725C0--

AW_EVENT_AVATAR_ADD/DELETE

Oct 12, 1999, 2:21am
I noticed that when an avatar teleports or moves out of the range of one
instance and into another, sometimes the sequence of ADD/DELETE events is
reversed. In my program, I maintain a list of pointers to avatar objects and
the instances which recieve events associated with each avatar. This is
making it difficult, as the instance is often wrong when I go to speak to an
avatar from the program.
Has anyone run into this problem and devised a solution?

Tom Russell

1  |  
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