持っているアイテムを選択肢にしたい(質問掲示板)
投稿: 闇さん
投稿: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,
履歴)
意外に難しかったけど、なんとかできました。
ちょうどこういった情報が必要だったので、参考になりました。
>闇龍神さん
何事においてもケアレスミスは痛い。
ケアレスミスをしたらすぐに気づいて自分で直せる、
ぐらいまでいかないと、こういった応用問題は解けないのでは?
と僕は思うのです。
分からないと言えば解決すると思ったら大間違いですよ。
ちょうどこういった情報が必要だったので、参考になりました。
>闇龍神さん
何事においてもケアレスミスは痛い。
ケアレスミスをしたらすぐに気づいて自分で直せる、
ぐらいまでいかないと、こういった応用問題は解けないのでは?
と僕は思うのです。
分からないと言えば解決すると思ったら大間違いですよ。
まず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,
履歴)
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)
次からできる限り自分で考えてみます
とりあえず
と表示するところまでできました