使えないアイテムの店の作り方(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2011/10/27 18:25:27(最新:2011/10/28 19:51:28)
えと、簡単に言いますと
暗くて何も見えない洞窟に入るにはライトが必要ということにします、
そのライトは店で買うことが出来るということです、
そのときのお金が足りないときの処理はどうやって・・・?

case speakWithSelect(2,"買う","買わない",  
   "ライトを買いますか?") 
  when 0 
    def buyItem(price) #ここをどうやって変えるのか分からない
      if getVariable("お金") < 200 
        speak("マイルが足りません") 
      else 
        setFlag("ライト",rue)
      end 
    end 
  when 1 
    speak("またきてね♪") 
end

コメントする

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

コメント一覧

User icon mini 退会したユーザー(投稿日:2011/10/28 19:51, 履歴)
なるほどー詳しくありがとうございました
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/10/27 20:53, 履歴)
satsuki1さま>

分かりやすい解説、流石です。


補足しておきますと、
def文はユーザ関数の作成を定義するスクリプトです。

予め「def 関数名 [スクリプト] end」の形で準備しておくと、
実行したいスクリプトの中で「関数名」を書くだけで
[スクリプト]が実行されるようになります。

開始スクリプトに書くのは、
予め準備することが、確実になるからです。


なお、ユーザ関数についての詳しい解説は、
スクリプト言語のマニュアル
第01回 スクリプトって何?
こちらを参照していただけましたら幸いです。
      mini きゅうり(投稿日:2011/10/27 19:27, 履歴)
case speakWithSelect(2,"買う","買わない",   
   "200マイルのライトを買いますか?")  
  when 0  
    #①
    if getVariable("お金") < 200  
      speak("マイルが足りません")  
    else  
      setVariable("お金",getVariable("お金") - 200)
      setFlag("ライト",true)#② 
      speak("ありがとうございます。")
    end  
  when 1  
    speak("またきてね♪")  
end


問題点

def文は定義するだけでは実行されません。(この場合は使わなければok)

「true」ではなく「rue」になっていた。

以上を直したスクリプトが↑です。

また、どこでも同じように使えるように、
#開始スクリプト
def buyItem(price0,price1)
  case speakWithSelect(2,"買う","買わない",   
     price1,"マイルの",price0,"を買いますか?")  
    when 0  
      if getVariable("お金") < price1  
        speak("マイルが足りません")  
      else  
        setVariable("お金",getVariable("お金") - price1)
        setFlag(price0,true) 
        speak("ありがとうございます。")
      end  
    when 1  
      speak("またきてね♪")  
  end
end

#使うとき
buyItem("ライト",200)
#「立てるフラグ(購入時に入手できるアイテムの名前)、値段」の順番

と書くのもokです。
User icon mini 退会したユーザー(投稿日:2011/10/27 18:32, 履歴)
やっぱり買うでわなくもらう、に変えました。
買うだと場所に行くだけなのに不親切な気がして。。。
User icon mini 退会したユーザー(投稿日:2011/10/27 18:26, 履歴)
このスクリプトは前データの
自分で宿屋処理を作ったときのスクリプトをいじたものです。

大体変えて見ました。