[楓之谷私服] 潮流轉蛋機 NPC 腳本優化

最後更新於 2022 年 6 月 22 日

看了很多轉蛋機腳本,就是只寫了基本的轉蛋功能,沒考慮到玩家使用上的感受XDD 所以我簡單做了點優化。

效果演示

優化項目

  1. 單抽 / 十抽
  2. 獎池查看功能。
  3. 連續轉蛋結束轉蛋
  4. 抽中指定道具可上綠廣。
  5. 十抽會根據剩餘的背包欄位數轉蛋卷數量決定要幾抽,如果轉蛋卷不足十張或者欄位數不足十個就會根據哪個剩餘的數量較小就轉幾次,避免被吞。(會判斷抽到的是哪個類別的道具,檢查對應類別的欄位數。)

程式碼

找到 9330119 潮流轉蛋機 NPC 腳本把下面的程式碼丟進去覆蓋就可以了。

code 寫得有點亂,之後會慢慢優化,有任何 bug 可以在評論反饋~

❗❗❗ 這裡要注意一下 ❗❗❗

src/scripting/NPCConversationManager.javagainGachaponItem 方法裡面有一句 final IItem item = MapleInventoryManipulator.addbyId_Gachapon(c, id, (short) quantity);

這個 addbyId_Gachapon 方法本身就會去檢查每個類別的欄位是否有空位,一旦有其中一個類別欄位是滿的就會回傳 null,而一回傳 null 時 gainGachaponItem 方法就會回傳 -1,也就不會發獎品。

所以大家自己判斷需不需要有檢查全部欄位都要為空才能轉蛋的需求,如果覺得不需要,可以自行修改 addbyId_Gachapon。(改的時候也要看看有沒有其他地方用到這個方法~ 別牽一髮動全身)

addbyId gachapon [楓之谷私服] 潮流轉蛋機 NPC 腳本優化

我自己是沒有去動 SRC,所以只要有其中一個類別欄位是滿的就沒辦法轉蛋,程式碼中我是用 stop 這個變數來判斷 gainGachaponItem 是不是回傳 -1,一旦回傳 -1 我就結束轉蛋。

補充: 轉蛋上綠廣

有仔細看上面的 code 的話可以看到中特殊獎時會調用 gainGachaponItem 這個方法,並且傳第三個參數 true 回去。

src/scripting/NPCConversationManager.java 找到 gainGachaponItem(int id, int quantity, final String msg, final boolean broad) ,這第三個參數就代表需不需要上綠廣,所以確認一下這邊有沒有判斷 broad 並調用 broadcaseMessage 就好:

gainGachaponItem [楓之谷私服] 潮流轉蛋機 NPC 腳本優化
if (rareness > 0 || broad) {
    World.Broadcast.broadcastMessage(MaplePacketCreator.getGachaponMega("[" + msg + "] " + c.getPlayer().getName(), " : 從轉蛋機轉到了!", item, rareness,c.getChannel()-1).getBytes());
}

:上綠廣的道具寫在 SRC 或者 NPC 腳本裡面都是可以的,因為我懶所以就直接寫在 NPC 腳本裡面了。

4e52d54f6bc42abb41d26eb5b0df6517?s=250&d=wavatar&r=g [楓之谷私服] 潮流轉蛋機 NPC 腳本優化
0 0 評分數
Article Rating
訂閱
通知
guest
1 Comment
在線反饋
查看所有評論
0.0
0.0
6 日 前

謝謝佛心的分享,真的好用