ガチャポンNPC

Go down

ガチャポンNPC

投稿 by Chicken on 2015-01-04, 19:14

以前CombatStory用に書いたものです。
Code:
var status;
var item;
var ticket = 5220000;
var gomi = 50;
var normal = 30;
var rare = 15;
var superrare = 5; //ここで確立を設定する。比で表す。
var gomi_item = [5220000, 5220000];
var normal_item = [5220000, 5220000];
var rare_item = [5220000, 5220000];
var superrare_item = [5220000, 5220000];
var rand;

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

function action(mode, type, selection) {
    if (mode == 1) {
        status++;
    } else {
        cm.sendOk("会話終了時のメッセージ");
        cm.dispose();
    }

    if (status == 0) {
        cm.sendNext("メッセージ1");
    } else if (status == 1) {
   cm.sendYesNo("メッセージ2");
    } else if (status == 2) {
   if(!cm.haveItem(ticket)){
            cm.sendOk("ガチャ券が無いときのメッセージ");
       cm.dispose();
        }
        cm.gainItem(ticket, -1);
        rand = Math.floor( Math.random() * (gomi + normal + rare + superrare) );
        if(rand < superrare)
            item = superrare_item[Math.floor( Math.random() * superrare_item.length )];
        else if(rand < superrare + rare)
            item = rare_item[Math.floor( Math.random() * rare_item.length )];
        else if(rand < superrare + rare + normal)
            item = normal_item[Math.floor( Math.random() * normal_item.length )];
        else
            item = gomi_item[Math.floor( Math.random() * gomi_item.length )];
        cm.gainItem(item, 1)
        cm.sendOk("メッセージ3#i" + item + ":x");
        cm.dispose();
    }
}

先にレアリティを抽選した後同レアリティ内のアイテムで再度抽選を行います。

Chicken

Posts : 2
Join date : 2015/01/02

トップに戻る Go down

Re: ガチャポンNPC

投稿 by Chicken on 2016-10-02, 01:16

このスクリプトには致命的なバグがあります。

詳細
チケットを所持していない状態の時、
Code:
  if(!cm.haveItem(ticket)){
            cm.sendOk("ガチャ券が無いときのメッセージ");
      cm.dispose();
        }
こちらで処理をしているのですがreturnで処理を終えていないためガチャが回せてしまいます。

Code:
if(!cm.haveItem(ticket)){
    cm.sendOk("ガチャ券が無いときのメッセージ");
    cm.dispose();
    return;
}
こうしてください

Chicken

Posts : 2
Join date : 2015/01/02

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可