Calling to helpful Jscript and VB script knowledge user. I need help in converting the following VB script into Jscript. I had been learning some minor Jscripting and hopes to expand this VB script with the knowledge of Jscript I learnt. However, I do not know VB script very well. Hence, hoping for a kind soul to help converting them.
Thanks in advance.
The script is as follows:
sub OnSpell (strTriggerName, strTriggerLine, aryWildcards)
dim chant
dim spellname
dim minutes
' spell chant was from previous trigger
chant = world.GetVariable ("LastSpellName")
' work out spell duration based on chant
Select Case chant
Case "Voluntas ferrum!"
minutes = 25
spellname = "IW"
Case "Voluntas movimas!"
minutes = 26
spellname = "PFH"
Case "Rubber"
minutes = 4.4
spellname = "Mi.Phys"
Case "Major kretsz rex xero"
minutes = 4.4
spellname = "Ma.Phys"
End select
call NewSpell (spellname, aryWildcards (1), minutes)
end sub
sub NewSpell (spellname, target, minutes)
dim number
' get a unique number
number = world.GetUniqueNumber
' Flags:
' 1 = enabled
' 4 = one shot (once only)
' 1024 = replace any of same name
' add a timer to go off after the appropriate time
world.AddTimer "SpellTimer_" & number, 0, minutes - 1, 50, "", _
1 + 4 + 1024, "OnSpellTimer"
' remember when the spell expires, the target and the spell name
world.setvariable "SpellTimer_Time_" & number, _
DateAdd ("n", minutes, Now)
world.setvariable "SpellTimer_Name_" & number, target
world.setvariable "SpellTimer_Spellname_" & number, spellname
world.deletevariable ("LastSpellName")
end sub
sub OnSpellTimer (strTimerName)
dim splitname
dim spellname
dim mylist
dim number
dim i
dim character
splitname = split (strTimerName, "_")
number = CInt (splitname (1)) ' find our unique number
mylist = world.GetVariableList
' scan variables list to find timer number
if not IsEmpty (mylist) then
for i = lbound (mylist) to ubound (mylist)
splitname = split (mylist (i), "_")
if ubound (splitname) = 2 then
if splitname (0) = "spelltimer" and splitname (1) = "name" then
if CInt (splitname (2)) = number then
' work out character name
character = world.GetVariable (mylist (i))
spellname = world.GetVariable _
(splitname (0) & "_SpellName_" & splitname (2))
' tell them time is up
world.send "say {" & spellname & "} on " _
& character & ", left 10 secs .(DANGER)"
' delete associated variables
world.deletevariable splitname (0) & "_Name_" & splitname (2)
world.deletevariable splitname (0) & "_Time_" & splitname (2)
world.deletevariable splitname (0) & "_SpellName_" & splitname (2)
end if
end if ' found a spelltimer variable
end if ' split into 3 pieces
next ' end of loop
End If ' have any variables
end sub
sub OnSpellQuery (thename, theoutput, thewildcards)
dim mylist
dim i
dim splitname
dim spellname
dim endtime
dim timeleft
dim character
mylist = world.GetVariableList
if not IsEmpty (mylist) then
for i = lbound (mylist) to ubound (mylist)
splitname = split (mylist (i), "_")
if ubound (splitname) = 2 then
if splitname (0) = "spelltimer" and splitname (1) = "name" then
endtime = CDate (world.GetVariable _
(splitname (0) & "_Time_" & splitname (2)))
spellname = world.GetVariable _
(splitname (0) & "_SpellName_" & splitname (2))
if spellname = thewildcards (1) or thewildcards (1) = "all" then
character = world.GetVariable (mylist (i))
timeleft = DateDiff("s", Now, endtime)
if timeleft > 0 then
world.send "say {" & spellname & "} on " _
& character & ", left " _
& timeleft & " secs .(TIMER)"
end if
end if
end if ' found a spelltimer variable
end if ' split into 3 pieces
next ' end of loop
End If ' have any variables
end sub
|