Simple greeter bot: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 81: | Line 81: | ||
try | try | ||
{ | { | ||
// | //Initialize the Virtual Paradise .Net SDK | ||
VPInstance = new Instance(); | VPInstance = new Instance(); | ||
//Register the events you wish to capture (Such as avatar entry) | //Register the events you wish to capture (Such as avatar entry) | ||
//This must be done AFTER the | //This must be done AFTER the initialization, but before connection | ||
VPInstance.EventAvatarAdd += EventAvatarAdd; | VPInstance.EventAvatarAdd += EventAvatarAdd; | ||
VPInstance.EventAvatarDelete += EventAvatarDelete; | VPInstance.EventAvatarDelete += EventAvatarDelete; | ||
Line 102: | Line 102: | ||
VPInstance.UpdateAvatar(0.0f, 0.0f, 0.0f); | VPInstance.UpdateAvatar(0.0f, 0.0f, 0.0f); | ||
// | //In order to process any pending network events and data | ||
//we must repeatedly call the Wait() function | //we must repeatedly call the Wait() function | ||
//Here we use a wait of 50 Miliseconds | //Here we use a wait of 50 Miliseconds | ||
Line 127: | Line 127: | ||
{ | { | ||
//A user has entered the world (or the bot's range) | //A user has entered the world (or the bot's range) | ||
//We print the user's name followed by a | //We print the user's name followed by a brief message | ||
VPInstance.Say(AvatarData.Name + " Entered"); | VPInstance.Say(AvatarData.Name + " Entered"); | ||
} | } | ||
Line 134: | Line 134: | ||
{ | { | ||
//A user has left the world (or the bot's range) | //A user has left the world (or the bot's range) | ||
//We print the user's name followed by a | //We print the user's name followed by a brief message | ||
VPInstance.Say(AvatarData.Name + " Left"); | VPInstance.Say(AvatarData.Name + " Left"); | ||
} | } | ||
Line 151: | Line 151: | ||
Sub Main(ByVal args As String()) | Sub Main(ByVal args As String()) | ||
Try | Try | ||
' | 'Initialize the Virtual Paradise .Net SDK | ||
VPInstance = New Instance() | VPInstance = New Instance() | ||
'Register the events you wish to capture (Such as avatar entry) | 'Register the events you wish to capture (Such as avatar entry) | ||
'This must be done AFTER the | 'This must be done AFTER the initialization, but before connection | ||
AddHandler VPInstance.EventAvatarAdd, AddressOf EventAvatarAdd | AddHandler VPInstance.EventAvatarAdd, AddressOf EventAvatarAdd | ||
AddHandler VPInstance.EventAvatarDelete, AddressOf EventAvatarDelete | AddHandler VPInstance.EventAvatarDelete, AddressOf EventAvatarDelete | ||
Line 196: | Line 196: | ||
Private Sub EventAvatarAdd(ByVal Sender As Instance, ByVal AvatarData As Avatar) | Private Sub EventAvatarAdd(ByVal Sender As Instance, ByVal AvatarData As Avatar) | ||
'A user has entered the world (or the bot's range) | 'A user has entered the world (or the bot's range) | ||
'We print the user's name followed by a | 'We print the user's name followed by a brief message | ||
VPInstance.Say(AvatarData.Name & " Entered") | VPInstance.Say(AvatarData.Name & " Entered") | ||
End Sub | End Sub | ||
Line 202: | Line 202: | ||
Private Sub EventAvatarDelete(ByVal Sender As Instance, ByVal AvatarData As Avatar) | Private Sub EventAvatarDelete(ByVal Sender As Instance, ByVal AvatarData As Avatar) | ||
'A user has left the world (or the bot's range) | 'A user has left the world (or the bot's range) | ||
'We print the user's name followed by a | 'We print the user's name followed by a brief message | ||
VPInstance.Say(AvatarData.Name & " Left") | VPInstance.Say(AvatarData.Name & " Left") | ||
End Sub | End Sub |
Revision as of 17:21, 24 November 2012
C/C++
In order to use the Virtual Paradise C SDK you must:
- Have Visual Studio, Visual C++ Express or another compatible C/C++ IDE+Compiler installed and configured
- Download the x86 SDK from the Developer Downloads page
<C>
- include <vpsdk/VP.h>
- include <stdio.h>
- include <stdlib.h>
- define Username "username"
- define Password "password"
- define Botname "greeterbot"
- define Worldname "VP-Gate"
void event_avatar_add(VPInstance sdk);
int main(int argc, char ** argv) {
int err; if(err = vp_init(VPSDK_VERSION)) { printf("Couldn't initialize VP API(reason %d)", err); return 1; }
VPInstance sdk; sdk = vp_create();
if(err = vp_connect_universe(sdk, "universe.virtualparadise.org", 57000)) { printf("Couldn't connect to universe(reason %d)", err); return 1; } if(err = vp_login(sdk, Username, Password, Botname)) { printf("Couldn't login(reason %d)", err); return 1; } if(err = vp_enter(sdk, Worldname)) { printf("Couldn't enter world(reason %d)", err); return 1; } vp_event_set(sdk, VP_EVENT_AVATAR_ADD, event_avatar_add); vp_state_change(sdk); while(vp_wait(sdk, 1000) == 0){} return 0;
}
void event_avatar_add(VPInstance sdk) {
char message[100]; sprintf((char*)&message, "Hello, %s!", vp_string(sdk, VP_AVATAR_NAME)); vp_say(sdk, (char*)&message);
} </C>
C#
In order to use the Virtual Paradise .Net SDK you must:
- Have Visual Studio or Visual C# Express installed and configured
- Download the x86 SDK from the Developer Downloads page
- Download the .Net SDK from the VPNet SDK Download page
<CSharp> using System; using VpNet.Core; using VpNet.Core.EventData; using VpNet.Core.Structs;
class ExampleBot {
//Virtual Paradise SDK Instance public static Instance VPInstance;
static void Main(string[] args) { try { //Initialize the Virtual Paradise .Net SDK VPInstance = new Instance();
//Register the events you wish to capture (Such as avatar entry) //This must be done AFTER the initialization, but before connection VPInstance.EventAvatarAdd += EventAvatarAdd; VPInstance.EventAvatarDelete += EventAvatarDelete;
//Connect to the universe using the default server settings VPInstance.Connect();
//Login to the universe using your username, password, //and the desired bot name VPInstance.Login("Username", "Password", "MyBotName");
//Enter the world VPInstance.Enter("MyWorld");
//Set the bot's position in the world VPInstance.UpdateAvatar(0.0f, 0.0f, 0.0f);
//In order to process any pending network events and data //we must repeatedly call the Wait() function //Here we use a wait of 50 Miliseconds while (true) { VPInstance.Wait(50); } }
//This allows us to cleanly catch and handle //any errors the SDK throws. In normal usage, //you should handle specific errors, and not //use a catch-all like the one below. catch (VpException ex) { Console.WriteLine("{0}", ex.Message); }
//This pauses the console on crash, so that //you can review the error thrown by the SDK Console.Read(); } static void EventAvatarAdd(Instance Sender, Avatar AvatarData) { //A user has entered the world (or the bot's range) //We print the user's name followed by a brief message VPInstance.Say(AvatarData.Name + " Entered"); }
static void EventAvatarDelete(Instance Sender, Avatar AvatarData) { //A user has left the world (or the bot's range) //We print the user's name followed by a brief message VPInstance.Say(AvatarData.Name + " Left"); }
} </CSharp>
VB .Net
<VBNet> Imports VpNet.Core Imports VpNet.Core.EventData Imports VpNet.Core.Structs
Module ExampleBot
'Virtual Paradise SDK Instance Public VPInstance As Instance
Sub Main(ByVal args As String()) Try 'Initialize the Virtual Paradise .Net SDK VPInstance = New Instance()
'Register the events you wish to capture (Such as avatar entry) 'This must be done AFTER the initialization, but before connection AddHandler VPInstance.EventAvatarAdd, AddressOf EventAvatarAdd AddHandler VPInstance.EventAvatarDelete, AddressOf EventAvatarDelete
'Connect to the universe using the default server settings VPInstance.Connect()
'Login to the universe using your username, password, 'and the desired bot name VPInstance.Login("Username", "Password", "MyBotName")
'Enter the world VPInstance.Enter("MyWorld")
'Set the bot's position in the world VPInstance.UpdateAvatar(0.0F, 0.0F, 0.0F)
'Write success message to the console Console.WriteLine("Login success!")
'In order to proccess any pending network events and data 'we must repeatedly call the Wait() function 'Here we use a wait of 50 Miliseconds While True VPInstance.Wait(50) End While
'This allows us to cleanly catch and handle 'any errors the SDK throws. In normal usage, 'you should handle specific errors, and not 'use a catch-all like the one below. Catch ex As VpException Console.WriteLine("{0}", ex.Message) End Try
'This pauses the console on crash, so that 'you can review the error thrown by the SDK Console.Read() End Sub Private Sub EventAvatarAdd(ByVal Sender As Instance, ByVal AvatarData As Avatar) 'A user has entered the world (or the bot's range) 'We print the user's name followed by a brief message VPInstance.Say(AvatarData.Name & " Entered") End Sub
Private Sub EventAvatarDelete(ByVal Sender As Instance, ByVal AvatarData As Avatar) 'A user has left the world (or the bot's range) 'We print the user's name followed by a brief message VPInstance.Say(AvatarData.Name & " Left") End Sub
End Module </VBNet>