123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # sampleavatarrotate.py
- #print "sampleavatarrotate.................................."
- import rxactor
- import sys
- import clr
- asm = clr.LoadAssemblyByName('OpenSim.Region.ScriptEngine.Common')
- Vector3 = asm.OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3
- import random
- import math
- # Rotate avatar relatively 90 degrees right
- class RotRight(rxactor.Actor):
- def GetScriptClassName():
- return "sampleavatarrotate.RotRight"
- def EventCreated(self):
- super(self.__class__,self).EventCreated()
- print "ClientScripting.RotRight created"
- def EventTouch(self,vAvatar):
- rotresult = self.llEuler2Rot(Vector3(0,0,math.pi*-0.5))
- vAvatar.SetRelativeRot(rotresult)
- self.llShout(0,"90 degrees right")
- # Rotate north, south, east,west
- class RotMainDirs(rxactor.Actor):
- def GetScriptClassName():
- return "sampleavatarrotate.RotMainDirs"
- def EventCreated(self):
- super(self.__class__,self).EventCreated()
- print "ClientScripting.RotMainDirs created"
- self.Status = 0
- def EventTouch(self,vAvatar):
- if(self.Status == 0): # North
- rotresult = self.llEuler2Rot(Vector3(0,0,math.pi*0.5))
- self.llShout(0,"North")
- elif(self.Status == 1): # South
- rotresult = self.llEuler2Rot(Vector3(0,0,math.pi*1.5))
- self.llShout(0,"South")
- elif(self.Status == 2): # East
- rotresult = self.llEuler2Rot(Vector3(0,0,0))
- self.llShout(0,"East")
- elif(self.Status == 3): # West
- rotresult = self.llEuler2Rot(Vector3(0,0,math.pi))
- self.llShout(0,"West")
- self.Status += 1
- if(self.Status > 3):
- self.Status = 0
- vAvatar.llSetRot(rotresult)
-
-
- # Rotate avatar towards this object
- class RotTowardsMe(rxactor.Actor):
- def GetScriptClassName():
- return "sampleavatarrotate.RotTowardsMe"
- def EventCreated(self):
- super(self.__class__,self).EventCreated()
- print "ClientScripting.RotTowardsMe created"
- def EventTouch(self,vAvatar):
- avatar_forward = self.llRot2Fwd(vAvatar.llGetRot())
- avatar_toward = self.llVecNorm(self.llGetPos() - vAvatar.llGetPos())
- rotresult = self.llRotBetween(avatar_forward,avatar_toward)
- vAvatar.llSetRot(rotresult)
- self.llShout(0,"Towards me!")
-
-
-
|