SDK Sample Program 1
Jump to navigation
Jump to search
A simple greeter bot
This program implements a very simple bot. The bot logs into the universe, enters a world, and says "hello" to every user that enters the world. You will need to download the AWSDK to use this program.
#define AW_NO_FUNCTION_MAPPING // for UTF-8 or older single-byte and multi-byte character sets #include "aw.h" #include <stdio.h> #include <stdlib.h> void handle_avatar_add (void); int main (int argc, char *argv[]) { int rc; /* check command line */ if (argc < 3) { printf ("Usage: %s number password\n", argv[0]); exit (1); } /* initialize Active Worlds API */ if (rc = aw_init (AW_BUILD)) { printf ("Unable to initialize API (reason %d)\n", rc); exit (1); } /* install handler for avatar_add event */ aw_event_set (AW_EVENT_AVATAR_ADD, handle_avatar_add); /* create bot instance */ if (rc = aw_create (0, 0, 0)) { printf ("Unable to create bot instance (reason %d)\n", rc); exit (1); } /* log bot into the universe */ aw_int_set (AW_LOGIN_OWNER, atoi (argv[1])); aw_string_set (AW_LOGIN_PRIVILEGE_PASSWORD, argv[2]); aw_string_set (AW_LOGIN_APPLICATION, "SDK Sample Application #1"); aw_string_set (AW_LOGIN_NAME, "GreeterBot"); if (rc = aw_login ()) { printf ("Unable to login (reason %d)\n", rc); exit (1); } /* log bot into the world called "beta" */ if (rc = aw_enter ("Beta")) { printf ("Unable to enter world (reason %d)\n", rc); exit (1); } /* announce our position in the world */ aw_int_set (AW_MY_X, 1000); /* 1W */ aw_int_set (AW_MY_Z, 1000); /* 1N */ aw_int_set (AW_MY_YAW, 2250); /* face towards GZ */ if (rc = aw_state_change ()) { printf ("Unable to change state (reason %d)\n", rc); exit (1); } /* main event loop */ while (!aw_wait (-1)) ; /* close everything down */ aw_destroy (); aw_term (); return 0; } void handle_avatar_add (void) { char message[100]; sprintf (message, "Hello %s", aw_string (AW_AVATAR_NAME)); aw_say (message); /* log the event to the console */ printf ("avatar_add: %s\n", aw_string (AW_AVATAR_NAME)); }
Troubleshooting
Visual Studio 2010
If the greeterbot does not compile, check for the following:
- Character Set
- If you create the Greeterbot VS Project as a Windows Console Project, the default character set will be Unicode and the program will not compile. You can change the character set from Unicode to Multi-Byte from the project's property page.
- Project > projectName Properties > Configuration Properties > General:
- Look for the 'Character Set' option, and change to Multi-Byte from there.
- If you create the Greeterbot VS Project as a Windows Console Project, the default character set will be Unicode and the program will not compile. You can change the character set from Unicode to Multi-Byte from the project's property page.
- Library
- Be sure that aw.dll is in an easy to find location.
- Be sure to add aw.lib as a dependency.
- Project > projectName Properties > Configuration Properties > Linker > Input:
- Add aw.lib to the Additional Dependencies option.
- You may need to specify the directory that aw.lib is in. You can do this from the project's property page.
- Project > projectName Properties > Configuration Properties > VC++ Directories:
- Navigate to the Library Directories option and add what you need from there.