Skip to content

Instantly share code, notes, and snippets.

@allanon
Created August 14, 2017 22:01
Show Gist options
  • Save allanon/816a8beef46bf56bfe1409d00b3a4c01 to your computer and use it in GitHub Desktop.
Save allanon/816a8beef46bf56bfe1409d00b3a4c01 to your computer and use it in GitHub Desktop.
restart swordsman quest
macro job_swordsman {
# Swordsman
call quest_talk izlude_in '74 172' 'r0 r0 r0'
# => quest 1014
# Swordsman (teleporter)
call quest_talk izlude_in '62 170' 'e'
# => tele izlude_in 39 170
# Test Hall Staff
call quest_talk izlude_in '30 163' 'e'
# => tele sword_1-1 10 245
do conf route_avoidWalls 0
pause 5
call job_swordsman_test1
pause 5
call job_swordsman_test2
pause 5
call job_swordsman_test3
pause 5
do conf route_avoidWalls 1
# Swordsman
call quest_talk izlude_in '74 172' 'r0'
# <= quest 1014
# => job Swordsman
}
macro job_swordsman_test1 {
# do move 65 117
do move 12 247
do move 22 247
do move 24 249
do move 34 249
do move 36 247
do move 48 241
do move 98 241
do move 98 240
do move 118 240
do move 118 249
do move 140 251
do move 175 251
do move 175 245
do move 187 243
do move 192 244
pause 2
do move 223 243
}
macro job_swordsman_test2 {
# do move 161 27
do move 11 202
do move 188 202
do move 188 207
do move 193 207
pause 2
do move 223 205
}
macro job_swordsman_test3 {
# do move 239 117
do move 21 168
do move 21 175
do move 36 175
do move 36 173
do move 43 173
do move 43 172
do move 45 172
do move 45 171
do move 51 171
do move 51 172
do move 58 172
do move 58 169
do move 92 169
do move 92 171
do move 129 171
do move 129 174
do move 151 174
do move 151 171
do move 170 171
do move 180 171
do move 180 172
do move 183 172
do move 183 173
do move 191 173
do move 191 168
do move 193 168
pause 2
do talknpc 223 167 e
# => tele izlude_in 66 173
}
macro quest_talk {
$map = $.param1
$pos = $.param2
$talk = $.param3
call quest_talk_dist $map '$pos' 13 '$pos' "$talk"
}
macro quest_talk_dist {
$map = $.param1
$standpos = $.param2
$distmax = $.param3
$npcpos = $.param4
@talk = &split('#', $.param5)
# Move to the specified distance from the NPC.
call quest_move $map '$standpos' $distmax
# Talk using the given sequence.
while (@talk > 0) as talk_loop
$seq = &shift(@talk)
if ($seq == NOSEQ) {
do talk &npc($npcpos)
pause 0.1
stop
}
log talknpc $npcpos $seq
do talknpc $npcpos $seq
pause 0.1
end talk_loop
}
macro quest_move {
$map = $.param1
$standpos = $.param2
$distmax = $.param3
if ($distmax == ) $distmax = 10
# Move to the specified distance from the NPC.
$dist = $distmax
while (1 == 1) as move
$x = &eval( (split( ' ', '$standpos' ))[0] )
$y = &eval( (split( ' ', '$standpos' ))[1] )
$d = &eval( Misc::distance(Misc::calcPosition($::char), { x => '$x', y => '$y' }) )
if ($.map == $map && $d <= $distmax) stop
do move $standpos $map $dist
pause 0.1
$dist--
# TODO: Find another spot to stand that isn't in the direct line to the target.
if ($dist < 1) stop
end move
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment