持っているアイテムを選択肢にしたい(質問掲示板)
      投稿:  闇さん
      投稿:2011/12/24 12:45:24(最新:2011/12/29 20:00:29)
 闇さん
      投稿:2011/12/24 12:45:24(最新:2011/12/29 20:00:29)
    
    
      やりたいことは
回復薬 ×1
回復薬Ⅱ ×2
回復薬Ⅲ ×1
持っていたとき
選択メッセージで
ではなく
と表示させたいときどうすればいいですか
    
    ツイート
    回復薬 ×1
回復薬Ⅱ ×2
回復薬Ⅲ ×1
持っていたとき
選択メッセージで
回復薬 回復薬Ⅱ 回復薬Ⅱ 回復薬Ⅲ
どのアイテムを使いますか
ではなく
回復薬 ×1 回復薬Ⅱ ×2 回復薬Ⅲ×1
どのアイテムを使いますか
と表示させたいときどうすればいいですか
コメントする
コメントするには、ログインする必要があります。
コメント一覧
 退会したユーザー(投稿日:2011/12/29 16:32,
                                               履歴)
 退会したユーザー(投稿日:2011/12/29 16:32,
                                               履歴)
    
      意外に難しかったけど、なんとかできました。
ちょうどこういった情報が必要だったので、参考になりました。
>闇龍神さん
何事においてもケアレスミスは痛い。
ケアレスミスをしたらすぐに気づいて自分で直せる、
ぐらいまでいかないと、こういった応用問題は解けないのでは?
と僕は思うのです。
分からないと言えば解決すると思ったら大間違いですよ。
    
  ちょうどこういった情報が必要だったので、参考になりました。
>闇龍神さん
何事においてもケアレスミスは痛い。
ケアレスミスをしたらすぐに気づいて自分で直せる、
ぐらいまでいかないと、こういった応用問題は解けないのでは?
と僕は思うのです。
分からないと言えば解決すると思ったら大間違いですよ。
      まず1つめ、
処理が1行に混ざっています
2つめ、
speakWithSelectArray関数は2つしか引数がないのに
4つも設定しています。
speakWithSelectArray関数の引数は
1つめが選択肢の文字が入っている配列変数、
2つめが表示するメッセージです。
配列については
こちらをよく参照していただけましたら幸いです。
配列とは
第04回 敵キャラクターを登場させる
繰り返しとなりますが、
いずれも初歩的な間違いです。
分からないまま利用するのではなく、
キーワードや関数名で検索するだけでも
様々な情報がでてきます。
よく調べて「理解してから」利用してみましょう。
    
  処理が1行に混ざっています
d[n]=b[n]+"番のアイテムが"+c[n]+"個。"n=n+1
#修正後 d[n]=b[n]+"番のアイテムが"+c[n]+"個。" n=n+1
2つめ、
speakWithSelectArray関数は2つしか引数がないのに
4つも設定しています。
speakWithSelectArray関数の引数は
1つめが選択肢の文字が入っている配列変数、
2つめが表示するメッセージです。
配列については
こちらをよく参照していただけましたら幸いです。
配列とは
第04回 敵キャラクターを登場させる
case speakWithSelectArray(d+1,d,"やめる","どれを使う?")
#修正後 d[n]="やめる" #ここで配列dに"やめる"を追加する case speakWithSelectArray(d,"どれを使う?")
繰り返しとなりますが、
いずれも初歩的な間違いです。
分からないまま利用するのではなく、
キーワードや関数名で検索するだけでも
様々な情報がでてきます。
よく調べて「理解してから」利用してみましょう。
a=getItemIdArray()
b=createArray()
b[0]=a[0]
c=createArray()
d=createArray()
n=0 #まずは所持配列aから各1個ずつの配列bを作成
while
 n<getArrayLength(a)
 m=0
 judge=true
 while
 m<getArrayLength(b)
  if a[n]==b[m]
   judge=false #ダブりを発見したらフラグ変更
  end
 m=m+1
 end
 if judge #フラグが残ってる=ダブり無しなので加える
 pushArray(b,a[n])
 end
n=n+1
end
n=0 #今度はそれぞれをいくつ持ってるのか数える
while
 n<getArrayLength(b)
 m=0
 i=0
 while m<getArrayLength(a)
  if b[n]==a[m]
   i=i+1
  end
 m=m+1
 end
 c[n]=i
 d[n]=b[n]+"番のアイテムが"+c[n]+"個。"n=n+1
