Take a line like:
Trakanon's body begins to splurt.
Matched by:
Code: Select all
#event "#*#begins to splurt#*#"Code: Select all
#event snaredcast "#*# is engulfed in an embracing darkness#*#"
#event Pyrocast "#*#blood ignites#*#"
#event DPcast "#*#covered in black spots#*#"
#event FPcast "#*#enveloped#*#"
#event NFcast "#*#blood boils through#*#"
#event BoTcast "#*#veins turn a vile shade of green#*#"
#event Splurtcast "#*#body begins to splurt#*#"
#event NBcast "#*#renewed#*#"
#event dotick "#*#taken #1# damage from your #2#."
dotick event works fine. The rest, are completely random. Sometimes they go off, sometimes they don't. Especially if I change the trigger string. For example, my Splurtcast event doesn't work (but it should, the string matches just fine), if I change the string to say, "#*#body begins#*#" or "#1#to splurt#*#" then the Splurtcast event might work, but it is guaranteed that one other event will NOT work. It is driving me crazy, where is my error?
Here's the full code if anyone wants to use it. The macro adds up the damage just fine, but it doesn't recognize when a dot is being first cast, and so screwy things start happening.
Macro is:
Code: Select all
#event dahail "#*#Hail,#*#"
#event snaredcast "#*#engulfed#*#embracing darkness#*#"
#event Pyrocast "#*#blood ignites#*#"
#event DPcast "#*#covered in black spots#*#"
#event FPcast "#*#enveloped#*#"
#event NFcast "#*#blood boils through#*#"
#event BoTcast "#*#veins turn a vile shade of green#*#"
#event Splurtcast "#*#body begins to splurt#*#"
#event NBcast "#*#renewed#*#"
#event dotick "#*#taken #1# damage from your #2#."
Sub Event_dotick(string Line,int dmg,string dotname)
/if (${String[${dotname}].Equal["Splurt"]}) {
/varcalc Splurt_dmg ${Splurt_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc Splurt_time ${Splurt_time}-1
/if (${dmg}>300) {
/varcalc Splurt_crit ${Splurt_crit}+1
}
} else /if (${String[${dotname}].Equal["Night's Beckon"]}) {
/varcalc NB_dmg ${NB_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc NB_time ${NB_time}-1
/if (${dmg}>400) {
/varcalc NB_crit ${NB_crit}+1
}
} else /if (${String[${dotname}].Equal["Pyrocruor"]}) {
/varcalc Pyro_dmg ${Pyro_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc Pyro_time ${Pyro_time}-1
/if (${dmg}>200) {
/varcalc Pyro_crit ${Pyro_crit}+1
}
} else /if (${String[${dotname}].Equal["Funeral Pyre of Kelador"]}) {
/varcalc FP_dmg ${FP_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc FP_time ${FP_time}-1
/if (${dmg}>500) {
/varcalc FP_crit ${FP_crit}+1
}
} else /if (${String[${dotname}].Equal["Night Fire"]}) {
/varcalc NF_dmg ${NF_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc NF_time ${NF_time}-1
/if (${dmg}>600) {
/varcalc NF_crit ${NF_crit}+1
}
} else /if (${String[${dotname}].Equal["Blood of Thule"]}) {
/varcalc BoT_dmg ${BoT_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc BoT_time ${BoT_time}-1
/if (${dmg}>600) {
/varcalc BoT_crit ${BoT_crit}+1
}
} else /if (${String[${dotname}].Equal["Dark Plague"]}) {
/varcalc DP_dmg ${DP_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc DP_time ${DP_time}-1
/if (${dmg}>200) {
/varcalc DP_crit ${DP_crit}+1
}
} else /if (${String[${dotname}].Equal["Embracing Darkness"]}) {
/varcalc ED_dmg ${ED_dmg}+${dmg}
/varcalc Mob_dmg ${Mob_dmg}+${dmg}
/varcalc ED_time ${ED_time}-1
/if (${dmg}>100) {
/varcalc ED_crit ${ED_crit}+1
}
}
/return
Sub Event_snaredcast
/varset ED_time 21
/varset ED_name Embracing Darkness
/varset ED_dmg 0
| /varset ED_crit 0
/return
Sub Event_Splurtcast
/varset Splurt_time 17
/varset Splurt_name Splurt
/varset Splurt_dmg 0
| /varset Splurt_crit 0
/return
Sub Event_NBcast
/varset NB_time 11
/varset NB_name Night's Beckon
/varset NB_dmg 0
| /varset NB_crit 0
/return
Sub Event_Pyrocast
/varset Pyro_time 19
/varset Pyro_name Pyrocruor
/varset Pyro_dmg 0
| /varset Pyro_crit 0
/return
Sub Event_FPcast
/varset FP_time 10
/varset FP_name Funeral Pyre
/varset FP_dmg 0
| /varset FP_crit 0
/return
Sub Event_NFcast
/varset NF_time 10
/varset NF_name Night Fire
/varset NF_dmg 0
| /varset NF_crit 0
/return
Sub Event_BoTcast
/varset BoT_time 8
/varset BoT_name Blood of Thule
/varset BoT_dmg 0
| /varset BoT_crit 0
/return
Sub Event_DPcast
/varset DP_time 21
/varset DP_name Dark Plague
/varset DP_dmg 0
| /varset DP_crit 0
/return
Sub Event_dahail
/varset Mob_dmg 0
/varset BoT_dmg 0
/varset FP_dmg 0
/varset NF_dmg 0
/varset ED_dmg 0
/varset Pyro_dmg 0
/varset DP_dmg 0
/varset Splurt_dmg 0
/varset NB_dmg 0
/varset BoT_time 0
/varset FP_time 0
/varset NF_time 0
/varset ED_time 0
/varset Pyro_time 0
/varset DP_time 0
/varset Splurt_time 0
/varset NB_time 0
/varset BoT_crit 0
/varset FP_crit 0
/varset NF_crit 0
/varset ED_crit 0
/varset Pyro_crit 0
/varset DP_crit 0
/varset Splurt_crit 0
/varset NB_crit 0
/varset BoT_name
/varset FP_name
/varset NF_name
/varset ED_name
/varset Pyro_name
/varset DP_name
/varset Splurt_name
/varset NB_name
/return
Sub Main
/declare Mob_dmg int outer 0
/declare BoT_dmg int outer
/declare FP_dmg int outer
/declare NF_dmg int outer
/declare ED_dmg int outer
/declare Pyro_dmg int outer
/declare DP_dmg int outer
/declare Splurt_dmg int outer
/declare NB_dmg int outer
/declare BoT_name string outer
/declare FP_name string outer
/declare NF_name string outer
/declare ED_name string outer
/declare Pyro_name string outer
/declare DP_name string outer
/declare Splurt_name string outer
/declare NB_name string outer
/declare BoT_time int outer
/declare FP_time int outer
/declare NF_time int outer
/declare ED_time int outer
/declare Pyro_time int outer
/declare DP_time int outer
/declare Splurt_time int outer
/declare NB_time int outer
/declare BoT_crit int outer
/declare FP_crit int outer
/declare NF_crit int outer
/declare ED_crit int outer
/declare Pyro_crit int outer
/declare DP_crit int outer
/declare Splurt_crit int outer
/declare NB_crit int outer
:daloop
| /doevents snaredcast
| /doevents Pyrocast
| /doevents DPcast
| /doevents FPcast
| /doevents NFcast
| /doevents BoTcast
| /doevents Splurtcast
| /doevents NBcast
| /doevents dahail
| /doevents dotick
/doevents
/delay 1
/goto :daloop
/endmacroCode: Select all
[MQ2HUD]
Last=Elements
[Elements]
;The order is TYPE,X,Y,RED,GREEN,BLUE,TEXT
TargetInfo=3,5,35,255,255,255,${Target}
LabelText=3,400,20,255,255,255,Effect Name
LabelText2=3,530,20,255,255,255,Damage Done
LabelText3=3,630,20,255,255,255,Ticks Left
LabelLine=3,400,21,255,255,255,__________________________________________
EffectLabel1=3,400,35,0,255,100,${ED_name}
EffectLabel2=3,400,45,125,125,255,${DP_name}
EffectLabel3=3,400,55,125,125,255,${Pyro_name}
EffectLabel4=3,400,65,125,125,255,${FP_name}
EffectLabel5=3,400,75,125,125,255,${NF_name}
EffectLabel6=3,400,85,125,125,255,${BoT_name}
EffectLabel7=3,400,95,125,125,255,${Splurt_name}
EffectLabel8=3,400,105,125,125,255,${NB_name}
EffectLabel1dmg=3,530,35,0,255,100,${ED_dmg}
EffectLabel1crit=3,360,35,255,100,100,${ED_crit}
EffectLabel1ticks=3,630,35,100,255,100,${ED_time}
EffectLabel2dmg=3,530,45,125,125,255,${DP_dmg}
EffectLabel2crit=3,360,45,255,100,100,${DP_crit}
EffectLabel2ticks=3,630,45,125,125,255,${DP_time}
EffectLabel3dmg=3,530,55,125,125,255,${Pyro_dmg}
EffectLabel3crit=3,360,55,255,100,100,${Pyro_crit}
EffectLabel3ticks=3,630,55,125,125,255,${Pyro_time}
EffectLabel4dmg=3,530,65,125,125,255,${FP_dmg}
EffectLabel4crit=3,360,65,255,100,100,${FP_crit}
EffectLabel4ticks=3,630,65,125,125,255,${FP_time}
EffectLabel5dmg=3,530,75,125,125,255,${NF_dmg}
EffectLabel5crit=3,360,75,255,100,100,${NF_crit}
EffectLabel5ticks=3,630,75,125,125,255,${NF_time}
EffectLabel6dmg=3,530,85,125,125,255,${BoT_dmg}
EffectLabel6crit=3,360,85,255,100,100,${BoT_crit}
EffectLabel6ticks=3,630,85,125,125,255,${BoT_time}
EffectLabel7dmg=3,530,95,125,125,255,${Splurt_dmg}
EffectLabel7crit=3,360,95,255,100,100,${Splurt_crit}
EffectLabel7ticks=3,630,95,125,125,255,${Splurt_time}
EffectLabel8dmg=3,530,105,125,125,255,${NB_dmg}
EffectLabel8crit=3,360,105,255,100,100,${NB_crit}
EffectLabel8ticks=3,630,105,125,125,255,${NB_time}
LabelLine2=3,400,106,255,255,255,__________________________________________
LabelText4=3,400,120,255,100,100,Total Damage:
LabelText5=3,530,120,255,100,100,${Mob_dmg}


