calt exec // User Search

calt exec // User Search

1  |  

AWJavaBots

Nov 12, 1999, 1:39pm
Hello,

I would like to profit that the newsgroup is up again to post an update of the
Java and Javascript
encapsulation of the Active world sdk.
I have now renamed the project AWJavaBots (instead of AWSDKJava).

AWJavaBots: Java and Javascript for Active World
http://www.insead.fr/CALT/Project/AWJavaBots/

One of the interesting aspect of this toolkit, is that it can run on a servlet,
and that the behaviour of the bots can be writen in javascript. (rhino
interpretor).
This provides a maximum of flexibility:
* the bot application can run on a kind of application server.
* the application is written with a combination of java and javascript.
(javascript providing the glue of the application, and allows you to change the
behaviour
of our bot as the application is running)


We can imagine the following architecture:


|| <==> aw browser <==> user1
|| <==> aw browser <==> user2
|| <==> ....
AW server <==> ||
|| <==> bots server || <==> web browser <==> user (config)
|| (java || <==> web browser <==> user (program)
|| & javascript) || (prog. in javascript)
|| || <==> application <==> BD, mail, ...
|| || <==> application <==> chatterbot
|| || <==> application <==> web agents
||
|| <==> bots server .....


AWJavaBots is free, open source, and very much under construction.
(I am for instance currently trying to integrate the OpenXML html/xml parser,
so that you can program easily bots that can easily retrieve information from
the web.).

If you have any suggestion, let me know.


Thierry Nabeth
INSEAD CALT (the Centre for Advanced Learning Technologies)
http://www.insead.fr/CALT/

AWJavaBots

Nov 12, 1999, 1:46pm
Hello,

Sorry for my previous posting. I posted to the bots newsgroup, but wanted to
post on the sdk newsgroup.

Thierry

[View Quote]

http://www.dotcomix.com/, very nice animated characters

Nov 12, 1999, 1:49pm
Hello,

Check http://www.dotcomix.com/.
You will find are very nice cartoon like animated characters.

Could be a good idea to try to recreate similar applications using
active worlds.

Thierry Nabeth
INSEAD CALT
http://www.insead.fr/CALT/

Hey any one know where I can get some Ai programs?

Mar 13, 2000, 7:34am
Hello,

> I'm looking for one of those bots that you talk to and it gradually learns
> to speak like a human being.

I am not sure that those technologies exist.

On the other hand, there are some chatterbot technologies that can talk,
an can "learn" to a certain extend.
Pratically, the learning is supervized, which means this learning is assisted
by a human being. The idea it to register in a log file all the question.
Then the software assist you by proposing you new rules
(*if some says something*) == answer ==> something).
Those rules are identified by analysing the log file.

Exemple of bots that use this approach:

AskJeeves
http://www.AskJeeves.com/
But this technology is not available (or al least very expensive).

AliceBot
http://www.alicebot.org/
This technology is open source java.
It is very interesting and it is free.

AliceBot is written in java, and therefore can not directly
connected to active world.
However, I may in the future try to connect it to Active World
through AWSDKJava. http://www.insead.fr/CALT/Project/AWJavaBots/
(I do not have time to do it in the sort term, but if you want to
do this coonection yourself or know someone who wants to ....)


Note:
Do not expect a high level intelligence though some intelligence however from
those
beasties. On the other hand they should be very usefull to write bots that are
able to answer
question on a product, etc.
They can also be quite funny, and at some point attract audience.


For other information about bots and other "beasties" have a look at:

http://www.insead.fr/CALT/Encyclopedia/ComputerSciences/Agents/


Thierry Nabeth
INSEAD CALT
http://www.insead.fr/CALT/

[View Quote]

bot server

Jun 6, 2000, 7:07pm
Hello,

For your information AWJavaBots
http://www.insead.fr/CALT/Project/AWJavaBots/
runs on a servlet and can be programmed in javascript using a web browser.
However, this (open source) application will require spending sometime doing some javaprogramming
if you want to do something serious.

You can try the technology at:
http://caltnt.insead.fr/servlets/awbot.javascript.servlet.AWJava

Thierry Nabeth
INSEAD CALT
http://www.insead.fr/CALT/

[View Quote] > Since XelaG doesn't seem like he's going to release his bot server, I'll make a request here. I want to run bots remotely alongside world servers. Now while Linux bot servers may not be possible at this time, Win9x/NT ones should be. It would be nice to be able to control the bots through a GUI (like Faber's Preston's would be good) but have the actual bot run with the world server. Ideally the bots should be integrated INTO the world server and/or AW itself but the bot server will have to suffice for now. Any takers?
>
> --
> http://tnlc.com/eep/ - Active Worlds, Tomb Raider, 3D game comparison, The Sims
> Enable line/word wrap if text not wrapping. Don't quote sig when replying.

bot server

Jun 6, 2000, 7:37pm
Hello eep,


No java is not as slow as it used to be. In particular with jdk 1.3.

Actually, I believe that an application written in java will be faster than an
application writen in an interpreted language.
If I remember, there is at least one AW bot applications that has created its interpreted language,
and the performance is really not a problem. (the network is a much more limiting factor ).
Perhaps, on of the problem with java now is more that it requires some installation
such as a servlet server (such as JServe).


I mentioned AWJavaBots for your information.
Right now you do not need to be a programmer to run this bot.
(except eventually a little bit of javascript).
You just have a few forms in html.
Nothing to install in the case of http://caltnt.insead.fr/servlets/awbot.javascript.servlet.AWJava
(of course it will not do a lot, but it will continue to work whisle you are not connected).

AWJavaBots is just a demonstrator, a test if you want, and the objective is just to make people
aware of what is possible to do. That's all.

Thierry

[View Quote] > Java? Can we say S-L-O-W? Bots don't need to be any slower than they already are, and I've had enough experience with Java to know that it's the epitome of slowness. Just say NO to Java. I want a bot server that runs on an ADEQUATE programming language like C or even C++. Anyway, I'm not a programmer, hence why I'm asking about bot servers here.
>
[View Quote]

AWJavaBots. Now support javascript and can run on a servlet

Nov 12, 1999, 1:43pm
Hello,

I would like to profit that the newsgroup is up again to post an update of the
Java and Javascript
encapsulation of the Active world sdk.
I have now renamed the project AWJavaBots (instead of AWSDKJava).

AWJavaBots: Java and Javascript for Active World
http://www.insead.fr/CALT/Project/AWJavaBots/