end
speak("a=",a,"\nb=",b,"\nc=",c,"\nd=",d)
g=0
case speakWithSelectArray(d+1,d,"やめる","どれを使う?")
 when 0
else
 end
いろいろ間違っているのはわかりますが
どう直したらいいのかわかりません
      getItemParamWithId関数は
アイテム情報の配列を返します。
配列データを文字として
表示しようとしているため
「null」となります。
対象のアイテム情報の配列から
必要な情報を取り出す場合、
getValueFromItemParam関数を使用します。
リファレンスをしっかりと読んで
理解してから利用しましょう。
getItemParamWithId関数
getValueFromItemParam関数
    
  アイテム情報の配列を返します。
配列データを文字として
表示しようとしているため
「null」となります。
対象のアイテム情報の配列から
必要な情報を取り出す場合、
getValueFromItemParam関数を使用します。
リファレンスをしっかりと読んで
理解してから利用しましょう。
getItemParamWithId関数
getValueFromItemParam関数
 退会したユーザー(投稿日:2011/12/25 15:30,
                                               履歴)
 退会したユーザー(投稿日:2011/12/25 15:30,
                                               履歴)
    if d[g]==7910||7911||7912||7913||7914
これってありなのか・・・?
giveItem(7913)
giveItem(7911)
giveItem(7911)
a=getItemIdArray()
b=createArray()
b[0]=a[0]
c=createArray()
d=createArray()
n=0 #まずは所持配列aから各1個ずつの配列bを作成
while
 n<getArrayLength(a)
 m=0
 judge=true
 while
 m<getArrayLength(b)
  if a[n]==b[m]
   judge=false #ダブりを発見したらフラグ変更
  end
 m=m+1
 end
 if judge #フラグが残ってる=ダブり無しなので加える
 pushArray(b,a[n])
 end
n=n+1
end
n=0 #今度はそれぞれをいくつ持ってるのか数える
while
 n<getArrayLength(b)
 m=0
 i=0
 while m<getArrayLength(a)
  if b[n]==a[m]
   i=i+1
  end
 m=m+1
 end
 c[n]=i
 d[n]=b[n]+"番のアイテムが"+c[n]+"個。"n=n+1
end
speak("a=",a,"\nb=",b,"\nc=",c,"\nd=",d)
g=0
while g<5
if d[g]==7910||7911||7912||7913||7914
r[g]=getItemParamWithId(b[g])
g=g+1
end
end
case speakWithSelect(6,r[0],r[1],r[2],r[3],r[4],"やめる", 
    "どのアイテムを使いますか")
  when 0
    
  when 1
    
  when 2
    
  when 3
    
  when 4
    
  when 5
    
end
がんばってみましたが
選択肢が全てnullになります
      あー思ってたよりもややこしくて、ワケわからんねw
とりあえずランダムでアイテムをくれる人を用意
んでコレが本体
アイテムのID番号(b[n])からアイテムパラメータを取得してアイテム名を表示する、てのはリファレンス見ればできる筈
    
  とりあえずランダムでアイテムをくれる人を用意
case speakWithSelect(2,"ひとつもらう","リセット","どーする?") when 0 case rand(3) when 0 giveItem(5142) #番号は自分で用意したのに変えてね when 1 giveItem(7493) when 2 giveItem(2029) end when 1 n=0; a=getItemIdArray() while n<getArrayLength(a) removeItemWithIndex(0) n=n+1 end end
a=getItemIdArray()
b=createArray(); b[0]=a[0]
c=createArray()
d=createArray()
n=0 #まずは所持配列aから各1個ずつの配列bを作成
while n<getArrayLength(a)
 m=0; judge=true
 while m<getArrayLength(b)
  if a[n]==b[m]
   judge=false #ダブりを発見したらフラグ変更
  end
 m=m+1
 end
 if judge #フラグが残ってる=ダブり無しなので加える
  pushArray(b,a[n])
 end
n=n+1
end
n=0 #今度はそれぞれをいくつ持ってるのか数える
while n<getArrayLength(b)
 m=0; i=0
 while m<getArrayLength(a)
  if b[n]==a[m]
   i=i+1
  end
 m=m+1
 end
 c[n]=i
 d[n]=b[n]+"番のアイテムが"+c[n]+"個。"
n=n+1
end
speak("a=",a,"\nb=",b,"\nc=",c,"\nd=",d)
 
  
 
次からできる限り自分で考えてみます
とりあえず
と表示するところまでできました