Need help with a macro you are writing? Ask here!
Moderator: MacroQuest Developers
-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Tue Aug 03, 2010 8:28 am
I can't seem to get any events to work on this. I just can't understand why. Does anyone see something wrong with why a tell would not start the attack or mezz subs? Or the Rune recast?
Code: Select all
|E1.mac
|
|Gem 1 Slow
|Gem 2 Cripple
|Gem 3 Dot
|Gem 4 Mez
|Gem 5 Tash
|Gem 6
|Gem 7
|Gem 8
|Gem 9 Rune
|
|Tell based trigger. "Attackthis" will send pet, tash, slow, cripple, dot
|Tell based trigger. "Mezzthis" will mezz your target
|Declare assist name (charname edit this)
|Declare SpellRune "Arcane Rune"
#Turbo 20
#Chat Group
#chat tell
#event Attack "attackthis"
#event RuneFade “The shimmer of runes fades”
#event Fizzle "Your spell fizzles#*#"
#event MezzThis "mezzthis"
Sub Main
/declare CharName string outer Ultrax
/declare FizzleSlot int outer
/declare FizzleTimer timer outer 20
/declare SpellSLOW string outer Shiftless Deeds
/declare SpellCRIPPLE string outer Cripple
/declare SpellDOT string outer Strangle
/declare SpellRUNE string outer Arcane Rune
/declare SpellMEZZ string outer Bliss
/declare SpellTASH string outer Howl of Tashan
/echo Enchanter MAC Started
:loop
/if (${Me.Casting.ID}) {
/goto Loop
}
/doevents
/delay 10
/goto :loop
/return
Sub EVENT_Attack (string attackthis)
/if (!${Target.ID} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]}) {
/assist ${CharName}
/delay 10
/goto :Attack1
}
/return
:Attack1
/if (${Target.Distance} < 190 && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) {
/cast ${SpellTASH} gem2 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellSLOW} gem1 60
/varset FizzleSlot ${Me.Gem[${SpellSLOW}]}
/varset FizzleTimer 20
/cast ${SpellCRIPPLE} gem2 25
/varset FizzleSlot ${Me.Gem[${SpellCRIPPLE}]}
/varset FizzleTimer 20
/cast ${SpellDOT} gem3 30
/varset FizzleSlot ${Me.Gem[${SpellDOT}]}
/varset FizzleTimer 20
}
/goto :loop
/return
Sub EVENT_Fizzle(Textstuff)
/if (${FizzleTimer}>0) {
/cast ${FizzleSlot}
/varset FizzleTimer 20
}
/return
Sub Event_RuneFade (string shimmer of rune fades)
/cast ${SpellRUNE} gem9 50
/varset FizzleSlot ${Me.Gem[${SpellRUNE}]}
/varset FizzleTimer 20
/delay 20
/return
Sub EVENT_MezzThis (string mezzthis)
/assist ${CharName}
/attack off
/Gsay Mezzing %t
/cast ${SpellTASH} gem5 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellMEZZ} gem4 20
/varset FizzleSlot ${Me.Gem[${SpellMEZZ}]}
/varset FizzleTimer 20
/delay 10
/Gsay %t is Mezzed
/return
|end of macro
/return
/endmacro
-
dewey2461
- Contributing Member