One of the interesting aspect of this toolkit, is that it can run on a servlet,
and that the behaviour of the bots can be writen in javascript. (rhino
interpretor).
This provides a maximum of flexibility:
* the bot application can run on a kind of application server.
* the application is written with a combination of java and javascript.
(javascript providing the glue of the application, and allows you to change the
behaviour
of our bot as the application is running)


We can imagine the following architecture:


|| <==> aw browser <==> user1
|| <==> aw browser <==> user2
|| <==> ....
AW server <==> ||
|| <==> bots server || <==> web browser <==> user (config)
|| (java || <==> web browser <==> user (program)
|| & javascript) || (prog. in javascript)
|| || <==> application <==> BD, mail, ...
|| || <==> application <==> chatterbot
|| || <==> application <==> web agents
||
|| <==> bots server .....


AWJavaBots is free, open source, and very much under construction.
(I am for instance currently trying to integrate the OpenXML html/xml parser,
so that you can program easily bots that can easily retrieve information from
the web.).

If you have any suggestion, let me know.


Thierry Nabeth
INSEAD CALT (the Centre for Advanced Learning Technologies)
http://www.insead.fr/CALT/
Thierry.Nabeth at insead.fr

http://www.alicebot.org/ Alice java open source ChatterBot technology.

Jan 5, 2000, 1:44pm
Hello,

I wanted to mention to your attention the Alice chatterbot technology.

Have a look at it and its demo.

Alice
http://www.alicebot.org/
Artificial LInguistic Computer Entity
ALICE chat robot technology is java open source, and relies on AIML
(Artificial Intelligence Markup Language), an XML specification for
programming chat robots.

