- Back to Home »
- 楓之谷教學 »
- 【楓之谷教學】轉蛋機新增物品、抽獎機率調整。
【問題】
如您有下列問題,都可以在本篇教學中,獲得解答。
1.轉蛋物品如何新增?
2.該如何調整轉蛋機倍率?
3.如何新增一個新的轉蛋?
【解決】
要有一個觀念,轉蛋機是透過JS語法寫出來的,因此,寫一個轉蛋機,不一定要有轉蛋NPC,最重要的是要有轉蛋的JS語法,只要寫得出來,每個NPC都可以成為轉蛋機。
首先,請先點選本篇文章中的指令代碼,並下載下來。
"點此"
接著,請先複製出下方語法,接下來會教導如何使用,不用知道原理,只要記得觀念就好。
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 = 獲得兩件
【影片說明】
我照教學改 但出現錯誤:
回覆刪除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
想請問如何設定轉蛋物是否上廣呢
刪除好好研究教學內容吧.....
刪除請問轉蛋機要轉出浮動數值的裝備
回覆刪除要怎麼編碼呢?
感謝
我記得曾經有人跟我說過,不過我也忘了。
刪除此區留言就只問有關此轉蛋JS的問題吧。