- Posts: 1759
- Joined: Sun Apr 17, 2005 1:53 am
Post
by dewey2461 » Tue Aug 03, 2010 10:58 am
I think the names are case sensitive.
So EVENT is not Event or event.
-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Tue Aug 03, 2010 11:13 am
Good point. I'll change that and give it a run again.
Code: Select all
|E1.mac
|
|Gem 1 Slow
|Gem 2 Cripple
|Gem 3 Dot
|Gem 4 Mez
|Gem 5 Tash
|Gem 6
|Gem 7
|Gem 8
|Gem 9 Rune
|
|Tell based trigger. "Attackthis" will send pet, tash, slow, cripple, dot
|Tell based trigger. "Mezzthis" will mezz your target
|Declare assist name (charname edit this)
|Declare SpellRune "Arcane Rune"
#Turbo 20
#Chat Group
#chat tell
#event Attack "attackthis"
#event RuneFade “The shimmer of runes fades”
#event Fizzle "Your spell fizzles#*#"
#event MezzThis "mezzthis"
Sub Main
/declare CharName string outer Ultrax
/declare FizzleSlot int outer
/declare FizzleTimer timer outer 20
/declare SpellSLOW string outer Shiftless Deeds
/declare SpellCRIPPLE string outer Cripple
/declare SpellDOT string outer Strangle
/declare SpellRUNE string outer Arcane Rune
/declare SpellMEZZ string outer Bliss
/declare SpellTASH string outer Howl of Tashan
/echo Enchanter MAC Started
:loop
/if (${Me.Casting.ID}) {
/goto Loop
}
/doevents
/delay 10
/goto :loop
/return
Sub event_Attack (string attackthis)
/if (!${Target.ID} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]}) {
/assist ${CharName}
/delay 10
/goto :Attack1
}
/return
:Attack1
/if (${Target.Distance} < 190 && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) {
/cast ${SpellTASH} gem2 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellSLOW} gem1 60
/varset FizzleSlot ${Me.Gem[${SpellSLOW}]}
/varset FizzleTimer 20
/cast ${SpellCRIPPLE} gem2 25
/varset FizzleSlot ${Me.Gem[${SpellCRIPPLE}]}
/varset FizzleTimer 20
/cast ${SpellDOT} gem3 30
/varset FizzleSlot ${Me.Gem[${SpellDOT}]}
/varset FizzleTimer 20
}
/goto :loop
/return
Sub event_Fizzle(Textstuff)
/if (${FizzleTimer}>0) {
/cast ${FizzleSlot}
/varset FizzleTimer 20
}
/return
Sub event_RuneFade (string shimmer of rune fades)
/cast ${SpellRUNE} gem9 50
/varset FizzleSlot ${Me.Gem[${SpellRUNE}]}
/varset FizzleTimer 20
/delay 20
/return
Sub event_MezzThis (string mezzthis)
/assist ${CharName}
/attack off
/Gsay Mezzing %t
/cast ${SpellTASH} gem5 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellMEZZ} gem4 20
/varset FizzleSlot ${Me.Gem[${SpellMEZZ}]}
/varset FizzleTimer 20
/delay 10
/Gsay %t is Mezzed
/return
|end of macro
/return
/endmacro
-
dewey2461
- Contributing Member