If (when) I have the time, I will try to integrate this technology with
the AW sdk java encapsulation AWJavaBot
(http://www.insead.fr/CALT/Project/AWJavaBots/).
But if some people are interested to do it, they are welcome.

Thierry Nabeth
INSEAD CALT
http://www.insead.fr/CALT/

http://www.alicebot.org/ Alice java open source ChatterBot technology.

Jan 10, 2000, 4:40pm
Concept,

I have never pretended that conversationnal bot are very smart, and can
now be compared to human.
Actually, I personally do not very like the interaction that are only
conversational. (I prefere that a bot do something rather than talk).

However, you should know, if you were aware of what is being done in this
domain, that one of the first use of conversational bot is to provide
a more anthropomorphist interface to information (such as a FAQ, etc.).
So they can bring some value. Indeed you can not expect a real human being
be 24 hours a day and 7 days a week present to answer to your questions !

say, and changes it to first or 3rd person most of the time.

That is not true.
This kind of (Eliza type of) behaviour has appeared to you because your
where expecting too much from this bot.
You have a lot of "rules" coded in the Alice "knowledge base".

Actually, Alice is a technology (plus a basic knowledge base), and it is this is
up
to the designer to enter the "knowlegde" he/she wants Alice to answer.


> I dont know why anyone would waste their
> valuable time converting this to an AW bot.

Because they can spend more time than if they had to reinvent the wheel,
and besides they can expect to create in the future "knowledge bases" that
can be reuse by different bots. (which is something almost impossible if you
hard code your behaviour).




Alice bot is very far from being perfect, and in particular the "pattern
matching"
mechanism is very limited when compared to other systems.
However provides you a reasonably working knowledge base as a starting point,
and all the code is open. (so if you are not satisfied you can change it).

So, I believe that some people (of course not everybody), and in particular the
non-programmers
can be interested by this system.


You should forget a little bit the dreams that artificial intelligence has
promissed you,
and just ask the question if this system can be usefull (create value).
For me, the answer is "potentially yet", even if on the long term I believe in
rather different,
but much more complex solution, (such as evolutionary psychology and the likes).

Thierry

Thierry Nabeth
INSEAD CALT
http://www.insead.fr/CALT/

[View Quote]

New version of AWJavaBots http://www.insead.fr/CALT/Project/AWJavaBots/

Jan 19, 2000, 7:53pm
Hello,

A new version of AWJavaBots (java & javascript) encapsulation of the
sdk
is now available at:

http://www.insead.fr/CALT/Project/AWJavaBots/

There has been many change to make this release more reliable and in
particular in a multithreading context, and for a multi-instance
application.

In particular, this version support relativelly well the multi-threading
with only
the limitation that the set_handler() and the wait() have to be run in
the same thread.

I have not found a way to do in otherwise because of the way the sdk in
implemented.
(you can not pass parameters in the event handlers !).
Please Roland, could you thing to change this in the next release of the
sdk ?


The encapsulation has also been changed a little bit to reflect better
the
aw sdk. (the methods have now very similar name as the functions of the
sdk.)


Bye,


Thierry Nabeth
Research Fellow
INSEAD CALT (the Centre for Advanced Learning Technologies)
http://www.insead.fr/CALT/

Pbs. with Avatar_Add() in java. Any pbs with the C++ and Delphy version

Mar 8, 2000, 12:29pm
Hello,

I post this e-mail about a problem related to the use of Avatar_Add().
The language used is java.

Context:
A bot, with the avatar-add() handler activated, enter in a word having
several avatar. A list of avatar-add() event are generated.

Pb:
When processing avatar-add() event handler, wrong
citizen name, IpAddress and citizen number are return.
(! In my Java program, that is working with AWSDKJava, the next
Avatar_Add event is occuring while the bot is still processing one.)

Question:
Are you aware of similar problem in C++ or Pascal ?
Do you have any idea of what could create this problem in java ?

See the details of the question in the message bellow.

Please post your answer to this group and to Iwan Tolboom <Ivanhoe>
[mailto:iacmtolboom at chello.nl]

Thank you,

Thierry Nabeth
INSEAD CALT
http://www.insead.fr/CALT/


-----Original Message-----
From: Iwan Tolboom <Ivanhoe> [mailto:iacmtolboom at chello.nl]
Sent: Wednesday, March 08, 2000 2:34 PM
To: NABETH Thierry
Subject: Java and SDk


Hi Thierry,

I just found out that one needs to be a citizen of AW to post to the
newsgroups there.
As I am not, however I want to become one, I can't due to the lack of a
credeitcard.
Could you post this message in the SDK newsgroup for me.

I would be very obliged. Iwan.

Hi everybody,

At the moment I am working on Bots that can be controlled through the
webpage.
For this purpose I choose Java as a programming language and so I need
to interface with the Aw.dll through JNI (Java Native Interface).
Most methods that make a bot act in some way work correctly.
But when I want to acquire information about a citizen things get messy.

Assume the following scenario:
1. a bot listens to Avatar_Add and Avatar_Delete
2. place it in the center of a world, where it is generally very
crowded, so a lot of Avatar_Add events occur.
3. Of each Avatar_Add event I want to acquire the following information:
- citizen name, IpAddress and citizen number
4. In my Avatar_Add event I call the diverse functions that return this
information
5. After this the following event is processed of the next avatar that
entered the space of my bot

In delphi and C++ programs I have seen this all works well.

! In my Java program, that is working with AWSDKJava, the next
Avatar_Add event is occuring while the bot is still processing one.

? So I would like to ask the following questions :
- Is this something that also happens with C++ or Delphi Bots but I just
didn't notice it ?
- Are all methods and callbacks of the SDK synchronized, thus when one
process is still underway preventing new events to be processed, by
leaving them on the stack, untill the processing has finished ?
- As non C++ programmer, I would like to know if a wrapper with
non-synchronized methods around a dll with synchronized methods explains
the mentioned problem.

I hope you don't mind me asking this much in my first posting.

Thanks,

Iwan Tolboom

My 1D emailadres : mailto:iacmtolboom at chello.nl
My 2D homepage : http://members.ams.chello.nl/iacmtolb/
My 3D hometown : http://www.3dee.nl




===== java code =========

public synchronized void handleAvatarAdd() { // EVENT_AVATAR_ADD
setProcessing(true, "%Add");
//get the session of the avatar
int avatarSession = get_afterEvent_AvatarSession();
//get the name of the world
//String worldName = get_afterEvent_WorldName();
//get the name of the avatar
String avatarName = get_afterEvent_AvatarName();
//get the citizenNumber of the avatar
int citizenNumber = getCitizenNumber(avatarName);
//get the IPAdres of the avatar
int avatarIpAddress = getAvatarAddress(avatarSession);
//get the entrytime of the avatar
System.out.println("ENTER CitizenNumber "+citizenNumber+"
"+avatarSession+" "+ avatarIpAddress +" "+avatarName);
//add the citizen by avatarIoAdress to the database
setProcessing(false, "%Add");
}


//** START QUERYING CITIZEN ATTRIBUTES
public int getAvatarAddress(int whisperPerson){
getAwSdk().address(whisperPerson);
return getAwSdk().intGet(Aw.AVATAR_ADDRESS);
}

public int getCitizenNumber(String avatarName){
getAwSdk().citizenAttributesByName(avatarName);
return getAwSdk().intGet(Aw.CITIZEN_NUMBER);
}
public int getCitizenNumber(int citizenNumber){
getAwSdk().citizenAttributesByNumber(citizenNumber);
return getAwSdk().intGet(Aw.CITIZEN_NUMBER);
}

public String get_afterEvent_AvatarName() {
return getAwSdk().stringGet(Aw.AVATAR_NAME);
}
public int get_afterEvent_AvatarSession() {
return getAwSdk().intGet(Aw.AVATAR_SESSION);
}
public int get_afterEvent_ChatSession() {
return getAwSdk().intGet(Aw.CHAT_SESSION);
}
public String get_afterEvent_Chat() {
return getAwSdk().stringGet(Aw.CHAT_MESSAGE);
}
public int get_afterEvent_ChatType() {
return getAwSdk().intGet(Aw.CHAT_TYPE);
}

Pbs. with Avatar_Add() in java. Any pbs with the C++ and Delphy version

Mar 10, 2000, 6:49am
-----Original Message-----
From: Iwan Tolboom <Ivanhoe> [mailto:iacmtolboom at chello.nl]
Sent: Friday, March 10, 2000 3:16 AM
To: NABETH Thierry
Subject: Java Bots


Hi Thierry,
Could you post this in response to the reaction in the SDK newsgroup.

Dear Faber and Thierry,

Thank you very much for such a quick answer.
This really solved the problem and finally I can start writing bots controlled
through applets on the homepage.
I have lots of purposes where both PSes as citizens can control bots or build
through applets.
This way it is very easy to fine tune access to our world.

Thanks again and also Thierry for his patience and for posting this message.

Here is the resulting code , this is just sample code thus a little messy.
Especially the part that start with the citizenWaitVector is of interest. And
off course the call to findExtraInfo in run().


package awbot;
import java.lang.Thread;
import java.util.Vector;

class TestWait extends Thread {
Aw awSdk = null;

/**
* loads the necessary libraries and instantiates awSdk
*/
public Aw getAwSdk() {
if (awSdk == null) {
try {
System.out.println("load dlls");
System.loadLibrary("Aw");
System.loadLibrary("awjava");
System.out.println("done");
} catch (Exception ex) {
System.out.println("The aw.dll or the awjava.dll is not in
the path: "+ex);
return null;
}
awSdk = new Aw();
awSdk.init(Aw.BUILD);
System.out.println("aw initialized");
}
return awSdk;
}

private String universeUrl = null;
private int citizenNumber = 0;
private String priviledgePassword = null;
private String worldName = null;
private String botName = null;
private String applicationName = null;
private int avatarNumber = 0;

/**
* setter methods of diverse fields
*/
public void setUniverseUrl(String universeUrl){
this.universeUrl = universeUrl;
}
public void setCitizenNumber(String citizenNumber){
this.citizenNumber = Integer.parseInt(citizenNumber);
}
public void setPriviledgePassword(String priviledgePassword){
this.priviledgePassword = priviledgePassword;
}
public void setWorldName(String worldName){
this.worldName = worldName;
}
public void setBotName(String botName){
this.botName = botName;
}
public void setApplicationName(String applicationName){
this.applicationName = applicationName;
}
public void setAvatarNumber(String avatarNumber){
this.avatarNumber = Integer.parseInt(avatarNumber);
}

/**
* getter methods of the diverse fields
*/
public String getUniverseUrl(){
return this.universeUrl;
}
public int getCitizenNumber(){
return this.citizenNumber;
}
public String getPriviledgePassword(){
return this.priviledgePassword;
}
public String getWorldName(){
return this.worldName;
}
public String getBotName(){
return this.botName;
}
public String getApplicationName(){
return this.applicationName;
}
public int getAvatarNumber(){
return this.avatarNumber;
}
/**
* empty constructor
*/
public TestWait(){
}
/**
* Initialize the diverse variables
*/
public void initialize( String[] args){
setUniverseUrl(args[0]);
setCitizenNumber(args[1]);
setPriviledgePassword(args[2]);
setWorldName(args[3]);
setBotName(args[4]);
setApplicationName(args[5]);
setAvatarNumber(args[6]);
}
/**
* note : multiple sessions might connect to multiple universes
* each universe may have multiple bots

*/
public void enterUniverse() {
getAwSdk().create(getUniverseUrl(), 0/*port*/);
}

/**
* let a bot enter a world
*/
public void enterWorld() {
System.out.println("PRE:login");
// login(session.owner, session.pw, session.app, botName);
getAwSdk().setInt (Aw.LOGIN_OWNER, getCitizenNumber());
System.out.println("POST:Aw.LOGIN_OWNER, getCitizenNumber()");
getAwSdk().setString(Aw.LOGIN_PRIVILEGE_PASSWORD,
getPriviledgePassword());
System.out.println("POST:Aw.LOGIN_PRIVILEGE_PASSWORD,
getPriviledgePassword()");
getAwSdk().setString(Aw.LOGIN_APPLICATION, getApplicationName());
System.out.println("POST:Aw.LOGIN_APPLICATION, getApplicationName()");
getAwSdk().setString(Aw.LOGIN_NAME, getBotName());
System.out.println("POST:Aw.LOGIN_NAME, getBotName()");
getAwSdk().login();
System.out.println("POST:login");
// enter the world
getAwSdk().enter(getWorldName(), 0);//getRequestedNumberOfAvatars());
// note: avatar = 0
System.out.println("POST enter");

getAwSdk().setInt(Aw.MY_TYPE, getAvatarNumber());
getAwSdk().stateChange();
System.out.println("POST:stateChange");

//getSelectedBot().setBotInstanceNumber(getAwSdk().instance());
// announce our position
getAwSdk().setInt(Aw.MY_X, 1000); // west
getAwSdk().setInt(Aw.MY_Z, 1000); // north
getAwSdk().setInt(Aw.MY_Y, 1000); //up
// make the bot visible
getAwSdk().stateChange();
//getSelectedBot().say("Starting Java Conversation GeneralBot");
}

//**here start the run part **

public void run() { // I am in here the new thread T launched by
testWait.start();
initEvents(); // I am in the new thread T
while (true) {
getAwSdk().processWait(1000); // I am still in the new thread T
// ###
javax.swing.SwingUtilities.invokeAndWait(awProcessEvent); // to comment !!!!
// #### would run in the Swing thread S !!!!
findExtraInfo();
try{
Thread.sleep(20);
} catch (java.lang.InterruptedException ie){
ie.printStackTrace();
}
}
}
//**START OF EVENTHANDLING PART **
/**
* initialize the events the Bot is interested in
*/
public synchronized void initEvents() {
// session.setselectedBot(this);
System.out.println("PRE :initEvents");
getAwSdk().eventSet(Aw.EVENT_AVATAR_ADD, this,
"handleAvatarAdd", "()V");
// getAwSdk().eventSet(Aw.EVENT_AVATAR_CHANGE, this,
"handleAvatarChange", "()V");
getAwSdk().eventSet(Aw.EVENT_AVATAR_DELETE, this,
"handleAvatarDelete", "()V");
// getAwSdk().eventSet(Aw.EVENT_CHAT, this, "handleChat", "()V");
// getAwSdk().eventSet(Aw.EVENT_TELEGRAM, this, "handleTelegram",
"()V");
// getAwSdk().eventSet(Aw.EVENT_AVATAR_CLICK, this,
"handleAvatarClick", "()V");
System.out.println("POST:initEvents");
// ..... add the other handlers here
}
/**
* The class that holds the information of a citizen
*/
class Citizen {
//AW_EVENT_AVATAR_ADD properties
int AW_AVATAR_SESSION = 0;
String AW_AVATAR_NAME = null;
int AW_AVATAR_X = 0;
int AW_AVATAR_Y = 0;
int AW_AVATAR_Z = 0;
int AW_AVATAR_YAW = 0;
int AW_AVATAR_TYPE = 0;
int AW_AVATAR_GESTURE = 0;
//non AW_EVENT_AVATAR_ADD properties
boolean finished = false;
int ipAddress = 0;
int citizenNumber = 0;
/**
* print all citizen info
*/
public void print(){
System.out.println(
""+ AW_AVATAR_SESSION + " : " + AW_AVATAR_NAME + " X="
+ AW_AVATAR_X + " Y=" + AW_AVATAR_Y + " Z=" + AW_AVATAR_Z
+ " YAW=" + AW_AVATAR_YAW +" TYPE=" + AW_AVATAR_TYPE
+ " GESTURE=" + AW_AVATAR_GESTURE
+ " IP=" + ipAddress + "citnum "+ citizenNumber);
}
}
/**
* the vector that is a placeholder for citizens
*/
Vector citizenWaitVector = new Vector();
int lastExtraInfoItem = 0; //the last citizen on the vector that was
processed
void add (Citizen citizen){
citizenWaitVector.add(citizen);
}
/**
* print all citizens on the vector
*/
void print(){
for(int element=0; element < citizenWaitVector.size(); element++){
((Citizen)citizenWaitVector.elementAt(element)).print();
}
}
/**
* method that finds ip adresses and citizennumbers of all citizens that are
* not yet processed.
*/
void findExtraInfo(){
for(int element = lastExtraInfoItem; element < citizenWaitVector.size();
element++){
Citizen citizen = ((Citizen)citizenWaitVector.elementAt(element));
citizen.ipAddress = getAvatarAddress(citizen.AW_AVATAR_SESSION);
//next piece is to remove leading '[' and trailing ']' from bot
names
char[] citizenCharArray = citizen.AW_AVATAR_NAME.toCharArray();
if( (citizenCharArray[0]=='[') &&
(citizenCharArray[citizenCharArray.length-1]==']') ){
citizen.AW_AVATAR_NAME = String.copyValueOf(citizenCharArray, 1,
citizenCharArray.length-2);
System.out.println("bot :"+citizen.AW_AVATAR_NAME);
}
citizen.citizenNumber=getCitizenNumber(citizen.AW_AVATAR_NAME);
citizen.print();
}
lastExtraInfoItem = citizenWaitVector.size();
}

/**
* method called after an avatar is added
*/
public synchronized void handleAvatarAdd() { // EVENT_AVATAR_ADD
Citizen citizen = new Citizen();
//get the session of the avatar
citizen.AW_AVATAR_SESSION = get_afterEvent_AvatarSession();
citizen.AW_AVATAR_NAME = get_afterEvent_AvatarName();
citizen.AW_AVATAR_X = get_afterEvent_AvatarX();
citizen.AW_AVATAR_Y = get_afterEvent_AvatarY();
citizen.AW_AVATAR_Z = get_afterEvent_AvatarZ();
citizen.AW_AVATAR_YAW = get_afterEvent_AvatarYAW();
citizen.AW_AVATAR_TYPE = get_afterEvent_AvatarType();
citizen.AW_AVATAR_GESTURE = get_afterEvent_AvatarGesture();
add(citizen);
citizen.print();
}
public synchronized void handleAvatarChange() { // EVENT_AVATAR_CHANGE
}
public synchronized void handleAvatarClick() { // EVENT_AVATAR_CLICK
}
public synchronized void handleAvatarDelete() { // EVENT_AVATAR_DELETE

}
public synchronized void handleChat() { // EVENT_CHAT
/* String[] chatTypeString = {"said", "broadcasted", "whispered"};
//say
//get the name of the avatar
String avatarName = get_afterEvent_AvatarName();
String chatText = get_afterEvent_Chat();
int chatTypeInt = get_afterEvent_ChatType();
switch(chatTypeInt){
case 0 : chatSaid(avatarName, chatText);
break;
case 1 : chatBroadcasted(avatarName, chatText);
break;
case 2 : chatWhispered(avatarName, chatText);
break;
}

//Watch this : needs CHAT_SESSION for acquiring the IPadress
//get the session of the avatar
int chatSession = get_afterEvent_ChatSession();
*/ }

public synchronized void chatSaid(String avatarName, String avatarText){
}

public synchronized void chatBroadcasted(String avatarName, String
avatarText){
}

public synchronized void chatWhispered(String avatarName, String
avatarText){
}

public synchronized void handleTelegram() { // EVENT_TELEGRAM
}
//** START QUERYING CITIZEN ATTRIBUTES
public synchronized int getAvatarAddress(int whisperPerson){
getAwSdk().address(whisperPerson);
return getAwSdk().intGet(Aw.AVATAR_ADDRESS);
}

public synchronized int getCitizenNumber(String avatarName){
getAwSdk().citizenAttributesByName(avatarName);
return getAwSdk().intGet(Aw.CITIZEN_NUMBER);
}
public synchronized int getCitizenNumber(int citizenNumber){
getAwSdk().citizenAttributesByNumber(citizenNumber);
return getAwSdk().intGet(Aw.CITIZEN_NUMBER);
}

public synchronized String get_afterEvent_AvatarName() {
return getAwSdk().stringGet(Aw.AVATAR_NAME);
}
public synchronized int get_afterEvent_AvatarSession() {
return getAwSdk().intGet(Aw.AVATAR_SESSION);
}
public synchronized int get_afterEvent_AvatarX() {
return getAwSdk().intGet(Aw.AVATAR_X);
}
public synchronized int get_afterEvent_AvatarY() {
return getAwSdk().intGet(Aw.AVATAR_Y);
}
public synchronized int get_afterEvent_AvatarZ() {
return getAwSdk().intGet(Aw.AVATAR_Z);
}
public synchronized int get_afterEvent_AvatarYAW() {
return getAwSdk().intGet(Aw.AVATAR_YAW);
}
public synchronized int get_afterEvent_AvatarType() {
return getAwSdk().intGet(Aw.AVATAR_TYPE);
}
public synchronized int get_afterEvent_AvatarGesture() {
return getAwSdk().intGet(Aw.AVATAR_GESTURE);
}

public synchronized int get_afterEvent_ChatSession() {
return getAwSdk().intGet(Aw.CHAT_SESSION);
}
public synchronized String get_afterEvent_Chat() {
return getAwSdk().stringGet(Aw.CHAT_MESSAGE);
}
public synchronized int get_afterEvent_ChatType() {
return getAwSdk().intGet(Aw.CHAT_TYPE);
}
//**START OF MAIN
/**
* The main entry point of the Bot.
*/
public static void main(String args[]){
System.out.println("***Statistics bot***");
System.out.println("Please supply the following information");
System.out.println("The url of the universe you want to enter");
System.out.println("Your citizennumber");
System.out.println("Your privilige password");
System.out.println("The name of the world you want to enter");
System.out.println("The name of your bot");
System.out.println("The name of your application");
System.out.println("The number of the representing Avatar");
TestWait testWait= new TestWait();
if(args.length == 7){
testWait.initialize(args);
testWait.enterUniverse();
testWait.enterWorld();
testWait.start();
}
}
}

Iwan Tolboom
My 1D emailadres : mailto:iacmtolboom at chello.nl
My 2D homepage : http://members.ams.chello.nl/iacmtolb/
My 3D hometown : http://www.3dee.nl

Pbs. with Avatar_Add() in java. Any pbs with the C++ and Delphy version

Mar 10, 2000, 6:49am
-----Original Message-----
From: Iwan Tolboom <Ivanhoe> [mailto:iacmtolboom at chello.nl]
Sent: Friday, March 10, 2000 3:16 AM
To: NABETH Thierry
Subject: Java Bots


Hi Thierry,
Could you post this in response to the reaction in the SDK newsgroup.

Dear Faber and Thierry,

Thank you very much for such a quick answer.
This really solved the problem and finally I can start writing bots controlled
through applets on the homepage.
I have lots of purposes where both PSes as citizens can control bots or build
through applets.
This way it is very easy to fine tune access to our world.

Thanks again and also Thierry for his patience and for posting this message.

Here is the resulting code , this is just sample code thus a little messy.
Especially the part that start with the citizenWaitVector is of interest. And
off course the call to findExtraInfo in run().


package awbot;
import java.lang.Thread;
import java.util.Vector;

class TestWait extends Thread {
Aw awSdk = null;

/**
* loads the necessary libraries and instantiates awSdk
*/
public Aw getAwSdk() {
if (awSdk == null) {
try {
System.out.println("load dlls");
System.loadLibrary("Aw");
System.loadLibrary("awjava");
System.out.println("done");
} catch (Exception ex) {
System.out.println("The aw.dll or the awjava.dll is not in
the path: "+ex);
return null;
}
awSdk = new Aw();
awSdk.init(Aw.BUILD);
System.out.println("aw initialized");
}
return awSdk;
}

private String universeUrl = null;
private int citizenNumber = 0;
private String priviledgePassword = null;
private String worldName = null;
private String botName = null;
private String applicationName = null;
private int avatarNumber = 0;

/**
* setter methods of diverse fields
*/
public void setUniverseUrl(String universeUrl){
this.universeUrl = universeUrl;
}
public void setCitizenNumber(String citizenNumber){
this.citizenNumber = Integer.parseInt(citizenNumber);
}
public void setPriviledgePassword(String priviledgePassword){
this.priviledgePassword = priviledgePassword;
}
public void setWorldName(String worldName){
this.worldName = worldName;
}
public void setBotName(String botName){
this.botName = botName;
}
public void setApplicationName(String applicationName){
this.applicationName = applicationName;
}
public void setAvatarNumber(String avatarNumber){
this.avatarNumber = Integer.parseInt(avatarNumber);
}

/**
* getter methods of the diverse fields
*/
public String getUniverseUrl(){
return this.universeUrl;
}
public int getCitizenNumber(){
return this.citizenNumber;
}
public String getPriviledgePassword(){
return this.priviledgePassword;
}
public String getWorldName(){
return this.worldName;
}
public String getBotName(){
return this.botName;
}
public String getApplicationName(){
return this.applicationName;
}
public int getAvatarNumber(){
return this.avatarNumber;
}
/**
* empty constructor
*/
public TestWait(){
}
/**
* Initialize the diverse variables
*/
public void initialize( String[] args){
setUniverseUrl(args[0]);
setCitizenNumber(args[1]);
setPriviledgePassword(args[2]);
setWorldName(args[3]);
setBotName(args[4]);
setApplicationName(args[5]);
setAvatarNumber(args[6]);
}
/**
* note : multiple sessions might connect to multiple universes
* each universe may have multiple bots

*/
public void enterUniverse() {
getAwSdk().create(getUniverseUrl(), 0/*port*/);
}

/**
* let a bot enter a world
*/
public void enterWorld() {
System.out.println("PRE:login");
// login(session.owner, session.pw, session.app, botName);
getAwSdk().setInt (Aw.LOGIN_OWNER, getCitizenNumber());
System.out.println("POST:Aw.LOGIN_OWNER, getCitizenNumber()");
getAwSdk().setString(Aw.LOGIN_PRIVILEGE_PASSWORD,
getPriviledgePassword());
System.out.println("POST:Aw.LOGIN_PRIVILEGE_PASSWORD,
getPriviledgePassword()");
getAwSdk().setString(Aw.LOGIN_APPLICATION, getApplicationName());
System.out.println("POST:Aw.LOGIN_APPLICATION, getApplicationName()");
getAwSdk().setString(Aw.LOGIN_NAME, getBotName());
System.out.println("POST:Aw.LOGIN_NAME, getBotName()");
getAwSdk().login();
System.out.println("POST:login");
// enter the world
getAwSdk().enter(getWorldName(), 0);//getRequestedNumberOfAvatars());
// note: avatar = 0
System.out.println("POST enter");

getAwSdk().setInt(Aw.MY_TYPE, getAvatarNumber());
getAwSdk().stateChange();
System.out.println("POST:stateChange");

//getSelectedBot().setBotInstanceNumber(getAwSdk().instance());
// announce our position
getAwSdk().setInt(Aw.MY_X, 1000); // west
getAwSdk().setInt(Aw.MY_Z, 1000); // north
getAwSdk().setInt(Aw.MY_Y, 1000); //up
// make the bot visible
getAwSdk().stateChange();
//getSelectedBot().say("Starting Java Conversation GeneralBot");
}

//**here start the run part **

public void run() { // I am in here the new thread T launched by
testWait.start();
initEvents(); // I am in the new thread T
while (true) {
getAwSdk().processWait(1000); // I am still in the new thread T
// ###
javax.swing.SwingUtilities.invokeAndWait(awProcessEvent); // to comment !!!!
// #### would run in the Swing thread S !!!!
findExtraInfo();
try{
Thread.sleep(20);
} catch (java.lang.InterruptedException ie){
ie.printStackTrace();
}
}
}
//**START OF EVENTHANDLING PART **
/**
* initialize the events the Bot is interested in
*/
public synchronized void initEvents() {
// session.setselectedBot(this);
System.out.println("PRE :initEvents");
getAwSdk().eventSet(Aw.EVENT_AVATAR_ADD, this,
"handleAvatarAdd", "()V");
// getAwSdk().eventSet(Aw.EVENT_AVATAR_CHANGE, this,
"handleAvatarChange", "()V");
getAwSdk().eventSet(Aw.EVENT_AVATAR_DELETE, this,
"handleAvatarDelete", "()V");
// getAwSdk().eventSet(Aw.EVENT_CHAT, this, "handleChat", "()V");
// getAwSdk().eventSet(Aw.EVENT_TELEGRAM, this, "handleTelegram",
"()V");
// getAwSdk().eventSet(Aw.EVENT_AVATAR_CLICK, this,
"handleAvatarClick", "()V");
System.out.println("POST:initEvents");
// ..... add the other handlers here
}
/**
* The class that holds the information of a citizen
*/
class Citizen {
//AW_EVENT_AVATAR_ADD properties
int AW_AVATAR_SESSION = 0;
String AW_AVATAR_NAME = null;
int AW_AVATAR_X = 0;
int AW_AVATAR_Y = 0;
int AW_AVATAR_Z = 0;
int AW_AVATAR_YAW = 0;
int AW_AVATAR_TYPE = 0;
int AW_AVATAR_GESTURE = 0;
//non AW_EVENT_AVATAR_ADD properties
boolean finished = false;
int ipAddress = 0;
int citizenNumber = 0;
/**
* print all citizen info
*/
public void print(){
System.out.println(
""+ AW_AVATAR_SESSION + " : " + AW_AVATAR_NAME + " X="
+ AW_AVATAR_X + " Y=" + AW_AVATAR_Y + " Z=" + AW_AVATAR_Z
+ " YAW=" + AW_AVATAR_YAW +" TYPE=" + AW_AVATAR_TYPE
+ " GESTURE=" + AW_AVATAR_GESTURE
+ " IP=" + ipAddress + "citnum "+ citizenNumber);
}
}
/**
* the vector that is a placeholder for citizens
*/
Vector citizenWaitVector = new Vector();
int lastExtraInfoItem = 0; //the last citizen on the vector that was
processed
void add (Citizen citizen){
citizenWaitVector.add(citizen);
}
/**
* print all citizens on the vector
*/
void print(){
for(int element=0; element < citizenWaitVector.size(); element++){
((Citizen)citizenWaitVector.elementAt(element)).print();
}
}
/**
* method that finds ip adresses and citizennumbers of all citizens that are
* not yet processed.
*/
void findExtraInfo(){
for(int element = lastExtraInfoItem; element < citizenWaitVector.size();
element++){
Citizen citizen = ((Citizen)citizenWaitVector.elementAt(element));
citizen.ipAddress = getAvatarAddress(citizen.AW_AVATAR_SESSION);
//next piece is to remove leading '[' and trailing ']' from bot
names
char[] citizenCharArray = citizen.AW_AVATAR_NAME.toCharArray();
if( (citizenCharArray[0]=='[') &&
(citizenCharArray[citizenCharArray.length-1]==']') ){
citizen.AW_AVATAR_NAME = String.copyValueOf(citizenCharArray, 1,
citizenCharArray.length-2);
System.out.println("bot :"+citizen.AW_AVATAR_NAME);
}
citizen.citizenNumber=getCitizenNumber(citizen.AW_AVATAR_NAME);
citizen.print();
}
lastExtraInfoItem = citizenWaitVector.size();
}

/**
* method called after an avatar is added
*/
public synchronized void handleAvatarAdd() { // EVENT_AVATAR_ADD
Citizen citizen = new Citizen();
//get the session of the avatar
citizen.AW_AVATAR_SESSION = get_afterEvent_AvatarSession();
citizen.AW_AVATAR_NAME = get_afterEvent_AvatarName();
citizen.AW_AVATAR_X = get_afterEvent_AvatarX();
citizen.AW_AVATAR_Y = get_afterEvent_AvatarY();
citizen.AW_AVATAR_Z = get_afterEvent_AvatarZ();
citizen.AW_AVATAR_YAW = get_afterEvent_AvatarYAW();
citizen.AW_AVATAR_TYPE = get_afterEvent_AvatarType();
citizen.AW_AVATAR_GESTURE = get_afterEvent_AvatarGesture();
add(citizen);
citizen.print();
}
public synchronized void handleAvatarChange() { // EVENT_AVATAR_CHANGE
}
public synchronized void handleAvatarClick() { // EVENT_AVATAR_CLICK
}
public synchronized void handleAvatarDelete() { // EVENT_AVATAR_DELETE

}
public synchronized void handleChat() { // EVENT_CHAT
/* String[] chatTypeString = {"said", "broadcasted", "whispered"};
//say
//get the name of the avatar
String avatarName = get_afterEvent_AvatarName();
String chatText = get_afterEvent_Chat();
int chatTypeInt = get_afterEvent_ChatType();
switch(chatTypeInt){
case 0 : chatSaid(avatarName, chatText);
break;
case 1 : chatBroadcasted(avatarName, chatText);
break;
case 2 : chatWhispered(avatarName, chatText);
break;
}

//Watch this : needs CHAT_SESSION for acquiring the IPadress
//get the session of the avatar
int chatSession = get_afterEvent_ChatSession();
*/ }

public synchronized void chatSaid(String avatarName, String avatarText){
}

public synchronized void chatBroadcasted(String avatarName, String
avatarText){
}

public synchronized void chatWhispered(String avatarName, String
avatarText){
}

public synchronized void handleTelegram() { // EVENT_TELEGRAM
}
//** START QUERYING CITIZEN ATTRIBUTES
public synchronized int getAvatarAddress(int whisperPerson){
getAwSdk().address(whisperPerson);
return getAwSdk().intGet(Aw.AVATAR_ADDRESS);
}

public synchronized int getCitizenNumber(String avatarName){
getAwSdk().citizenAttributesByName(avatarName);
return getAwSdk().intGet(Aw.CITIZEN_NUMBER);
}
public synchronized int getCitizenNumber(int citizenNumber){
getAwSdk().citizenAttributesByNumber(citizenNumber);
return getAwSdk().intGet(Aw.CITIZEN_NUMBER);
}

public synchronized String get_afterEvent_AvatarName() {
return getAwSdk().stringGet(Aw.AVATAR_NAME);
}
public synchronized int get_afterEvent_AvatarSession() {
return getAwSdk().intGet(Aw.AVATAR_SESSION);
}
public synchronized int get_afterEvent_AvatarX() {
return getAwSdk().intGet(Aw.AVATAR_X);
}
public synchronized int get_afterEvent_AvatarY() {
return getAwSdk().intGet(Aw.AVATAR_Y);
}
public synchronized int get_afterEvent_AvatarZ() {
return getAwSdk().intGet(Aw.AVATAR_Z);
}
public synchronized int get_afterEvent_AvatarYAW() {
return getAwSdk().intGet(Aw.AVATAR_YAW);
}
public synchronized int get_afterEvent_AvatarType() {
return getAwSdk().intGet(Aw.AVATAR_TYPE);
}
public synchronized int get_afterEvent_AvatarGesture() {
return getAwSdk().intGet(Aw.AVATAR_GESTURE);
}

public synchronized int get_afterEvent_ChatSession() {
return getAwSdk().intGet(Aw.CHAT_SESSION);
}
public synchronized String get_afterEvent_Chat() {
return getAwSdk().stringGet(Aw.CHAT_MESSAGE);
}
public synchronized int get_afterEvent_ChatType() {
return getAwSdk().intGet(Aw.CHAT_TYPE);
}
//**START OF MAIN
/**
* The main entry point of the Bot.
*/
public static void main(String args[]){
System.out.println("***Statistics bot***");
System.out.println("Please supply the following information");
System.out.println("The url of the universe you want to enter");
System.out.println("Your citizennumber");
System.out.println("Your privilige password");
System.out.println("The name of the world you want to enter");
System.out.println("The name of your bot");
System.out.println("The name of your application");
System.out.println("The number of the representing Avatar");
TestWait testWait= new TestWait();
if(args.length == 7){
testWait.initialize(args);
testWait.enterUniverse();
testWait.enterWorld();
testWait.start();
}
}
}

