コメント

このコメントは、【トピック】ゲーム内でのアイテム管理についてへのコメントです。

コメントの内容

            mini mosmoss(投稿日:2017/05/01 00:05/01/17)
https://rmake.jp/boards/2/topics/1516
上のリンク先の掲示板でのやりとりですね?

この質問板には書かれていませんが、このスクリプトの外で
各アイテム所持数と、各アイテム倉庫在庫数の変数を設定しているものと思われます
setVariable("suisixyou", getVariable("suisixyou") - 1) #これが水晶の実所持数
setVariable("soukosuisixyou", getVariable("soukosuisixyou") + 1) #これが水晶の実倉庫在庫数

多分、アイテムをくれる猫のところで所持数を+にしていると思います

この倉庫の預ける場合のスクリプトで使っている関数/スクリプトは次の通りです。

関数( 関数リファレンスに載っている )
1、speak文(メッセージ)を作る関数
2、選択肢を作る関数
3、変数を設定・取得する関数
4、アイテムのidを指定し、そのアイテムを所持している時削除する関数

5、アイテムのidを指定し、そのアイテムを持っている場合、アイテム欄の何番目に持っているか調べる関数
6、アイテム欄の何番目かを指定してアイテムを1個削除する関数

★5と6は使っていますが、所持数在庫数を変数で管理しているため使う必要がなく、4だけで間に合っていて、スクリプト内でも一回しか使われていません(多分構想中に色々使ってみたものの、4を使うことを決め、削除・置換し忘れた5・6だと思います)

スクリプト(スクリプト言語のマニュアル に載っている基本的な構文)
1、if文
2、case文
3、条件式 < や == など

akahuguさんの表現を引用しますと、

選択肢1 預ける・引き出す を選ぶ
↓預けるを選択
選択肢2 預ける素材(素材1、素材2)を選ぶ
↓素材1 を選択、預ける素材のアイテムidが決定する(19062)
選択肢3 何個預けるか(1,5,10)を選ぶ
↓預ける個数が決定する
↓選択肢2で決定したidのアイテムの所持数を調べ、選択肢3で決定した預ける個数と比べる
↓この場合アイテム(水晶の実)所持数はgetVariable("suisixyou")スクリプトの外で設定している
↓アイテム所持数が預ける個数より多いか同じ時、預ける処理を行い、少ない時は足りないメッセージを表示しようとしている(実際には構文が間違って?いる )
この部分を正しく?書こうとすると次のようになると思います
if getVariable("suisixyou") >= 1 #1は選択肢2で選んだ預ける個数 #所持数が預ける個数以上の時
#ここに預ける処理を書く
else #所持数が預ける個数に満たない時
speak("水晶の実が足りないよ。")
end

↓預ける個数の回数分、素材1を削除し、変数の素材1所持数を減らし、変数の素材1倉庫在庫数を増やす

変数というのは、数値とか文字列とかがなんでも入る箱みたいなもので、
その箱の名前を決めたら、その中に好きなものを入れることができます
"aに入ってるアイテムを消す?そして変数素材1を-1し、変数倉庫素材1を+1する "
この理解であってると思います
aっていうのは、ここの場合水晶の実が入っているインデックス(場所、何番目に入ってるかということ)のことですね

Rmakeの関数では、特定のアイテムを1個だけ削除したいとき
4、アイテムIDを指定して、それがあるとき削除する関数
を使ってサクッと削除する方法と、

5、指定したIDのアイテムが入っているインデックス(場所)を調べる関数
6、指定したインデックス(場所)のアイテムを削除する関数
を使って回りくどく削除する方法があります

コメントの内容(一番最初の投稿)

            mini mosmoss(投稿日:2017/05/01 00:05/01/17)
https://rmake.jp/boards/2/topics/1516
上のリンク先の掲示板でのやりとりですね?

この質問板には書かれていませんが、このスクリプトの外で
各アイテム所持数と、各アイテム倉庫在庫数の変数を設定しているものと思われます
setVariable("suisixyou", getVariable("suisixyou") - 1) #これが水晶の実所持数
setVariable("soukosuisixyou", getVariable("soukosuisixyou") + 1) #これが水晶の実倉庫在庫数


この倉庫の預ける場合のスクリプトで使っている関数/スクリプトは次の通りです。

関数( 関数リファレンスに載っている命令文 )
1、speak文(メッセージ)を作る関数
2、選択肢を作る関数
3、変数を設定・取得する関数
4、アイテムのidを指定し、そのアイテムを持っている場合、アイテム欄の何番目に持っているか調べる関数
5、アイテム欄の何番目かを指定してアイテムを1個削除する関数

スクリプト(スクリプト言語のマニュアル に載っている基本的な構文)
1、if文
2、case文
3、条件式 < や == など

akahuguさんの表現を引用しますと、

選択肢1 預ける・引き出す を選ぶ
↓預けるを選択
選択肢2 預ける素材(素材1、素材2)を選ぶ
↓素材1 を選択、預ける素材のアイテムidが決定する(19062)
選択肢3 何個預けるか(1,5,10)を選ぶ
↓預ける個数が決定する
↓選択肢2で決定したidのアイテムの所持数を調べ、選択肢3で決定した預ける個数と比べる
↓この場合アイテム所持数はgetVariable("suisixyou")スクリプトの外で設定している
↓アイテム所持数が預ける個数より多いか同じ時、預ける処理を行い、少ない時は足りないメッセージを表示しようとしている(実際には構文が間違って?いる )
この部分を正しく?書こうとすると次のようになると思います
if getVariable("suisixyou" >= 1 #1は選択肢2で選んだ預ける個数
#ここに預ける処理を書く
else #所持数が預ける個数に満たない時
speak("水晶の実が足りないよ。")
end


変数というのは、数値とか文字列とかがなんでも入る箱みたいなもので、
その箱の名前を決めたら、その中に好きなものを入れることができます
"aに入ってるアイテムを消す?そして変数素材1を-1し、変数倉庫素材1を+1する "
この理解であってると思います