アイテムを買うとき(質問掲示板

投稿:     mini 199492 投稿:2009/12/22 20:43:22(最新:2009/12/23 21:09:23)
ショップにアイテム2つと武器1つを売らせたのですが、買うときに3つのうちどれを選んでも、武器しか買えません。どうすれば選んだものを買うことができますか?
例)
どれを買いますか?
           薬草 100gold
木の実 100gold
剣 500gold

店員に話しかけるとこんな感じになり、薬草や木の実を選んでも剣が買われてしまいます。

コメントする

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

コメント一覧

    mini 199492(投稿日:2009/12/23 21:09, 履歴)
ありがとうございます。あと、以後、投稿するときはよく気をつけて投稿するようにします。
Material 6858 mini akasata(投稿日:2009/12/23 20:45, 履歴)
なるほど。buyItem関数の中身を書き換えてしかもアイテム毎に
宣言してしまったのですね。一番最後に宣言したbuyItem関数(盾)
しか有効になっていないため、何を買っても盾しか買えないのです。

下記Wikiページに紹介されているbuyItem関数はアイテム毎に中身を
書き換える必要はありません。開始スクリプトで宣言したbuyItem関数
を削除して、下記Wikiページに紹介されているbuyItem関数をそのまま
コピペしてみてください。

スクリプト/コツ/お店の作り方
http://page.rmake.jp/wikis/17

つまり、このbuyItem関数をアイテム毎に作る必要はありません。
この関数が全てのアイテムに対応します。なぜこのような動作を
するのかについては、以下のページの「ユーザー定義関数」の
ところを見ながら、調べてみてください。

スクリプト言語のマニュアル
http://rmake.jp/document/script_manual

ユーザー定義関数を理解すれば恐るべき道具になります。
がんばってください!(^^)/~~

    mini 199492(投稿日:2009/12/23 20:15, 履歴)
分かりにくくてすいませんでした。
開始スクリプトに、

# itemId: 595
# itemName: キズぐすり
# price: 100
def buyItem(595, "キズぐすり", 100)
if getVariable("Gold") < 100
speak("Goldが足りません・・・")
else
if giveItem(595)
setVariable("Gold",
getVariable("Gold") - 100)
speak("キズぐすり" + "を買った")
else
speak("アイテムを持ちきれません・・・")
end
end
end
# itemId: 599
# itemName: 薬草
# price: 200
def buyItem(599, "薬草", 200)
if getVariable("Gold") < 200
speak("Goldが足りません・・・")
else
if giveItem(599)
setVariable("Gold",
getVariable("Gold") - 200)
speak("薬草" + "を買った")
else
speak("アイテムを持ちきれません・・・")
end
end
end
# itemId: 544
# itemName: 盾
# price: 500
def buyItem(544, "盾", 500)
if getVariable("Gold") < 500
speak("Goldが足りません・・・")
else
if giveItem(544)
setVariable("Gold",
getVariable("Gold") - 500)
speak("盾" + "を買った")
else
speak("アイテムを持ちきれません・・・")
end
end
end

と書き(長くてすいません)、
ショップのイベント実行内容(スクリプト)が、

case speakWithSelect(4,
"キズぐすり 100 Gold",
"薬草 200 Gold",
"盾 500 Gold",
"店を出る",
"何を買いますか?")
when 0
buyItem(595, "キズぐすり", 100)
when 1
buyItem(599, "薬草", 200)
when 2
buyItem(544, "盾", 500)
when 3
speak("また来てねー")
end

Material 6858 mini akasata(投稿日:2009/12/23 11:59, 履歴)
Rmakeのご利用ありがとうございます!

おそらく、Wikiの「スクリプト/コツ/お店の作り方」を見て
書いたスクリプトだと思いますが、buyItem関数の引数の
アイテムIDの設定が間違っているのだと思います。

スクリプト/コツ/お店の作り方
http://page.rmake.jp/wikis/17

基本的に、どのようなスクリプトを書いたのかわからないと
アドバイスが難しいです。どのようなスクリプトを書いたのか
教えてください。

また、掲示板で回答してくれる人はエスパーではないので、
「何をしたらどうなったのか」をわかりやすく書いていただかないと、
返答することが難しいです。

このご質問では、「どうなったのか」は書かれていても、「何を
したのか」が具体的には書かれていません。

shirosabotenさんの書かれているとおり、一度、質問
掲示板の注意書きに目を通してから質問していただけると
ありがたいです。

質問掲示板
http://rmake.jp/boards/2

みんなで楽しい掲示板生活を送りましょう!(^o^)
よろしくお願いします!
      mini shirosaboten(投稿日:2009/12/22 23:56, 履歴)
こちらをご覧になりましたか?質問掲示板の使い方
    mini 199492(投稿日:2009/12/22 20:45, 履歴)
すいませんなんかミスったので例だけ書き直します。
どれを買いますか?
           薬草 100gold
           木の実 100gold
           剣 500gold