Iwan Tolboom
My 1D emailadres : mailto:iacmtolboom at chello.nl
My 2D homepage : http://members.ams.chello.nl/iacmtolb/
My 3D hometown : http://www.3dee.nl

Pbs. with Avatar_Add() in java. Any pbs with the C++ and Delphy version

Mar 10, 2000, 6:53am
Hello,

This message is exactly the same as the previous one.
Just forget it.

Sorry about this (I had some configuration problems).

Thierry

Java SDK - Early release

Nov 5, 2002, 1:15pm
Hello,

Please to see that there is more support for the java language.


I just wanted to let you know that (after 2 years !!!), we have released a
new
version of the AW java encapsulation.
http://www.insead.edu/CALT/Project/AWJavaBots/

This new version (contrary to the previous one) try to be as minimalist
as possible, and just to provide a java interface to the aw sdk.
Almost all of the functions are implemented, and you can set handlers.
The callbacks are however not implemented.

This library is relatively robust, since it is used to implement a
relatively complex
bot application (change management role playing game).
It has even been use for writing multithreading applications.
(note however that in that case, the setting and handling of the events
have to run in a same thread).


Very simple example using this library.
http://www.insead.edu/CALT/Project/AWJavaBots/Distribution/GreeterBotApplica
tion.java

Best regards,

