close

這是以前找到的製作酒精巨集,我已測試,可用,
提領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輸入可馬上全自動化製作


 


 

arrow
arrow
    全站熱搜

    aaa1314 發表在 痞客邦 留言(2) 人氣()