| GAMEMASTERです。
> 回答を頂いたものの、力不足でさっぱりです・・・ > > >ask "変更する装備を選んでください" 連続表示 キャンセル可 > >頭 $(nickname()) > >体 $(nickname()) > >手 $(nickname()) $(nickname()) > >足 $(nickname()) > >他 $(nickname()) $(nickname()) $(nickname()) $(nickname()) > >end > > という風に現在の装備状況を出して変えたいものを選び、「携帯」という別のアイテム欄から換えの装備を選ぶという風にしたいと思っています。 > 左の「頭」や「体」がハードポイント名です。 > これは全キャラ共通なので選択肢に直接書いたんです。 > あとはアイテム名なのですが、元の質問どうりうまく順番を揃えて表示させることが出来ません。 > ・・ > インフォ関数の装備箇所で調べようにも「そのアイテム」というのが無いので、判定できませんでした。 > どうやったらいいのでしょう? > 図々しいのですが、出来れば例を書いてもらえると助かります。
その記述では、イベントの対象になっているユニットもしくはパイロットの愛称しか表示されないことでしょう。根本的に間違っています。
まず、CountItem関数とItem関数、それにForコマンドを併用することで対象ユニットが装備している全てのアイテムを取得することが出来ます。
For i = 1 To CountItem(対象ユニット)
(処理)
Next
このFor〜Nextの内部において「Item(対象ユニット,i)」と記述することで、対象ユニットが装備しているi番目のアイテムを取得出来ます。 これをInfo関数に代入して、装備個所を調べましょう。この時、条件が適合すれば適切な配列に格納するようにします。
If Info(アイテム,Item(対象ユニット,i),装備個所) = 頭 Then
装備変更[(Count(装備変更) + 1)] = Item(対象ユニット,i)
EndIf
この処理を全てのハードポイントに対して繰り返し行い、出来た配列をAskコマンドに使用しましょう。
For i = 1 To CountItem(対象ユニット)
If Info(アイテム,Item(対象ユニット,i),装備個所) = 頭 Then
装備変更[(Count(装備変更) + 1)] = Item(対象ユニット,i)
EndIf
Next
For i = 1 To CountItem(対象ユニット)
If Info(アイテム,Item(対象ユニット,i),装備個所) = 体 Then
装備変更[(Count(装備変更) + 1)] = Item(対象ユニット,i)
EndIf
Next
(中略)
Ask 装備変更 変更する装備を選んでください 連続表示 キャンセル可
なお、例における「手」「他」のように「同一ハードポイントに装備されている複数のアイテム」は別の選択肢として見なされます。従って、装備の変更はアイテム1つずつに対して行うことになります。 また、選択されたアイテムの名称を実際に取得するには「装備変更[選択]」と記述する必要があります。「選択」ではありません。
参考になれば幸いです。
もう時間がないようでございますね。では、これにて退散させてもらいましょう。
|