Board ArchivesSite FeaturesActiveworlds SupportHistoric Archives |
walter knupe // User Search
walter knupe // User Searchaw_wait and aw_state_changeFeb 15, 1999, 12:40am
Edward,
Just out of curiosity, where did Jan imply that he has an aw_wait() for each instance of his bot ? :) What did I miss ? :) Walter aka Faber Edward Sumerfield schrieb in Nachricht <36C74BF9.163C2A72 at poboxes.com>... >You implied that you have an aw_wait for each instance of your bot. This is not >necessary. One program that has called aw_create multiple times to create >multiple instances of a bot only needs one aw_wait call. This one call will >wait for events for any instance. Once an event is generated you must use >aw_instance to find out which robot generated it. > > [View Quote] aw_wait and aw_state_changeFeb 15, 1999, 5:40pm
This is a multi-part message in MIME format.
------=_NextPart_000_003F_01BE5923.797FD220 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Well, i think your answers are never a waste of time. they read like = very intersting lectures on something the reader just didn't think about = in that detail.=20 This is not ment as criticism.. I really think your answers stand out = positively alot ! Walter aka Faber Edward Sumerfield schrieb in Nachricht = <36C839D5.59763C81 at poboxes.com>... I believe I miss read aw_wait for aw_state_change. Doh. At least = some of my answer was still valid. It would be a shame to write so much = and it all turn out to be a waste of time.=20 [View Quote] Edward,=20 Just out of curiosity, where did Jan imply that he has an = aw_wait() for each=20 instance of his bot ? :) What did I miss ? :)=20 Walter aka Faber=20 Edward Sumerfield schrieb in Nachricht = <36C74BF9.163C2A72 at poboxes.com>...=20 >You implied that you have an aw_wait for each instance of your = bot. This is=20 not=20 >necessary. One program that has called aw_create multiple times = to create=20 >multiple instances of a bot only needs one aw_wait call. This = one call will=20 >wait for events for any instance. Once an event is generated = you must use=20 >aw_instance to find out which robot generated it.=20 >=20 >=20 [View Quote] ------=_NextPart_000_003F_01BE5923.797FD220 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.3511.1300"' name=3DGENERATOR> </HEAD> <BODY bgColor=3D#b8b8b8> <DIV><FONT face=3DArial size=3D2>Well, i think your answers are never a = waste of=20 time. they read like very intersting lectures on something the reader = just=20 didn't think about in that detail. </FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>This is not ment as criticism.. I = really think your=20 answers stand out positively alot !</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>Walter aka Faber</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <BLOCKQUOTE=20 style=3D"BORDER-LEFT: #000000 solid 2px; MARGIN-LEFT: 5px; PADDING-LEFT: = 5px"> <DIV>Edward Sumerfield<ESUMERFD at POBOXES.COM> schrieb in Nachricht = <<A=20 = href=3D"mailto:36C839D5.59763C81 at poboxes.com">36C839D5.59763C81 at poboxes.c= om</A>>...</DIV>I=20 believe I miss read aw_wait for aw_state_change. Doh. At least some = of my=20 answer was still valid. It would be a shame to write so much and it = all turn=20 out to be a waste of time.=20 [View Quote] <P>Walter aka Faber=20 <P>Edward Sumerfield schrieb in Nachricht=20 <36C74BF9.163C2A72 at poboxes.com>... <BR>>You implied = that you=20 have an aw_wait for each instance of your bot. This is <BR>not=20 <BR>>necessary. One program that has called aw_create = multiple times=20 to create <BR>>multiple instances of a bot only needs one = aw_wait=20 call. This one call will <BR>>wait for events for any = instance. Once=20 an event is generated you must use <BR>>aw_instance to find = out which=20 robot generated it. <BR>> <BR>> <BR>>Jan R Andersson = [View Quote] ------=_NextPart_000_003F_01BE5923.797FD220-- Bots vs 'usual' AvatarsFeb 16, 1999, 7:20pm
Well, security by hiding an implementation in the aw browser is no security
anyway... the gain would be bots acting a lot more "natural", or a bot which uses completely different methods for 3d display than the browser... and the loss is close to nothing. Walter aka Faber Eep² schrieb in Nachricht <36C9D0F1.2420FE88 at tnlc.com>... >I must question this, as if the ability to uncompress objects in encrypted ZIPs is allowed, what's to prevent SDK developers from getting them? > [View Quote] Bots vs 'usual' AvatarsFeb 16, 1999, 10:11pm
Yep, point taken, you are right. Bots probably won't have a more advanced
collision detection. Compared to actually no object recognition at all (and there for no collision detection whatsoever) it would still be a huge improvement :) but pure theoretical, bots that have access to the complete rwx file for both avatars and objects, could for sure implement their own detection, which can be much improved in comparison to the aw browser. access to the rwx files and maybe helper functions to parse them hands all those posibilities over to the bot programmer. right now there is nothing. and copyright issues might make this case stay that way. Walter aka Faber Eep² schrieb in Nachricht <36C9F918.BE2BE497 at tnlc.com>... >If avatars only have collision detection based on http://tnlc.com/rw/rwx.html#collision (see "Avatars"), how are bots (still avatars) going to have any more ADVANCED collision detection? > [View Quote] MFC and aw_wait()?Feb 16, 1999, 7:16pm
This is a multi-part message in MIME format.
------=_NextPart_000_004B_01BE59FA.0EE46DE0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable The only thing i can add is that another option is to set up a second = timer which triggers every 10 seconds and performs the object changes. an MFC application which responds to timers usually consists of a = one-time call to setup the timer, so in this case say #define AWPOLLTIMER 42 #define OBJECTTIMER 43 SetTimer(AWPOLLTIMER, 1000, NULL); // NULL since we don't want a direct = timer function=20 SetTimer(OBJECTTIMER, 10000, NULL);=20 and then, you use the development environment to add a function to your = window class which is called on timer timeouts: void CSomeDlg::OnTimer(int TimerID) // which would be implemented in this case like { switch (TimerID) { case AWPOLLTIMER: aw_wait(0); break; case OBJECTTIMER: DoObjectChanges(); break; default: CDialog::OnTimer(); // assuming CDialog is our base = class here } } But your solution below is perfectly valid :) Walter aka Faber Edward Sumerfield schrieb in Nachricht = <36C9CE39.7FFCB4A at poboxes.com>... So, you can put your counter into the function that is called when = the timer pops. Make the timer pop every second, call aw_wait(0) every = second but only change your object, from that same function, when the = counter reaches zero.=20 Well, as I am not an MFC guru I should leave this one to Walter, = sorry if I have wasted your time.=20 [View Quote] Yes but aw_wait(); locks up a MFC program... so I have to use = SetTimer()=20 and in the WM_TIMER I have aw_wait(0);=20 [View Quote] > Then use a 1 second wait and add a counter that counts to 10. = When it=20 > reaches 10 change the object.=20 >=20 > int count =3D 10;=20 > while (aw_wait(1000)) {=20 >=20 > if (count =3D=3D 0) {=20 >=20 > change object=20 > count =3D 10;=20 > }=20 > count--;=20 > }=20 >=20 > If that is too long then make it a 1 milli second wait and = count to=20 > 10000.=20 >=20 [View Quote] the=20 > ------=_NextPart_000_004B_01BE59FA.0EE46DE0 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.3511.1300"' name=3DGENERATOR> </HEAD> <BODY bgColor=3D#b8b8b8> <DIV><FONT face=3DArial size=3D2>The only thing i can add is that = another option is=20 to set up a second timer which triggers every 10 seconds and performs = the object=20 changes.</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>an MFC application which responds to = timers usually=20 consists of a one-time call to setup the timer, so in this case = say</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT color=3D#000000 face=3DArial size=3D2>#define AWPOLLTIMER = 42</FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial size=3D2></FONT><FONT = face=3DArial=20 size=3D2>#define OBJECTTIMER 43</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>SetTimer(AWPOLLTIMER, 1000, = NULL); // NULL=20 since we don't want a direct timer function </FONT></DIV> <DIV><FONT face=3DArial size=3D2>SetTimer(OBJECTTIMER, 10000, NULL); = </FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>and then, you use the development = environment to=20 add a function to your window class which is called on timer=20 timeouts:</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>void CSomeDlg::OnTimer(int = TimerID)</FONT></DIV> <DIV><FONT face=3DArial size=3D2>// which would be implemented in this = case=20 like</FONT></DIV> <DIV><FONT face=3DArial size=3D2>{</FONT></DIV> <DIV><FONT face=3DArial size=3D2> switch = (TimerID)</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT><FONT color=3D#000000 = face=3DArial=20 size=3D2> {</FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial=20 size=3D2> case AWPOLLTIMER: = aw_wait(0);=20 break;</FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial=20 size=3D2> case OBJECTTIMER:=20 DoObjectChanges(); break;</FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial=20 size=3D2> default:=20 CDialog::OnTimer(); // assuming CDialog is our base class=20 here</FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial size=3D2> = }</FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial size=3D2></FONT><FONT = face=3DArial=20 size=3D2>}</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>But your solution below is perfectly = valid=20 :)</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>Walter aka Faber</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <BLOCKQUOTE=20 style=3D"BORDER-LEFT: #000000 solid 2px; MARGIN-LEFT: 5px; PADDING-LEFT: = 5px"> <DIV>Edward Sumerfield<ESUMERFD at POBOXES.COM> schrieb in Nachricht = <<A=20 = href=3D"mailto:36C9CE39.7FFCB4A at poboxes.com">36C9CE39.7FFCB4A at poboxes.com= </A>>...</DIV>So,=20 you can put your counter into the function that is called when the = timer=20 pops. Make the timer pop every second, call aw_wait(0) every second = but only=20 change your object, from that same function, when the counter = reaches zero.=20 <P>Well, as I am not an MFC guru I should leave this one to Walter, = sorry if=20 I have wasted your time.=20 [View Quote] ------=_NextPart_000_004B_01BE59FA.0EE46DE0-- Negative Yaw?Mar 2, 1999, 3:35pm
This is a multi-part message in MIME format.
------=_NextPart_000_005B_01BE64DB.7C841940 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Well, i have. When examining it i found that starting from direction 0 = it counts up to 1799 when turning clockwise and down to=20 -1800 when turning counterclockwise.=20 Its not what i expected, but once you know its ok :) Walter aka Faber Edward Sumerfield schrieb in Nachricht = <36DC01C5.294FED91 at poboxes.com>... I've never seen that before. What code are you using to get it?=20 [View Quote] Hi,=20 Don't know what I'm doing wrong but somehow I'm getting a = negative=20 AW_AVATAR_YAW (-1800) when facing south (according to the SDK = docs it=20 should be between 0 and 3599). Any ideas?=20 Runay ------=_NextPart_000_005B_01BE64DB.7C841940 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.3511.1300"' name=3DGENERATOR> </HEAD> <BODY bgColor=3D#d8d0c8> <DIV><FONT color=3D#000000 face=3DArial><FONT = size=3D3></FONT></FONT> </DIV> <DIV><FONT color=3D#000000 face=3DArial><FONT size=3D3>Well, i have. = When examining it=20 i found that starting from direction 0 it counts up to 1799 when turning = clockwise and down to </FONT></FONT><FONT size=3D3></FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial><FONT = size=3D3>-</FONT></FONT><FONT=20 size=3D3><FONT color=3D#000000 face=3DArial>1800 when turning = counterclockwise.=20 </FONT></FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial><FONT = size=3D3></FONT></FONT><FONT=20 size=3D3></FONT> </DIV> <DIV><FONT color=3D#000000 face=3DArial><FONT size=3D3>Its not what i = expected, but=20 once you know its ok :)</FONT></FONT><FONT size=3D3></FONT></DIV> <DIV><FONT color=3D#000000 face=3DArial><FONT = size=3D3></FONT></FONT><FONT=20 size=3D3></FONT> </DIV> <DIV><FONT face=3DArial><FONT size=3D3>Walter aka = Faber</FONT></FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV> </DIV> <BLOCKQUOTE=20 style=3D"BORDER-LEFT: #000000 solid 2px; MARGIN-LEFT: 5px; PADDING-LEFT: = 5px"> <DIV>Edward Sumerfield<ESUMERFD at POBOXES.COM> schrieb in Nachricht = <<A=20 = href=3D"mailto:36DC01C5.294FED91 at poboxes.com">36DC01C5.294FED91 at poboxes.c= om</A>>...</DIV>I've=20 never seen that before. What code are you using to get it?=20 [View Quote] ------=_NextPart_000_005B_01BE64DB.7C841940-- Programming avatar through sdkMar 3, 1999, 6:26pm
Using the SDK you cannot influence any other avatar, except for for ejecting
it. Thats sad, because it would have many advantages.. but i guess the protocol needed to "Push" your changes to other ppl just isn't there. Walter aka Faber Riccardo Antonini schrieb in Nachricht <36DD0454.55DBD44D at UniRoma2.it>... >We need to know if it is possible to programme, through SDK, >the avatar representing the real user (for instance, to change the >external >aspect, to make it move in the direction we want, to make it act the way >we >want and so on...) >- we have already used SDK to programme the bot , but would like to do >the >same with the real user >Thank you > > Programming avatar through sdkMar 4, 1999, 3:05pm
I was thinking about it. Put a box around the guy having "bump warp..." as
action, but if that guy is running fast, you end up chasing him with "a borg cubicle" in order to make him go as you want :) Walter aka Fbaer Rjinswand schrieb in Nachricht <36ddbc4d.0 at homer>... Nope not yet. This is a vital feature that we need to have in a future SDK... not too far future I hope. In the meantime you'll have to make do with "patch" methods of creating bump teleport/warp panels dynamically, which isn't the same or as reliable. Rjinswand [View Quote] Having a header problemMar 8, 1999, 5:01pm
Since 444 is RC_NOT_INITIALIZED check the following:
1) make sure the header file aw.h does correspond to the aw.lib and aw.dll you use. 2) see if the error is actually thrown by the code you provided. it might be that your api_start is not called for some reason, and then EVERY other function would throw 444 as the error code. e.g. if you program via copy&paste (as all good programmers do it, its called "code reuse" :) ), you might have an aw_login() or aw_create() somewhere which on failure prints out "Failed\nUnable to initialize API (reason %d)\n", causing you to look at the wrong place. Walter aka Faber Veleno schrieb in Nachricht <36E2AFD0.1A45A411 at hiwaay.net>... >I'm trying to initialize a bot with all the coding in the header. The >bot won't initilize the API and keeps coming up with reason 444. >The API initialization is called in the c prog as api_start and the >coding in the header is: >void api_start(void) >{ > int rc; > printf("Attempting to initialize API..."); > if(rc = aw_init(AW_BUILD)) { > printf("Failed\nUnable to initialize API (reason %d)\n", rc); > rc_errors(rc); > exit (1); > } else printf("Success\n"); >} >Why is this not working? > programming avatar through SDKMar 13, 1999, 10:00am
The only way i can see how a bot could influence an avatars position is the
following: Say a bot decides that Avatar "Faber" should be put somewhere else, say out of the playing field due to soccer rule violation. The bot now would have to see where "Faber" currently is, and build an object into the walking path of "Faber" with an "bump warp 0n 0e" action, so that as soon as Faber tries to walk somewhere, bumps into the new object and gets teleported to 0n 0e. Since you can't know where "Faber" will go next, you would have to use an object which surounds him, say a big cubicle. but the drawback of this approach is the time delay between the determination of "Faber"'s position and the object appearance. It might happen that "Faber" left the building area before the bot's object is in place. In this case, the bot would have to remove the object again and place it on the new Position of "Faber". If "Faber" now keeps on walking fast enough, the bot is actually chasing "Faber" with a cubicle object. And, taken from the Star Trek TV Series, this is what the aliens named "borg" do, they chase star ships with big bulky black cubicle ships. hope my point is clear now :) Walter aka Faber Riccardo Antonini schrieb in Nachricht <36E8F8C8.77731BCB at UniRoma2.it>... >Message for Walter Knupe > >We have read your message, and would like to ask you what do you mean >exactly by "bump ward" and by "borg cubicle". >Please specify exactly what you mean. >We look forward to receiving your reply >Thanks in advance and best regards > programming avatar through SDKMar 14, 1999, 12:16pm
Right, i didn't even think of these drawbacks... looks the idea is not
bright at all *grin* So does anyone else have an idea how to have a bot "push" an avatar ? Walter aka Faber Rolu schrieb in Nachricht <36ead4bd.0 at homer>... >And when the area is somewhat crowded, for example when "Faber" walks >through a group of ppl, you risk that some of these ppl are warped away >without having done anything. And when "Faber" is irritating, but remains on >his place, you can't get him away anyhow. And if he uses the shift key while >moving he will just shift through the cubicle without getting warped. > >Rolu > [View Quote] Warship is not open.Apr 11, 2000, 10:52am
The lattest addition to the games in AWGames, Warship has ended its beta phase...
Its now officially open and waiting for you to play ! :) Please come to AWGames and click "Warship" on the Game Navigation Panel. Faber SDK with MSC 5.00Mar 20, 1999, 9:21am
Unfortunately MS changes their import library format with almost every
compiler version. aw.lib is the VC6 import library, invalid to old linkers. in order to use the aw.dll you need to either a) create your own aw.lib by using an implib.exe or impdef.exe tool (if it came with your compiler) b) using run-time binding to the aw.dll, which must be self-made and is difficult even for people who know how it has to be done (GetProcAddress() calls) c) for other compilers check if others have done the work of creating proper import libraries already d) use other languages like Java or VB or Delphi. These add-on SDKs are not providef by Activeworlds, but if you browse this newsgroup closely, you'll find the links for more information and downloading e) spend $80-$100 on the MS Visual C++ 6.0 Standard Edition Walter aka Faber Jeffrey W. Tickle schrieb in Nachricht <36F31BC2.CACB565 at bkon.net>... >Hi! I downloaded the SDK and installed it. The >compiler that I have is very old, but it works and >this is supposed to work with *any* C compiler. >When I wrote a program (I somply copied and pasted >one of the examples), and compiled it, I made sure >that the command line read: > >CL DJBOT.C AW.LIB > >All worked fine, until the Linker said that the >LIB file was invalid. Does the SDK nowt work with >old MSC 5.00? > >-JWT > >P.S.: I know that C is a high-level language, but >some of them are good 2 have around in an >emergency. (Although, like C 5 is gonna help me >LOL) If this is confusing, see below. > >-- >Life is too short to use HIGH-LEVEL LANGUAGES! >http://www2.crosswinds.net/winston-salem/~ticklejw/ > > > visual c++Jul 23, 1999, 2:34pm
It should have a reinstall and an uninstall option...
if so try the first, if that not works the second, then install again. if not just go for the second, then reinstall again :) Walter aka Faber David Rush schrieb in Nachricht <3797574C.9FEFB6E5 at tri.net>... >I just bought visual c++ introductory edition and I try to install it >but it always freezes on me and then when I run it agian It says its >already installed >how can I get it to work? >Please mail to BuilderM at tri.net >I dont check rush at tri.net > MIDI / WAV Play Command --- MP3 & REAL AUDIO not implimented yet, but Create URL or Send URL will make this easyJul 26, 1999, 2:16pm
I find it an interesting idea for a DJBOT to build a new object and delete
it immediately.. it saves the querying.. But I think you can remove CString msg3=msg; msg2.GetLength(); msg3.GetLength(); from your code, its not needed :) Walter aka Faber Andon13 schrieb in Nachricht <379b3c25.0 at homer>... >ENJOY :) > >NOTES: >These lines are used as the VERY first lines after the AW_EVENT_CHAT Handler >. . . > >aw_state_change (); >char *reply[255]; >CString msg = aw_string (AW_CHAT_MESSAGE); >CString msg2=msg; >CString msg3=msg; > >msg2.MakeLower(); >msg3.MakeLower(); >msg2.GetLength(); >msg3.GetLength(); > > >THESE NEXT LINES CAN BE PLACED ANYWHERE WITHIN THE HANDLER. > > >if(msg2.Find("play ") == -1){} > >else >{ >char action[255]; > >CString chFormat="MEDIA"; >CString msg2="FILEXT"; >CString SPEAKER_OBJECT="wavspk.rwx"; >CString location="UNDEFINED"; > >msg2.Replace("FILEXT",msg3.Mid(msg3.Find("play"))); >msg2.Replace("play ",NULL); >msg.Replace(msg.Left(msg3.Find(msg2)),NULL); >sprintf (action, "create noise %s", msg); > >if (msg2.Find("http://") == -1){location.Replace("UNDEFINED","Local");} > else > { > location.Replace("UNDEFINED","External"); > } > >if (msg2.Find(".mid") == -1) > { > if (msg2.Find(".wav") == -1) > { > if (msg2.Find(".mp3") == -1) > { > if (msg2.Find(".ra") == -1){ > chFormat.Replace("MEDIA","FALSE"); > } > > else > { > chFormat.Replace("MEDIA","Real Audio"); > > }} > > > else > { > chFormat.Replace("MEDIA","Mpeg Layer 3 Audio"); > }} > > else > { > chFormat.Replace("MEDIA","Wave Audio"); > }} > >else >{ > if (msg2.Find(".midifarm.") == -1){chFormat.Replace("MEDIA","MIDI >Music");SPEAKER_OBJECT.Replace("wavspk.rwx","midispk.rwx");sprintf (action, >"create sound %s", msg);} > else > { > chFormat.Replace("MEDIA","FALSE"); > }} > > > >if (chFormat == "FALSE") > {chFormat.Replace("FALSE",msg.Mid(msg.Find(".")));sprintf >((char*)reply,"Unknown Audio Type [ '%s' ]!",chFormat);aw_whisper (aw_int >(AW_CHAT_SESSION), (char*)reply);} > > else > { > sprintf ((char*)reply,"Now Playing --- %s %s file >[ '%s' ]",location,chFormat,msg); > aw_say ((char*)reply); > > char description[255]; > > aw_int_set (AW_OBJECT_X, AW_MY_X); > aw_int_set (AW_OBJECT_Y, AW_MY_Y); > aw_int_set (AW_OBJECT_Z, AW_MY_Z); > aw_int_set (AW_OBJECT_YAW, AW_MY_YAW); > aw_string_set (AW_OBJECT_MODEL, SPEAKER_OBJECT); > aw_object_delete (); > > sprintf (description, "Ultra DJ V. 0.63 --- Part of Andon13's Ultra BOT . >. .",chFormat,msg); > > aw_string_set (AW_OBJECT_ACTION, action); > aw_string_set (AW_OBJECT_DESCRIPTION, description); > aw_object_add (); > > } > >} > >if(msg2.Find("stop play") == -1){} >else >{ > aw_object_delete (); >} > > > > > > >AND THAT'S IT . . . > >All you need to do now is type : >Play <MIDI / WAV> > >where "<MIDI / WAV>" = the location of the Midi or Wave file you wish to >play . . . > > Linux SDKJul 26, 1999, 2:17pm
No, you cannot use windows binaries.. a new shared or static library would
have to be created, adapted to linux, by Roland.... Walter aka Faber Eliot Gable schrieb in Nachricht <379B5FD7.DB4E54FE at andrew.cmu.edu>... >So, what's the word on the Linux version of the SDK? >Is there one implimented? Is there a way to "hack" my way around to >using the AW.LIB file for it? > Mysterious other DLL (not aw.dll)Jul 30, 1999, 9:56pm
Your error message is cause by an aw.lib import library that refers to
missing aw.dll exports... that means you have a non matching aw.dll in your path. Since your development environment can not use the supplied aw.lib i assume you created it yourself or got it somewhere else. it looks like you have to recreate it from the current aw.dll. Walter aka Faber Sparrow <terreo at geocities.com> schrieb in im Newsbeitrag: 37A1E711.B40517FF at geocities.com... [View Quote] What's wrong with my codeAug 2, 1999, 4:53pm
Its actually better for a foreign lib, such as aw.lib, to be put under
Project/Settings/Linker/Object libraries (just put or add aw.lib in that edit field) Walter aka Faber Wampa1 <Wampa1 at email.msn.com> schrieb in im Newsbeitrag: 37a4ec50.0 at homer... > in Visual C++ you click > Project --> Add to project --> Files... > > then find the AW.lib file and click OK [View Quote] What's wrong with my codeAug 3, 1999, 7:49pm
Well that or keep in in the same directory as your project files.
Which is what i do. Even old bots with old aw.dlls compile and run fine this way, if you have aw.h, aw.lib and aw.dll in the project directory... Walter aka Faber Tom Russell <tom.russell at jordanchans.com> schrieb in im Newsbeitrag: 37a66d01.0 at homer... > 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] another probAug 3, 1999, 7:51pm
How do you check if an aw.dll is build 15 ?
You can't, so you have to remove all aw.dll's, all aw.libs and aw.hs from your system completely then redownload the sdk, _RECOMPILE_ completely (!!!) and your problem should be gone.. Walte aka Faber Jeremy Booker <judoman1 at bellsouth.net> schrieb in im Newsbeitrag: 37A652E7.93B6A194 at bellsouth.net... > i'm agian using VC++, and the sample code, modifed slightly :). I'm > getting an error 454 with is aw_build_mismatch...i have checked, > rechecked and checked agin, all of my .lib, .dll, and .h files, they are > all build 15...plz explain my problem. > Thanks, > JerMe > > -- > > AW: JerMe cit#296967 > IM: JerMe150 > ICQ: 32700123 > > WOOHOOOO i got the SDK sample proggy working all by myselfAug 3, 1999, 7:52pm
Yep, nicely done :)
Walter aka Faber XelaG <decastro at cable.a2000.nl> schrieb in im Newsbeitrag: 37a6d84e.90023817 at news.activeworlds.com... > Congratulations :) > [View Quote] Getting Co-Ordinates based on Session ID?Aug 3, 1999, 7:53pm
All you can do is store the coords for each session id when you get them in
your aw_avatar_add and aw_avatar_change events in some kind of array or list, and then retrieve them using the session id as needed. Walter aka Faber Andon M. Coleman <gizmo98 at earthlink.net> schrieb in im Newsbeitrag: 37a72986.0 at homer... > if (msg2.Find("follow me") >=0) > { > /* if (msg2.Find("follow me") >=0) <FIGURE OUT HOW TO > RETRIEVE SESSION CO-ORDS> */ > } > > That's what I have so far =P > > Can you help me here? > > Thanks, > Andon Coleman > > Getting Co-Ordinates based on Session ID?Aug 4, 1999, 4:17pm
If you using a list instead of an array, you have no problesm with an
unpredicted increase in the avatar number, but since you can specify the maximum number of avatars your're interested in, you can use an array pretty save. 50 avatars is default, so a 50 entries sized array should be pretty safe :) Walter aka Faber Andon M. Coleman <gizmo98 at earthlink.net> schrieb in im Newsbeitrag: 37a86911.0 at homer... > That would seem to take up extra memory, and an unpredicted overflow in > the size of the array would cause an access violation error . . . > > Shouldn't there be a way to retrieve them by calling an SDK function, > Roland? How does the AW Client do it? > > -Andon Coleman > > Re: Struct...Aug 6, 1999, 12:14pm
what about including both .hpp file in your avatarme.c. ?
#include "avatar.hpp" #include "avatarme.hpp" Walter aka Faber Tom Russell <tom.russell at jordanchans.com> schrieb in im Newsbeitrag: 37aa1a13.0 at homer... > 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 10, 1999, 2:58pm
Same here, actually,. I did not get the point... never use I.P. addresses,
just use domain names and you're on the safe side.... but IF someone enters an I.P. address, please NEVER EVER change it automatically to something you think is what was ment.... an I.P. is a direct "order" to connect to a certain internet socket endpoint, which should not be "interpreted" in any way. That is what DNS was made for :) Walter aka Faber Andon M. Coleman <gizmo98 at earthlink.net> schrieb in im Newsbeitrag: 37af6d40.0 at homer... > I sense you don't understand the point of that . . . [View Quote] Preston 30 is outMay 22, 2000, 9:02pm
As the subject says, Preston 30 is out.
The list of changes include: - Note #1: The BETA phase of Preston will not end for a while since it is using the beta version of the Active Worlds SDK. - Note #2: Before updating your Preston, make sure to backup your preston.ini and preston.mls file. You should regularly backup these 2 files anyway. - This build has all the actions categorized and sorted now on the Dictionary Entry Add/Edit Dialog. Note that this is a visual change only, all old preston scripts load and function without a change. - Preston now has a new event: Object select. It triggers whenever someone nearby right clicks an object. - Object Click events with no target name now trigger on all objects. In previous builds it was required for the object to have a name, although any name did match, the name tag was mandatory. This is no longer the case. To have the old behavior, you have to use a pattern like ?* or similar. There is a new action "wait". The new action causes Preston to let a sequence wait the given number of seconds. Preston puts the current entry on a wait list, and revives it after the given number of seconds, continuing with any sequence attached to it. Therefore the action makes only sense as part of a sequence. Note that only the sequence is waiting, all other Preston activities continue to work during the waiting time. There is no limit on the number of sequences waiting concurrently. - Pattern matching is now a matching option for phrase dictionary entries. The pattern matching algorithm understands the usual wild cards * and ?, and letter sets in curly brackets, and negation. f?b*r would match "faber" but as well "febour" for example. "t{a-c}st" matches tast, tbst, and tcst. "t{!e}st" is like "t?st" except that it does not match "test". - All events except for "phrase" used to have a simple equality match on their arguments (avatar or object names, etc). this has been changed to "pattern matching".. .an avatar click on "f*" would match anyone whose name starts with an f. - The target name for "change object" and "delete object" now uses the pattern matching as well. - The announcement page now carries a "face speaker" check mark which controls if Preston faces the avatar it hears the chat text from. Its on per default to match the old behavior, but can now be turned off. - There is a new action, "change world settings", which enables Preston to change the current world settings (lights, fog, etc) on command. It takes an world settings entry name as an argument. For that reason all world settings entries can now be named, and the editing of the world settings list is now possible even if the automated scheduling of those entries is turned off. - "whisper reply" on the dictionary edit window was only working for "reply" action. This has been changed, it now should apply to all other responses too. - The <teleport> action now understands the at notation as targets to. using at faber or at someobject would get your bot to the given avatar/object. - The <avatar> action now takes the avatar number as a configurable parameter in the dictionary entry. Preston now has a <gesture> action. - The "Named Objects found" display now should be able to display the numbers on the right column accurately even if the number is very high. - The <log> action was not properly saving the logged entries to preston.log. The output on the user tab was ok, but the log file is corrupted. Enjoy :) Faber RC303?Aug 10, 1999, 2:54pm
We're talking about 32 bit programming here...
short int = 16 bits int = 32 bits long = 32 bits short int has always been 16 bit and long int has always been 32 bit... its just that the size of an integer changed from 16 bits to 32 bit when moving from 16 to 32 bit programming... Walter aka Faber Andon M. Coleman <gizmo98 at earthlink.net> schrieb in im Newsbeitrag: 37af46bc.0 at homer... > Obviously, you were using too many bytes =P > Try reducing the size of your data =) > > FYI : data type sizes : > > char : 8 bits > short int : 8 bits > int : 16 bits > long int : 32 bits > float : 32 bits > double : 64 bits > long double : 80 bits > > That's about all I can say, cause that's about all you can do. > [View Quote] Gravity and LaptopsJan 30, 2000, 3:58pm
Any laptop has a FN-Key combination to emulate a numpad. Usually you can tell which keys
in combination with FN to press to have the numpad results by very closely examining the keyboard. You might make out a numpad alike numbering :) Hope it helps, Walter aka Faber "LBC" <lbc2 at home.com> schrieb im Newsbeitrag news:38942bc0 at server1.Activeworlds.com... > Thanks very much Jeffrey. > > Does anyone else have any ideas on how to get a Numberpad.less laptop to defy > gravity? > > Thanks again, > Lucia need some helpFeb 9, 2000, 10:05pm
Looks like your font folder is messed up. All the symbols on the system controls that come with
every window are taken from a special font for them. And if that font is missing, the system has to fall back on a default font, which, if missing too, has a fallback on a system font which resides in the kernel and which was not touched since Windows3.0 I believe, and which causes a "bulky" look :) So you might want to check your fonts folder and see if you can repair it somehow.. Faber "Horizons" <horizonsx at hrfn.net> schrieb im Newsbeitrag news:38a0abcc$1 at server1.Activeworlds.com... > This may be another stupid question but Windows95 has flipped out on me and > has made all my text large and blocky. Also little symbols windows uses are > replaced by 0, 1, r, and 8, 6, 5. I find you people here to be alot nicer > than the rest of the putrid AOL slime on the net > > -- > Horizons > 288611 > horizonsx at hrfn.net > "A mistake at this point will doom you and your colonists to certian death" > Artifical Intelligence -Outpost (c) Sierra > http://pkmn.8k.com/index2.html Designed for the Active Worlds Internal > Browser. > Visit us in Alpha World: > http://www.worlds.net/cgi-bin/teleport?aw_21345.0N_21345.0W_0A > > > |