########################以下為設定精鍊裝備與消耗品########################
automacro reading {
run-once 1
call {
$equip = 短劍 [3]
#$equip 請打上裝備名稱,要加上裝備洞數 (例:鮮紅閃電手槍 [2] or 雙刃短劍 [3])
$supplies = 強化武器金屬-級數一
#$supplies 精鍊消耗品,鋁、神之金屬等,請依精鍊物品自行設定
log 讀取您所要精鍊的物品為"$equip",消耗品為"$supplies"。
}
}
########################以下為補給精鍊用品########################
macro depletion {
$i = $supplies
if ($i == 強化武器金屬-級數一) goto one
if ($i == 強化武器金屬-級數二) goto two
if ($i == 神之金屬) goto three
if ($i == 鋁) goto four
log 四種精鍊用物品都不是,不然你是拿什麼打!
goto end
:one
log 購買強化金屬級數一,15個。
do talk @npc (56 68)
do talk cont
do talk resp 0
do talk cont
do talk num 15
goto end
:two
log 購買強化金屬級數二,15個。
do talk @npc (56 68)
do talk cont
do talk resp 1
do talk cont
do talk num 15
goto end
:three
log 執行自動倉庫存取
do autostorage
goto end
:four
log 執行自動倉庫存取
do autostorage
goto end
:end
}
########金錢少於5萬塊停止精鍊#########
automacro z {
map prt_in
zeny < 50000 #這裡可以更改,錢很多刪去也行
run-once 1
call {
stop
log 您身上的金額低於五萬,自動停止所有動作。
}
}
########################以下為層層精鍊########################
macro +1 {
$count = @invamount ($equip)#這是將要精鍊的+0裝備存入變數$count
while (@invamount ($equip) > 0) as loop1#當身上的+0裝備($equip)大於0時執行迴圈loop1
$temp = @invamount ($supplies)#將精鍊消耗品的數量存入變數$temp
if ($temp > 0) goto next #當消耗品大於0的時候至next行
goto recruit#若不然 則跳至recruit
:next
[
do move 62 65 prt_in#走路至中央精鍊房座標62 65的點
do eq $equip#裝備已設定要精鍊的物品
]
do talknpc 63 60 c r3 c r0 c c r0 c c
#這串是忽克連大叔對話精鍊,r3是右手武器位置(r1是衣服吧,其它的請自行上線測試)
goto ok
:recruit
do move 62 65 prt_in#走路至中央精鍊房座標62 65的點
call depletion#呼叫補給用的外部迴圈
goto ok
:ok
end loop1
log +0已全部精鍊至+1
log +0開始精鍊時$count把,全數精鍊後成功@invamount (+1 $equip)把
}
####################以下只是裝備精鍊數字不同,請參考+1即可############################
macro +2 {
$count = @invamount (+1 $equip)
while (@invamount (+1 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +1 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +1已全部精鍊至+2
log +1開始精鍊時$count把,全數精鍊後成功@invamount (+2 $equip)把
}
macro +3 {
$count = @invamount (+2 $equip)
while (@invamount (+2 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +2 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +2已全部精鍊至+3
log +2開始精鍊時$count把,全數精鍊後成功@invamount (+3 $equip)把
}
macro +4 {
$count = @invamount (+3 $equip)
while (@invamount (+3 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +3 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +3已全部精鍊至+4
log +3開始精鍊時$count把,全數精鍊後成功@invamount (+4 $equip)把
}
macro +5 {
$count = @invamount (+4 $equip)
while (@invamount (+4 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +4 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +4已全部精鍊至+5
log +4開始精鍊時$count把,全數精鍊後成功@invamount (+5 $equip)把
}
macro +6 {
$count = @invamount (+5 $equip)
while (@invamount (+5 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +5 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +5已全部精鍊至+6
log +5開始精鍊時$count把,全數精鍊後成功@invamount (+6 $equip)把
}
macro +7 {
$count = @invamount (+6 $equip)
while (@invamount (+6 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +6 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +6已全部精鍊至+7
log +6開始精鍊時$count把,全數精鍊後成功@invamount (+7 $equip)把
}
macro +8 {
$count = @invamount (+7 $equip)
while (@invamount (+7 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +7 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +7已全部精鍊至+8
log +7開始精鍊時$count把,全數精鍊後成功@invamount (+8 $equip)把
}
macro +9 {
$count = @invamount (+8 $equip)
while (@invamount (+8 $equip) > 0) as loop1
$temp = @invamount ($supplies)
if ($temp > 0) goto next
goto recruit
:next
[
do move 62 65 prt_in
do eq +8 $equip
]
do talknpc 63 60 c r3 c r0 c c r0 c c
goto ok
:recruit
call depletion
goto ok
:ok
end loop1
log +8已全部精鍊至+9
log +8開始精鍊時$count把,全數精鍊後成功@invamount (+9 $equip)把
}
已通過綿密的測試,目前只有一個問題,
就是當你設定的精鍊裝備,編號為0的時候,
他不會自己裝備,會一直敲敲敲同一把,迴圈會卡住
不過只要身上帶著消耗品重登時,重新編號消耗品就會編到0了
算是半算動的巨集吧
需要自己鍵入macro +1
這樣他就會把你設定要精鍊的東西全部+1
macro +2亦是.. 以此類推
以下是一次觸發+1到+7的巨集
macro auto+7 {
while (@invamount ($equip) > 0) as loop1
call +1
end loop1
while (@invamount (+1 $equip) > 0) as loop2
call +2
end loop2
while (@invamount (+2 $equip) > 0) as loop3
call +3
end loop3
while (@invamount (+3 $equip) > 0) as loop4
call +4
end loop4
while (@invamount (+4 $equip) > 0) as loop5
call +5
end loop5
while (@invamount (+5 $equip) > 0) as loop6
call +6
end loop6
while (@invamount (+6 $equip) > 0) as loop7
call +7
end loop7
log 全數精鍊完成!!
}
也是要自己鍵入macro auto+7
只是方便不用從macro +1一直等他打完再+2 再+3..
另外我寫巨集一向都不太用自動觸發
除非是掛機用的,不然做箭做水做肯貝特,
我幾乎都是用半自動去寫
畢竟有時候開上去不是只為了單純一件事
[ 本帖最後由天國 shincheng 大大分享,於 2008-11-12 01:55 編輯 ]
----------------------我是分隔線,另一個自動精練巨集------------------------------------------
只要改武器防具位置、道具名稱、用啥精練,即可。
精煉位置在中央唷。
automacro notSafetyEquip {
map prt_in
inventory "強化武器金屬-級數一" > 0
equipped rightHand 笨拙短劍 [4], +1 笨拙短劍 [4], +2 笨拙短劍 [4], +3 笨拙短劍 [4]
timeout 23
call notSafeUpgrade
}
macro notSafeUpgrade {
do talk @npc (63 60)
pause 1
do talk cont 0
pause 1
do talk resp 3
pause 1
do talk cont 0
pause 1
do talk resp 0
pause 1
do talk cont 0
pause 1
do talk cont 0
pause 1
do talk resp 0
pause 2
do talk cont 0
pause 2
do talk cont 0
}
automacro doequip {
console /You failed to refine a weapon!/
call {
pause 1
do talk cont 0
pause 1
do talk cont 0
pause 1
do eq 笨拙短劍 [4]
}
}
automacro unequip {
console /You equip(.*)+4(.*)笨拙短劍/
call {
pause 1
do talk cont 0
pause 1
do eq 笨拙短劍 [4]
}
}
automacro gg {
if (@invamount(強化武器金屬-級數一) == 0)
run-once 1
call{
do talk @npc (56 68)
pause 1
do talk resp 0
pause 2
do talk num 100
pause 2
release all
}
}