You can download this script: click here.
[Head] Type=Script Version=2.0 [Settings] Origin=0.000n 0.000w 0.00a 0.0° [Script] ################################### # The RandomTeleport Bot # # a Xelagot script # # (c) 1999 Alex Grigny de Castro # ################################### # Look at the begining of the script for the following data, # which may be changed to suit your needs: # @Centre = 0n 0w 0a 0 # %Radius = 370 # $TportName = "name rantport" # You must mark an object which will serve as random teleport # by putting in its action field: # 'create name rantport' # as specified in the statement # $TportName = "name rantport" # The bot must be near this object. # When the script is run, the bot scans the area, finds the object, # and adds a 'bump teleport' to the action field of the object, # according to what has been specified # by %Radius and @Centre. # @Centre can be anywhere, it is the centre of a circumference # of radius %Radius metres, where the person will be teleported to. # The bot will sense if someone clicks on the teleport object: # as soon as that happens and the person # gets teleported by the object, # the bot changes the 'bump teleport' part # of the action field in the object to a random value # %Radius metres away from @Centre, for the next victim :) var $Error var @QueryPos, %IsQuerying var $TportName, ~Tport, %Tport var ~TportNew, $TportDes, $TportAct var %TportNum, %clicked var @Centre, %Radius Label Top ################# DATA ################## @Centre = 0n 0w 0a 0 %Radius = 370 $TportName = "name rantport" ######################################### ClearLists %IsQuerying = 0 %clicked = 0 %TportNum = 0 OnWorldReconnectEvent Reconnect OnQueryCompleteEvent QueryComplete Say Installing random teleport. Scanning... Gosub ScanArea Label WaitForQuery IfInt %IsQuerying = 1 Goto WaitForQuery Say Scanning done... Searching for teleport object... # calculate tport Gosub FindTport $Error = "not found" IfInt %TportNum <> 0 Gosub ChangeTport Else Goto End Say Random teleport installed OnObjectClickEvent ObjectClick Label WaitForClick IfInt %clicked = 1 Gosub ChangeTport IfInt %TportNum <> 0 Goto WaitForClick $Error = "" Label End Concat $a "Aborting script... " $Error Say $a End Sub ScanArea %IsQuerying = 1 QueryAt @Centre EndSub Event Reconnect Say Got disconnected... IfInt %IsQuerying = 1 Gosub ScanArea Else ResetTo Top EndEvent Event QueryComplete %IsQuerying = 0 EndEvent Sub FindTport Concat $Error "Teleport object not found in this area. " Concat $Error $Error "Please include in Action 'create " $TportName "'" FilterClear ResClear FilterAction $TportName ResFromSurveyFilter IfGetResObjectItem ~Tport 1 GetObjectNumber %TportNum ~Tport Else %TportNum = 0 EndSub Sub ChangeTport # may NOT be called from an event handler Gosub ClearConfirmed Gosub CalculateTport ~TportNew = ~Tport GetAction ~TportNew $TportAct ObjectModify ~Tport ~TportNew ~Tport = ~TportNew GetObjectNumber %TportNum ~Tport %clicked = 0 EndSub Sub CalculateTport Random %a 0 360 @t = @Centre LocMove3d @t %Radius %a 0 LocTurn @t @Centre GetRotation %t @t IntDiv %t %t 10 IntMul %t %t 10 GetRotation @t %t GetTeleport $t @t Concat $TportAct "create " $TportName "; activate teleport " $t EndSub Event ObjectClick GetTargetObject ~z GetObjectNumber %z ~z IfInt %z = %TportNum %clicked = 1 Else %clicked = 0 EndEvent Sub ClearConfirmed ClearListAS ClearListAF ClearListDS ClearListDF EndSub |