このページは、SOLD OUT ファンサイトのso-Junkyで行われていたゲームの改造講座を転記したものです。

SOLD OUT 改造講座 | SOLD OUT ミジンコ

五芒星

SOLD OUT ミジンコ

010 使うと無くなる

アイテムを使用すると失う設定

今回の講座で取り扱う内容は、無改造版の「薬調合入門」のように、商品を使うと無くなってしまう、というものです。

SOLD OUT ミジンコでは「タモ」を対象にします。

しかし、使うたびに無くなってしまっては、毎回市場から仕入れなければいけません。そこで、「近くの山への地図」や「○○の作り方」のように、たま〜に無くなってしまうという設定をします。この、たま〜に無くなってしまう設定ですが、「独自関数」と呼ばれるもので処理する必要があります(わけわかんないと思うので、さらっと流してください)。

「独自関数」とは、開発者(改造者)が SOLD OUT の基本機能として備わっていないものを、独自に追加する場合に perl というスクリプト言語で記述するものです。しかし、この講座では perl 言語に関する説明をする余裕がありません(私のスキル上の問題があります)。

今回必要とする「アイテムがたま〜に無くなってしまう」という「独自関数」は、あらかじめ「無改造版」の「inc-item-data.cgi」に備わっている機能です。今回は、たまたま備わっているこの機能を利用しますが、本来は自分で作らなければならないものです。

では根性で挑戦してください!

 

では、いきましょうか。

inc-item-data.cgi をエディタ(メモ帳、もしくは、ワードパッド)で開きます。

そして、「lostbook」という文字を検索してください。
※メモ帳の場合は「検索」というメニューがあります。その他のエディタでは「編集」→「検索」などの手順になるかと思います。

200行目(もう少し下かも)あたりで見つかると思います。こんなやつです↓

@@FUNCITEM
#####################################
# ★本or地図がボロボロになって破棄するという処理
#####################################
sub lostbook
{
    my $itemno=$USE->{itemno};
    if(rand(1000)<$USE->{param1})
    {
        UseItem($itemno,1,$ITEM[$itemno]->{name}.'が読めない程ボロボロになりましたので破棄しました');
    }
    return "";
}

「うわっ。なんじゃこれ」状態だと思います(汗)。だから意味を理解しようとしないでください余計なお脳を使う必要はありません。「コレを使うんだ、ふ〜ん」程度でよいです。 本当にいいんですっ! それで! なんとかなるんだから! (講座が進んでいったら、ちゃんと説明します)

 

この「sub lostbook」の内容は、「アイテムがある確率で無くなる」というものです。その確率は、1/1000で指定するようになっています。そして、アイテムを失うと「○○が読めない程ボロボロになりましたので破棄しました」と表示されます。


 

このままでは「○○が読めない程ボロボロに・・・」と表示されてしまいます。これを「タモ」に適用したいので「○○を使い過ぎてボロボロに・・・」とメッセージが表示されるように変更したいと思います。

それでは、次のように修正してください(赤文字部分です)。
※文字の前後にあるシングルクオート(上付きの点)を消してしまわないように注意してください。

@@FUNCITEM
#####################################
# ★本or地図がボロボロになって破棄するという処理
#####################################
sub lostbook
{
    my $itemno=$USE->{itemno};
    if(rand(1000)<$USE->{param1})
    {
        UseItem($itemno,1,$ITEM[$itemno]->{name}.'を使い過ぎてボロボロになりましたので破棄しました');
    }
    return "";
}

 

そして、@@USE で、この「sub lostbook」を呼び出すためには、次のように記述します。

        @@USE
                func lostbook      # sub lostbook を呼び出します
                param 50           # sub lostbook に対して 5% で処理しなさいと指定します。1/1000指定ですので、50/1000=5/100=5%

※param に指定する値は、呼び出す「独自関数」によって内容が異なります。

 

では実際に、「タモ」に対して、この「func lostbook」と「param 50」 を適用させてみます。
※なお、このままでは倉庫に余裕がないので、ついでに「limit」の値も少し増やしておきましょう。

          ・
          ・
          ・

@@ITEM
        no  2
        type 道具
        code tamo
        name タモ
        info 虫を取る道具
        price 500
        limit 3
        plus 30m
        scale 本
        pop  50m
        @@USE
                time 2h
                exp  4%
                exptime 30m
                scale 回
                action すくう
                name ミジンコをすくう
                info タモを使ってミジンコをすくってみます
                okmsg タモの中にミジンコがウヨウヨしています
                func lostbook
                param 50
                        get  50 ミジンコ 90%

          ・
          ・
          ・

 

それでは、サーバー側に( /custom/inc-item-data.cgi )を転送し、アイテムの生成を行ってから、確認してください。

何度か使っていると「タモ」を失うようになりましたか?

 

自分でツッコミ♪をいれておきます

どうして「@@USE use 1 タモ 5%」としないのですか?(MANUAL を参照)

このようにすると、倉庫にある「タモ」の個数分しかコマンドを実行することができません。この機能はおいおい説明しますので、今回は受け入れてください。

コンテンツ

ミジンコトップページ

001 アイテムを1個追加

002 ミジンコの説明

003 2つ目のアイテム

004 街人に売る設定

005 タモでミジンコをすくう

X01 おまけ1

006 市場に入荷させない

007 ミジンコが道具?

008 アイコン画像

009 維持費など

010 使うと無くなる

X02 おまけ2

011 よく使う物ほど上に

012 合成材料

013 コマンドに必要商品

014 バージョン変更方法

015 職業の変更

X03 おまけ3

016 1回だけのコマンド

017 お金を使うコマンド

018 ミジンコと会話♪

019 お店の選択

020 陳列棚を操作する

X04 おまけ4


SOLD OUT 陰陽道


おすすめ

イラストアイコン素材のCUTE

SOLD OUT Shop of Monsters(SOSM)

簡易データベースCGI

ホーム | ページトップ Copyright (C) 2006 HeRO. ALL RIGHT RESERVED.
ホームページランキングのザ・ランクテンに参加しています