Current script is as follow:
Requirements:
I am looking forward to do a OnSpellQuery that lets me use a command of report X, where X is the alias 'spellname' to report. It's really too spamming when i used over four spells on a target and i want to see the time remaining. ^_^
If by doing the method above, how do I go about doing a report where which spell is up, which spell is not. (I am getting the hang of it but I am still greenhorn)
Sorry for the trouble I caused and really hope that I will have a good nifty script to call upon. Many thanks!
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 = 15
spellname = "IW"
Case "Voluntas movimas!"
minutes = 16
spellname = "PfH"
Case "Rubber"
minutes = 4
spellname = "MiPR"
Case "Major kretsz rex xero"
minutes = 4
spellname = "MaPR"
Case "Air"
minutes = 4
spellname = "MiXR"
Case "Major lossa aiir"
minutes = 4
spellname = "MaXR"
Case "Flesh and Blood"
minutes = 4
spellname = "MiHR"
Case "grrrwm grrrwm"
minutes = 4
spellname = "MaHR"
Case Else
minutes = 0
spellname = "Unknown spell"
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, 30, "", _
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
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 "party say " & spellname & " spell on " _
& character & ", left 30 seconds (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))
character = world.GetVariable (mylist (i))
timeleft = DateDiff("s", Now, endtime)
if timeleft > 0 then
world.send "party say " & spellname & " spell on " _
& character & ", left " _
& timeleft & " seconds (TIMER)"
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
Requirements:
I am looking forward to do a OnSpellQuery that lets me use a command of report X, where X is the alias 'spellname' to report. It's really too spamming when i used over four spells on a target and i want to see the time remaining. ^_^
If by doing the method above, how do I go about doing a report where which spell is up, which spell is not. (I am getting the hang of it but I am still greenhorn)
Sorry for the trouble I caused and really hope that I will have a good nifty script to call upon. Many thanks!