Help needed in Conversion

Posted by Valhart on Sun 08 Jun 2003 09:50 AM — 1 posts, 9,436 views.

#0
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