Thierry Nabeth
Research Fellow
INSEAD CALT
http://www.insead.edu/CALT/

Java SDK - Early release

Nov 5, 2002, 1:29pm
Hello,

(this message only correct a few errors in the previous message)


I just wanted to let you know that (after 2 years !!!), we have released
a new version of the AW java encapsulation available at:
http://www.insead.edu/CALT/Project/AWJavaBots/

This new version (contrary to the previous one) tries to be as minimalist
as possible, and just to provide a java interface to the aw sdk.
Almost all of the functions are encapsulated, and you can set handlers.
The callbacks are however not implemented yet.

This library is relatively robust, since it is used to implement a
relatively complex bot application (change management role playing game).
It has even been used for writing multithreading applications.
(note however that in that case, the setting and handling of the events
have to run in a same thread).


Very simple example using this library.
http://www.insead.edu/CALT/Project/AWJavaBots/Distribution/GreeterBotApplica
tion.java

Best regards,

Thierry Nabeth
Research Fellow
INSEAD CALT
http://www.insead.edu/CALT/

Java SDK - Early release

Nov 5, 2002, 1:37pm
Well, there seems to be some wrapping problem. :#- at èç ..... :-[
I have now set the wrapping to the maximum (132 characters) and I hope
it will not wrapped the following url.
If it is however the case, please append the 2 parts of the url.

