這是以前找到的製作酒精巨集,我已測試,可用,
提領npc座標跟提領數量請自行調整,還有所有的材料跟物品都齊全他才會開始製作酒精
# 製作酒精
automacro pharmacy {
sp > 20
inventory "酒精製作說明書" == 1
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "空試管" >= 1
inventory "植物梗" >= 5
inventory "毒魔菇芽孢" >= 5
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 CA 03 00 00 00 00 00 00
release pharmacy
}
}
# 補貨判斷
automacro check {
inventory "藥缽" == 0
inventory "空瓶" == 0
inventory "空試管" == 0
inventory "植物梗" < 5
inventory "毒魔菇芽孢" < 5
run-once 1
call storage
}
macro storage {
lock pharmacy
pause 1
do talk @npc (XX YY) <--把XX跟YY改成你要領取的NPC座標
pause 1
do talk cont
do talk resp 1
pause 1
# 若身上有上次做出來的成品,則存入倉庫
if (@invamount(酒精) == 0) goto jump
do storage add @inventory(酒精) @invamount(酒精)
:jump
# 由倉庫取出材料
do storage get @storage (空瓶) 60
do storage get @storage (藥缽) 60
do storage get @storage (空試管) 60
do storage get @storage (植物梗) 300
do storage get @storage (毒魔菇芽孢) 300
pause 1
do storage close
release check
release pharmacy
pause 1
}
如果要做其他藥水,方式跟上面一樣
只要把材料跟封包改掉就可以了
其他藥水的封包如下
#紅色藥水 = 8E 01 F5 01 00 00 00 00 00 00
#黃色藥水 = 8E 01 F7 01 00 00 00 00 00 00
#白色藥水 = 8E 01 F8 01 00 00 00 00 00 00
#藍色藥水 = 8E 01 F9 01 00 00 00 00 00 00
#曼特療傷藥 = 8E 01 5D 02 00 00 00 00 00 00
#蘆薈汁液 8E 01 5E 02 00 00 00 00 00 00
#紅色纖細藥水 = 8E 01 21 02 00 00 00 00 00 00
#黃色纖細藥水 = 8E 01 22 02 00 00 00 00 00 00
#白色纖細藥水 = 8E 01 23 02 00 00 00 00 00 00
#酒精 = 8E 01 CA 03 00 00 00 00 00 00
#火煙瓶 = 8E 01 DF 1B 00 00 00 00 00 00
#強酸瓶 = 8E 01 E0 1B 00 00 00 00 00 00
#噬人植物瓶 = 8E 01 E1 1B 00 00 00 00 00 00
#刺錘瓶 = 8E 01 E2 1B 00 00 00 00 00 00
#護貝藥 = 8E 01 E3 1B 00 00 00 00 00 00
==========以上若不能,測試二如下=====================
1. 新增記錄成功率的功能
2. 配藥地點改為任何可存倉的 NPC 皆可(克魔島除外)
3. 新增設定值初始化功能
4. 自動判定最大可攜帶幾組材料而不負重
###########################################################
# 1. 倉庫備妥至少藥缽150個、空瓶150個、空試管150個、植物梗750個、毒魔菇芽孢750個
# 2. 把酒精製作說明書帶在身上
# 3. 決定存倉用卡普拉NPC的座標,並將座標填入初始變數 $npcLocation 後面
# 4. 移動至看得到卡普拉NPC的任何一點上
# 5. 身上物品儘量清空
# 6. 組隊
# 7. 執行程式,待出現"設定值初始化完畢"訊息後鍵入指令 "macro start"
# 設定值初始化
automacro initiate {
run-once 1
call {
# 以下設定卡普拉所在座標,可根據不同的卡普拉 NPC 座標作更改
$npcLocation = 327 108
# 其他想要初始化設定什麼的可以在下面新增
do conf storageAuto 0
do conf sellAuto 0
do conf autoTalkCont 0
do conf logPartyChat 1
do conf sitAuto_sp_lower 0
do conf sitAuto_sp_upper 0
do conf sitAuto_over_50 0
# 一組材料重 14
do eval $::Macro::Data::varStack{controlAmount} = int(($::char->{'weight_max'} * 0.5 - $::char->{'weight'}) / 14)
# $controlAmount = @eval(int(($.maxweight * 0.5 - $.weight) / 14))
log 最大可攜帶 $controlAmount 組材料而不負重
if ($controlAmount > 0) goto jump1
log ***** 注意!未攜帶材料前已負重,可能導致巨集執行錯誤! *****
:jump1
if (@invamount(酒精製作說明書) != 0) goto jump2
log ***** 注意!酒精製作說明書尚未帶在身上 *****
:jump2
log 設定值初始化完畢
}
}
# 補貨判斷
automacro refillCheck {
sp > 95%
inventory "酒精製作說明書" == 1
inventory "藥缽" = 0
inventory "空瓶" >= 0
inventory "空試管" >= 0
inventory "植物梗" >= 0
inventory "毒魔菇芽孢" >= 0
# 以下為倉庫物品存量判斷
var medicineBowls > 150
var emptyBottles > 150
var emptyTestTubes > 150
var stems > 750
var poisonSpores > 750
run-once 1
call start
}
# 補貨
macro start {
lock pharmacy
pause 1
do talk @npc ($npcLocation)
do talk cont
do talk resp 1
pause 2
# 若身上有上次做出來的酒精,則存入倉庫
if (@invamount(酒精) == 0) goto jump
$usedMedicineBowls = @eval($tempMedicineBowls - @invamount(藥缽))
$finishedAmount = @invamount(酒精)
do storage add @inventory(酒精) @invamount(酒精)
# 本 if 為計算成功率用
if ($usedMedicineBowls <= 0) goto jump
$rateOfSuccess = @eval($finishedAmount / $usedMedicineBowls)
do eval $::Macro::Data::varStack{rateOfSuccess} = sprintf("%.2f",$::Macro::Data::varStack{rateOfSuccess} * 100) . '%';
do p 上批製造 $usedMedicineBowls 個酒精成功率 $rateOfSuccess
:jump
# 由倉庫取出材料
do storage get @storage(藥缽) @eval(150 - @invamount(藥缽))
do storage get @storage(空瓶) @eval(150 - @invamount(空瓶))
do storage get @storage(空試管) @eval(150 - @invamount(空試管))
do storage get @storage(植物梗) @eval(750 - @invamount(植物梗))
do storage get @storage(毒魔菇芽孢) @eval(750 - @invamount(毒魔菇芽孢))
[
$medicineBowls = @storamount(藥缽)
$emptyBottles = @storamount(空瓶)
$emptyTestTubes = @storamount(空試管)
$stems = @storamount(植物梗)
$poisonSpores = @storamount(毒魔菇芽孢)
$tempMedicineBowls = @invamount(藥缽)
]
# 由隊頻顯示並記錄倉庫材料剩餘量與成品數量
do p 藥缽尚餘 $medicineBowls 個
do p 空瓶尚餘 $emptyBottles 個
do p 空試管尚餘 $emptyTestTubes 個
do p 植物梗尚餘 $stems 個
do p 毒魔菇芽孢尚餘 $poisonSpores 個
do p 酒精庫存 @storamount(酒精) 個
pause 1
do storage close
release refillCheck
release pharmacy
}
# 製藥判斷
automacro pharmacy {
sp > 20
inventory "酒精製作說明書" == 1
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "空試管" >= 1
inventory "植物梗" >= 5
inventory "毒魔菇芽孢" >= 5
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 CA 03 00 00 00 00 00 00
release pharmacy
}
}
=======鍊金製藍水===============================
###########################################################
# 1. 倉庫備妥藥缽、空藥瓶、藍色藥草、雪勒結晶,至少各100個
# 2. 把一般藥水製作說明書帶在身上
# 3. 決定存倉用卡普拉NPC的座標,並將座標填入初始變數 $npcLocation 後面
# 4. 移動至看得到卡普拉NPC的任何一點上
# 5. 身上物品儘量清空
# 6. 組隊
# 7. 執行程式,待出現"設定值初始化完畢"訊息後鍵入指令 "macro start"
# 設定值初始化
automacro initiate {
exclusive 1
run-once 1
call {
# 以下設定卡普拉所在座標,可根據不同的卡普拉 NPC 座標作更改
$npcLocation = 327 108
# 其他想要初始化設定什麼的可以在下面新增
do conf storageAuto 0
do conf sellAuto 0
do conf autoTalkCont 0
do conf logPartyChat 1
do conf sitAuto_sp_lower 0
do conf sitAuto_sp_upper 0
do conf sitAuto_over_50 0
# 一組材料重 10,但因藍水會越做越負重,故以 12 做為材料負重較保險
do eval $::Macro::Data::varStack{controlAmount} = int(($::char->{'weight_max'} * 0.5 - $::char->{'weight'}) / 12)
# $controlAmount = @eval(int(($.maxweight * 0.5 - $.weight) / 12))
log 最大可攜帶 $controlAmount 組材料而不負重
if ($controlAmount > 0) goto jump1
log ***** 注意!未攜帶材料前已負重,可能導致巨集執行錯誤! *****
:jump1
if (@invamount(一般藥水製作說明書) != 0) goto jump2
log ***** 注意!一般藥水製作說明書尚未帶在身上 *****
:jump2
log 設定值初始化完畢
}
}
# 補貨判斷
automacro refillCheck {
# sp 快沒了會先恢復到 95% 才會再繼續做藥水
sp > 95%
inventory "一般藥水製作說明書" = 1
inventory "藥缽" = 0
inventory "空藥瓶" >= 0
inventory "藍色藥草" >= 0
inventory "雪勒結晶" >= 0
var medicineBowls > 100
var emptyPotionBottles > 100
var blueHerbs > 100
var scells > 100
run-once 1
call start
}
# 補貨
macro start {
lock pharmacy
pause 1
do talk @npc ($npcLocation)
do talk cont
do talk resp 1
pause 2
# 若身上有上次做出來的成品,則存入倉庫
if (@invamount(藍色藥水) == 0) goto jump
$usedMedicineBowl = @eval($tempMedicineBowls - @invamount(藥缽))
$finishedAmount = @invamount(藍色藥水)
do storage add @inventory(藍色藥水)
# 本 if 為計算成功率用
if ($usedMedicineBowl <= 0) goto jump
$rateOfSuccess = @eval($finishedAmount / $usedMedicineBowl)
do eval $::Macro::Data::varStack{rateOfSuccess} = sprintf("%.2f",$::Macro::Data::varStack{rateOfSuccess} * 100) . '%';
do p 上批製造 $usedMedicineBowl 個藍色藥水成功率 $rateOfSuccess
:jump
# 由倉庫取出材料
do storage get @storage(藥缽) @eval($controlAmount - @invamount(藥缽))
do storage get @storage(空藥瓶) @eval($controlAmount - @invamount(空藥瓶))
do storage get @storage(藍色藥草) @eval($controlAmount - @invamount(藍色藥草))
do storage get @storage(雪勒結晶) @eval($controlAmount - @invamount(雪勒結晶))
[
$medicineBowls = @storamount(藥缽)
$emptyPotionBottles = @storamount(空藥瓶)
$blueHerbs = @storamount(藍色藥草)
$scells = @storamount(雪勒結晶)
$tempMedicineBowls = @invamount(藥缽)
]
# 由隊頻顯示並記錄倉庫材料剩餘量與成品數量
do p 藥缽尚餘 $medicineBowls 個
do p 空藥瓶尚餘 $emptyPotionBottles 個
do p 藍色藥草尚餘 $blueHerbs 個
do p 雪勒結晶尚餘 $scells 個
do p 藍色藥水庫存 @storamount(藍色藥水) 個
pause 1
do storage close
release refillCheck
release pharmacy
}
# 製藥
automacro pharmacy {
sp > 20
inventory "一般藥水製作說明書" == 1
inventory "藥缽" >= 1
inventory "空藥瓶" >= 1
inventory "藍色藥草" >= 1
inventory "雪勒結晶" >= 1
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 F9 01 00 00 00 00 00 00
release pharmacy
}
}
===========鍊金製水巨集========================
###########################################################
# 1. 倉庫備妥藥缽、空藥瓶、藍色藥草、雪勒結晶,至少各100個
# 2. 把一般藥水製作說明書帶在身上
# 3. 決定存倉用卡普拉NPC的座標,並將座標填入初始變數 $npcLocation 後面
# 4. 移動至看得到卡普拉NPC的任何一點上
# 5. 身上物品儘量清空
# 6. 組隊
# 7. 執行程式,待出現"設定值初始化完畢"訊息後鍵入指令 "macro start"
# 設定值初始化
automacro initiate {
exclusive 1
run-once 1
call {
# 以下設定卡普拉所在座標,可根據不同的卡普拉 NPC 座標作更改
$npcLocation = 327 108
# 其他想要初始化設定什麼的可以在下面新增
do conf storageAuto 0
do conf sellAuto 0
do conf autoTalkCont 0
do conf logPartyChat 1
do conf sitAuto_sp_lower 0
do conf sitAuto_sp_upper 0
do conf sitAuto_over_50 0
# 一組材料重 10,但因藍水會越做越負重,故以 12 做為材料負重較保險
do eval $::Macro::Data::varStack{controlAmount} = int(($::char->{'weight_max'} * 0.5 - $::char->{'weight'}) / 12)
# $controlAmount = @eval(int(($.maxweight * 0.5 - $.weight) / 12))
log 最大可攜帶 $controlAmount 組材料而不負重
if ($controlAmount > 0) goto jump1
log ***** 注意!未攜帶材料前已負重,可能導致巨集執行錯誤! *****
:jump1
if (@invamount(一般藥水製作說明書) != 0) goto jump2
log ***** 注意!一般藥水製作說明書尚未帶在身上 *****
:jump2
log 設定值初始化完畢
}
}
# 補貨判斷
automacro refillCheck {
# sp 快沒了會先恢復到 95% 才會再繼續做藥水
sp > 95%
inventory "一般藥水製作說明書" = 1
inventory "藥缽" = 0
inventory "空藥瓶" >= 0
inventory "藍色藥草" >= 0
inventory "雪勒結晶" >= 0
var medicineBowls > 100
var emptyPotionBottles > 100
var blueHerbs > 100
var scells > 100
run-once 1
call start
}
# 補貨
macro start {
lock pharmacy
pause 1
do talk @npc ($npcLocation)
do talk cont
do talk resp 1
pause 2
# 若身上有上次做出來的成品,則存入倉庫
if (@invamount(藍色藥水) == 0) goto jump
$usedMedicineBowl = @eval($tempMedicineBowls - @invamount(藥缽))
$finishedAmount = @invamount(藍色藥水)
do storage add @inventory(藍色藥水)
# 本 if 為計算成功率用
if ($usedMedicineBowl <= 0) goto jump
$rateOfSuccess = @eval($finishedAmount / $usedMedicineBowl)
do eval $::Macro::Data::varStack{rateOfSuccess} = sprintf("%.2f",$::Macro::Data::varStack{rateOfSuccess} * 100) . '%';
do p 上批製造 $usedMedicineBowl 個藍色藥水成功率 $rateOfSuccess
:jump
# 由倉庫取出材料
do storage get @storage(藥缽) @eval($controlAmount - @invamount(藥缽))
do storage get @storage(空藥瓶) @eval($controlAmount - @invamount(空藥瓶))
do storage get @storage(藍色藥草) @eval($controlAmount - @invamount(藍色藥草))
do storage get @storage(雪勒結晶) @eval($controlAmount - @invamount(雪勒結晶))
[
$medicineBowls = @storamount(藥缽)
$emptyPotionBottles = @storamount(空藥瓶)
$blueHerbs = @storamount(藍色藥草)
$scells = @storamount(雪勒結晶)
$tempMedicineBowls = @invamount(藥缽)
]
# 由隊頻顯示並記錄倉庫材料剩餘量與成品數量
do p 藥缽尚餘 $medicineBowls 個
do p 空藥瓶尚餘 $emptyPotionBottles 個
do p 藍色藥草尚餘 $blueHerbs 個
do p 雪勒結晶尚餘 $scells 個
do p 藍色藥水庫存 @storamount(藍色藥水) 個
pause 1
do storage close
release refillCheck
release pharmacy
}
# 製藥
automacro pharmacy {
sp > 20
inventory "一般藥水製作說明書" == 1
inventory "藥缽" >= 1
inventory "空藥瓶" >= 1
inventory "藍色藥草" >= 1
inventory "雪勒結晶" >= 1
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 F9 01 00 00 00 00 00 00
release pharmacy
}
}
==========酒精,鹽酸,火煙====================================
# config 檔設定
do conf autoTalkCont 0
do conf storageAuto 0
do conf sellAuto 0
$productAmount = @invamount(火煙瓶)
# 移動到朱諾右下做存取倉庫的動作
do move 331 100 yuno
pause 1
do talk @npc (327 108)
pause 1
do talk cont
pause 1
do talk resp 1
pause 2
if ($productAmount == 0) goto jump
do storage add @inventory(火煙瓶) @invamount(火煙瓶)
pause 1
:jump
do storage get @storage(藥缽) @eval(180 - @invamount(藥缽))
pause 1
do storage get @storage(空瓶) @eval(180 - @invamount(空瓶))
pause 1
do storage get @storage(酒精) @eval(180 - @invamount(酒精))
pause 1
do storage get @storage(透明之布) @eval(180 - @invamount(透明之布))
pause 1
$medicineBowls = @storamount(藥缽)
$emptyPotionBottles = @storamount(空瓶)
$blueHerbs = @storamount(酒精)
$scells = @storamount(透明之布)
do p 藥缽尚餘 $medicineBowls 個
do p 空瓶尚餘 $emptyPotionBottles 個
do p 酒精尚餘 $blueHerbs 個
do p 透明之布尚餘 $scells 個
do p 火煙瓶庫存 @storamount(火煙瓶) 個
pause 1
do storage close
pause 1
release all
pause 1
# 移動到位置觸發點,需與 automacro create 的 location 設的座標點相同
do move 316 99 yuno
}
automacro initiate {
# sp 快沒了會先恢復到 98% 才會再繼續做藥水
sp > 98%
inventory "藥缽" = 0
inventory "空瓶" = 0
inventory "酒精" = 0
inventory "透明之布" = 0
inventory "火煙瓶製作說明書" = 1
var medicineBowls > 180
var emptyPotionBottles > 180
var blueHerbs > 180
var scells > 180
call start
run-once 1
}
automacro create {
## 位置觸發點,需與 macro start 最後一行設的座標點相同
location yuno 316 99
sp > 20
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "酒精" >= 1
inventory "透明之布" >= 1
inventory "火煙瓶製作說明書" = 1
call pharmacy
run-once 1
}
macro pharmacy {
do ss 228 10
do send 8E 01 DF 1B 00 00 00 00 00 00
release create
}
##### 紅色藥水 = 8E 01 F5 01 00 00 00 00 00 00
##### 黃色藥水 = 8E 01 F7 01 00 00 00 00 00 00
##### 白色藥水 = 8E 01 F8 01 00 00 00 00 00 00
##### 藍色藥水 = 8E 01 F9 01 00 00 00 00 00 00
##### 曼特療傷藥 = 8E 01 5D 02 00 00 00 00 00 00
##### 蘆薈汁液 = 8E 01 5E 02 00 00 00 00 00 00
##### 紅色纖細藥水 = 8E 01 21 02 00 00 00 00 00 00
##### 黃色纖細藥水 = 8E 01 22 02 00 00 00 00 00 00
##### 白色纖細藥水 = 8E 01 23 02 00 00 00 00 00 00
##### 酒精 = 8E 01 CA 03 00 00 00 00 00 00
##### 火煙瓶 = 8E 01 DF 1B 00 00 00 00 00 00
##### 強酸瓶 = 8E 01 E0 1B 00 00 00 00 00 00
##### 植物瓶 = 8E 01 E1 1B 00 00 00 00 00 00
##### 刺錘瓶 = 8E 01 E2 1B 00 00 00 00 00 00
##### 護貝藥 = 8E 01 E3 1B 00 00 00 00 00 00
#####火抵抗藥 = 8E 01 56 2F 00 00 00 00 00 00
#####水抵抗藥 = 8E 01 57 2F 00 00 00 00 00 00
#####地抵抗藥 = 8E 01 58 2F 00 00 00 00 00 00
#####風抵抗藥 = 8E 01 59 2F 00 00 00 00 00 00
# 1. 確認倉庫有大量的材料
# 2. 先將一般藥水製作說明書放在物品欄,身上多餘物品儘量清空
# 3. 鍊金人物放在朱諾,要組隊
# 4. 操作視窗鍵入 macro start 以開始製作
# 注意事項:
# macro start 最後一行的 "do move 316 99 yuno",
# 與 automacro create 第一行的 "location yuno 316 99",
# 這兩行的 "316 99" 為位置觸發點,角色若沒有站在這個點上,
# 就不會觸發藥水的製作。可修改為地圖上任意可移動到的座標,
# 以免大家都用這份巨集座標設一樣,會互相干擾到。
macro start {
# config 檔設定
do conf autoTalkCont 0
do conf storageAuto 0
do conf sellAuto 0
$productAmount = @invamount(火煙瓶)
# 移動到朱諾右下做存取倉庫的動作
do move 331 100 yuno
pause 1
do talk @npc (327 108)
pause 1
do talk cont
pause 1
do talk resp 1
pause 2
if ($productAmount == 0) goto jump
do storage add @inventory(火煙瓶) @invamount(火煙瓶)
pause 1
:jump
do storage get @storage(藥缽) @eval(180 - @invamount(藥缽))
pause 1
do storage get @storage(空瓶) @eval(180 - @invamount(空瓶))
pause 1
do storage get @storage(酒精) @eval(180 - @invamount(酒精))
pause 1
do storage get @storage(透明之布) @eval(180 - @invamount(透明之布))
pause 1
$medicineBowls = @storamount(藥缽)
$emptyPotionBottles = @storamount(空瓶)
$blueHerbs = @storamount(酒精)
$scells = @storamount(透明之布)
do p 藥缽尚餘 $medicineBowls 個
do p 空瓶尚餘 $emptyPotionBottles 個
do p 酒精尚餘 $blueHerbs 個
do p 透明之布尚餘 $scells 個
do p 火煙瓶庫存 @storamount(火煙瓶) 個
pause 1
do storage close
pause 1
release all
pause 1
# 移動到位置觸發點,需與 automacro create 的 location 設的座標點相同
do move 316 99 yuno
}
automacro initiate {
# sp 快沒了會先恢復到 98% 才會再繼續做藥水
sp > 98%
inventory "藥缽" = 0
inventory "空瓶" = 0
inventory "酒精" = 0
inventory "透明之布" = 0
inventory "火煙瓶製作說明書" = 1
var medicineBowls > 180
var emptyPotionBottles > 180
var blueHerbs > 180
var scells > 180
call start
run-once 1
}
automacro create {
## 位置觸發點,需與 macro start 最後一行設的座標點相同
location yuno 316 99
sp > 20
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "酒精" >= 1
inventory "透明之布" >= 1
inventory "火煙瓶製作說明書" = 1
call pharmacy
run-once 1
}
macro pharmacy {
do ss 228 10
do send 8E 01 DF 1B 00 00 00 00 00 00
release create
}
======基因作水(可自行設定作火煙/鹽酸/細白)=============
######
##### 紅色藥水 = 8E 01 F5 01 00 00 00 00 00 00
##### 黃色藥水 = 8E 01 F7 01 00 00 00 00 00 00
##### 白色藥水 = 8E 01 F8 01 00 00 00 00 00 00
##### 藍色藥水 = 8E 01 F9 01 00 00 00 00 00 00
##### Adonyne = 8E 01 5D 02 00 00 00 00 00 00
##### Aloevera = 8E 01 5E 02 00 00 00 00 00 00
##### 紅色纖細藥水 = 8E 01 21 02 00 00 00 00 00 00
##### 黃色纖細藥水 = 8E 01 22 02 00 00 00 00 00 00
##### 白色纖細藥水 = 8E 01 23 02 00 00 00 00 00 00
##### 酒精 = 8E 01 CA 03 00 00 00 00 00 00
##### 火煙瓶 = 8E 01 DF 1B 00 00 00 00 00 00
##### 強酸瓶 = 8E 01 E0 1B 00 00 00 00 00 00
##### Plant Bottle = 8E 01 E1 1B 00 00 00 00 00 00
##### Mine Bottle = 8E 01 E2 1B 00 00 00 00 00 00
##### Coating Wax = 8E 01 E3 1B 00 00 00 00 00 00
#automacro create {
inventory "空試管" > 1
inventory "藥缽" > 1
inventory "空瓶" > 1
inventory "毒魔菇芽孢" > 1
inventory "植物梗" > 1
call pharmacy
run-once 1
}
#macro pharmacy {
do ss 228 10
do send 8E 01 CA 03 00 00 00 00 00 00
release create
}
--------------------------------------------------------------------------------------------------------
自動化製作酒精.火煙瓶.鹽酸瓶
# 執行程式,待出現"設定值初始化完畢"訊息後鍵入指令 "macro start"
# 設定值初始化
automacro initiate {
run-once 1
call {
# 以下設定卡普拉所在座標,可根據不同的卡普拉 NPC 座標作更改
$npcLocation = 120 62
# 其他想要初始化設定什麼的可以在下面新增
do conf storageAuto 0
do conf sellAuto 0
do conf autoTalkCont 0
do conf logPartyChat 1
do conf sitAuto_sp_lower 0
do conf sitAuto_sp_upper 0
do conf sitAuto_over_50 0
# 一組材料重 14
do eval $::Macro::Data::varStack{controlAmount} = int(($::char->{'weight_max'} * 0.5 - $::char->{'weight'}) / 14)
# $controlAmount = @eval(int(($.maxweight * 0.5 - $.weight) / 14))
log 最大可攜帶 $controlAmount 組材料而不負重
if ($controlAmount > 0) goto jump1
log ***** 注意!未攜帶材料前已負重,可能導致巨集執行錯誤! *****
:jump1
if (@invamount(火煙瓶製作說明書) != 0) goto jump2
log ***** 注意!火煙瓶製作說明書尚未帶在身上 *****
:jump2
log 設定值初始化完畢
}
}
# 補貨判斷
automacro refillCheck {
sp > 95%
inventory "火煙瓶製作說明書" == 1
inventory "藥缽" = 0
inventory "空瓶" >= 0
inventory "酒精" >= 0
inventory "透明之布" >= 0
# 以下為倉庫物品存量判斷
var medicineBowls > 200
var emptyBottles > 200
var emptyTestTubes > 200
var stems > 200
run-once 1
call start
}
# 補貨
macro start {
lock pharmacy
pause 1
do talk @npc ($npcLocation)
do talk cont
do talk resp 1
pause 2
# 若身上有上次做出來的火煙瓶,則存入倉庫
if (@invamount(火煙瓶) == 0) goto jump
$usedMedicineBowls = @eval($tempMedicineBowls - @invamount(藥缽))
$finishedAmount = @invamount(火煙瓶)
do storage add @inventory(火煙瓶) @invamount(火煙瓶)
# 本 if 為計算成功率用
if ($usedMedicineBowls <= 0) goto jump
$rateOfSuccess = @eval($finishedAmount / $usedMedicineBowls)
do eval $::Macro::Data::varStack{rateOfSuccess} = sprintf("%.2f",$::Macro::Data::varStack{rateOfSuccess} * 100) . '%';
do p 上批製造 $usedMedicineBowls 個火煙瓶成功率 $rateOfSuccess
:jump
# 由倉庫取出材料
do storage get @storage(藥缽) @eval(200 - @invamount(藥缽))
do storage get @storage(空瓶) @eval(200 - @invamount(空瓶))
do storage get @storage(酒精) @eval(200 - @invamount(酒精))
do storage get @storage(透明之布) @eval(200 - @invamount(透明之布))
[
$medicineBowls = @storamount(藥缽)
$emptyBottles = @storamount(空瓶)
$emptyTestTubes = @storamount(酒精)
$stems = @storamount(透明之布)
$tempMedicineBowls = @invamount(藥缽)
]
# 由隊頻顯示並記錄倉庫材料剩餘量與成品數量
do p 藥缽尚餘 $medicineBowls 個
do p 空瓶尚餘 $emptyBottles 個
do p 酒精尚餘 $emptyTestTubes 個
do p 透明之布尚餘 $stems 個
do p 火煙瓶庫存 @storamount(火煙瓶) 個
pause 1
do storage close
release refillCheck
release pharmacy
}
# 製藥判斷
automacro pharmacy {
sp > 20
inventory "火煙瓶製作說明書" == 1
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "酒精" >= 1
inventory "透明之布" >= 1
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 DF 1B 00 00 00 00 00 00
release pharmacy
}
}
###################################################################################
上列敘述(火煙瓶)全自動化製作存取倉吉芬^^########################################################
###################################################################################
# 執行程式,待出現"設定值初始化完畢"訊息後鍵入指令 "macro start"
# 設定值初始化
automacro initiate {
run-once 1
call {
# 以下設定卡普拉所在座標,可根據不同的卡普拉 NPC 座標作更改
$npcLocation = 120 62
# 其他想要初始化設定什麼的可以在下面新增
do conf storageAuto 0
do conf sellAuto 0
do conf autoTalkCont 0
do conf logPartyChat 1
do conf sitAuto_sp_lower 0
do conf sitAuto_sp_upper 0
do conf sitAuto_over_50 0
# 一組材料重 14
do eval $::Macro::Data::varStack{controlAmount} = int(($::char->{'weight_max'} * 0.5 - $::char->{'weight'}) / 14)
# $controlAmount = @eval(int(($.maxweight * 0.5 - $.weight) / 14))
log 最大可攜帶 $controlAmount 組材料而不負重
if ($controlAmount > 0) goto jump1
log ***** 注意!未攜帶材料前已負重,可能導致巨集執行錯誤! *****
:jump1
if (@invamount(鹽酸瓶製作說明書) != 0) goto jump2
log ***** 注意!鹽酸瓶製作說明書尚未帶在身上 *****
:jump2
log 設定值初始化完畢
}
}
# 補貨判斷
automacro refillCheck {
sp > 95%
inventory "鹽酸瓶製作說明書" == 1
inventory "藥缽" = 0
inventory "空瓶" >= 0
inventory "不死心臟" >= 0
# 以下為倉庫物品存量判斷
var medicineBowls > 200
var emptyBottles > 200
var stems > 200
run-once 1
call start
}
# 補貨
macro start {
lock pharmacy
pause 1
do talk @npc ($npcLocation)
do talk cont
do talk resp 1
pause 2
# 若身上有上次做出來的鹽酸瓶,則存入倉庫
if (@invamount(鹽酸瓶) == 0) goto jump
$usedMedicineBowls = @eval($tempMedicineBowls - @invamount(藥缽))
$finishedAmount = @invamount(鹽酸瓶)
do storage add @inventory(鹽酸瓶) @invamount(鹽酸瓶)
# 本 if 為計算成功率用
if ($usedMedicineBowls <= 0) goto jump
$rateOfSuccess = @eval($finishedAmount / $usedMedicineBowls)
do eval $::Macro::Data::varStack{rateOfSuccess} = sprintf("%.2f",$::Macro::Data::varStack{rateOfSuccess} * 100) . '%';
do p 上批製造 $usedMedicineBowls 個鹽酸瓶成功率 $rateOfSuccess
:jump
# 由倉庫取出材料
do storage get @storage(藥缽) @eval(200 - @invamount(藥缽))
do storage get @storage(空瓶) @eval(200 - @invamount(空瓶))
do storage get @storage(不死心臟) @eval(200 - @invamount(不死心臟))
[
$medicineBowls = @storamount(藥缽)
$emptyBottles = @storamount(空瓶)
$stems = @storamount(不死心臟)
$tempMedicineBowls = @invamount(藥缽)
]
# 由隊頻顯示並記錄倉庫材料剩餘量與成品數量
do p 藥缽尚餘 $medicineBowls 個
do p 空瓶尚餘 $emptyBottles 個
do p 不死心臟尚餘 $stems 個
do p 鹽酸瓶庫存 @storamount(鹽酸瓶) 個
pause 1
do storage close
release refillCheck
release pharmacy
}
# 製藥判斷
automacro pharmacy {
sp > 20
inventory "鹽酸瓶製作說明書" == 1
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "不死心臟" >= 1
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 E0 1B 00 00 00 00 00 00
release pharmacy
}
}
###################################################################################
上列敘述(鹽酸瓶)全自動化製作存取倉吉芬^^########################################################
###################################################################################
# 執行程式,待出現"設定值初始化完畢"訊息後鍵入指令 "macro start"
# 設定值初始化
automacro initiate {
run-once 1
call {
# 以下設定卡普拉所在座標,可根據不同的卡普拉 NPC 座標作更改
$npcLocation = 120 62
# 其他想要初始化設定什麼的可以在下面新增
do conf storageAuto 0
do conf sellAuto 0
do conf autoTalkCont 0
do conf logPartyChat 1
do conf sitAuto_sp_lower 0
do conf sitAuto_sp_upper 0
do conf sitAuto_over_50 0
# 一組材料重 14
do eval $::Macro::Data::varStack{controlAmount} = int(($::char->{'weight_max'} * 0.5 - $::char->{'weight'}) / 14)
# $controlAmount = @eval(int(($.maxweight * 0.5 - $.weight) / 14))
log 最大可攜帶 $controlAmount 組材料而不負重
if ($controlAmount > 0) goto jump1
log ***** 注意!未攜帶材料前已負重,可能導致巨集執行錯誤! *****
:jump1
if (@invamount(酒精製作說明書) != 0) goto jump2
log ***** 注意!酒精製作說明書尚未帶在身上 *****
:jump2
log 設定值初始化完畢
}
}
# 補貨判斷
automacro refillCheck {
sp > 95%
inventory "酒精製作說明書" == 1
inventory "藥缽" = 0
inventory "空瓶" >= 0
inventory "空試管" >= 0
inventory "植物梗" >= 0
inventory "毒魔菇芽孢" >= 0
# 以下為倉庫物品存量判斷
var medicineBowls > 150
var emptyBottles > 150
var emptyTestTubes > 150
var stems > 750
var poisonSpores > 750
run-once 1
call start
}
# 補貨
macro start {
lock pharmacy
pause 1
do talk @npc ($npcLocation)
do talk cont
do talk resp 1
pause 2
# 若身上有上次做出來的酒精,則存入倉庫
if (@invamount(酒精) == 0) goto jump
$usedMedicineBowls = @eval($tempMedicineBowls - @invamount(藥缽))
$finishedAmount = @invamount(酒精)
do storage add @inventory(酒精) @invamount(酒精)
# 本 if 為計算成功率用
if ($usedMedicineBowls <= 0) goto jump
$rateOfSuccess = @eval($finishedAmount / $usedMedicineBowls)
do eval $::Macro::Data::varStack{rateOfSuccess} = sprintf("%.2f",$::Macro::Data::varStack{rateOfSuccess} * 100) . '%';
do p 上批製造 $usedMedicineBowls 個酒精成功率 $rateOfSuccess
:jump
# 由倉庫取出材料
do storage get @storage(藥缽) @eval(150 - @invamount(藥缽))
do storage get @storage(空瓶) @eval(150 - @invamount(空瓶))
do storage get @storage(空試管) @eval(150 - @invamount(空試管))
do storage get @storage(植物梗) @eval(750 - @invamount(植物梗))
do storage get @storage(毒魔菇芽孢) @eval(750 - @invamount(毒魔菇芽孢))
[
$medicineBowls = @storamount(藥缽)
$emptyBottles = @storamount(空瓶)
$emptyTestTubes = @storamount(空試管)
$stems = @storamount(植物梗)
$poisonSpores = @storamount(毒魔菇芽孢)
$tempMedicineBowls = @invamount(藥缽)
]
# 由隊頻顯示並記錄倉庫材料剩餘量與成品數量
do p 藥缽尚餘 $medicineBowls 個
do p 空瓶尚餘 $emptyBottles 個
do p 空試管尚餘 $emptyTestTubes 個
do p 植物梗尚餘 $stems 個
do p 毒魔菇芽孢尚餘 $poisonSpores 個
do p 酒精庫存 @storamount(酒精) 個
pause 1
do storage close
release refillCheck
release pharmacy
}
# 製藥判斷
automacro pharmacy {
sp > 20
inventory "酒精製作說明書" == 1
inventory "藥缽" >= 1
inventory "空瓶" >= 1
inventory "空試管" >= 1
inventory "植物梗" >= 5
inventory "毒魔菇芽孢" >= 5
exclusive 1
run-once 1
call {
do ss 228 10
do send 8E 01 CA 03 00 00 00 00 00 00
release pharmacy
}
}
###################################################################################
上列敘述(酒精)全自動化製作存取倉吉芬^^#########################################################
###################################################################################
完全不用修正只要人物去吉芬倉庫旁,開啟黑窗打macro start輸入可馬上全自動化製作