コード:
//↓はアイテムのフォント関係
#define lenki 38//行間隔(1行1行の縦の間隔 = y )
#define fiski 77//行の初めの位置(y)
#define lenkis 38//行間隔(1行1行の縦の間隔 = y )
#define fiskis 264//行の初めの位置(y)
void item_sta_win(int *page,int *book1,int *book2){ //ステータスウィンドウ
if((*page)==0){
DrawExtendGraph(330,15,330+48,15+48,icon[play.item_box[menu.knd+(*book1)*10].img],TRUE);//2倍
DrawFormatStringToHandle(380,15,color[0],font[6],"%s",play.item_box[menu.knd+(*book1)*10].name);
switch(play.item_box[menu.knd+(*book1)*10].kns){
case 0: //武器
case 1: //防具(両方まとめても大丈夫そうなので今はまとめて置く)
DrawFormatStringToHandle(400,45,color[0],font[3],"HP +%2d",play.item_box[menu.knd+(*book1)*10].hp);
DrawFormatStringToHandle(520,45,color[0],font[3],"MP +%2d",play.item_box[menu.knd+(*book1)*10].mp);
DrawFormatStringToHandle(388,70,color[0],font[3],"ATK +%2d",play.item_box[menu.knd+(*book1)*10].atk);
DrawFormatStringToHandle(513,70,color[0],font[3],"DEF +%2d",play.item_box[menu.knd+(*book1)*10].def);
DrawFormatStringToHandle(385,90,color[0],font[3],"MAT +%2d",play.item_box[menu.knd+(*book1)*10].matk);
DrawFormatStringToHandle(510,90,color[0],font[3],"MDF +%2d",play.item_box[menu.knd+(*book1)*10].mdef);
DrawFormatStringToHandle(368,113,color[0],font[6],"MOVE +%2d",play.item_box[menu.knd+(*book1)*10].move);
DrawFormatStringToHandle(520,113,color[0],font[6],"SP +%2d",play.item_box[menu.knd+(*book1)*10].sp);
if(play.item_box[menu.knd+(*book1)*10].kns==0){
switch(play.item_box[menu.knd+(*book1)*10].criti){ //何に特攻か?
case 0: DrawFormatStringToHandle(325,135,color[0],font[1],"人間"); break;
case 1: DrawFormatStringToHandle(325,135,color[2],font[1],"妖怪"); break;
case 2: DrawFormatStringToHandle(325,135,color[6],font[1],"妖精"); break;
case 3: DrawFormatStringToHandle(325,135,color[3],font[1],"幽霊"); break;
case 10: DrawFormatStringToHandle(325,135,color[0],font[2],"特攻無し"); break;
}
if(play.item_box[menu.knd+(*book1)*10].criti!=10) DrawFormatStringToHandle(380,138,color[0],font[2],"に大ダメージ");
switch(play.item_box[menu.knd+(*book1)*10].attri){ //通常攻撃に属性追加
case 15: DrawFormatStringToHandle(470,160,color[0],font[2],"属性追加無し"); break;
case 0: DrawFormatStringToHandle(507,156,color[10],font[1],"月"); break;
case 1: DrawFormatStringToHandle(507,156,color[2],font[1],"火"); break;
case 2: DrawFormatStringToHandle(507,156,color[4],font[1],"水"); break;
case 3: DrawFormatStringToHandle(507,156,color[3],font[1],"木"); break;
case 4: DrawFormatStringToHandle(507,156,color[5],font[1],"金"); break;
case 5: DrawFormatStringToHandle(507,156,color[8],font[1],"土"); break;
case 6: DrawFormatStringToHandle(507,156,color[9],font[1],"日"); break;
case 7: DrawFormatStringToHandle(507,156,color[2],font[1],"破"); break;
case 8: DrawFormatStringToHandle(507,156,color[5],font[1],"聖"); break;
}
if(play.item_box[menu.knd+(*book1)*10].attri!=15) DrawFormatStringToHandle(390,160,color[0],font[2],"通常攻撃に 属性追加");
}
if(play.item_box[menu.knd+(*book1)*10].kns==1){
switch(play.item_box[menu.knd+(*book1)*10].criti){ //何に特攻か?
case 0: DrawFormatStringToHandle(325,135,color[0],font[1],"人間"); break;
case 1: DrawFormatStringToHandle(325,135,color[2],font[1],"妖怪"); break;
case 2: DrawFormatStringToHandle(325,135,color[6],font[1],"妖精"); break;
case 3: DrawFormatStringToHandle(325,135,color[3],font[1],"幽霊"); break;
case 10: DrawFormatStringToHandle(325,135,color[0],font[2],"ダメージ減少無し"); break;
}
if(play.item_box[menu.knd+(*book1)*10].criti!=10) DrawFormatStringToHandle(380,138,color[0],font[2],"から受けるダメージ減少");
switch(play.item_box[menu.knd+(*book1)*10].attri){ //通常攻撃に属性追加
case 15: DrawFormatStringToHandle(470,160,color[0],font[2],"属性追加無し"); break;
case 0: DrawFormatStringToHandle(507,156,color[10],font[1],"月"); break;
case 1: DrawFormatStringToHandle(507,156,color[2],font[1],"火"); break;
case 2: DrawFormatStringToHandle(507,156,color[4],font[1],"水"); break;
case 3: DrawFormatStringToHandle(507,156,color[3],font[1],"木"); break;
case 4: DrawFormatStringToHandle(507,156,color[5],font[1],"金"); break;
case 5: DrawFormatStringToHandle(507,156,color[8],font[1],"土"); break;
case 6: DrawFormatStringToHandle(507,156,color[9],font[1],"日"); break;
case 7: DrawFormatStringToHandle(507,156,color[2],font[1],"破"); break;
case 8: DrawFormatStringToHandle(507,156,color[5],font[1],"聖"); break;
}
if(play.item_box[menu.knd+(*book1)*10].attri!=15) DrawFormatStringToHandle(370,160,color[0],font[2],"装備キャラに 属性追加");
}
break;
case 2: //回復アイテム
if(play.item_box[menu.knd+(*book1)*10].hp==9999) DrawFormatStringToHandle(360,80,color[0],font[2],"使用するとHPを完全回復");
else DrawFormatStringToHandle(360,80,color[0],font[2],"使用するとHPを%4d回復",play.item_box[menu.knd+(*book1)*10].hp);
if(play.item_box[menu.knd+(*book1)*10].mp==9999) DrawFormatStringToHandle(360,110,color[0],font[2],"使用するとMPを完全回復");
else DrawFormatStringToHandle(360,110,color[0],font[2],"使用するとMPを%4d回復",play.item_box[menu.knd+(*book1)*10].mp);
break;
case 3: //消費アイテム
break;
}
}
else if((*page)==1){
DrawExtendGraph(330,15,330+48,15+48,icon[play.home_box[menu.knd+(*book2)*5].img],TRUE);//2倍
DrawFormatStringToHandle(380,15,color[0],font[6],"%s",play.home_box[menu.knd+(*book2)*5].name);
switch(play.home_box[menu.knd+(*book2)*5].kns){
case 0: //武器
case 1: //防具(両方まとめても大丈夫そうなので今はまとめて置く)
DrawFormatStringToHandle(400,45,color[0],font[3],"HP +%2d",play.home_box[menu.knd+(*book2)*5].hp);
DrawFormatStringToHandle(520,45,color[0],font[3],"MP +%2d",play.home_box[menu.knd+(*book2)*5].mp);
DrawFormatStringToHandle(388,70,color[0],font[3],"ATK +%2d",play.home_box[menu.knd+(*book2)*5].atk);
DrawFormatStringToHandle(513,70,color[0],font[3],"DEF +%2d",play.home_box[menu.knd+(*book2)*5].def);
DrawFormatStringToHandle(385,90,color[0],font[3],"MAT +%2d",play.home_box[menu.knd+(*book2)*5].matk);
DrawFormatStringToHandle(510,90,color[0],font[3],"MDF +%2d",play.home_box[menu.knd+(*book2)*5].mdef);
DrawFormatStringToHandle(368,113,color[0],font[6],"MOVE +%2d",play.home_box[menu.knd+(*book2)*5].move);
DrawFormatStringToHandle(520,113,color[0],font[6],"SP +%2d",play.home_box[menu.knd+(*book2)*5].sp);
if(play.home_box[menu.knd+(*book2)*5].kns==0){
switch(play.home_box[menu.knd+(*book2)*5].criti){ //何に特攻か?
case 0: DrawFormatStringToHandle(325,135,color[0],font[1],"人間"); break;
case 1: DrawFormatStringToHandle(325,135,color[2],font[1],"妖怪"); break;
case 2: DrawFormatStringToHandle(325,135,color[6],font[1],"妖精"); break;
case 3: DrawFormatStringToHandle(325,135,color[3],font[1],"幽霊"); break;
case 10: DrawFormatStringToHandle(325,135,color[0],font[2],"特攻無し"); break;
}
if(play.home_box[menu.knd+(*book2)*5].criti!=10) DrawFormatStringToHandle(380,138,color[0],font[2],"に大ダメージ");
switch(play.home_box[menu.knd+(*book2)*5].attri){ //通常攻撃に属性追加
case 15: DrawFormatStringToHandle(470,160,color[0],font[2],"属性追加無し"); break;
case 0: DrawFormatStringToHandle(507,156,color[10],font[1],"月"); break;
case 1: DrawFormatStringToHandle(507,156,color[2],font[1],"火"); break;
case 2: DrawFormatStringToHandle(507,156,color[4],font[1],"水"); break;
case 3: DrawFormatStringToHandle(507,156,color[3],font[1],"木"); break;
case 4: DrawFormatStringToHandle(507,156,color[5],font[1],"金"); break;
case 5: DrawFormatStringToHandle(507,156,color[8],font[1],"土"); break;
case 6: DrawFormatStringToHandle(507,156,color[9],font[1],"日"); break;
case 7: DrawFormatStringToHandle(507,156,color[2],font[1],"破"); break;
case 8: DrawFormatStringToHandle(507,156,color[5],font[1],"聖"); break;
}
if(play.home_box[menu.knd+(*book2)*5].attri!=15) DrawFormatStringToHandle(390,160,color[0],font[2],"通常攻撃に 属性追加");
}
if(play.home_box[menu.knd+(*book2)*5].kns==1){
switch(play.home_box[menu.knd+(*book2)*5].criti){ //何に特攻か?
case 0: DrawFormatStringToHandle(325,135,color[0],font[1],"人間"); break;
case 1: DrawFormatStringToHandle(325,135,color[2],font[1],"妖怪"); break;
case 2: DrawFormatStringToHandle(325,135,color[6],font[1],"妖精"); break;
case 3: DrawFormatStringToHandle(325,135,color[3],font[1],"幽霊"); break;
case 10: DrawFormatStringToHandle(325,135,color[0],font[2],"ダメージ減少無し"); break;
}
if(play.home_box[menu.knd+(*book2)*5].criti!=10) DrawFormatStringToHandle(380,138,color[0],font[2],"から受けるダメージ減少");
switch(play.home_box[menu.knd+(*book2)*5].attri){ //通常攻撃に属性追加
case 15: DrawFormatStringToHandle(470,160,color[0],font[2],"属性追加無し"); break;
case 0: DrawFormatStringToHandle(507,156,color[10],font[1],"月"); break;
case 1: DrawFormatStringToHandle(507,156,color[2],font[1],"火"); break;
case 2: DrawFormatStringToHandle(507,156,color[4],font[1],"水"); break;
case 3: DrawFormatStringToHandle(507,156,color[3],font[1],"木"); break;
case 4: DrawFormatStringToHandle(507,156,color[5],font[1],"金"); break;
case 5: DrawFormatStringToHandle(507,156,color[8],font[1],"土"); break;
case 6: DrawFormatStringToHandle(507,156,color[9],font[1],"日"); break;
case 7: DrawFormatStringToHandle(507,156,color[2],font[1],"破"); break;
case 8: DrawFormatStringToHandle(507,156,color[5],font[1],"聖"); break;
}
if(play.home_box[menu.knd+(*book2)*5].attri!=15) DrawFormatStringToHandle(370,160,color[0],font[2],"装備キャラに 属性追加");
}
break;
case 2: //回復アイテム
if(play.home_box[menu.knd+(*book2)*5].hp==9999) DrawFormatStringToHandle(360,80,color[0],font[2],"使用するとHPを完全回復");
else DrawFormatStringToHandle(360,80,color[0],font[2],"使用するとHPを%4d回復",play.home_box[menu.knd+(*book2)*5].hp);
if(play.home_box[menu.knd+(*book2)*5].mp==9999) DrawFormatStringToHandle(360,110,color[0],font[2],"使用するとMPを完全回復");
else DrawFormatStringToHandle(360,110,color[0],font[2],"使用するとMPを%4d回復",play.home_box[menu.knd+(*book2)*5].mp);
break;
case 3: //消費アイテム
break;
}
}
}
void item_menu(){
SetFontSize( 15 );//字の基本の大きさ変更
static int book1=0;
static int book2=0;
static int page=0;
//----------------------------------キー設定関係---------------------------------------//
if(CheckStatePad(configpad.down)==1){ //今回menu.knd_knsはページ数を表す
if(page==0){
if(menu.knd==10-1){
menu.knd=0;
}
else menu.knd++;
}
else if(page==1){
if(menu.knd==5-1){
menu.knd=0;
}
else menu.knd++;
}
}
else if(CheckStatePad(configpad.up)==1){
if(page==0){
if(menu.knd==0){
menu.knd=10-1;
}
else menu.knd--;
}
else if(page==1){
if(menu.knd==0){
menu.knd=5-1;
}
else menu.knd--;
}
}
else if(CheckStatePad(configpad.right)==1){
if(page==0){
page=1;
menu.knd=0;
}
}
else if(CheckStatePad(configpad.left)==1){
if(page==1){
page=0;
menu.knd=0;
}
}
if(CheckStatePad(configpad.Ltrigger)==1){
if(page==0){
if(book1==0) book1=(ITEM_BOX_MAX/10)-1;
else book1--;
}
else if(page==1){
if(book2==0) book2=(HOME_BOX_MAX/5)-1;
else book2--;
}
}
if(CheckStatePad(configpad.Rtrigger)==1){
if(page==0){
if(book1==(ITEM_BOX_MAX/10)-1) book1=0;
else book1++;
}
else if(page==1){
if(book2==(HOME_BOX_MAX/5)-1) book2=0;
else book2++;
}
}
//----------------------------------所持品関係----------------------------------//
paint_box(40,20,315,460,5,color[0]); //自作関数(枠w)所持品の枠
DrawFormatStringToHandle(70,30,color[0],font[4],"所 持 品");
DrawFormatStringToHandle(240,55,color[0],font[10],"%d/%dページ",book1+1,ITEM_BOX_MAX/10);
DrawFormatStringToHandle(44,60,color[0],font[5],"―――――――――");
for(int l=1;l<10;l++) DrawFormatStringToHandle(44,60+1+38*l,color[0],font[5]," ――――――――");
SetDrawArea(44,60,310,455);
for(int k=0;k<10;k++){
// DrawString(85,fiski+lenki*(k),"金符「エメラルドメガリス」",color[0]);
DrawFormatString(85,fiski+lenki*(k),color[0],"%s",play.item_box[k+book1*10].name);
DrawFormatString(85,fiski+lenki*(k)+18,color[0]," 所持数 %2d",play.item_box[k+book1*10].nokori);
}
SetDrawArea(0,0,640,480);
//-----------------------------------倉庫関係-----------------------------------------------//
paint_box(318,195,632,460,5,color[0]); //自作関数(枠w)倉庫の枠
DrawFormatStringToHandle(400,215,color[0],font[4],"倉 庫");
DrawFormatStringToHandle(540,240,color[0],font[10],"%d/%dページ",book2+1,HOME_BOX_MAX/5);
DrawFormatStringToHandle(323,245,color[0],font[5],"――――――――――-");
for(int l=1;l<5;l++) DrawFormatStringToHandle(323,245+4+38*l,color[0],font[5]," ―――――――――-");
SetDrawArea(323,245,628,455);
DrawString(370,fiskis+lenkis*0,"金符「エメラルドメガリス」",color[0]);
DrawFormatString(370,fiskis+lenkis*0+18,color[0]," 所持数 %2d",play.item_box[0].nokori);
DrawString(370,fiskis+lenkis*1,"金符「エメラルドメガリス」",color[0]);
DrawFormatString(370,fiskis+lenkis*1+18,color[0]," 所持数 %2d",play.item_box[0].nokori);
DrawString(370,fiskis+lenkis*2,"金符「エメラルドメガリス」",color[0]);
DrawFormatString(370,fiskis+lenkis*2+18,color[0]," 所持数 %2d",play.item_box[0].nokori);
DrawString(370,fiskis+lenkis*3,"金符「エメラルドメガリス」",color[0]);
DrawFormatString(370,fiskis+lenkis*3+18,color[0]," 所持数 %2d",play.item_box[0].nokori);
DrawString(370,fiskis+lenkis*4,"金符「エメラルドメガリス」",color[0]);
DrawFormatString(370,fiskis+lenkis*4+18,color[0]," 所持数 %2d",play.item_box[0].nokori);
DrawString(370,fiskis+lenkis*5,"金符「エメラルドメガリス」",color[0]);
DrawFormatString(370,fiskis+lenkis*5+18,color[0]," 所持数 %2d",play.item_box[0].nokori);
SetDrawArea(0,0,640,480);
//-------------------------------------選択アイテムステータス画面関係-----------------------------//
paint_box(320,5,635,190,4,color[0]); //自作関数(枠w)アイテムのステータスの枠
item_sta_win(&page,&book1,&book2);//アイテムのステウィンド
//----------------------------------その他-------------------------------------------------//
SetFontSize( 24 );//字の基本の大きさ変更
if(page==0) DrawString(48,fiski+2+lenki*(menu.knd),"→",color[0]);//カーソル85-37
else if(page==1) DrawString(333,fiskis+2+lenkis*(menu.knd),"→",color[0]);//カーソル370
SetFontSize( 22 );//字の基本の大きさ変更
SetFontSize( 13 );//字の大きさを戻す
DrawFormatStringToHandle(10,470,color[0],font[10],"%d,%d,%d",menu.knd,menu.knd+10*book1,menu.knd+5*book2);
}