GreeterBotApplication.java
Simple application using AWJavaBots:
http://www.insead.edu/CALT/Project/AWJavaBots/Distribution/GreeterBotApplication.java

Thierry

Moving Objects from one world to another

Aug 7, 2003, 3:45pm
Hello Everybody,

I would be thankful to anyone who can guide me to be able to exchange/copy a
cluster of objects or groups of objects from one world to another. I know
that bots can be used when objects are to be moved from one place to another
when the distances involved are large and the movement is confined to the
same world. Is it possible to move objects/ groups of objects to different
worlds and restore their functionality there in a different world?Do we have
anything like a cut and paste of objects in Active world?

Please reply to: Krishna.gollakota at insead.edu

Thanks and regards,

Krishna

Java SDK - Early release

Nov 5, 2002, 1:15pm
Hello,

Please to see that there is more support for the java language.


I just wanted to let you know that (after 2 years !!!), we have released a
new
version of the AW java encapsulation.
http://www.insead.edu/CALT/Project/AWJavaBots/

This new version (contrary to the previous one) try to be as minimalist
as possible, and just to provide a java interface to the aw sdk.
Almost all of the functions are implemented, and you can set handlers.
The callbacks are however not implemented.

This library is relatively robust, since it is used to implement a
relatively complex
bot application (change management role playing game).
It has even been use for writing multithreading applications.
(note however that in that case, the setting and handling of the events
have to run in a same thread).


