Simple greeter bot: Difference between revisions
Jump to navigation
Jump to search
new syntax highlighting tags |
Fix VB.Net sample |
||
Line 144: | Line 144: | ||
==VB .Net== | ==VB .Net== | ||
<syntaxhighlight lang="vbnet"> | <syntaxhighlight lang="vbnet"> | ||
Imports VpNet | Imports VpNet | ||
Module ExampleBot | Module ExampleBot | ||
Public VPInstance As Instance | Public VPInstance As Instance | ||
Sub Main( | Sub Main() | ||
Try | Try | ||
'Initialize the Virtual Paradise .Net SDK | 'Initialize the Virtual Paradise .Net SDK | ||
Line 159: | Line 156: | ||
'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 initialization, but before connection | 'This must be done AFTER the initialization, but before connection | ||
AddHandler VPInstance. | AddHandler VPInstance.OnAvatarEnter, AddressOf EventAvatarEnter | ||
AddHandler VPInstance. | AddHandler VPInstance.OnAvatarLeave, AddressOf EventAvatarLeave | ||
'Connect to the universe using the default server settings | 'Connect to the universe using the default server settings | ||
Line 197: | Line 194: | ||
Console.Read() | Console.Read() | ||
End Sub | End Sub | ||
Private Sub | |||
Private Sub EventAvatarEnter(sender As Instance, args As AvatarEnterEventArgsT(Of Avatar(Of Vector3), Vector3)) | |||
'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 brief message | 'We print the user's name followed by a brief message | ||
VPInstance.Say( | VPInstance.Say(args.Avatar.Name & " Entered") | ||
End Sub | End Sub | ||
Private Sub | Private Sub EventAvatarLeave(sender As Instance, ByVal args As AvatarLeaveEventArgsT(Of Avatar(Of Vector3), Vector3)) | ||
'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 brief message | 'We print the user's name followed by a brief message | ||
VPInstance.Say( | VPInstance.Say(args.Avatar.Name & " Left") | ||
End Sub | End Sub | ||
End Module | End Module | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category: Bots]] | [[Category: Bots]] | ||
[[Category: SDK]] | [[Category: SDK]] |
Revision as of 22:13, 24 May 2017
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
#include <VPSDK/VP.h>
#include <stdio.h>
#include <stdlib.h>
#define Username "username"
#define Password "password"
#define Botname "greeterbot"
#define Worldname "testworld"
void event_avatar_add(VPInstance sdk);
int main(int argc, char ** argv)
{
int err;
VPInstance sdk;
if(err = vp_init(VPSDK_VERSION))
{
printf("Couldn't initialize VP API(reason %d)", err);
return 1;
}
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[300];
sprintf((char*)&message, "Hello, %s!", vp_string(sdk, VP_AVATAR_NAME));
vp_say(sdk, (char*)&message);
}
C#
In order to use the Virtual Paradise .Net SDK you must:
- Have Visual Studio or Visual C# Express installed and configured
- Download the .Net SDK from the VPNet SDK Download page
- The latest version of the native VP x86 SDK, that is supported, is included in the VPNET distribution
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");
}
}
VB .Net
Imports VpNet
Module ExampleBot
Public VPInstance As Instance
Sub Main()
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.OnAvatarEnter, AddressOf EventAvatarEnter
AddHandler VPInstance.OnAvatarLeave, AddressOf EventAvatarLeave
'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 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)
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 EventAvatarEnter(sender As Instance, args As AvatarEnterEventArgsT(Of Avatar(Of Vector3), Vector3))
'A user has entered the world (or the bot's range)
'We print the user's name followed by a brief message
VPInstance.Say(args.Avatar.Name & " Entered")
End Sub
Private Sub EventAvatarLeave(sender As Instance, ByVal args As AvatarLeaveEventArgsT(Of Avatar(Of Vector3), Vector3))
'A user has left the world (or the bot's range)
'We print the user's name followed by a brief message
VPInstance.Say(args.Avatar.Name & " Left")
End Sub
End Module