コンテスト製作のため返信遅れました。
こういうことでしょうか?違ってたらすみません。
randomize
screen 0
koukando=0 ;インプット好感度
UnitID=0 ;インプットユニットID
PTNo=0 ;インプットPT内NO
BOXNo=0 ;インプットBOX内NO
Charas=0 ;作ったキャラの数 兼ID
CharaNum=0 ;インプットキャラID
dim PTCharaInfo,3,32 ;PT内キャラの情報
dim BOXCharaInfo,3,32 ;BOX内キャラの情報
//ユニットIDが最大9999だけど配列を10000も取ったらメモリがやばいので
//今は32取る
// 1次元目
// 3要素の中身 (3次元では無かったです。すみません)
// 好感度 . ユニットID . PT/BOX内ID
// 0 1 2
//
// 2次元
// _________________________________________________________
// | | | キャラ1 | キャラ2 | キャラ3 | キャラ4 |
// |========================================================
// 1 | 0 |好感度 | XX | XX | XX | XX |
// 次 |--------------------------------------------------------
// 元 | 1 |ユニットID| XX | XX | XX | XX |
// |--------------------------------------------------------
// | 2 |PT/BOX ID | XX | XX | XX | XX |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos 10,10
input koukando,80,20,4
mes "好感度"
pos 100,10
input UnitID,80,20,4
mes "ユニットID"
pos 200,10
input PTNo,80,20,3
mes "PT内NO"
pos 300,10
objsize 160,20
button gosub "キャラ作成!",*makechara
pos 480,10
button gosub "ランダム",*random
pos 10,70
input CharaNum,80,20,2
mes "呼び出しキャラID"
pos 200,70
input BOXNo,80,20,3
mes "BOX内NO"
pos 300,70
button gosub "BOX内NOにコピー",*copy2box
pos 10,150 ;mesの初期座標
stop
*makechara ;キャラ作成
PTCharaInfo(0,Charas)=koukando ;キャラの好感度を格納
PTCharaInfo(1,Charas)=UnitID ;キャラのユニットIDを格納
PTCharaInfo(2,Charas)=PTNo ;キャラのPT内NOを格納
mes "キャラ作成 ID("+(Charas)+") 好感度=("+koukando+") ユニットID=("+UnitID+") PT内NO=("+PTNo+")"
Charas++ ;作ったキャラの数を増やす
return
*copy2box ;BOXにコピー
;キャラ未作成か指定のIDのキャラが未作成なら戻る
if Charas=0 | CharaNum>Charas: mes "キャラが作成されてません" : return
BOXCharaInfo(0,CharaNum)=PTCharaInfo(0,CharaNum) ;BOX変数にキャラの好感度をコピー
BOXCharaInfo(1,CharaNum)=PTCharaInfo(1,CharaNum) ;BOX変数にキャラのユニットIDをコピー
BOXCharaInfo(2,CharaNum)=BOXNo ;BOX変数にキャラのBOX内NOを格納
mes "キャラ ID("+CharaNum+")のデータをコピー"
mes "コピー元PT内NO=("+PTCharaInfo(2,CharaNum)+") コピー先BOX内NO=("+BOXCharaInfo(2,CharaNum)+")" ;コピー先BOX内NOはBOXNoと同じだがコピーされたことを確認するためにこっちを表示
return
*random ;ランダムに数値を設定
objprm 0,rnd(1001)
objprm 1,rnd(10000)
objprm 2,rnd(161)
if Charas : objprm 5,rnd(Charas) ;rnd(0)はエラーになる
objprm 6,rnd(161)
return