Very simple example using this library.
http://www.insead.edu/CALT/Project/AWJavaBots/Distribution/GreeterBotApplica
tion.java

Best regards,

Thierry Nabeth
Research Fellow
INSEAD CALT
http://www.insead.edu/CALT/

Java SDK - Early release

Nov 5, 2002, 1:29pm
Hello,

(this message only correct a few errors in the previous message)


I just wanted to let you know that (after 2 years !!!), we have released
a new version of the AW java encapsulation available at:
http://www.insead.edu/CALT/Project/AWJavaBots/

This new version (contrary to the previous one) tries to be as minimalist
as possible, and just to provide a java interface to the aw sdk.
Almost all of the functions are encapsulated, and you can set handlers.
The callbacks are however not implemented yet.

This library is relatively robust, since it is used to implement a
relatively complex bot application (change management role playing game).
It has even been used for writing multithreading applications.
(note however that in that case, the setting and handling of the events
have to run in a same thread).


Very simple example using this library.
http://www.insead.edu/CALT/Project/AWJavaBots/Distribution/GreeterBotApplica
tion.java

Best regards,

Thierry Nabeth
Research Fellow
INSEAD CALT
http://www.insead.edu/CALT/

Java SDK - Early release

Nov 5, 2002, 1:37pm
Well, there seems to be some wrapping problem. :#- at èç ..... :-[
I have now set the wrapping to the maximum (132 characters) and I hope
it will not wrapped the following url.
If it is however the case, please append the 2 parts of the url.

