1.Lockmap when farming an item.
2.Find the best method for the pconf, mconf and iconf command. eg. attack monsters and loot items in the same map(s).
3.Warp to different coordinates near npc's.
4.Optimize the npctalk routines.
5.Autostorage or take from storage before talking to npc, starting quest or farming.
6.Config variable for each quest, similar farm automacros problem now.
Config Openkore for this macro:
- Config.txt: route_randomWalk 2#Avoid portals, automacro will not trigger when not in the specific map!
- Plugin: http://openkore.svn.sf.net/viewvc/openk ... ins/xconf/#The macro uses pconf, mconf and iconf.
- Robo Eye Quest Macro
- Alice Doll Quest Macro
- Soulring Quest Macro
- RabbitEars Quest Macro
Code: Select all
//Roboeyequest//
macro roboeyequest {
do conf QuestPart checkitems
if (@invamount (Used Iron Plate) < 820) goto farmusedironplate
if (@invamount (Steel) < 500) goto farmsteel
if (@invamount (Flashlight) < 2200) goto farmflashlight
if (@invamount (Forbidden Red Candle) < 22) goto farmforbiddenredcandle
if (@invamount (Bulb Band) < 5) goto bulbbandquest
else goto buyroboeye
:farmusedironplate
do conf QuestPart farmusedironplate
do mconf Pitman 1
do pconf Used Iron Plate 1
do pconf Flashlight 1
pause @rand(2,4)
do c @warp ein_dun01
goto end
:farmsteel
do conf QuestPart farmusteel
do mconf Steel Chonchon 1
do pconf Steel 1
pause @rand(2,4)
do c @warp moc_fild18
goto end
:farmflashlight
do conf QuestPart farmflashlight
do mconf Pitman 1
do pconf Flashlight 1
do pconf Used Iron Plate 1
pause @rand(2,4)
do c @warp ein_dun01
goto end
:farmforbiddenredcandle
do conf QuestPart farmforbiddenredcandle
do mconf Injustice 1
do pconf Forbidden Red Candle 1
pause @rand(2,4)
do c @warp gl_prison1
goto end
:buyroboeye
do conf QuestPart buyroboeye
pause @rand(2,4)
call buyroboeye
:end
}
automacro farmusedironplate {
eval $::config{QuestPart} eq "farmusedironplate"
location ein_dun01
inventory "Used Iron Plate" >= 820
run-once 1
call {
do conf QuestPart roboeyequest
pause @rand(2,4)
call roboeyequest
release farmusedironplate
}
}
automacro farmsteel {
eval $::config{QuestPart} eq "farmsteel"
location moc_fild18
inventory "Steel" >= 500
run-once 1
call {
do conf QuestPart roboeyequest
pause @rand(2,4)
call roboeyequest
release farmsteel
}
}
automacro farmflashlight {
eval $::config{QuestPart} eq "farmflashlight"
location ein_dun01
inventory "Flashlight" >= 2200
run-once 1
call {
do conf QuestPart roboeyequest
pause @rand(2,4)
call roboeyequest
release farmflashlight
}
}
macro buyroboeye {
do c @warp amatsu 252 249
pause @rand(2,4)
do talknpc 249 253 c r0 c r16 r0
pause @rand(2,4)
do conf QuestPart questroboeyecomplete
}
macro bulbbandquest {
do conf QuestPart checkbead
call checkbead
}
macro checkbead {
if (@invamount (Glass Bead) < 100) goto buybead
if (@invamount (Glass Bead) >= 100) goto checkcirclet
:buybead
do conf QuestPart buybead
call buybead
:checkcirclet
do conf QuestPart checkcirclet
call checkcirclet
}
macro buybead {
do c @warp prontera 105 86
pause @rand(2,4)
do talknpc 105 87 b e
do buy 4 100
pause @rand(2,4)
do conf QuestPart checkcirclet
call checkcirclet
}
macro checkcirclet {
if (@invamount (Circlet [1]) >= 5)) goto buyband
if (@invamount (Circlet [1]) < 5)) goto farmcirclet
:buyband
do conf QuestPart buyband
pause @rand(2,4)
call buyband
goto end
:farmcirclets
do conf QuestPart farmcirclet
do mconf Isis 1
do pconf Circlet [1] 1
pause @rand(2,4)
do c @warp moc_pryd04
:end
}
automacro farmcirclet {
eval $::config{QuestPart} eq "farmcirclet"
location moc_pryd04
inventory "Circlet [1]" >= 5
run-once 1
call {
do conf QuestPart buyband
pause @rand(2,4)
call buyband
release farmcirclet
}
}
macro buyband {
do c @warp comodo 227 158
call buybandcheck
}
macro buybandcheck {
if (@invamount (Bulb Band) >= 5) goto questbulbbandcomplete
if (@invamount (Bulb Band) < 5) goto buybandroutine
:buybandroutine
do conf QuestPart buybandroutine
pause @rand(2,4)
do talknpc 228 159 c c r1 r1
pause @rand(2,4)
call buybandcheck
goto end
:questbulbbandcomplete
do conf QuestPart questbulbbandcomplete
call roboeyequest
:end
}
Code: Select all
//Alicedollquest//
macro alicedollquest {
pause @rand(2,4)
do conf QuestPart checkitems
if (@invamount (Ph.D Hat) < 1) goto farmwPhDHat
if (@invamount (Rocker Doll) < 100) goto farmrockerdoll
if (@invamount (Hinalle Leaflet) < 200) goto farmhinalleleaflet
goto buyalicedoll
:farmwPhDHat
do conf QuestPart farmwPhDHat
do mconf Sage Worm 1
do pconf Ph.D Hat 1
pause @rand(2,4)
do c @warp gl_in01
goto end
:farmrockerdoll
do conf QuestPart farmrockerdoll
if (@invamount (Hinalle Leaflet) >= 200 && (@invamount (Rocker Doll) < 100)) goto farmrockerdoll2
do mconf Rocker 1
do pconf Rocker Doll 1
do pconf Hinalle Leaflet 1
pause @rand(2,4)
do c @warp prt_fild07
goto end
:farmrockerdoll2
do conf QuestPart farmrockerdoll2
do mconf Rocker 1
do pconf Rocker Doll 1
do pconf Hinalle Leaflet 0
pause @rand(2,4)
do c @warp prt_fild07
goto end
:farmhinalleleaflet
if (@invamount (Hinalle Leaflet) < 200 && (@invamount (Rocker Doll) >= 100)) goto farmhinalleleaflet2
do conf QuestPart farmhinalleleaflet
do mconf Rocker 1
do pconf Hinalle Leaflet 1
do pconf Rocker Doll 1
pause @rand(2,4)
do c @warp prt_fild07
goto end
:farmhinalleleaflet2
do conf QuestPart farmhinalleleaflet2
do mconf Rocker 1
do pconf Hinalle Leaflet 1
do pconf Rocker Doll 0
pause @rand(2,4)
do c @warp prt_fild07
goto end
:buyalicedoll
do conf QuestPart buyalicedoll
pause @rand(2,4)
call buyalicedoll
:end
}
automacro farmwPhDHat {
eval $::config{QuestPart} eq "farmwPhDHat"
location glast_01, gl_in01
inventory "Ph.D Hat" >= 1
run-once 1
call {
do conf QuestPart alicedollquest
pause @rand(2,4)
call alicedollquest
release farmwPhDHat
}
}
automacro farmrockerdoll {
eval $::config{QuestPart} eq "farmrockerdoll"
location prt_fild07
inventory "Rocker Doll" >= 100
run-once 1
call {
do conf QuestPart alicedollquest
pause @rand(2,4)
call alicedollquest
release farmrockerdoll
}
}
automacro farmrockerdoll2 {
eval $::config{QuestPart} eq "farmrockerdoll2"
location prt_fild07
inventory "Rocker Doll" >= 100
run-once 1
call {
do conf QuestPart alicedollquest
pause @rand(2,4)
call alicedollquest
release farmrockerdoll2
}
}
automacro farmhinalleleaflet{
eval $::config{QuestPart} eq "farmhinalleleaflet"
location prt_fild07
inventory "Hinalle Leaflet" >= 200
run-once 1
call {
do conf QuestPart alicedollquest
pause @rand(2,4)
call alicedollquest
release farmhinalleleaflet
}
}
automacro farmhinalleleaflet2{
eval $::config{QuestPart} eq "farmhinalleleaflet2"
location prt_fild07
inventory "Hinalle Leaflet" >= 200
run-once 1
call {
do conf QuestPart alicedollquest
pause @rand(2,4)
call alicedollquest
release farmhinalleleaflet2
}
}
macro buyalicedoll {
do c @warp amatsu 252 249
pause @rand(2,4)
do talknpc 255 251 c r0 c r0 r0
pause @rand(2,4)
do conf QuestPart questalicedollcomplete
}
Code: Select all
//Soulringquest//
macro soulringquest {
do conf QuestPart checkitems
if (@invamount (Wing of Dragonfly) < 1800) goto farmwingsofdragonfly
if (@invamount (Golden Hair) < 700) goto farmgoldenhair
if (@invamount (Golden Ornament) < 500) goto farmgoldenornament
if (@invamount (Topaz) < 300) goto farmtopaz
if (@invamount (Halo) < 10) goto farmhalo
goto buysoulring
:farmwingsofdragonfly
do conf QuestPart farmwingsofdragonfly
do mconf Dragon Tail 1
do pconf Wing of Dragonfly 1
pause @rand(2,4)
do c @warp tur_dun01
goto end
:farmgoldenhair
do conf QuestPart farmgoldenhair
do mconf Violy 1
do pconf Golden Hair 1
pause @rand(2,4)
do c @warp gefenia03
goto end
:farmgoldenornament
do conf QuestPart farmgoldenornament
do mconf Observation 1
do pconf Golden Ornament 1
pause @rand(2,4)
do c @warp tha_t07
goto end
:farmtopaz
do conf QuestPart farmtopaz
do mconf Mineral 1
do pconf Topaz 1
pause @rand(2,4)
do c @warp ein_dun02
goto end
:farmhalo
do conf QuestPart farmhalo
do mconf Whisper 1
do pconf Halo 1
pause @rand(2,4)
do c @warp gl_sew01
goto end
:buysoulring
do conf QuestPart buysoulring
pause @rand(2,4)
call buysoulring
:end
}
automacro farmwingsofdragonfly {
eval $::config{QuestPart} eq "farmwingsofdragonfly"
location tur_dun01
inventory "Wing of Dragonfly" >= 1800
run-once 1
call {
do conf QuestPart soulringquest
pause @rand(2,4)
call soulringquest
release farmwingsofdragonfly
}
}
automacro farmgoldenhair {
eval $::config{QuestPart} eq "farmgoldenhair"
location gefenia03
inventory "Golden Hair" >= 700
run-once 1
call {
do conf QuestPart soulringquest
pause @rand(2,4)
call soulringquest
release farmgoldenhair
}
}
automacro farmgoldenornament {
eval $::config{QuestPart} eq "farmgoldenornament"
location tha_t07
inventory "Golden Ornament" >= 500
run-once 1
call {
do conf QuestPart soulringquest
pause @rand(2,4)
call soulringquest
release farmgoldenornament
}
}
automacro farmtopaz {
eval $::config{QuestPart} eq "farmtopaz"
location ein_dun02
inventory "Topaz" >= 300
run-once 1
call {
do conf QuestPart soulringquest
pause @rand(2,4)
call soulringquest
release farmtopaz
}
}
automacro farmhalo {
eval $::config{QuestPart} eq "farmhalo"
location gl_sew01
inventory "Halo" >= 10
run-once 1
call {
do conf QuestPart soulringquest
pause @rand(2,4)
call soulringquest
release farmhalo
}
}
macro buysoulring {
do c @warp amatsu 252 249
pause @rand(2,4)
do talknpc 249 253 c r0 c r24 r0
pause @rand(2,4)
do conf QuestPart questsoulringcomplete
}
Code: Select all
//Rabbitears//
macro rabbitearsquest {
do conf QuestPart checkitems
if (@invamount (Feather) < 2000) goto farmfeather
if (@invamount (Four Leaf Clover) < 1400) goto farmfourleafclover
if (@invamount (Pearl) < 700) goto farmpearl
if (@invamount (Black Dyestuff) < 60) goto blackdyestuffquest
if (@invamount (Bunny Band) < 10) goto buybunnyband
if (@invamount (Kitty Band) < 10) goto farmkittyband
goto buyrabbitears
:farmfeather
do conf QuestPart farmfeather
do mconf Tarou 1
do pconf Feather 1
pause @rand(2,4)
do c @warp mjo_dun01
goto end
:farmfourleafclover
do conf QuestPart farmfourleafclover
do mconf Mandragora 1
do pconf Four Leaf Clover 1
pause @rand(2,4)
do c @warp prt_fild02
goto end
:farmpearl
do conf QuestPart farmpearl
do mconf Medusa 1
do pconf Pearl 1
pause @rand(2,4)
do c @warp beach_dun
goto end
:blackdyestuffquest
do conf QuestPart blackdyestuffquest
pause @rand(2,4)
call blackdyestuffquest
goto end
:farmkittyband
do conf QuestPart farmkittyband
do mconf Smokie 1
do pconf Kitty Band 1
pause @rand(2,4)
do c @warp pay_fild09
goto end
:buybunnyband
do conf QuestPart buybunnyband
pause @rand(2,4)
call buybunnyband
goto end
:buyrabbitears
do conf QuestPart buyrabbitears
pause @rand(2,4)
call buyrabbitears
:end
}
automacro farmfeather {
eval $::config{QuestPart} eq "farmfeather"
location mjo_dun01
inventory "Feather" >= 2000
run-once 1
call {
do conf QuestPart rabbitearsquest
pause @rand(2,4)
call rabbitearsquest
release farmfeather
}
}
automacro farmfourleafclover {
eval $::config{QuestPart} eq "farmfourleafclover"
location prt_fild02
inventory "Four Leaf Clover" >= 1400
run-once 1
call {
do conf QuestPart rabbitearsquest
pause @rand(2,4)
call rabbitearsquest
release farmfourleafclover
}
}
automacro farmpearl {
eval $::config{QuestPart} eq "farmpearl"
location beach_dun
inventory "Pearl" >= 700
run-once 1
call {
do conf QuestPart rabbitearsquest
pause @rand(2,4)
call rabbitearsquest
release farmpearl
}
}
automacro farmkittyband {
eval $::config{QuestPart} eq "farmkittyband"
location pay_fild09
inventory "Kitty Band" >= 20
run-once 1
call {
do conf QuestPart rabbitearsquest
pause @rand(2,4)
call rabbitearsquest
release farmkittyband
}
}
macro blackdyestuffquest {
do conf QuestPart checkblackdyestuff
call checkblackdyestuff
}
macro checkblackdyestuff {
if (@invamount (Red Herb) < 1800) goto farmredherb
if (@invamount (Yellow Herb) < 1800) goto farmyellowherb
if (@invamount (Green Herb) < 1800) goto farmgreenherb
if (@invamount (Blue Herb) < 300) goto farmblueherb
if (@invamount (Counteragent) < 60) goto countmixquest
if (@invamount (Mixture) < 60) goto countmixquest
if (@invamount (Empty Bottle) < 60) goto farmemptybottle
goto buyblackdyestuff
:farmredherb
do conf QuestPart farmredherb
do mconf Thief Bug 1
do pconf Red Herb 1
pause @rand(2,4)
do c @warp prt_sewb2
goto end
:farmyellowherb
do conf QuestPart farmyellowherb
do mconf Thief Bug Male 1
do pconf Yellow Herb 1
pause @rand(2,4)
do c @warp prt_sewb4
goto end
:farmgreenherb
do conf QuestPart farmgreenherb
do mconf Hornet 1
do pconf Green Herb 1
pause @rand(2,4)
do c @warp mjolnir_04
goto end
:farmblueherb
do conf QuestPart farmblueherb
do mconf Snowier 1
do pconf Blue Herb 1
pause @rand(2,4)
do c @warp ice_dun02
goto end
:countmixquest
do conf QuestPart countmixquest
call countmixquest
goto end
:farmemptybottle
do conf QuestPart farmemptybottle
do mconf Plankton 1
do pconf Empty Bottle 1
pause @rand(2,4)
do c @warp iz_dun00
goto end
:buyblackdyestuff
do conf QuestPart buyblackdyestuff
pause @rand(2,4)
call buyblackdyestuff
:end
}
automacro farmredherb {
eval $::config{QuestPart} eq "farmredherb"
location prt_sewb2
inventory "Red Herb" >= 1800
run-once 1
call {
do conf QuestPart checkblackdyestuff
pause @rand(2,4)
call checkblackdyestuff
release farmredherb
}
}
automacro farmyellowherb {
eval $::config{QuestPart} eq "farmyellowherb"
location prt_sewb4
inventory "Yellow Herb" >= 1800
run-once 1
call {
do conf QuestPart checkblackdyestuff
pause @rand(2,4)
call checkblackdyestuff
release farmyellowherb
}
}
automacro farmgreenherb {
eval $::config{QuestPart} eq "farmgreenherb"
location mjolnir_04
inventory "Green Herb" >= 1800
run-once 1
call {
do conf QuestPart checkblackdyestuff
pause @rand(2,4)
call checkblackdyestuff
release farmgreenherb
}
}
automacro farmgblueherb {
eval $::config{QuestPart} eq "farmgblueherb"
location ice_dun02
inventory "Blue Herb" >= 300
run-once 1
call {
do conf QuestPart checkblackdyestuff
pause @rand(2,4)
call checkblackdyestuff
release farmgblueherb
}
}
automacro farmemptybottle {
eval $::config{QuestPart} eq "farmemptybottle"
location iz_dun00
inventory "Empty Bottle" >= 60
run-once 1
call {
do conf QuestPart checkblackdyestuff
pause @rand(2,4)
call checkblackdyestuff
release farmemptybottle
}
}
macro countmixquest {
if (@invamount (Counteragent) < 60) goto counteragentquest
if (@invamount (Mixture) < 60) goto mixturequest
goto checkblackdyestuff
:counteragentquest
do conf QuestPart counteragentquest
call counteragentquest
goto end
:mixturequest
do conf QuestPart mixturequest
call mixturequest
:end
}
macro counteragentquest {
if (@invamount (Alcohol) < 60) goto farmalcohol
if (@invamount (Detrimindexta) < 60) goto farmdetrimindexta
if (@invamount (Empty Bottle) < 60) goto farmemptybottle2
goto buycounteragent
:farmalcohol
do conf QuestPart farmalcohol
do mconf Plankton 1
do pconf Alcohol 1
pause @rand(2,4)
do c @warp iz_dun00
goto end
:farmdetrimindexta
do conf QuestPart farmdetrimindexta
do mconf Hydra 1
do pconf Detrimindexta 1
pause @rand(2,4)
do c @warp iz_dun02
goto end
:farmemptybottle2
do conf QuestPart farmemptybottle2
do mconf Plankton 1
do pconf Empty Bottle 1
pause @rand(2,4)
do c @warp iz_dun00
goto end
:buycounteragent
do conf QuestPart buycounteragent
pause @rand(2,4)
call buycounteragent
:end
}
automacro farmalcohol {
eval $::config{QuestPart} eq "farmalcohol"
location iz_dun00
inventory "Alcohol" >= 60
run-once 1
call {
do conf QuestPart counteragentquest
pause @rand(2,4)
call counteragentquest
release farmalcohol
}
}
automacro farmemptybottle2 {
eval $::config{QuestPart} eq "farmemptybottle2"
location iz_dun00
inventory "Empty Bottle" >= 60
run-once 1
call {
do conf QuestPart counteragentquest
pause @rand(2,4)
call counteragentquest
release farmemptybottle2
}
}
automacro farmdetrimindexta {
eval $::config{QuestPart} eq "farmdetrimindexta"
location iz_dun01, iz_dun02
inventory "Detrimindexta" >= 60
run-once 1
call {
do conf QuestPart counteragentquest
pause @rand(2,4)
call counteragentquest
release farmdetrimindexta
}
}
macro mixturequest {
if (@invamount (Alcohol) < 60) goto farmalcohol2
if (@invamount (Karvodailnirol) < 60) goto farmkarvodailnirol
if (@invamount (Empty Bottle) < 60) goto farmemtybottle3
goto buymixture
:farmalcohol2
do conf QuestPart farmalcohol2
do mconf Plankton 1
do pconf Alcohol 1
pause @rand(2,4)
do c @warp iz_dun00
goto end
:farmkarvodailnirol
do conf QuestPart farmkarvodailnirol
do mconf Poison Spore 1
do pconf Karvodailnirol 1
pause @rand(2,4)
do c @warp mjolnir_07
goto end
:farmemptybottle3
do conf QuestPart farmemptybottle3
do mconf Plankton 1
do pconf Empty Bottle 1
pause @rand(2,4)
do c @warp iz_dun00
goto end
:buymixture
do conf QuestPart buymixture
pause @rand(2,4)
call buymixture
:end
}
automacro farmalcohol2 {
eval $::config{QuestPart} eq "farmalcohol2"
location iz_dun00
inventory "Alcohol" >= 60
run-once 1
call {
do conf QuestPart mixturequest
pause @rand(2,4)
call mixturequest
release farmalcohol2
}
}
automacro farmemptybottle3 {
eval $::config{QuestPart} eq "farmemptybottle3"
location iz_dun00
inventory "Empty Bottle" >= 60
run-once 1
call {
do conf QuestPart mixturequest
pause @rand(2,4)
call mixturequest
release farmemptybottle3
}
}
automacro farmkarvodailnirol {
eval $::config{QuestPart} eq "farmkarvodailnirol"
location mjolnir_07
inventory "Karvodailnirol" >= 60
run-once 1
call {
do conf QuestPart mixturequest
pause @rand(2,4)
call mixturequest
release farmkarvodailnirol
}
}
macro buycounteragent {
do conf QuestPart counterquest1
do c @warp alberta_in 129 51
pause @rand(2,4)
do talknpc 133 55 c r0
pause @rand(2,4)
do conf QuestPart counterquest2
do c @warp geffen 180 114
pause @rand(2,4)
do talknpc 181 114 c r1 c
pause @rand(2,4)
do conf QuestPart counterquest3
do c @warp geffen_in 140 140
pause @rand(2,4)
do talknpc 141 140 c r1 c r0 c c c r0
pause @rand(2,4)
call countmixquest
}
macro buymixture {
do conf QuestPart mixturequest1
do c @warp alberta_in 129 51
pause @rand(2,4)
do talknpc 133 55 c r0
pause @rand(2,4)
do conf QuestPart mixturequest2
do c @warp geffen 180 114
pause @rand(2,4)
do talknpc 181 114 c r1 c
pause @rand(2,4)
do conf QuestPart mixturequest3
do c @warp geffen_in 140 140
pause @rand(2,4)
do talknpc 141 140 c r1 c r1 c c c r0
pause @rand(2,4)
call countmixquest
}
macro buyblackdyestuff {
do c @warp morocc_in 143 98
call buyblackdyestuffcheck
}
macro buyblackdyestuffcheck {
if (@invamount (Black Dyestuffs) >= 60) goto questblackdyestuffcomplete
if (@invamount (Black Dyestuffs) < 60) goto buyblackdyestuffroutine
:buyblackdyestuffroutine
do conf QuestPart buyblackdyestuffroutine
pause @rand(2,4)
do talknpc 146 99 c r1 c c c r7
pause @rand(2,4)
do conf QuestPart buyblackdyestuffcheck
call buyblackdyestuffcheck
goto end
:questblackdyestuffcomplete
do conf QuestPart questblackdyestuffcomplete
call rabbitearsquest
:end
}
macro buybunnyband {
do c @warp turbo_room 126 93
call buybunnybandcheck
}
macro buybunnybandcheck {
if (@invamount (Bunny Band) >= 10) goto buybunnybandcomplete
if (@invamount (Bunny Band) < 10) goto buybunnybandroutine
:buybunnybandroutine
do conf QuestPart buybunnybandroutine
pause @rand(2,4)
do talknpc 126 97 b e
do buy 11 10
pause @rand(2,4)
do conf QuestPart buybunnybandcheck
call buybunnybandcheck
goto end
:buybunnybandcomplete
do conf QuestPart buybunnybandcomplete
call rabbitearsquest
:end
}
macro buyrabbitears {
do c @warp amatsu 254 242
pause @rand(2,4)
do talknpc 126 97 c r0 c r23 r0
pause @rand(2,4)
do conf QuestPart rabbitearsquestcomplete
}