Detecting avatar movement stopped near friend avatar?

Post here your questions about the OpenSpace 2.x or notify bugs and suggestions.

Moderators: Lapo, Bax

harlanji
Posts: 8
Joined: 15 Sep 2011, 01:50

Detecting avatar movement stopped near friend avatar?

Postby harlanji » 07 Feb 2012, 23:49

Hi,

I have been searching the boards for a while looking for how to detect when an avatar has stopped. It seems that I can do it with onMovementStop on my sub-class, or AvatarEvent.STOP_MOVEMENT if I have a trigger location. Perhaps there is another method I've overlooked? Neither of these seem to quite meet my desire:

What I would like to do is have a "high five" action, where a player's avatar walks over to another avatar and then gives it a high five. I realize one way would be to not allow high five to happen unless the avatar is already in position, and skip the automatic walking, but we are trying to have very simple interaction.

So drilling down, when the high five action is triggered (eg. clicking on friend avatar), I want to:
1) find target position, friend's location but with y+1
2) if there, just do it (ie. play some animation), done
3) if not there, walk there and add a listener for movement stopped
4) when we're there (listener triggered), remove listener, do it, done.
Note) I've simplified, but I want robustness such as following the friend if they've moved, or aborting if they've signed off, but these aren't the issue :)


onMovementStop could possibly be made to do what I want if I make it dispatch an event, and that's okay, but I feel like I'm going against the grain with that and am hoping for a more natural solution.

AvatarEvent.STOP_MOVEMENT seems to require a trigger at my destination tile, which it seems can only be added at runtime via inventory items?

I am open to suggestion for how to achieve this type of behavior to detect when an avatar has arrived at a dynamic position.

Thanks & regards,

Harlan
User avatar
Bax
Site Admin
Posts: 4612
Joined: 29 Mar 2005, 09:50
Location: Italy
Contact:

Postby Bax » 09 Feb 2012, 10:42

The AvatarEvent.STOP_MOVEMENT is fine, but it requires you to add a trigger to all the tiles in the Editor.. not very practical.
So I think the best way is to go with onMovementStop on the Avatar class.
Paolo Bax
The SmartFoxServer Team

Return to “OpenSpace v2 discussions and help”

Who is online

Users browsing this forum: No registered users and 9 guests