GreeterBotApplication.java
Simple application using AWJavaBots:
http://www.insead.edu/CALT/Project/AWJavaBots/Distribution/GreeterBotApplication.java

Thierry

Moving Objects from one world to another

Aug 7, 2003, 3:45pm
Hello Everybody,

I would be thankful to anyone who can guide me to be able to exchange/copy a
cluster of objects or groups of objects from one world to another. I know
that bots can be used when objects are to be moved from one place to another
when the distances involved are large and the movement is confined to the
same world. Is it possible to move objects/ groups of objects to different
worlds and restore their functionality there in a different world?Do we have
anything like a cut and paste of objects in Active world?

Please reply to: Krishna.gollakota at insead.edu

Thanks and regards,

Krishna

Moving Objects from one world to another

Aug 7, 2003, 3:45pm
Hello Everybody,

I would be thankful to anyone who can guide me to be able to exchange/copy a
cluster of objects or groups of objects from one world to another. I know
that bots can be used when objects are to be moved from one place to another
when the distances involved are large and the movement is confined to the
same world. Is it possible to move objects/ groups of objects to different
worlds and restore their functionality there in a different world?Do we have
anything like a cut and paste of objects in Active world?

Please reply to: Krishna.gollakota at insead.edu

Thanks and regards,

Krishna

Moving Objects from one world to another

Aug 7, 2003, 3:45pm
Hello Everybody,

I would be thankful to anyone who can guide me to be able to exchange/copy a
cluster of objects or groups of objects from one world to another. I know
that bots can be used when objects are to be moved from one place to another
when the distances involved are large and the movement is confined to the
same world. Is it possible to move objects/ groups of objects to different
worlds and restore their functionality there in a different world?Do we have
anything like a cut and paste of objects in Active world?

Please reply to: Krishna.gollakota at insead.edu

Thanks and regards,

Krishna

Moving Objects from one world to another

Aug 7, 2003, 3:45pm
Hello Everybody,

I would be thankful to anyone who can guide me to be able to exchange/copy a
cluster of objects or groups of objects from one world to another. I know
that bots can be used when objects are to be moved from one place to another
when the distances involved are large and the movement is confined to the
same world. Is it possible to move objects/ groups of objects to different
worlds and restore their functionality there in a different world?Do we have
anything like a cut and paste of objects in Active world?

Please reply to: Krishna.gollakota at insead.edu

Thanks and regards,

Krishna

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