アイテムについて(質問掲示板

投稿: 000 1  mini naoki 投稿:2011/04/13 20:09:13(最新:2011/07/26 18:09:26)
アイテムを特定のものを特定の分以上持ってるときに、お金をくれる。
と、いう感じにするにはどうすればいいのですか?
たとえば、
「丸い玉」と
「四角い玉」と
「三角の玉」を2つずつもっていたら、100Gもらえる。
という感じで、よろしくおねがいします!

コメントする

コメントするには、ログインする必要があります。

コメント一覧

000 1  mini naoki(投稿日:2011/07/26 18:09, 履歴)
返信遅くなってすみません。
解決しました!ありがとうございます!
User icon mini 退会したユーザー(投稿日:2011/07/26 11:41, 履歴)
↓他のコメントをよく見てからコメントしましょー
 if文なんて基本中の基本ですから
User icon mini 退会したユーザー(投稿日:2011/05/19 15:28, 履歴)
○○のとき××になる
という形式は、基本的にif文を使えばいいと
思います。if文は講座に載っていますよ。
   mini ___(投稿日:2011/04/17 00:14, 履歴)
getFlag ≒ getVariable
setFlag ≒ setVariable

ですよー。  # 「≒」ってのは「ほとんど等しい」という意味です。
Variable()の場合、その"変数"には
「値、文字列、真偽(true/false)」を入れることが出来ますが、
Flag()の場合、その"フラグ"には
「真偽(true/false)」だけを入れることが出来ます。
真偽だけを扱う特別な変数みたいなもんですね。
  スクリプト/変数
  スクリプト/フラグ

ノベルゲにはアイテムという概念が無いので、
ノベラー(ノベルゲームばっかり以下略)な私には
アイテムの個数を取得する方法など分からないのですが、
# 適当に作った変数a,b,cにアイテムの個数を代入する
a = 「丸ーい玉の個数を取得する処理」
b = 「四角い玉の個数を取得する処理」
c = 「三角の玉の個数を取得する処理」

まあこんな感じのことをした後に、
rurun9さんの処理につながりますかねー。
Nyan mini rurun9(投稿日:2011/04/16 17:23, 履歴)
いや、getFlag()の中にはフラグが入ってる変数を指定しないと。
今回の場合は
各アイテムを持っているかどうかではなく、いくつ持っているか、なのでフラグじゃなくて変数に数を入れるだけで良いかと。

所持アイテムを数える方法までは出来たんだよね。
丸玉、四角玉、三角玉の3種類のアイテム所持数を順に a, b, c に入れておくとして
if a==2 && b==2 && c==2
 setVariable("お金",getVariable("お金")+100)
 speak("玉2セットボーナス!\n100Gもらった")
else
 speak("足りぬ。出直せ")
end

ここで重要なのは、3種を2個ずつ所持してる場合にしか+100Gにならない事。
もし玉が3個以上手に入るアイテムなら a>=2 という感じにしておきましょー。
更に、各玉が消費アイテムではない場合、このイベントを何度も利用されると永久にお金が増えちゃいます。
なのでこのイベント自体を1度しか使えなくするフラグを用意したり、もしくは100G貰った時に玉を回収してしまう等の対策が必要かもしれません。
000 1  mini naoki(投稿日:2011/04/16 14:59, 履歴)
え~っと、

if getFlag("(A == 2) && (B == 2) && (c == 2)") 
speak("OK") 
else 
speak("ダメ") 
end


みたいな感じで使えばいいんですよね?
「丸い玉」をどうやってAにするんですか?
Nyan mini rurun9(投稿日:2011/04/16 00:45, 履歴)
んー。
この展開はおそらく、これまで色々な手法を直接スクリプト原文出してきたオイラが招いたであろう事態なので参加しまーす。


質問板に書けば必ず正解が出て、何でも完成する訳じゃないんです。
自分で考えて作り出す、それ自体をも楽しんでもらおうというのがRmakeだと思うのです。

で。
「○○のときは△△になる。でも☆☆のときは◆◆になる」
てのをつくるんだからif文で組み立てる、まではOK?
そしたらとりあえず、naokiさんが書いてみたスクリプトは現在どんな形なのか出してみましょー。
どこまで把握していて何がわからないのか、を伝えてもらえると返事が出し易いので。
000 1  mini naoki(投稿日:2011/04/15 22:23, 履歴)
なるほど、しかしスクリプトではどう使うのかが分かりません。
できれば、スクリプトでお願いします。
   mini ___(投稿日:2011/04/13 22:33, 履歴)
こちらの内容から、
「アイテムの所持数を取得できる」ものとして話を進めますね。

if文に条件を指定する際、"&&"を使用することで、
「~かつ~」という条件を作ることが出来ます。

if((A) && (B) && (C)) なら、「AかつBかつC」。
つまり、ABCという3つの条件を満たしている時、という意味になります。

丸い玉の所持数をA、四角をB、三角をCとしますと、条件式は
 ((A == 2) && (B == 2) && (c == 2))
となりますね。


Rmakeでは、お金という概念は自作するしかないので、
適当にお金の意味を持たせた基本変数を作り、
それに100足してやればよろしいかと。