【問題】
如您有下列問題,都可以在本篇教學中,獲得解答。
1.轉蛋物品如何新增?
2.該如何調整轉蛋機倍率?
3.如何新增一個新的轉蛋?


【解決】
要有一個觀念,轉蛋機是透過JS語法寫出來的,因此,寫一個轉蛋機,不一定要有轉蛋NPC,最重要的是要有轉蛋的JS語法,只要寫得出來,每個NPC都可以成為轉蛋機。


首先,請先點選本篇文章中的指令代碼,並下載下來。


接著,請先複製出下方語法,接下來會教導如何使用,不用知道原理,只要記得觀念就好。

//Gachaphon

importPackage(net.sf.odinms.client);

var status = 0;
var chance1 = Math.floor(Math.random()*10+1);
var chance2 = Math.floor(Math.random()*50);
var chance3 = (Math.floor(Math.random()*20)+1);
var chance4 = Math.floor(Math.random()*2+1);
var itemchance = chance1;
var itemamount = Math.floor(Math.random()*50+1);


function start() {
status = -1;
action(1, 0, 0);
}


function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (status >= 2 && mode == 0) {
cm.sendOk("See you next time, when you try your luck here~!");
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
cm.sendNext("HELLO.I NEED #v5220000#");
}
else if (status == 1) {
if (cm.haveItem(5220000)) {
cm.sendYesNo("RELLY?");
}
else if (!cm.haveItem(5220000)) {
cm.sendOk("You dont have any #bgachapon tickets#k.");
cm.dispose();
}
}
else if (status == 2) {
cm.gainItem(5220000, -1);
if ((itemchance >= 1) && (itemchance <= 9)) {
cm.gainItem(2001001, itemamount);
}
else if ((itemchance >= 5) && (itemchance <= 10)) {
cm.gainItem(2001000, itemamount);
}

cm.dispose();
}
}
}

【使用教學】

1.請找任意一隻未有工作的NPC,



2.並增加一個JS語法,將代碼打上去,並複製貼上教學中提供的JS語法,完成後,NPC即有工作。




3.語法講解
我們只以重點說明,其它都是已經設定好,不用多理會。

#設定轉蛋機物品數量
var chance1 = Math.floor(Math.random()*10+1);

10+1其中的+1請不要去理會,只要看10這個數字,這代表著,這個轉蛋機中,有10件物品。
如想塞100件,就把10+1改成100+1。


#設定轉蛋卷
請仔細觀看語法,會發現5220000這個代碼不斷重複,這個代碼是藍色轉蛋卷的語法,因此,如想用蝸牛殼當做轉蛋卷,就去尋找蝸牛殼的語法,將所有5220000改變成蝸牛殼語法。


#設定轉蛋物品跟機率
在設定好轉蛋卷後,就是設定轉蛋物了,本次就拿冰棒冰(2001001)跟西瓜(2001000),當做本次範例,請看下方語法。



請看到冰棒冰 2001001 這個代碼的語法,他被設定為
if ((itemchance >= 1) && (itemchance <= 9))
也就是說10件物品中,其中的1~9件是冰棒冰,這個物品。

而西瓜 20010000 被轉出的機率被設定成
if ((itemchance >= 5) && (itemchance <= 10))
各位可能會覺得奇怪,1~9件都被占去了,怎麼這邊會設定 5 ?
其實這都不影響,因為這邊是代表機率,而不是用物品來排列,這是什麼意思呢?
冰棒冰把9件物品被占去,也就是有90%的機率會抽到冰棒冰,那剩下最後一件是什麼呢?
那當然就是西瓜了,不管怎麼設定,都不會改變冰棒冰占去其中九件這件事。

因此,在設定機率時,請注意,在開頭的10+1中,你已經設定了這個轉蛋機只有10件物品,所以千萬不能把轉蛋物品的機率設定成1~10,因為這就代表,10件物品10件都是這個代碼的物品。



#如何增加物品?
請無限複製此段代碼
else if ((itemchance >= 5) && (itemchance <= 10)) {
cm.gainItem(2001000, itemamount);
}

只要記得,更改轉出物品的機率,跟替換掉,要轉出的道具代碼,就可以了。
但請注意到,要預留塞下這件物品的空間。


#如何設定一次能拿到幾件物品?
請注意到下方代碼
cm.gainItem(2001000, itemamount);

如設定  
itemamount = 隨機獲得數字
設定 1 = 僅獲得一件
設定 2 = 獲得兩件


【影片說明】







{ 5 留言... read them below or Comment }

  1. 我照教學改 但出現錯誤:

    Exception javax.script.ScriptException: ReferenceError: "net" is not defined in
    nashorn:mozilla_compat.js at line number 67
    Error executing script. Path: Libs/scripts/npc/9330112.js
    Exception javax.script.ScriptException: ReferenceError: "net" is not defined in
    nashorn:mozilla_compat.js at line number 67

    回覆刪除
  2. 請問轉蛋機要轉出浮動數值的裝備
    要怎麼編碼呢?
    感謝

    回覆刪除
    回覆
    1. 我記得曾經有人跟我說過,不過我也忘了。
      此區留言就只問有關此轉蛋JS的問題吧。

      刪除

- Copyright © AICL社群娛樂集團 - 網站區 - Date A Live - Powered by Blogger - Designed by Johanes Djogan -