Trigger words: LIYL1 - LIYL14


This product was designed for auto DJ Script found here. Set the seconds to 15 and the music will trigger seamlessly. Below is instructions pulled from the link. If you're not into using scripting, that is fine, this product works just like any other music trigger. Use it how you normally would. :)


If you enjoy this music, please take some time to give support to the artists. Their Soundclouds can be found here:
Alkaaz Soundcloud

KARRA Soundcloud

Introduction

This is a dj script requested by @blackdragonknight. The purpose of this script is to make being a dj easier by automating the trigger process.
Note: This script was designed to work only on songs that meet the following criteria:
-The song must be split into at least 2 triggers.
-The trigger word used for each part of the song must not change.
-The trigger word must contain numbers at the end.
Example Triggers:
Code
trigger1
trigger2
trigger3

Instructions

Step 1: Make sure IMVU is open and you are in a room where you want to play the song.
Step 2: Make sure the IMVU chat window in open.
Step 3: Download AutoIT from their website here. Autoit is the scripting language this script is written in.
Step 4: After installing AutoIT, open the script editor (SciTE) that comes with it and copy/paste the code below into it.
Step 5: In SciTE, go up to Tools and click Go (or press F5 on your keyboard). The script will start and be waiting for you to press one of the keys in the next step.
Step 6: Press F6 on your keyboard. This tells the script you want to play a song. It will bring IMVU to the foreground and begin asking you for information.
Step 7: The first box that opens asks you for the trigger word. This is the word you would type into the chat to play part of the song. Make sure you don't type in the numbers. Example: If the trigger is MySong1, type in MySong.
Step 8: The next box that opens asks for you the first trigger's number. Example: If the first trigger is MySong1, then type in 1.
Step 9: The next box that opens asks you for the last trigger's number. Example: If the last trigger is MySong15, then type in 15.
Step 10: The last box that opens asks you for the last trigger's duration in seconds. Example: If each trigger lasts 20 seconds long you would type in 20.

Once you have entered in the information in all the boxes, if all went well, the script will proceed to start typing the triggers into the chat. If the script goes 'rogue' on you, press ctrl + pause/break keys on your keyboard in the script editor. This will stop the program. Sometimes the script likes to start the song on it's second trigger instead of the first. If this is happening to you, set the starting number at 0 (zero), if the trigger starts on 1. Make sure your cursor is clicked into the compiler (the box of code below the script) and not in the actual script itself to prevent accidently typing unwanted text into the script, causing an error.

Code to Copy Starts here:

;~ This is the key you press to start playing the song
HotKeySet("{F6}", "Start")

;~ This is the key you press to stop playing the song.
HotKeySet("{F7}", "StopSong")

;~ This is the key that closes the script
HotKeySet("{ESC}", "Terminate")

;Set global variables
Global $sSleep = 0
Global $bStop = False

;The trigger phrase all triggers are named after
Global $sTriggerWord

;The number the trigger begins on Ex: mir13
Global $iTriggerBegin

;The number the trigger ends on Ex: mir25
Global $iTriggerEnd

;The length of the truggers Ex: 20(sec)
Global $iTriggerLength

;~ This keeps the script from closing
While 1
   Sleep(100)
Wend

Func Start()
   ;Reset the stop variable if the user starts a new song after stopping the old one
   If($bStop = True) Then
     $bStop = False
   EndIf

   ;Check to make sure IMVU is running
   If (IMVUisRunning() = False) Then
     ;Exist the script if IMVU is not running
     Terminate()
   EndIf

   ;Bring IMVU to the front
   BringIMVUToFront()

   ;Setup the song variables
   SetupSong()

   ;Pauses the script for 1 second to add a small delay before the script starts typing the triggers
   Sleep(1000)

   ;Play the song
   PlaySong();
EndFunc

;~ This function sets up the input variables the script needs to play the song
Func SetupSong()
   $sTriggerWord = InputBox("Enter Trigger Word", "Please type in the trigger word without any numbers")

   ConsoleWrite($sTriggerWord & @LF)

   While Not StringIsDigit($iTriggerBegin)
     $iTriggerBegin = GetTriggerStart()
   WEnd

   ConsoleWrite($iTriggerBegin & @LF)

   While Not StringIsDigit($iTriggerEnd)
     $iTriggerEnd = GetTriggerEnd()
   WEnd

   ConsoleWrite($iTriggerEnd & @LF)

   While Not StringIsDigit($iTriggerLength)
     $iTriggerLength = GetTriggerLength()
   WEnd

   ConsoleWrite($iTriggerLength & @LF)
EndFunc

;~ This function plays the song by typing the triggers into the chat
Func PlaySong()
   $iBegin = $iTriggerBegin
   Do
     If($bStop = True) Then
       return
     EndIf
     Send($sTriggerWord & $iBegin)
     Send("{ENTER}")
     Sleep($iTriggerLength * 1000)
     $iBegin = $iBegin + 1
   Until $iBegin = $iTriggerEnd + 1
EndFunc

;~ This function stops the song
Func StopSong()
   $bStop = True
EndFunc


;~ -----------------------------------------------------------
;~ WARNING: DO NOT EDIT CODE BELOW THIS LINE
;~ -----------------------------------------------------------

Func GetTriggerStart()
   return DisplayInputBox("Enter Trigger Begin", "Please type in the number the belongs to the first trigger")
EndFunc

Func GetTriggerEnd()
   return DisplayInputBox("Enter Trigger End", "Please type in the number the belongs to the last trigger")
EndFunc

Func GetTriggerLength()
   return DisplayInputBox("Enter Trigger Length", "Please type in the length of the trigger in seconds")
EndFunc

Func DisplayInputBox($sTitle, $sBody)
   return InputBox($sTitle, $sBody)
EndFunc

;~ This function closes the script
Func Terminate()
   Exit 0
EndFunc

;~ This function Detects if the IMVUClient is running
Func IMVUIsRunning()
   If ProcessExists("IMVUClient.exe") OR ProcessExists("IMVUQualityAgent.exe") Then
     Return True
   Else
     Return False
   EndIf
EndFunc

;~ This function gets the IMVUClient window
Func GetIMVUWindow()
   Opt("WinTitleMatchMode", 4)
   $hICWindow = WinGetHandle("[CLASS:ImvuNativeWindow]")
   return $hICWindow
EndFunc

;~ The function brings the IMVU client to the foreground so we don't accidently type into something else
Func BringIMVUToFront()
   $hICWindow = GetIMVUWindow()
   WinActivate($hICWindow)
   WinWait($hICWindow)
EndFunc