- Posts: 1759
- Joined: Sun Apr 17, 2005 1:53 am
Post
by dewey2461 » Tue Aug 03, 2010 11:36 am
They should all be Event_
Check out the wiki or look at code like spell_routines.inc and of course the manual is always good.
-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Tue Aug 03, 2010 12:24 pm
Changed the forms of event to Event_
Code: Select all
|E1.mac
|
|Gem 1 Slow
|Gem 2 Cripple
|Gem 3 Dot
|Gem 4 Mez
|Gem 5 Tash
|Gem 6
|Gem 7
|Gem 8
|Gem 9 Rune
|
|Tell based trigger. "Attackthis" will send pet, tash, slow, cripple, dot
|Tell based trigger. "Mezzthis" will mezz your target
|Declare assist name (charname edit this)
|Declare SpellRune "Arcane Rune"
#Turbo 20
#Chat Group
#chat tell
#Event Attack "attackthis"
#Event RuneFade “The shimmer of runes fades”
#Event Fizzle "Your spell fizzles#*#"
#Event MezzThis "mezzthis"
Sub Main
/declare CharName string outer Ultrax
/declare FizzleSlot int outer
/declare FizzleTimer timer outer 20
/declare SpellSLOW string outer Shiftless Deeds
/declare SpellCRIPPLE string outer Cripple
/declare SpellDOT string outer Strangle
/declare SpellRUNE string outer Arcane Rune
/declare SpellMEZZ string outer Bliss
/declare SpellTASH string outer Howl of Tashan
/echo Enchanter MAC Started
:loop
/if (${Me.Casting.ID}) {
/goto Loop
}
/doevents
/delay 10
/goto :loop
/return
Sub Event_Attack (string attackthis)
/if (!${Target.ID} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]}) {
/assist ${CharName}
/delay 10
/goto :Attack1
}
/return
:Attack1
/if (${Target.Distance} < 190 && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) {
/cast ${SpellTASH} gem2 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellSLOW} gem1 60
/varset FizzleSlot ${Me.Gem[${SpellSLOW}]}
/varset FizzleTimer 20
/cast ${SpellCRIPPLE} gem2 25
/varset FizzleSlot ${Me.Gem[${SpellCRIPPLE}]}
/varset FizzleTimer 20
/cast ${SpellDOT} gem3 30
/varset FizzleSlot ${Me.Gem[${SpellDOT}]}
/varset FizzleTimer 20
}
/goto :loop
/return
Sub Event_Fizzle(Textstuff)
/if (${FizzleTimer}>0) {
/cast ${FizzleSlot}
/varset FizzleTimer 20
}
/return
Sub Event_RuneFade (string shimmer of rune fades)
/cast ${SpellRUNE} gem9 50
/varset FizzleSlot ${Me.Gem[${SpellRUNE}]}
/varset FizzleTimer 20
/delay 20
/return
Sub Event_MezzThis (string mezzthis)
/assist ${CharName}
/attack off
/Gsay Mezzing %t
/cast ${SpellTASH} gem5 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellMEZZ} gem4 20
/varset FizzleSlot ${Me.Gem[${SpellMEZZ}]}
/varset FizzleTimer 20
/delay 10
/Gsay %t is Mezzed
/return
|end of macro
/return
/endmacro[code]
[/code]
-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Mon Aug 09, 2010 2:32 pm
The Wiki is a very nice guide. I found some things with this previous mac that was wrong like missing the : on loop and there wasn't a Sub Event_Chat. So I gave it an almost fresh start again. The previous mac posted here don't react to tells. Here is the new one I made.
Code: Select all
|E1.mac
|
|Gem 1 Slow
|Gem 2 Cripple
|Gem 3 Dot
|Gem 4 Mez
|Gem 5 Tash
|Gem 6
|Gem 7
|Gem 8
|Gem 9 Rune
|
|Tell based trigger. "Attackthis" will send pet, tash, slow, cripple, dot
|Tell based trigger. "Mezzthis" will mezz your target
|Tell based trigger. "Followme" will have char follow the teller
|Tell based trigger. "Comehere" will have char go to the teller
|Tell based trigger. "Stophere" will have char stop at the teller
|Declare assist name (charname edit this)
|Declare SpellRune "Arcane Rune"
#Turbo 20
#Chat Group
#chat tell
#Event RuneFade “The shimmer of runes fades”
#Event Fizzle "Your spell fizzles#*#"
Sub Main
/declare FizzleSlot int outer
/declare FizzleTimer timer outer 20
/declare SpellSLOW string outer Shiftless Deeds
/declare SpellCRIPPLE string outer Cripple
/declare SpellDOT string outer Strangle
/declare SpellRUNE string outer Arcane Rune
/declare SpellMEZZ string outer Bliss
/declare SpellTASH string outer Howl of Tashan
/echo Enchanter MAC Started
:loop
/if (${Me.Casting.ID}) {
/delay 2
/goto :loop
}
/doevents
/delay 10
/goto :loop
/return
Sub Event_Chat(string ChatType,string Master,string ChatText)
/if (${ChatText.Equal[Attackthis]}) {
/assist ${Master}
/delay 5
/if (${Target.Type.NotEqual[NPC]}) {
/assist ${Master}
/delay 5 ${Target.Type.Equal[NPC]}
/goto :Attack1
}
/if (${ChatText.Equal[Mezzthis]}) {
/assist ${Master}
/delay 5
/if (${Target.Type.NotEqual[NPC]}) {
/assist ${Master}
/delay 5 ${Target.Type.Equal[NPC]}
/goto :Mezz1
}
/if (${ChatText.Equal[Comehere]}) {
/target ${Master}
/delay 5
/if (${Target.Type.NotEqual[PC]}) {
/target ${Master}
/delay 5 ${Target.Type.Equal[PC]}
/goto :Comehere1
}
/if (${ChatText.Equal["Followme"]}) {
/target ${Master}
/face
/echo Following
/gsay Following %t
/follow
}
/if (${ChatText.Equal["Stophere"]}) {
/keypress left
/face
/echo Stop Following
/gsay Stop Following %t
}
/return
:Attack1
/if (${Target.Distance} < 190 && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) {
/Gsay Attacking %t
/cast ${SpellTASH} gem2 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellSLOW} gem1 60
/varset FizzleSlot ${Me.Gem[${SpellSLOW}]}
/varset FizzleTimer 20
/cast ${SpellCRIPPLE} gem2 25
/varset FizzleSlot ${Me.Gem[${SpellCRIPPLE}]}
/varset FizzleTimer 20
/cast ${SpellDOT} gem3 30
/varset FizzleSlot ${Me.Gem[${SpellDOT}]}
/varset FizzleTimer 20
}
/goto :loop
/return
:Mezz1
/if (${Target.Distance} < 190 && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) {
/attack off
/Gsay Mezzing %t
/cast ${SpellTASH} gem5 15
/varset FizzleSlot ${Me.Gem[${SpellTASH}]}
/varset FizzleTimer 20
/cast ${SpellMEZZ} gem4 20
/varset FizzleSlot ${Me.Gem[${SpellMEZZ}]}
/varset FizzleTimer 20
/delay 10
/Gsay %t is Mezzed
}
/goto :loop
/return
:Comehere1
/if (${Target.Distance}>60) /keypress up hold
/if (${Target.Distance}<40) /keypress up
/face fast
/delay 2
/if (${Target.ID})
/goto :loop
/return
Sub Event_Fizzle(Textstuff)
/if (${FizzleTimer}>0) {
/cast ${FizzleSlot}
/varset FizzleTimer 20
}
/return
Sub Event_RuneFade (string shimmer of rune fades)
/cast ${SpellRUNE} gem9 50
/varset FizzleSlot ${Me.Gem[${SpellRUNE}]}
/varset FizzleTimer 20
/delay 20
/goto :loop
/return
|end of macro
/return
/endmacro
-
dewey2461
- Contributing Member

- Posts: 1759
- Joined: Sun Apr 17, 2005 1:53 am
Post
by dewey2461 » Mon Aug 09, 2010 5:50 pm
Is everything in this working as you wanted?
-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Tue Aug 10, 2010 8:31 am
I should be able to try it out sometime this week. Everytime I hit a road block, I keep learning more.
-
dewey2461
- Contributing Member

- Posts: 1759
- Joined: Sun Apr 17, 2005 1:53 am
Post
by dewey2461 » Tue Aug 10, 2010 7:26 pm
Welcome to programing 101

-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Wed Aug 11, 2010 9:07 am
bah, still won't work but the positive is it reacts now. I think i have some bracket / terminination type issues now. Back to studying code more =)
-
ultrax
- orc pawn

- Posts: 12
- Joined: Tue May 04, 2010 1:55 pm
Post
by ultrax » Thu Aug 12, 2010 11:27 am
I got it now! Made a new version of. Now let the possibilitys happen.
-
xxi23456
- a lesser mummy

- Posts: 31
- Joined: Fri Jun 25, 2010 3:06 pm
Post
by xxi23456 » Thu Aug 12, 2010 3:23 pm
*Edit never mind, I see it now.