Moderator: MacroQuest Developers


Code: Select all
| - Twist1.mac -
|
#event MissedNote "You miss a note, bringing your song to a close!"
#event Recovered "You haven't recovered yet..."
#event NeedTarget "You must first select a target for this spell!"
|#chat tell
| Read what Event_chat is setup to do before uncommenting it.
| song queue. prev/next aren't really doing anything useful
| right now, I just have them there in case I find a good use later
#define prevsong v0
#define cursong v1
#define nextsong v2
#define nsongs v3
#define switch v4
#define waittime 30
Sub Main
/sendkey down w
/if $p0=="" /return
/if $p0==NULL /return
/varset nsongs 1
/varset a(0,1) $p0 | First song
/echo Song 1: $char(gem,$p0)
/if $p1!="" /if $p1!=NULL {
/varadd nsongs 1
/varset a(0,2) $p1
/echo Song 2: $char(gem,$p1)
}
/if $p2!="" /if $p2!=NULL {
/varadd nsongs 1
/varset a(0,3) $p2
/echo Song 3: $char(gem,$p2)
}
/if $p3!="" /if $p3!=NULL {
/varadd nsongs 1
/varset a(0,4) $p3
/echo Song 4: $char(gem,$p3)
}
/varset cursong 1
/varset nextsong 2
/varset switch 0
:Sing
/stopsong
/call circ 2
/cast $int($a(0,$cursong))
| /echo Playing: $char(gem,$int($a(0,$cursong)))
/call circ 1
/doevents
/if n $switch==1 {
/varset switch 0
/goto :Sing
}
/call circ 30
/varset prevsong $cursong
/varset cursong $nextsong
/varset nextsong $int($calc($nextsong+1))
/if n $nextsong>$nsongs /varset nextsong 1
/goto :Sing
/return
sub circ
:turn
/if n $target(distance)>150 /if n $calc($target(headingto)-$char(heading)<0 {
/face heading $calc($target(headingto)+70)
} else {
/face heading $calc($target(headingto)-70)
}
/if n $target(distance)<75 /if n $calc($target(headingto)-$char(heading)<0 {
/face heading $calc($target(headingto)+110)
} else {
/face heading $calc($target(headingto)-110)
}
/delay 1
/varcalc p0 $p0-1
/if n $p0==0 /return
/goto :turn
/return
Sub Event_MissedNote
/cast $int($a(0,$cursong))
/call circ 4
/doevents
/return
Sub Event_Recovered
/cast $int($a(0,$cursong))
/call circ 4
/doevents
/return
Sub Event_chat
/if "$p2"~~"assist me" {
/assist $p1
/call circ 2
/g assisting $p1 on %t
}
/if "$p2"~~"camp" {
/sit
/camp
/end
}
/return
Sub Event_NeedTarget
/varset prevsong $cursong
/varset cursong $nextsong
/varset nextsong $int($calc($nextsong+1))
/if n $nextsong>$nsongs /varset nextsong 1
/varset switch 1
/return




Code: Select all
| - Twist1.mac -
|
#event MissedNote "You miss a note, bringing your song to a close!"
#event Recovered "You haven't recovered yet..."
#event NeedTarget "You must first select a target for this spell!"
#define cursong v1
#define nsongs v3
#define switch v4
Sub Main
/if $p0=="" /return
/if $p0==NULL /return
/varset nsongs 1
/varset a(0,1) $p0 | First song
/echo Song 1: $char(gem,$p0)
/if $p1!="" /if $p1!=NULL {
/varadd nsongs 1
/varset a(0,2) $p1
/echo Song 2: $char(gem,$p1)
}
/if $p2!="" /if $p2!=NULL {
/varadd nsongs 1
/varset a(0,3) $p2
/echo Song 3: $char(gem,$p2)
}
/if $p3!="" /if $p3!=NULL {
/varadd nsongs 1
/varset a(0,4) $p3
/echo Song 4: $char(gem,$p3)
}
/varset cursong 1
/varset switch 0
/varset t0 33
:Loop
/if n $t0<=0 /call Sing $int($a(0,$cursong))
/call circ 1487 -1123
/doevents
/goto :Loop
/return
Sub Sing
:Sing
/varset t0 33
/stopsong
/cast $P0
/delay 0
/doevents
/if n $switch==1 {
/varset switch 0
/goto :Sing
}
/varadd cursong 1
/if n $cursong>$nsongs /varset cursong 1
/return
sub circ
/if n $distance($p0,$p1)>300 {
/face heading $calc($heading($p0,$p1))
} else /if n $distance($p0,$p1)>100 {
/face heading $calc($heading($p0,p1)+100)
} else /face heading $calc($heading($p0,$p1)+80)
/return
Sub Event_MissedNote
/cast $int($a(0,$cursong))
/delay 0
/doevents
/return
Sub Event_Recovered
/cast $int($a(0,$cursong))
/delay 0
/doevents
/return
Sub Event_NeedTarget
/varset prevsong $cursong
/varset cursong $nextsong
/varset nextsong $int($calc($nextsong+1))
/if n $nextsong>$nsongs /varset nextsong 1
/varset switch 1
/return