40 lines
1.8 KiB
C#
40 lines
1.8 KiB
C#
using OpenMetaverse;
|
|
|
|
namespace BetterSecondBot.Commands.Self
|
|
{
|
|
public class PointAt : CoreCommand_1arg
|
|
{
|
|
public override string[] ArgTypes { get { return new[] { "Avatar" }; } }
|
|
public override string[] ArgHints { get { return new[] { "Avatar [UUID or Firstname Lastname]" }; } }
|
|
public override string Helpfile { get { return "Makes the bot turn to face [ARG 1] and point at them (if found)"; } }
|
|
public override bool CallFunction(string[] args)
|
|
{
|
|
if (base.CallFunction(args) == true)
|
|
{
|
|
if (UUID.TryParse(args[0], out UUID testavatar) == true)
|
|
{
|
|
if (bot.GetClient.Network.CurrentSim.AvatarPositions.ContainsKey(testavatar) == true)
|
|
{
|
|
bot.ResetAnimations();
|
|
bot.GetClient.Self.Stand();
|
|
bot.GetClient.Self.Movement.TurnToward(bot.GetClient.Network.CurrentSim.AvatarPositions[testavatar]);
|
|
bot.GetClient.Self.Movement.SendUpdate();
|
|
bot.GetClient.Self.AnimationStart(Animations.POINT_YOU, true);
|
|
bot.GetClient.Self.PointAtEffect(bot.GetClient.Self.AgentID, testavatar, new Vector3d(0, 0, 0), PointAtType.Select, UUID.Random());
|
|
bot.GetClient.Self.BeamEffect(bot.GetClient.Self.AgentID, testavatar, new Vector3d(0, 0, 2), new Color4(255, 255, 255, 1), (float)3.0, UUID.Random());
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return Failed("Cant find UUID in sim");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return Failed("UUID is not vaild");
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
}
|