■
17:05 言葉が足りておらずご迷惑をおかけしました。本当にごめんなさい。具体的に考えているのは、まずインターミッションでプレイヤーがユニットにアイテム群を装備させる→戦闘が開幕すると、一旦ユニットが装備している全てのアイテム群がはずれて、そのあとアイテム群の中からランダムで1ターンに1個アイテムが手に入りユニットに装備できるようになる→戦闘中に装備できるランダム入手アイテムの数には限りがある→その際、いらないアイテムをはずして、次のランダム入手アイテム用のスロットを作ろうとしたとき、はずしたアイテムが次のインターミッションでアイテム群に変更がないように元のアイテム群に戻って来て欲しいのです。どのアイテムをはずすかはAskでプレイヤーに選択してもらいます。はずすアイテムはひとつです。はずされている期間はある1話の中です。説明が下手なんで、理解不能でしたらスルーしてください。すいません。
なら大筋はこんな感じですね(後半未完成)。
最初の処理:
Local i
//* 出撃または格納状態の味方が何を装備していたかと、装備していたアイテムの数を記憶(シナリオ内変数) *//
ForEach 味方
初期装備アイテム数[ 対象ユニットID ] = Info( 対象ユニットID , アイテム数 )
For i = 1 To 初期装備アイテム数[ 対象ユニットID ]
初期装備アイテム名称[ 対象ユニットID , i ] = Info( 対象ユニットID , アイテム , i )
Next
Next
//* 出撃または格納状態の味方のアイテムをすべてはずす *//
ForEach 味方
RemoveItem
Next
Exit
毎ターンの処理:
Local i
ForEach 味方
//* 現在装備しているアイテムを選択候補に追加 *//
For i = 1 To Info( 対象ユニットID , アイテム数 )
選択候補アイテム[ i ] = Info( 対象ユニットID , アイテム , i )
Next
//* 最初に装備していたアイテムの中の1つがランダムで蘇る ただしすでに装備しているものだったら再抽選 *//
Local アイテム候補準備完了フラグ = 0
Do While ( アイテム候補準備完了フラグ = 0 )
アイテム候補準備完了フラグ = 1
選択候補アイテム[ ( Count(選択候補アイテム) + 1 ) ] = 初期装備アイテム名称[ 対象ユニットID , Random( 初期装備アイテム数[ 対象ユニットID ] ) ]
For i = 1 To ( Count(選択候補アイテム) - 1 )
If ( 選択候補アイテム[ Count(選択候補アイテム) ] = 選択候補アイテム[ i ] ) Then
アイテム候補準備完了フラグ = 0
UnSet 選択候補アイテム[ Count(選択候補アイテム) ]
Break
EndIf
Next
Loop
//* 新しく入手したアイテムを伝える *//
Talk システム
新アイテム、$( 選択候補アイテム[ Count(選択候補アイテム) ] )を入手しましした。
End
//* スロットに余裕があるならそのまま装備させる *//
If Count(選択候補アイテム) < 装備可能数[ 対象ユニットID ] Then
…
//* スロットがいっぱいなら捨てるアイテムを選択させる *//
Else
Ask 選択候補アイテム どのアイテムを破棄しますか?
//* 選択されたアイテムが新しく入手したアイテムなら何もしない *////* 選択されたアイテムが新しく入手したアイテムでないなら↓ *//
//* 1 選択されたアイテムをはずす(RemoveItemしてから同じアイテムを作成する) *//
//* 2 新しく選択されたアイテムを装備させる *//
EndIf
UnSet 選択候補アイテム
//* ここまででひとり分完了 *//
Next
Exit
機能が過剰あるいは不足しているかも知れないので
ここから先は動かしてみた上で、あれがない、これはどうすればいいと再度質問してください。
参考になれば幸いです。