カスタムメニュー(質問掲示板)
      投稿:  ugonight
      投稿:2011/08/02 13:53:02(最新:2011/08/08 12:10:08)
 ugonight
      投稿:2011/08/02 13:53:02(最新:2011/08/08 12:10:08)
    
    
      カスタムメニューを開くと手に入れているアイテム(変数が1)だけを選択肢に表示させたいのですが
とするとえらってしまいます
アイテム1はてに入れていてアイテム2果てに入れていないのですが…
    
    ツイート
    setCustomParamMenuEnable(true)
setCustomParamMenuName("keyアイテム")
setVariable("アイテム1", 1)
setVariable("アイテム2", 0)
def onShowCustomParameter()
case speakWithSelect(3,
    if getVariable("アイテム1")==1
       "アイテム1"
    end,
    if getVariable("アイテム2")==1
       "アイテム2"
    end,
    "どのアイテムを使いますか?\n")
  when 0
    
  when 1
end
end
とするとえらってしまいます
アイテム1はてに入れていてアイテム2果てに入れていないのですが…
コメントする
コメントするには、ログインする必要があります。
コメント一覧
      だいじょうぶですた
  
      そりゃ選択肢配列はアイテムの所持状況によって変わりますから、
a=「何番目がクリックされたか」
だけだと、プレイヤーが何を使いたいのかワカリマセンね。
でも s[a] にはアイテム名の文字列(もしくは「やめる」)が入ってますよね?
だから
とすれば良いのです。
もしアイテムの種類が1と2だけでなく今後増えるようなら、
変数「アイテム」も配列にしちゃった方が管理が楽になると思います。
    
  a=「何番目がクリックされたか」
だけだと、プレイヤーが何を使いたいのかワカリマセンね。
でも s[a] にはアイテム名の文字列(もしくは「やめる」)が入ってますよね?
だから
if s[a]=="アイテム1"
  setVariable("アイテム1",2) #使用済みにする
  #使ったらどうするかの処理
elsif s[a]=="アイテム2"
  setVariable("アイテム2",2) #使用済みにする
  #使ったらどうするかの処理
elsif s[a]=="やめる" #コレは不要かも?
  speak("ひやかしかっ")
end
もしアイテムの種類が1と2だけでなく今後増えるようなら、
変数「アイテム」も配列にしちゃった方が管理が楽になると思います。
      地道に…?
選択肢の配列を用意するのだから、
という事ですよ。
変数「アイテム1&2」というのが一体何を数えているのか知らないけど、持ってるか持ってないかの二択ならフラグの方が良いし、2個以上入手できる物なら書きかえましょー。
    
  選択肢の配列を用意するのだから、
s=createArray()
if getVariable("アイテム1")==1
  pushArray(s,"アイテム1")
end
if getVariable("アイテム2")==1
  pushArray(s,"アイテム2")
end
pushArray(s,"やめる")
a=speakWithSelectArray(s,"どのアイテムを使う?")
変数「アイテム1&2」というのが一体何を数えているのか知らないけど、持ってるか持ってないかの二択ならフラグの方が良いし、2個以上入手できる物なら書きかえましょー。
      speakWithSelect()
に【if文】を入れてるので文法エラーになりますよっと。
選択肢の数がアイテムを所持しているかどうかで変わる、という事なので
speakWithSelectArray()
の方を使うと良いかもしれません。
参考
・スクリプト/つくってみよう1
・スクリプト/カスタムメニュー
実はオイラもカスタムメニューは全くいじった事が無いので、何ができるのかよくワカっていません。
    
  に【if文】を入れてるので文法エラーになりますよっと。
選択肢の数がアイテムを所持しているかどうかで変わる、という事なので
speakWithSelectArray()
の方を使うと良いかもしれません。
参考
・スクリプト/つくってみよう1
・スクリプト/カスタムメニュー
実はオイラもカスタムメニューは全くいじった事が無いので、何ができるのかよくワカっていません。
      どうも。原因は分かりませんが、とりあえず、
と打ってみてください。
私がよく使うスクリプトですので。
    
  
setCustomParamMenuEnable(true) 
setCustomParamMenuName("keyアイテム") 
setVariable("アイテム1", 1) 
setVariable("アイテム2", 0) 
def onShowCustomParameter() 
case speakWithSelect(3, 
    if getVariable("アイテム1")==1 
       "アイテム1" 
    elsif getVariable("アイテム2")==1 
       "アイテム2" 
    end, 
    "どのアイテムを使いますか?\n") 
  when 0 
     
  when 1 
 
end  
end
と打ってみてください。
私がよく使うスクリプトですので。
