2020年 3月 26日
前回の検証から画像は .pngで統一した方が良さそうだったので全部 pngに直した。
併せて mes命令による文字表示を全部画像に変更した。
文字をグラソフトで全部描かなければいけないため、結構作業量があって結局 3ヶ月くらいを要した。
こんな感じ(PNGの透明が白で見えないため、画像は JPGに加工してあります)
少し大変だったのは、キャラやアイテムのカード絵の自動描き出しのグラ。
全部を 1枚にして BMPで描き出ししてあるんだけど、この背景の黒を抜くのが手間で、最終的には背景の色を特定の色で描いて描き出しして、グラソフトで色域選択で選択して消去した。
これはなぜかと言うと画像の中に 0黒を使っていた場所があったため。
キャラの方は抜いた後、カードとカードの隙間を全部抜かなければいけない。
アイテムの方は流石に面倒になって背景色を変更し、一括選択できるようにした。
そんな感じで背景を透明にしてから改めて pngで描きだした。
表示が改まったのは。
国の画面と
装備画面
政府表示
ユニット一覧表示
アイテム一覧表示
属領一覧表示
SAVE、LOAD画面
そんな感じ。
それではソースを公開するけど、今回は表示関係をほとんどまとめてある「put.hsp」ファイルを。
まとめてあるのは、その方が把握と管理が楽になるから。
緑色の文字はコメントアウトになっていてプログラムには反映されない。
左端に寄せて書いてあるのは大体デバッグ用のコード。
/////// 表示 /////////////////////////////// *put_syoki ; 初期 ; 灰、赤、青、緑、黄、白、紫 col_r=238,215,86,107,255,255,153 col_g=238,26,116,222,240,255,122 col_b=238,0,215,57,0,255,232 ; タイトル tix1=200 : tix2=440 dim tiy1,6 dim tiy2,6 repeat 5,1 tiy1(cnt)=117+cnt*40 tiy2(cnt)=tiy1(cnt)+36 loop ; マップ選択 ngx1=150 : ngx2=490 dim ngy1,4 dim ngy2,4 ngy1(1)=75 : ngy2(1)=ngy1(1)+50 ngy1(2)=155 : ngy2(2)=ngy1(2)+50 ngy1(3)=235 : ngy2(3)=ngy1(3)+50 ; 国インフォ画面 infx1=5 : infx2=640-infx1 ; 枠 infy1=5 : infy2=360-infy1 infx3=224 : infy3=11 ; 領主座標 dim infx,3 ; 部隊座標 infx=55,358,358 dim infy,3 infy=186,6,186 dim inffox,3 ; force inffox=28,331,331 dim infkx1,45 ; タップ座標 dim infkx2,45 dim infky1,45 dim infky2,45 ;(0=領主、1~9=部隊、10~19=装備、20~29=remove) y1=80 : y2=50 ; 区切り infkx1(0)=infx3 : infkx2(0)=infkx1(0)+80 ; 領主タップ座標 infky1(0)=infy3 : infky2(0)=infky1(0)+y1 infkx1(10)=infx3 : infkx2(10)=infkx1(10)+80 ; 領主装備タップ座標 infky1(10)=infy3+y1 : infky2(10)=infky1(10)+y2 infkx1(20)=infx3 : infkx2(20)=infkx1(10)+80 ; 領主removeタップ座標 infky1(20)=infy3+coy+4 : infky2(20)=infky1(20)+18 repeat 3 : cn=cnt infkx1(31+cnt)=inffox(cnt) : infkx2(31+cnt)=inffox(cnt)+20 infky1(31+cnt)=infy(cnt) : infky2(31+cnt)=infy(cnt)+130 repeat 3 n1=cn*3+cnt+1 : n2=n1+10 : n3=n2+10 infkx1(n1)=infx(cn)+cnt*89 : infkx2(n1)=infkx1(n1)+80 ; 部隊タップ座標 infky1(n1)=infy(cn) : infky2(n1)=infky1(n1)+y1 infkx1(n2)=infx(cn)+cnt*89 : infkx2(n2)=infkx1(n2)+80 ; 部隊装備タップ座標 infky1(n2)=infy(cn)+y1 : infky2(n2)=infky1(n2)+y2 infkx1(n3)=infx(cn)+cnt*89 : infkx2(n3)=infkx1(n3)+80 ; 部隊removeタップ座標 infky1(n3)=infy(cn)+coy+21 : infky2(n3)=infky1(n3)+18 loop loop ; Government ordinance dim govx1,31 ; タップ座標 dim govx2,31 dim govy1,31 dim govy2,31 govcx=wx/2-cox/2 ; センター govy1=6 ; y1 govy2=203 ; y2 govxk=120 ; 枠座標x govx1(1)=govcx : govx1(4)=govcx govx1(3)=govcx-govxk : govx1(2)=govx1(3)-govxk govx1(5)=govcx+govxk : govx1(6)=govx1(5)+govxk repeat 6,1 ; タップ座標 govx1(10+cnt)=govx1(cnt) : govx1(20+cnt)=govx1(cnt) govx2(cnt)=govx1(cnt)+cox govx2(10+cnt)=govx2(cnt) : govx2(20+cnt)=govx2(cnt) if cnt=1 : govy1(cnt)=govy1 if cnt>1 : govy1(cnt)=govy2 govy2(cnt)=govy1(cnt)+79 govy1(10+cnt)=govy2(cnt)+1 ; 装備 govy2(10+cnt)=govy1(10+cnt)+49 govy1(20+cnt)=govy2(10+cnt)+4 ; remove govy2(20+cnt)=govy1(20+cnt)+18 loop govs1="","首領","行政","魔術","宗教","警察","軍務" govs2="","Leader","Population","Magic","Religion","Police","Military" govs3="","LEADER","POPULATION","MAGIC","RELIGION","POLICE","MILITARY" ; Build、Talent、Order dim ordx1,4 dim ordx2,4 dim ordy1,4 dim ordy2,4 ord_ox=64 ; 大きさx ord_oy=32 ; 大きさy ordk=41 ; 間隔 repeat 3,1 ordx1(cnt)=123 : ordx2(cnt)=ordx1(cnt)+ord_ox ; x loop ordy1(1)=11 : ordy2(1)=ordy1(1)+ord_oy ordy1(2)=ordy1(1)+ordk : ordy2(2)=ordy1(2)+ord_oy ordy1(3)=ordy1(2)+ordk : ordy2(3)=ordy1(3)+ord_oy repeat 3,1 ; タップ座標 infkx1(40+cnt)=ordx1(cnt) infkx2(40+cnt)=ordx2(cnt) infky1(40+cnt)=ordy1(cnt) infky2(40+cnt)=ordy2(cnt) loop infkx1(44)=infx1+2 ; Government infkx2(44)=infx1+26 infky1(44)=infy1+2 infky2(44)=infy1+26 ; Talent、ユニット talx1=60 : talxk=110 ; 枠座標x taly1=58 : talyk=150 ; 枠座標y talx2=20 : taly2=14 ; 国 talx3=110 : talx4=310 ; 魔術レベル talx5=400 ; マナポイント talcx=320-cox/2 : talcy=75 dim talkx1,11 ; タップ座標 dim talkx2,11 dim talky1,11 dim talky2,11 repeat 10 ; タップ座標 talkx1(cnt+1)=talx1+talxk*(cnt\5) talkx2(cnt+1)=talx1+talxk*(cnt\5)+cox if cnt<5 : y=taly1 : else : y=taly1+talyk talky1(cnt+1)=y talky2(cnt+1)=y+coy loop ; オプション dim optx1,12 ; 点座標 x=75 : xk=50 repeat 11 : optx1(cnt)=x : x+=xk : loop dim optx2,13 ; タップ座標 x=50 repeat 12 : optx2(cnt)=x : x+=xk : loop dim opty1,4 ; y y=50 : yk=60 repeat 4 opty1(cnt)=y : y+=yk if cnt=2 : y+=8 loop optyk=30 ; 厚さ dim opt2fx1,4 opt2fx1(1)=96 : opt2fx1(2)=134 : opt2fx1(3)=394 dim opt2fx2,4 opt2fx2(1)=544 : opt2fx2(2)=246 : opt2fx2(3)=506 dim opt2fy1,4 opt2fy1(1)=70 : opt2fy1(2)=230 : opt2fy1(3)=230 dim opt2fy2,4 opt2fy2(1)=182 : opt2fy2(2)=294 : opt2fy2(3)=294 color 255,255,255 /* dim opty1,3 ; y y=50 : yk=80 repeat 3 : opty1(cnt)=y : y+=yk : loop optyk=50 ; 厚さ */ exitx=288 : exity=280 exitkx1=exitx : exitkx2=exitx+64 exitky1=exity : exitky2=exity+64 opbt1x=100 : opbt1y=307 opbt1kx1=opbt1x-10 : opbt1kx2=opbt1x+81 opbt1ky1=opbt1y-10 : opbt1ky2=opbt1y+28 opbt2x=480 : opbt2y=307 opbt2kx1=opbt2x-30 : opbt2kx2=opbt2x+81 opbt2ky1=opbt2y-10 : opbt2ky2=opbt2y+28 opt1x=130 : opt1y=56 opt2x=380 opt3x=480 opmbx1=45 : opmbx2=opmbx1+450 ; 選曲 dim opmby,5 y=140 : opmbyk=35 repeat 4,1 : opmby(cnt)=y : y+=opmbyk : loop ; 選択画面-------------------------------- self=0 ; モード切り替え selx1=0;7 ; 名前 selx2=180 ; 降順 selx3=245 ; 昇順 selx4=0 ; ページ左 selx5=150 ; 戻る selx6=490 ; ページ右 selxk=56 ; 間隔 selx7=310 ; 種別始め selx8=selx7+selxk selx9=selx8+selxk selx10=selx9+selxk selx11=selx10+selxk selxk=69 ; 間隔 selx12=310 ; HP selx13=selx12+selxk ; 配備 selx14=selx13+selxk ; コスト selx15=selx14+selxk ; 属性 selx16=selx15+selxk ; 削除 sely1=0;10 ; 種別始め sely2=47 ; ユニット始め selyk=38 ; 行間隔 sely3=sely2+selyk*7 ; ページ切り替え、戻る dim selkx1,40 ; タップ座標 dim selkx2,40 dim selky1,40 dim selky2,40 repeat 7,1 ; ユニットxy座標 selkx1(cnt)=0 : selkx2(cnt)=640-1 selky1(cnt)=sely2+selyk*(cnt-1) selky2(cnt)=sely2+selyk*(cnt)-1 selkx1(30+cnt)=selx16 : selkx2(30+cnt)=640-1 ; 削除 selky1(30+cnt)=sely2+selyk*(cnt-1) selky2(30+cnt)=sely2+selyk*(cnt)-1 loop selkx1(11)=0 : selkx2(11)=selx2-1 ; 名前 selkx1(12)=selx2 : selkx2(12)=selx3-1 ; 降順 selkx1(13)=selx3 : selkx2(13)=selx7-1 ; 昇順 repeat 3,11 ; 上のy座標 selky1(cnt)=0 : selky2(cnt)=sely2-1 loop selkx1(17)=selx7 : selkx2(17)=selx8-1 ; 筋力 selkx1(18)=selx8 : selkx2(18)=selx9-1 ; 魔力 selkx1(19)=selx9 : selkx2(19)=selx10-1 ; 知力 selkx1(20)=selx10 : selkx2(20)=selx11-1 ; 魅力 selkx1(21)=selx11 : selkx2(21)=wx-1 ; 特殊 repeat 10,17 ; 上のy座標 selky1(cnt)=0 : selky2(cnt)=sely2-1 loop selkx1(14)=selx4 : selkx2(14)=selx5-1 ; ← selkx1(15)=selx5 : selkx2(15)=selx6-1 ; 戻る selkx1(16)=selx6 : selkx2(16)=wx-1 ; → repeat 3,14 ; 下のy座標 selky1(cnt)=sely3 : selky2(cnt)=wy-1 loop selkx1(22)=selx12 : selkx2(22)=selx13-1 ; HP selkx1(23)=selx13 : selkx2(23)=selx14-1 ; 配備 selkx1(24)=selx14 : selkx2(24)=selx15-1 ; コスト selkx1(25)=selx15 : selkx2(25)=selx16-1 ; 属性 selkx1(26)=selx16 : selkx2(26)=wx-1 ; 消去 ; アイテム選択画面-------------------------------- iself=0 ; モード切り替え iselx1=0;7 ; 名前 iselx2=180 ; 降順 iselx3=245 ; 昇順 iselx4=0 ; ページ左 iselx5=150 ; 戻る iselx6=490 ; ページ右 iselxk=56 ; 間隔 iselx7=310 ; 種別始め iselx8=iselx7+iselxk iselx9=iselx8+iselxk iselx10=iselx9+iselxk iselx11=iselx10+iselxk iselxk=69 ; 間隔 iselx12=310 ; HP iselx13=iselx12+iselxk ; 配備 iselx14=iselx13+iselxk ; コスト iselx15=iselx14+iselxk ; 属性 iselx16=iselx15+iselxk ; 削除 iselxk2=55 ; 間隔 iselx17=310 ; 火、水、風、地、光、闇 isely1=0;10 ; 種別始め isely2=47 ; ユニット始め iselyk=38 ; 行間隔 isely3=isely2+iselyk*7 ; ページ切り替え、戻る dim iselkx1,50 ; タップ座標 dim iselkx2,50 dim iselky1,50 dim iselky2,50 repeat 7,1 ; ユニットxy座標 iselkx1(cnt)=0 : iselkx2(cnt)=640 iselky1(cnt)=isely2+iselyk*(cnt-1) iselky2(cnt)=isely2+iselyk*(cnt) iselkx1(30+cnt)=iselx16 : iselkx2(30+cnt)=640 ; 削除 iselky1(30+cnt)=isely2+iselyk*(cnt-1) iselky2(30+cnt)=isely2+iselyk*(cnt) loop iselkx1(11)=0 : iselkx2(11)=iselx2 ; 名前 iselkx1(12)=iselx2 : iselkx2(12)=iselx3 ; 降順 iselkx1(13)=iselx3 : iselkx2(13)=iselx7 ; 昇順 repeat 3,11 ; 上のy座標 iselky1(cnt)=0 : iselky2(cnt)=isely2 loop iselkx1(17)=iselx7 : iselkx2(17)=iselx8 ; 筋力 iselkx1(18)=iselx8 : iselkx2(18)=iselx9 ; 魔力 iselkx1(19)=iselx9 : iselkx2(19)=iselx10 ; 知力 iselkx1(20)=iselx10 : iselkx2(20)=iselx11 ; 魅力 iselkx1(21)=iselx11 : iselkx2(21)=wx ; 特殊 repeat 10,17 ; 上のy座標 iselky1(cnt)=0 : iselky2(cnt)=isely2 loop iselkx1(14)=iselx4 : iselkx2(14)=iselx5 ; ← iselkx1(15)=iselx5 : iselkx2(15)=iselx6 ; 戻る iselkx1(16)=iselx6 : iselkx2(16)=wx ; → repeat 3,14 ; 下のy座標 iselky1(cnt)=isely3 : iselky2(cnt)=wy loop iselkx1(22)=iselx12 : iselkx2(22)=iselx13 ; HP iselkx1(23)=iselx13 : iselkx2(23)=iselx14 ; 配備 iselkx1(24)=iselx14 : iselkx2(24)=iselx15 ; コスト iselkx1(25)=iselx15 : iselkx2(25)=iselx16 ; 属性 iselkx1(26)=iselx16 : iselkx2(26)=wx ; 消去 repeat 6,41 ; 火、水、風、地、光、闇 iselkx1(cnt)=iselx17+(cnt-41)*iselxk2 iselkx2(cnt)=iselx17+(cnt-40)*iselxk2 iselky1(cnt)=0 iselky2(cnt)=isely2 loop /* repeat redraw 0 color 1,1,1 : boxf : color 255,255,255 iself=2 ky=isel_key() repeat 7,1 n=255-10*cnt : color n,n,n boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) loop repeat 6,11 n=255-10*(cnt) : color n,n,n boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) loop repeat 5,17 n=255-10*(cnt-17) : color n,n,n boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) loop repeat 5,22 n=255-10*(cnt-22) : color n,n,n boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) loop repeat 7,31 n=255-10*(cnt-31+16) : color n,n,n boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) loop repeat 6,41 n=255-10*(cnt-41) : color n,n,n boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) loop color 255,0,0 : pos 10,100 : mes ky redraw 1 await 1000/10 loop stop */ /* iselx1=10 : iselxk=60 isely1=11 : isely2=51 : iselyk=38 iselx2=305 iselx3=iselx2+iselxk iselx4=iselx3+iselxk iselx5=iselx4+iselxk iselx6=iselx5+iselxk dim iselkx1,20 ; タップ座標 dim iselkx2,20 dim iselky1,20 dim iselky2,20 repeat 9,1 iselkx1(cnt)=0 : iselkx2(cnt)=wx iselky1(cnt)=isely2+iselyk*(cnt-1)-6 iselky2(cnt)=isely2+iselyk*(cnt)-6 iselky1(cnt+10)=0 iselky2(cnt+10)=isely2-6 loop iselky1(9)=iselky1(8) : iselky2(8)=wy : selky2(9)=wy k=4 iselkx1(8)=0 : iselkx2(8)=wx/2 iselkx1(9)=wx/2 : iselkx2(9)=wx iselkx1(11)=0 : iselkx2(11)=iselx2-k iselkx1(12)=iselx2-k : iselkx2(12)=iselx3-k iselkx1(13)=iselx3-k : iselkx2(13)=iselx4-k iselkx1(14)=iselx4-k : iselkx2(14)=iselx5-k iselkx1(15)=iselx5-k : iselkx2(15)=iselx6-k iselkx1(16)=iselx6-k : iselkx2(16)=wx */ ; 属領選択画面 dim mselkx1,20 dim mselkx2,20 dim mselky1,20 dim mselky2,20 mselkx1(11)=9 : mselkx2(11)=72 : k=115 mselkx1(12)=mselkx2(11) : mselkx2(12)=mselkx1(12)+k mselkx1(13)=mselkx2(12) : mselkx2(13)=mselkx1(13)+k mselkx1(14)=mselkx2(13) : mselkx2(14)=mselkx1(14)+k mselkx1(15)=mselkx2(14) : mselkx2(15)=mselkx1(15)+k mselkx1(16)=mselkx2(15) : mselkx2(16)=wx mselkx1(17)=0 : mselkx2(17)=wx repeat 6,11 mselky1(cnt)=0 : mselky2(cnt)=44 loop mselky1(17)=44+38*7 : mselky2(17)=wy repeat 7,1 mselkx1(cnt)=0 : mselkx2(cnt)=wx mselky1(cnt)=47+37*(cnt-1) mselky2(cnt)=47+37*(cnt) loop /* repeat ky=msel_key() redraw 0 repeat 16,1 n=255-10*cnt : color n,n,n boxf mselkx1(cnt),mselky1(cnt),mselkx2(cnt),mselky2(cnt) loop color 0,255,0 pos 100,100 : mes ky redraw 1 await 10 loop pkey */ ; インフォメーションウインドウ------------------- iwdx1=200 : iwdx2=630 iwdy1=10 : iwdy2=170 : iwdy3=190 : iwdy4=350 iwdxk=430 : iwdyk=160 equx1=20 : equy1=20 equx2=126 : equy2=10 equx3=280 ; ユーザーカラー cccx=280 : y=60 : cccxk=256 : cccyk=60 : cccyk2=85 dim cccy,4 repeat 3,1 : cccy(cnt)=y : y+=cccyk2 : loop ccto=60 : cctk=20 cctx1=cccx-ccto-cctk : cctx2=cccx+cccxk+cctk ; SAVE画面 svx1=28+16+8 svx2=28+16+8+34*16 dim svy1,4 dim svy2,4 repeat 3 svy1(cnt+1)=24+8+cnt*64 svy2(cnt+1)=svy1(cnt+1)+64 loop svy1(4)=264 svy2(4)=264+64 ; 装備画面--------------------------------------- equx4=10 : equxk=90 equy4=190 : equx5=514 equy5=equy4+coy+9 dim equkx1,20 ; タップ座標 dim equkx2,20 dim equky1,20 dim equky2,20 repeat 7 : n1=cnt : n2=cnt+10 : n3=cnt+20 equkx1(n1)=equx4+equxk*(n1) : equkx1(n2)=equkx1(n1) : equkx1(n3)=equkx1(n1) equkx2(n1)=equkx1(n1)+80 : equkx2(n2)=equkx2(n1) : equkx2(n3)=equkx2(n1) equky1(n1)=equy4 : equky1(n2)=equy4+80 : equky1(n3)=equy5 equky2(n1)=equky1(n1)+80 : equky2(n2)=equky1(n1)+130 : equky2(n3)=equky1(n3)+18 loop equs="右手","左手","防具","アイテム or アクセサリー","HAND" ; 戦闘画面 btlx1=18 : btlxk=96 btlx2=wx-btlx1-btlxk*3+(btlxk-80) btlck=btlx2-btlx1-btlxk*3;+(btlxk-80) ; センターの間隔 btly1=140 dim btlcx,4 ; カードx座標 repeat 3,1 bcx1(cnt)=btlx1+btlxk*(3-cnt) bcx2(cnt)=btlx2+btlxk*(cnt-1) loop hpbpy=btly1+141 ; HPバーの座標y hpbpxk=cox-4 ; HPバーの長さ hpbpyk=10 ; HPバーの幅 ; ダメージ表示 dmpb=20 dim dmp,6*dmpb ; ダメージ表示(0=フラグ、1=n、2=x、3=y、4=color、5=カウンター) ; エフェクト表示 efb=20 ; 最大数 efd=12 ; データ数 dim ef,efd*efb ; データ ;(0=種類、1=グラNo.2=表示場所、3=アニメc、4=速さc、5=速さ、 ; 6=x、7=y、8=x動き、9=y動き、10=透明 or 加算、11=移動時間) ddim eff,4*efb ; 実数データ ; (0=反転x、1=反転y、2=回転、3=回転速度) ; エンディング文字表示 oemjb=20 dim oemjf,oemjb ; フラグ、グラNo.(0=op、1=ed、2=cr) dim oemjn,oemjb ; 文字No. dim oemjc,oemjb ; カラーNo. dim oemjx,oemjb ; x座標 dim oemjy,oemjb ; y座標 dim oemjm,oemjb ; 移動方向 dim oemjd,oemjb ; 移動量 /* edmjb=10 dim edmjf,edmjb dim edmjy,edmjb dim edmjz,edmjb edcrb=12 dim edcrf,edcrb ; グラNo. dim edcrn,edcrb ; 文字No. dim edcrx,edcrb ; x座標 dim edcrc,edcrb ; カラーNo. dim edcry,edcrb dim edcrz,edcrb */ ; カードショー表示 cdswb=20 dim cdswf,cdswb ; フラグ dim cdswx,cdswb ; x座標 dim cdswy,cdswb ; y座標 dim cdswz,cdswb ; 回転 return #deffunc card_put int cpn1,int cpn2,int cpn3,int cpn4,int cpn6 ; カード表示 ; cpn6=反転表示(0=通常、1=反転) cpx=cpn1+cox/2 cpy=cpn2 : cpun=cpn3 ; un=ユニットNo if cpn6=0 : cpn6f=1.0 : else : cpn6f=-1.0 cpug=cpun*udb cpcn=ud(cpug) if cpn4=0 : cpn5=255 : else : cpn5=cpn4 gmode 3,,,cpn5 : gmulcolor 255,255,255 pos cpx,cpy : celput cw,cpcn-1,cpn6f /* color 0,255,0 pos cpx+2,cpy+2 : mes cs2(cn) repeat 6,1 pos cpx+4,cpy+cnt*20 : mes ud(un*udb+cnt+20) loop */ return #deffunc map_put repeat 25,1 ; HEX x=hxyd(0,cnt) : y=hxyd(1,cnt) gmode 2 gmulcolor 255,255,255 ; HEX描画 pos x,y if map(cnt)=1 : celput m1w ; 地形、火 if map(cnt)=2 : celput m2w ; 地形、水 if map(cnt)=3 : celput m3w ; 地形、風 if map(cnt)=4 : celput m4w ; 地形、地 if map(cnt)=5 : celput m5w ; 地形、光 if map(cnt)=6 : celput m6w ; 地形、闇 if map(cnt)>0 { ; 建物 mdg=cnt*mdb if md(mdg+7)>0 { ; 建築物 if md(mdg+7)=1 : n=40 : else : n=md(mdg+7)-2 pos x+40-4,y+14-3 : celput atw,n,1.2,1.2 } n=(md(mdg+1)+100000)/200000 : if n>4 : n=4 pos x+40-4,y+43-4 : celput atw,10+n,1.2,1.2 ; 街 n=(md(mdg+2)+10000)/20000 : if n>4 : n=4 pos x+66-4,y+33-4 : celput atw,20+n,1.2,1.2 ; 魔法学院 n=(md(mdg+3)+10000)/20000 : if n>4 : n=4 pos x+14-4,y+33-4 : celput atw,30+n,1.2,1.2 ; マナ ;pos x+40,y+14 : /*n=rnd(10)*/ : celput atw,0;nnnn\10 :nnnn+ ; 建物 ;pos x+40,y+43 : n=rnd(5) : celput atw,10;+n ; 街 ;pos x+66,y+33 : n=rnd(5) : celput atw,20;+n ; 魔法学院 ;pos x+14,y+33 : n=rnd(5) : celput atw,30;+n ; マナ ; 治安バー x2=x+26 : y2=y+70 : yk=4 color 0,72,200 ; 外枠 boxf x2,y2,x2+52,y2+yk+1 color 32,64,96 ; 背景 boxf x2+1,y2+1,x2+1+50,y2+yk color 0+48,192,255 ; 中 n=md(mdg+4)/2000 boxf x2+1,y2+1,x2+1+n,y2+yk } if mpl(cnt)>0 { ; 0=誰も支配してない n=mpl(cnt) gmulcolor cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 色指定 pos x,y : celput hsw ; ふち描画 gmode 5,,,160 ; 加算合成 pos x,y : celput hiw ; ふちグラデ描画 } if debugf=1 and map(cnt)>0 { ;if map(cnt)>0 { ;s="mp" : bfp s,x+25,y+3 : gmulcolor 255,255,255 fp wp(cnt),x+20,y+3,0 ;fp hdn(cnt),x+20,y+23 fp wpb(cnt),x+20,y+23 fp pmp(mpl(cnt)),x+15,y+48,0 ;fp hdk_dgn(mpl(cnt)),x+50,y+48,1 ;fp md(cnt*mdb+7),x+15,y+48,0 ;pos x+45,y+48 : mes md(cnt*mdb+9) ;fp md(cnt*mdb+9),x+45,y+48,0 fp cnt,x+25,y+68,0 fp matp_dgn(mpl(cnt)),x+50,y+68,3 fp matp_dgn2(mpl(cnt)),x,y+35,3 ;} } ;color 255,255,255 : pos x+25,y+48 : mes cnt;n ;map(cnt) ; マス番号表示 ;if map(cnt)>0 : pos x+25,y+3 : mes "wp "+wp(cnt);n ;map(cnt) ; 戦力値表示 continue if debugf=0 : continue color 255,255,255 pos x+25,y+25 : mes "hd "+hdn(cnt);n ;map(cnt) ; 脅威値表示 loop if pn>0 { ; 操作plの首都選択外枠表示 n=mpc(pn) ; 首都国 x=hxyd(0,n)-8 : y=hxyd(1,n)-8 ; 座標 gmode 5,,,224 : gmulcolor 255,255,255 pos x,y : celput hcw } if pmpnc>0 { ; マナポイントが足りない表示 pmpnc- evw 0,108,132,27,6 ; イベントウインドウ表示 evw 1,108,132,27,6 ; イベントウインドウ表示 ; color 240,240,240 : boxf 320-100,180-50,320+100,180+50 ; color 1,1,1 : boxf 320-98,180-48,320+98,180+48 ; color 240,240,240 s="MANA PONT" : pfp28 s,144,165 pos 144+163,165 : celput mj28_lngw,9; mes "マナポイントが足りません" ; pos 320-70,180-30 : mes "マナポイントが" ; pos 320-70,180+10 : mes "足りません" } ; HEX外周空き欄 -------------------- ;color 255,255,255 : pos 5,5 : mes plb gmode 2 : gmulcolor 255,255,255 ; 外周コマンド pos cxyd(0,4)+6,cxyd(1,4)+10 : celput cicow,5 ; マップ pos cxyd(0,6)+12,cxyd(1,6)+3 : celput cicow,0 ; 政府 pos cxyd(0,7)+12,cxyd(1,7)+3 : celput cicow,1 ; ユニット一覧 pos cxyd(0,8)+12,cxyd(1,8)+3 : celput cicow,2 ; アイテム一覧 pos cxyd(0,9 )+12,cxyd(1,9 )-11 if mt_muf=0 : gmulcolor 255,255,255 : celput cicow,10 ; Music if mt_muf=1 : gmulcolor 160,160,160 : celput cicow,10 pos cxyd(0,10)+12,cxyd(1,10)-11 if btlputf=0 : gmulcolor 255,255,255 : celput cicow,25 ; バトルアニメ if btlputf=1 : gmulcolor 160,160,160 : celput cicow,25 ;if mt_sef=0 : gmulcolor 255,255,255 : celput cicow,12 ; SE ;if mt_sef=1 : gmulcolor 160,160,160 : celput cicow,13 gmulcolor 255,255,255 pos cxyd(0,11)+12,cxyd(1,11)-11 : celput cicow,14 ; OPSION pos cxyd(0,13)+0,cxyd(1,13)+10 : celput cicow,6 ; SAVE pos cxyd(0,14)+0,cxyd(1,14)+10 : celput cicow,7 ; LOAD pos cxyd(0,15)+0,cxyd(1,15)+10 : celput cicow,8 ; ダーンエンド pos cxyd(0,3)+6,cxyd(1,3)+10 : celput cicow,3 ; プレイヤー ;pos cxyd(0,4)+10,cxyd(1,4)+3 : celput cicow,4 ; CPU /* ; 枠 repeat 5 pos -44,-45+90*cnt : celput how pos 581,-45+90*cnt : celput how loop repeat 3 pos 112+156*cnt,-45 : celput how pos 112+156*cnt,315 : celput how loop */ ; ターン表示 s=str(trn) : n=strlen(s) ; ケタ x=cxyd(0,2)+21-n*8 : y=cxyd(1,2) ;x=cxyd(0,2)+51-n*16 : y=cxyd(1,2) fp2 trn,x,y,0 s="turn" : bfp s,cxyd(0,2)+2,cxyd(1,2)+27,0 /* color 192,192,255 pos 10,10 : mes ""+trn+" ターン" pos 100,10 : mes "kn1 "+kn1+" "+"kn2 "+kn2 */ color 255,255,255 ;s="Turn" : bfp s,cxyd(0,15),cxyd(1,15)+20,0 ;s=" End" : bfp s,cxyd(0,15),cxyd(1,15)+40,0 if debugf=1 { s="dbgf" : bfp s,cxyd(0,16),cxyd(1,16)+10,0 } /* pos 10,300 : mes "pn "+pn pos 10,320 : mes "sf "+str_plbn pos 10,340 : mes "hf "+hextf */ /* color 244,244,244 pos 10,110 : mes "kc "+kc pos 10,130 : mes "hink "+hink pos 10,150 : mes "mainf "+mainf pos 10,180 : mes "kn "+kn pos 10,210 : mes "ckn "+ckn pos 10,240 : mes "kc2 "+kc2 */ return #deffunc map_put2 repeat 25,1 ; HEX x=hxyd(0,cnt) : y=hxyd(1,cnt) gmode 2 gmulcolor 255,255,255 ; HEX描画 pos x,y if map(cnt)=1 : celput m1w ; 地形、火 if map(cnt)=2 : celput m2w ; 地形、水 if map(cnt)=3 : celput m3w ; 地形、風 if map(cnt)=4 : celput m4w ; 地形、地 if map(cnt)=5 : celput m5w ; 地形、光 if map(cnt)=6 : celput m6w ; 地形、闇 if map(cnt)>0 { ; 建物 mdg=cnt*mdb if md(mdg+7)>0 { ; 建築物 if md(mdg+7)=1 : n=40 : else : n=md(mdg+7)-2 pos x+40-4,y+14-3 : celput atw,n,1.2,1.2 } n=(md(mdg+1)+100000)/200000 : if n>4 : n=4 pos x+40-4,y+43-4 : celput atw,10+n,1.2,1.2 ; 街 n=(md(mdg+2)+10000)/20000 : if n>4 : n=4 pos x+66-4,y+33-4 : celput atw,20+n,1.2,1.2 ; 魔法学院 n=(md(mdg+3)+10000)/20000 : if n>4 : n=4 pos x+14-4,y+33-4 : celput atw,30+n,1.2,1.2 ; マナ ; 治安バー x2=x+26 : y2=y+70 : yk=4 color 0,72,200 ; 外枠 boxf x2,y2,x2+52,y2+yk+1 color 32,64,96 ; 背景 boxf x2+1,y2+1,x2+1+50,y2+yk color 0+48,192,255 ; 中 n=md(mdg+4)/2000 boxf x2+1,y2+1,x2+1+n,y2+yk } if mpl(cnt)>0 { ; 0=誰も支配してない color 255,255,255 : pos x+25,y+10 : mes mpl(cnt) n=mpl(cnt) color 255,255,255 : pos x+25,y+30 : mes pcln(n) gmulcolor cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 色指定 pos x,y : celput hsw ; ふち描画 gmode 5,,,160 ; 加算合成 pos x,y : celput hiw ; ふちグラデ描画 } loop repeat 25,1 ; 枠 if hf(mpl(cnt))=1 { x=hxyd(0,cnt)-8 : y=hxyd(1,cnt)-8 ; 座標 gmode 5,,,224 : gmulcolor 255,255,255 pos x,y : celput hcw } loop return #deffunc map_put3 repeat 25,1 ; HEX x=hxyd(0,cnt) : y=hxyd(1,cnt) gmode 2 gmulcolor 255,255,255 ; pos x,y : celput hexw,0 pos x,y : celput m3w ; 地形、風 gmulcolor cld((cnt-1)*3+1),cld((cnt-1)*3+2),cld((cnt-1)*3+3) ; 色指定 pos x,y : celput hsw ; ふち描画 gmode 5,,,160 ; 加算合成 pos x,y : celput hiw ; ふちグラデ描画 loop return #deffunc map_put4 repeat 25,1 ; HEX x=hxyd(0,cnt) : y=hxyd(1,cnt) gmode 2 gmulcolor 255,255,255 ; pos x,y : celput hexw,0 pos x,y : celput m3w ; 地形、風 gmulcolor cld((cnt-1)*3+1),cld((cnt-1)*3+2),cld((cnt-1)*3+3) ; 色指定 pos x,y : celput hsw ; ふち描画 gmode 5,,,160 ; 加算合成 pos x,y : celput hiw ; ふちグラデ描画 loop return #deffunc dis_put pn=0 redraw 0 color 0,0,0 : boxf : color 255,255,255 map_put ; マップ表示 repeat 25,1 if map(cnt)=0 : continue if dism(cnt)=0 : continue x=hxyd(0,cnt)+10 : y=hxyd(1,cnt)+24 pos x,y if dism(cnt)=1 : celput disw,0,0.8,0.8 ; mes "地震" if dism(cnt)=2 : celput disw,1,0.8,0.8 ; mes "火災" if dism(cnt)=3 : celput disw,2,0.8,0.8 ; mes "嵐" if dism(cnt)=4 : celput disw,3,0.8,0.8 ; mes "暴動" loop dg_put ; デバッグ表示 redraw 1 return ; HEX情報表示 -------------------- #deffunc inf_put ;font "",20 ;color 255,255,255 : boxf infx1,infy1,infx2,infy2 ; 枠 color 1,1,1 : boxf ;infx1+2,infy1+2,infx2-2,infy2-2 n=map(m) : pos 0,0 if n=1 : celput hai1w,0,2.0,2.0 ; 火 if n=2 : celput hai2w,0,2.0,2.0 ; 水 if n=3 : celput hai3w ; 風 if n=4 : celput hai4w ; 地 if n=5 : celput hai5w,0,2.0,2.0 ; 光 if n=6 : celput hai6w,0,2.0,2.0 ; 闇 n=mpl(m) if n=0 { ; 中立 ;color 240,240,240 : pos infx1+5,infy1 : mes ""+m+" 国" fp2 m,infx1+27,infy1,5 } if n>0{ ; ヒーロー color 255,255,255 : boxf infx1+2,infy1+2,infx1+26,infy1+26 color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 boxf infx1+4,infy1+4,infx1+24,infy1+24 fp2 m,infx1+27,infy1,5 ;pos infx1,infy1 : mes ""+m+" 国" mdg=m*mdb if md(mdg+7)>0 { ; 建築物 if md(mdg+7)=1 : n=40 : else : n=md(mdg+7)-2 pos infx1+73,infy1-2 : celput atw,n,1.2,1.2 } ;if mpc(n)=m : pos infx1+80,infy1 : mes "首都";""+n+" 勢力 首都" ;boxf infx1+100,infy1+20,infx1+130,infy1+50 } x=infx1+5 : y=infy1+35 : k=23 s="popu" : bfp s,x,y,5 ;population n=md(m*mdb+1)/100 : fp n,x+50,y,5 : y+=k s="magi" : bfp s,x,y,5 ;Magic n=md(m*mdb+2)/100 : fp n,x+50,y,5 : y+=k s="mana" : bfp s,x,y,5 ;Mana n=md(m*mdb+3)/100 : fp n,x+50,y,5 : y+=k s="safe" : bfp s,x,y,5 ;safe n=md(m*mdb+4)/1000 : fp n,x+50,y,5 s="%" : bfp s,x+80,y,5 s="cost" : bfp s,x,infy1+131,4 ; force cost n=wp_cost(m) : fp n,x+50,infy1+131,4 s="mana" : bfp s,x,infy1+154,2 ; mana point n=pmp(mpl(hink)) : fp n,x+50,infy1+154,2 /* k=6 color 244,244,244 pos infx1+10,infy1+20+k : mes "人口 "+md(m*mdb+1)/100 pos infx1+10,infy1+40+k : mes "魔術 "+md(m*mdb+2)/100 pos infx1+10,infy1+60+k : mes "マナ "+md(m*mdb+3)/100 pos infx1+10,infy1+80+K : mes "治安 "+(md(m*mdb+4)/1000)+" %" if mpl(m)>0 { pos infx1+10,infy1+100+k : mes ""+pubg(mpl(m))+" / "+pubn(mpl(m));"攻撃 "+md(m*mdb+5) pos infx1+10,infy1+120+K : mes ""+pibg(mpl(m))+" / "+pibn(mpl(m));"防御 "+md(m*mdb+6) } color 0,255,255 pos infx1,infy1+154 : mes "マナP "+pmp(mpl(hink)) color 255,0,0 pos infx1+105,infy1+154 : mes "コスト "+wp_cost(m) */ ; Government ordinance if mpl(m)=pn { ; プレイヤーのみ c=0 if mpc(pn)=m : n=128 : else : n=255 : if md(m*mdb+7)>0 : c=1 gmode 3,,,n pos ordx1(1),ordy1(1) : celput ordw,c ; Build、Disma gmode 2 pos ordx1(2),ordy1(2) : celput ordw,2 ; Talent pos ordx1(3),ordy1(3) : celput ordw,3 ; Order } /* if hf(mpl(m))!pn { pos ordx1(1),ordy1(1)+0 : mes ""+pubg(mpl(m))+"/"+pubn(mpl(m)) pos ordx1(1),ordy1(1)+20 : mes "pubsn "+pubsn(mpl(m)) pos ordx1(1),ordy1(1)+50 : mes ""+pibg(mpl(m))+"/"+pibn(mpl(m)) pos ordx1(1),ordy1(1)+70 : mes "pibsn "+pibsn(mpl(m)) } */ gmode 2 : gmulcolor 255,255,255 ;pos 50,190 : celput 4 ;pos 340,40 : celput 4 ;pos 340,190 : celput 4 mun=mu(m*mdb) if mun!0 { ; 領主がいる pos infx3,infy3 : ;celput krwkw card_put infx3,infy3,mun pos infkx1(20),infky1(20) : celput rmw ; rmove } if mun=0 { ; 領主がいない pos infx3,infy3 : celput cslwkw ; 領主 pos infkx1(20),infky1(20) : celput rmw ; rmove } pos infx3-27,infy3 : celput fow,0 ; load /* s="l" : bfp s,infx3-22,infy3+11 s="o" : bfp s,infx3-22,infy3+40 s="r" : bfp s,infx3-22,infy3+69 s="d" : bfp s,infx3-22,infy3+98 */ ; 部隊表示 ---------- repeat 3 : cnt2=cnt repeat 3 mun=mu(m*mdb+cnt2*3+cnt+1) gmode 2 pos infx(cnt2)+cnt*89,infy(cnt2) if mun!0 : celput krwkw if mun=0 : celput cslwkw : continue x=infx(cnt2)+cnt*89 : y=infy(cnt2) if ud(mun*udb+26)>0 : n=255 : else : n=128 if ud(mun*udb+28)=1 : n=192 ; 終了フラグ card_put x,y,mun,n ;if ud(mun*udb+26)>0 { ; HPバー hpn=ud(mun*udb+26) ; HP if hpn>0 : nn=255 : else : nn=128 ; 表示透明度 ; card_put bcx1(n),btly1,fn1(n),nn,0 ; カード表示 hpbpn=int(double(hpbpxk)/double(ud(mun*udb+25))*double(hpn)) ; HPバーの長さ color 208,0,0 ; ダメージ /* boxf x+2,y-17,x+2+hpbpxk,y-17+hpbpyk color 112,112,255 ; HP boxf x+2,y-17,x+2+hpbpn,y-17+hpbpyk pos x,y-19 : celput hww ; hpバーの枠 */ boxf x+2,y+coy+5,x+2+hpbpxk,y+coy+5+hpbpyk color 112,112,255 ; HP boxf x+2,y+coy+5,x+2+hpbpn,y+coy+5+hpbpyk pos x,y+coy+3 : celput hww ; hpバーの枠 ;} if ud(mun*udb+28)=0 : pos x,y+coy+21 : celput rmw ; rmove /* if debugf=1 { color 255,255,255 pos bcx1(n),btly1+160 : mes ud(fn1(n)*udb+26) ; HP pos bcx1(n)+60,btly1+160 : mes fn1(n) ; unNo. } */ if debugf=1 { ; unNo,表示 color 255,255,255 pos infx(cnt2)+cnt*89+19,infy(cnt2)-20 mes "unNo."+mun ;mes "コスト "+ud(mun*udb+27) } loop /* s="f" : bfp s,infx(cnt2)-22,infy(cnt2)+7;,5 s="o" : bfp s,infx(cnt2)-22,infy(cnt2)+27;,5 s="r" : bfp s,infx(cnt2)-22,infy(cnt2)+47;,5 s="c" : bfp s,infx(cnt2)-22,infy(cnt2)+67;,5 s="e" : bfp s,infx(cnt2)-22,infy(cnt2)+87;,5 f=cnt2+1 : fp f,infx(cnt2)-22,infy(cnt2)+109;,5 */ loop gmode 2 repeat 3 ; 部隊出撃表示 pos inffox(cnt),infy(cnt) n=(m-1)*3+cnt+1 : if fsorf(n)=0 : n=1 : else : n=4 celput fow,cnt+n loop if infof=1 { iwdf=0 if ky2=0 or ky2=10 : iwdf=1 if 4<=ky2 and ky2<=6 : iwdf=1 if 14<=ky2 and ky2<=16 : iwdf=1 if 1<=ky2 and ky2<=3 : iwdf=2 if 7<=ky2 and ky2<=9 : iwdf=2 if 11<=ky2 and ky2<=13 : iwdf=2 if 17<=ky2 and ky2<=19 : iwdf=2 if iwdf=1 : iwdy=iwdy3+10 if iwdf=2 : iwdy=iwdy1+10 iwdx=64 evw 0,iwdx,iwdy,33,10 ; イベントウインドウ表示 evw 1,iwdx,iwdy,33,10 ; イベントウインドウ表示 /* if iwdf=1 : iwdx=iwdx1 : iwdy=iwdy3 if iwdf=2 : iwdx=iwdx1 : iwdy=iwdy1 color 255,255,255 boxf iwdx,iwdy,iwdx+iwdxk,iwdy+iwdyk color 8,8,8 boxf iwdx+2,iwdy+2,iwdx+iwdxk-2,iwdy+iwdyk-2 */ gmode 5,,,128 pos infkx1(ky2\10)-4,infky1(ky2\10)-4 : celput swakuw,0 ; 選択カーソル un=mu(m*10+ky2\10) : ug=un*udb : cn=ud(ug) gmode 2 : gmulcolor 255,255,255;: color 255,255,255 pos iwdx+10,iwdy+8 : celput cd_ftw,cn ; mes ""+cs2(cn)+" Lv"+cd(15,cn)+" us"+cn+" un "+un ;pos iwdx+100,iwdy+5 : mes "un "+un+" "+ud(ug+27) pos iwdx+15,iwdy+38 : celput mojiw,0 ; HP n=ud(ug+26) : nx=fpk(n) : fp n,iwdx+39+nx,iwdy+39,0 pos iwdx+91,iwdy+39 : celput bfpw,207 ; / n=ud(ug+25) : fp n,iwdx+106,iwdy+39,0 pos iwdx+15,iwdy+62 : celput mojiw,1 : s="STR" : bfp s,iwdx+60,iwdy+65,0 n=ud(ug+21) : nx=fpk(n) : fp n,iwdx+92+nx,iwdy+65,0 pos iwdx+15,iwdy+84 : celput mojiw,2 : s="MAG" : bfp s,iwdx+60,iwdy+87,0 n=ud(ug+22) : nx=fpk(n) : fp n,iwdx+92+nx,iwdy+87,0 pos iwdx+15,iwdy+106 : celput mojiw,3 : s="INT" : bfp s,iwdx+60,iwdy+109,0 n=ud(ug+23) : nx=fpk(n) : fp n,iwdx+92+nx,iwdy+109,0 pos iwdx+15,iwdy+128 : celput mojiw,4 : s="CHA" : bfp s,iwdx+60,iwdy+131,0 n=ud(ug+24) : nx=fpk(n) : fp n,iwdx+92+nx,iwdy+131,0 pos iwdx+162,iwdy+36 : celput mojiw,5 : s="ATK" : bfp s,iwdx+207,iwdy+39,0 n=ud(ug+11)+ud(ug+20) : nx=fpk(n) : fp n,iwdx+240+nx,iwdy+39,0 pos iwdx+162,iwdy+62 : celput mojiw,6 : s="DEF" : bfp s,iwdx+207,iwdy+64,0 n=ud(ug+12) : nx=fpk(n) : fp n,iwdx+240+nx,iwdy+64,0 pos iwdx+162,iwdy+95 : celput mojiw,7 : s="ability" : bfp s,iwdx+207,iwdy+98,0 pos iwdx+160,iwdy+122 : celput abft20w,ud(ug+8);mes utks(ud(ug+8)) f=0 : cntn=0 repeat sbkn+2 ; アイテム装備表示 pos iwdx+309,iwdy+10+cntn*20 switch f case 0 ; 右手 if ud(ug+16)=0 : f=3 : swbreak ; 無し if ud(ug+16)>2 : f=2 : swbreak ; 複数手 if ud(ug+40)=0 : cntn+ : f=1 : swbreak ; 装備してない if ud(ug+40)=-2 : cntn+ : f=1 : swbreak ; 左両手装備 celput it_ftw,id(ud(ug+40+cntn)*idb),0.7,0.7 : cntn+ : f=1 ; 表示 ;mes is2(id(ud(ug+40)*idb)) : cntn+ : f=1 ; 表示 swbreak case 1 ; 左手 if ud(ug+41)=0 : cntn+ : f=3 : swbreak ; 装備してない if ud(ug+41)=-1 : cntn+ : f=3 : swbreak ; 右両手装備 celput it_ftw,id(ud(ug+40+cntn)*idb),0.7,0.7 : cntn+ : f=3 ; 表示 ;mes is2(id(ud(ug+41)*idb)) : cntn+ : f=3 ; 表示 swbreak case 2 ; 複数手 if ud(ug+16)<=cntn : f=3 : swbreak ; 終わり if ud(ug+40+cntn)=0 : cntn+ : swbreak ; 装備してない if ud(ug+40+cntn)=-1 : cntn+ : swbreak ; 右両手装備 if ud(ug+40+cntn)=-2 : cntn+ : swbreak ; 左両手装備 celput it_ftw,id(ud(ug+40+cntn)*idb),0.7,0.7 : cntn+ ; 表示 ;mes is2(id(ud(ug+40+cntn)*idb)) : cntn+ ; 表示 swbreak case 3 ; 防具 if ud(ug+17)=0 : f=4 : swbreak ; 無し if ud(ug+40+cntn)=0 : cntn+ : f=4 : swbreak ; 装備してない celput it_ftw,id(ud(ug+40+cntn)*idb),0.7,0.7 : cntn+ : f=5 ; 表示 ;mes is2(id(ud(ug+40+cntn)*idb)) : cntn+ : f=4 ; 表示 swbreak case 4 ; 特殊アイテム if ud(ug+18)=0 : f=5 : swbreak ; 無し if ud(ug+40+cntn)=0 : cntn+ : f=5 : swbreak ; 装備してない celput it_ftw,id(ud(ug+40+cntn)*idb),0.7,0.7 : cntn+ : f=5 ; 表示 ;mes is2(id(ud(ug+40+cntn)*idb)) : cntn+ : f=5 ; 表示 swbreak case 5 ; アイテム ;if ud(ug+19)=0 : /*f=6*/ : swbreak ; 無し if cntn>=sbkn/*ud(ug+16)+ud(ug+17)+ud(ug+18)+ud(ug+19)*/ : f=6 : swbreak ; 終わり if ud(ug+40+cntn)=0 : cntn+ : swbreak ; 装備してない celput it_ftw,id(ud(ug+40+cntn)*idb),0.7,0.7 : cntn+ ; 表示 ;mes is2(id(ud(ug+40+cntn)*idb)) : cntn+ ; 表示 swbreak swend if f=6 : break loop } return #deffunc clr_put infx1=200 : infx2=440 infy1=150 : infy2=210 color 255,255,255 : boxf infx1,infy1,infx2,infy2 color 1,1,1 : boxf infx1+2,infy1+2,infx2-2,infy2-2 color 255,255,255 pos 270,170 : mes "GAME CLEAR" return #deffunc sel_put /* repeat 16,1 n=235-10*cnt : color n,n,n boxf selkx1(cnt),selky1(cnt),selkx2(cnt),selky2(cnt) loop repeat 5,17;22 n=235-10*(cnt-8) : color n,n,n boxf selkx1(cnt),selky1(cnt),selkx2(cnt),selky2(cnt) loop */ /* repeat 7,31 n=235-10*(cnt-31+16) : color n,n,n boxf selkx1(cnt),selky1(cnt),selkx2(cnt),selky2(cnt) loop */ gmulcolor 255,255,255 color 255,255,255 : font "",26 pos selkx1(11)+43,selky1(11)+11 : celput mj26_4w,0;mes "N A M E" pos selkx1(12)+16,selky1(12)+7 : celput slw,0 ; 降順 pos selkx1(13)+16,selky1(13)+7 : celput slw,1 ; 昇順 switch self case 0 pos selkx1(22)+12,selky1(22)+11 : celput mj26_4w,5;mes "H.P" pos selkx1(23)+8,selky1(23)+9 : celput mj26_4w,10;mes "配備" pos selkx1(24)+7,selky1(24)+11 : celput mj26_4w,11;mes "COST" pos selkx1(25)+8,selky1(25)+9 : celput mj26_4w,12;mes "属性" pos selkx1(26)+7,selky1(26)+11 : celput mj26_4w,13;mes "DEL" n=sel_yg repeat 7,31 un=sel(n) : n+ : if un=0 : break pos selkx1(cnt)+12,selky1(cnt)+2 : celput slw,5 ; DEL loop swbreak case 1 pos selkx1(17)+7,selky1(17)+11 : celput mj26_4w,1;mes "STR" pos selkx1(18)+7,selky1(18)+11 : celput mj26_4w,2;mes "MAG" pos selkx1(19)+7,selky1(19)+11 : celput mj26_4w,3;mes "INT" pos selkx1(20)+7,selky1(20)+11 : celput mj26_4w,4;mes "CRI" pos selkx1(21)+6,selky1(21)+11 : celput mj26_4w,15;mes "ABILITY" ; ability特殊 swbreak case 2 pos selkx1(17)+7,selky1(17)+11 : celput mj26_4w,6;mes "ATK" pos selkx1(18)+7,selky1(18)+11 : celput mj26_4w,7;mes "DEF" pos selkx1(19)+7,selky1(19)+11 : celput mj26_4w,8;mes "MAT" pos selkx1(20)+7,selky1(20)+11 : celput mj26_4w,9;mes "MDF" pos selkx1(21)+7,selky1(21)+11 : celput mj26_4w,14;mes "EQU INT" swbreak swend pos selkx1(14)+60,selky1(14)+7 : celput slw,2 ; ページ左 pos selkx1(15)+154,selky1(15)+7 : celput slw,4 ; 戻る pos selkx1(15)+60,selky1(15)+13 : celput mj26_4w,16;mes "BACK" pos selkx1(15)+230,selky1(15)+11 : celput mj26_4w,17;mes "戻る" pos selkx1(16)+60,selky1(16)+7 : celput slw,3 ; ページ右 ;gmode 3,,,255 ;gmode 2 n=sel_yg : f=0 repeat 7 : cnt2=cnt if sel(n)=0 : break un=sel(n) : n+ : ug=un*udb if ud(ug+13)=0 { ; 通常 repeat 1 if ud(ug+28)=0 : color 255,255,255 : gmulcolor 255,255,255 : break color 192,192,192 : gmulcolor 192,192,192 ; 通常行動済み loop } if ud(ug+13)>0 and ud(ug+13)<1000 { ; 配備 repeat 1 if ud(ug+28)=0 : color 144,248,144 : gmulcolor 144,248,144 : break color 80,200,80 : gmulcolor 80,200,80 ; 配属済み loop } if ud(ug+13)>=1000 { ; 政府 c=100 if ud(ug+28)=0 : color 255,40,24 : gmulcolor 255,40,24 if ud(ug+28)=1 : color 208,32,16 : gmulcolor 208,32,16 ; 配属済み } y=selky1(cnt2+1)+2 ;font "",26 pos selx1+4,y+3 : celput cd_ftw,ud(ug) ;mes ""+cs2(ud(ug));+" "+ud(ug+10)+" "+ud(ug+13) ; 名前 ;pos 200,y+3 : mes ud(ug+13) ; 配属 ;pos 260,y+3 : mes cd(15,ud(ug+0)) ; レベル ;font "",28 switch self case 0 s=str(ud(ug+26)) : pfp28 s,selkx1(22),y+3,3 ; HP mug=ud(ug+13) if mug=0 : s="-" : pfp28 s,selkx1(23)+16,y+3 if mug>0 and mug<1000 { s=str(mug/10) ; 国 g=mug\10 if g=0 : s+="L" ; 領主 if g=1 or g=2 or g=3 : s+="A" ; 部隊1 if g=4 or g=5 or g=6 : s+="B" ; 部隊2 if g=7 or g=8 or g=9 : s+="C" ; 部隊3 if g=1 or g=4 or g=7 : s+="1" ; 隊列1 if g=2 or g=5 or g=8 : s+="2" ; 隊列2 if g=3 or g=6 or g=9 : s+="3" ; 隊列3 pfp28 s,selkx1(23),y+2 ; 配備 } if mug>1000 { ;s=str((mug-1000)/10) ; プレイヤー ;govs3="","LEADER","POPULATION","MAGIC","RELIGION","POLICE","MILITARY" g=mug\10 if g=1 : s="LEA" ; 首領 if g=2 : s="POP" ; 政務 if g=3 : s="MAG" ; 魔術 if g=4 : s="REL" ; 宗教 if g=5 : s="POL" ; 警察 if g=6 : s="MIL" ; 軍務 /* if g=1 : s="LEAD" ; 首領 if g=2 : s="POPU" ; 政務 if g=3 : s="MAGI" ; 魔術 if g=4 : s="RELI" ; 宗教 if g=5 : s="POLI" ; 警察 if g=6 : s="MILI" ; 軍務 */ pfp28 s,selkx1(23),y+2 ; 配備 } gmulcolor 255,255,255 s=str(ud(ug+29)) : pfp28 s,selkx1(24)-5,y+2,5 ; コスト pos selkx1(25)+25,y+4 : celput mjzk26w,ud(ug+7)-1 ; 属性 swbreak case 1 s=str(ud(ug+21)) : pfp28 s,selkx1(17)-10,y+2,3 ; 筋力 s=str(ud(ug+22)) : pfp28 s,selkx1(18)-10,y+2,3 ; 魔力 s=str(ud(ug+23)) : pfp28 s,selkx1(19)-10,y+2,3 ; 知力 s=str(ud(ug+24)) : pfp28 s,selkx1(20)-10,y+2,3 ; 魅力 pos selkx1(21)-1,y+6 : celput abft20w,ud(ug+8) ; 特殊 swbreak case 2 s=str(ud(ug+11)) : pfp28 s,selkx1(17)-10,y+2,3 ; 攻撃 s=str(ud(ug+12)) : pfp28 s,selkx1(18)-10,y+2,3 ; 防御 s=str(ud(ug+14)) : pfp28 s,selkx1(19)-10,y+2,3 ; 魔攻 s=str(ud(ug+15)) : pfp28 s,selkx1(20)-10,y+2,3 ; 魔防 gmulcolor 255,255,255 s=str(ud(ug+30)) : pfp28 s,selkx1(21)-10,y+2,3 ; 装備知力 pos selkx1(21)+37,y+2 : celput pft28w,51 s=str(ud(ug+23)) : pfp28 s,selkx1(21)+49,y+2,3 ;pos selkx1(17)+5,y+3 : mes ud(ug+11) ; 攻撃 ;pos selkx1(18)+5,y+3 : mes ud(ug+12) ; 防御 ;pos selkx1(19)+5,y+3 : mes ud(ug+14) ; 魔攻 ;pos selkx1(20)+5,y+3 : mes ud(ug+15) ; 魔防 ;pos selkx1(21)+5,y+3 : mes ""+ud(ug+30)+"/"+ud(ug+23) ; 装備知力 swbreak swend loop return #deffunc isel_put ; アイテム選択 /* c=100 repeat 16,1 color c,c,c boxf iselkx1(cnt),iselky1(cnt),iselkx2(cnt),iselky2(cnt) c+=20 loop */ gmulcolor 255,255,255 ;color 255,255,255 : font "",26 pos iselkx1(11)+43,iselky1(11)+12 : celput mj26_4w,0;mes "N A M E" pos iselkx1(12)+16,iselky1(12)+7 : celput slw,0 ; 降順 pos iselkx1(13)+16,iselky1(13)+7 : celput slw,1 ; 昇順 switch iself case 0 pos iselkx1(17)+7,iselky1(17)+11 : celput mj26_4w,6;mes "ATK" pos iselkx1(18)+7,iselky1(18)+11 : celput mj26_4w,7;mes "DEF" pos iselkx1(19)+7,iselky1(19)+11 : celput mj26_4w,18;mes "RAN" pos iselkx1(20)+7,iselky1(20)+11 : celput mj26_4w,19;mes "VAL" pos iselkx1(21)+6,iselky1(21)+11 : celput mj26_4w,15;mes "ABILITY" ; ability特殊 swbreak case 1 pos iselkx1(17)+7,iselky1(17)+11 : celput mj26_4w,1;mes "STR" pos iselkx1(18)+7,iselky1(18)+11 : celput mj26_4w,2;mes "MAG" pos iselkx1(19)+7,iselky1(19)+11 : celput mj26_4w,3;mes "INT" pos iselkx1(20)+7,iselky1(20)+11 : celput mj26_4w,4;mes "CRI" pos iselkx1(21)+6,iselky1(21)+11 : celput mj26_4w,14;mes "EQU INT" swbreak case 2 pos iselkx1(41)+11,iselky1(17)+10 : celput mjzk26w,0;mes "火" pos iselkx1(42)+11,iselky1(18)+10 : celput mjzk26w,1;mes "水" pos iselkx1(43)+11,iselky1(19)+10 : celput mjzk26w,2;mes "風" pos iselkx1(44)+11,iselky1(20)+10 : celput mjzk26w,3;mes "地" pos iselkx1(45)+11,iselky1(21)+10 : celput mjzk26w,4;mes "光" pos iselkx1(46)+11,iselky1(21)+10 : celput mjzk26w,5;mes "闇" swbreak case 3 ;pos iselkx1(22)+12,iselky1(22)+11 : celput mj26_4w,5;mes "H.P" pos iselkx1(23)+8,iselky1(23)+9 : celput mj26_4w,10;mes "配備" pos iselkx1(24)+7,iselky1(24)+11 : celput mj26_4w,11;mes "COST" pos iselkx1(25)+8,iselky1(25)+9 : celput mj26_4w,12;mes "属性" pos iselkx1(26)+7,iselky1(26)+11 : celput mj26_4w,13;mes "DEL" n=isel_yg repeat 7,31 in=isel(n) : n+ : if in=0 : break pos iselkx1(cnt)+12,iselky1(cnt)+2 : celput slw,5 ; DEL loop swbreak swend pos iselkx1(14)+60,iselky1(14)+7 : celput slw,2 ; ページ左 pos iselkx1(15)+154,iselky1(15)+7 : celput slw,4 ; 戻る pos iselkx1(15)+60,iselky1(15)+13 : celput mj26_4w,16;mes "BACK" pos iselkx1(15)+230,iselky1(15)+11 : celput mj26_4w,17;mes "戻る" pos iselkx1(16)+60,iselky1(16)+7 : celput slw,3 ; ページ右 n=isel_yg : f=0 repeat 7 : cnt2=cnt if isel(n)=0 : break in=isel(n) : n+ : ig=in*idb mug=ud(id(ig+13)*udb+13) if mug=0 { ; 通常 if id(ig+28)=0 : color 255,255,255 : gmulcolor 255,255,255 if id(ig+28)=1 : color 192,192,192 : gmulcolor 192,192,192 ; 通常行動済み } if mug>0 and mug<1000 { ; 配備してる if id(ig+28)=0 : color 144,248,144 : gmulcolor 144,248,144 if id(ig+28)=1 : color 80,200,80 : gmulcolor 80,200,80 ; 配属済み } if mug>1000 { ; 政府 if id(ig+28)=0 : color 255,40,24 : gmulcolor 255,40,24 if id(ig+28)=1 : color 208,32,16 : gmulcolor 208,32,16 ; 配属済み } if iselectf=0 { if ud(ug+30)<id(ig+37)-isel_int : color 96,96,255 : gmulcolor 96,96,255 ; 必要装備知力が足りない } ;if id(ig+13)=0 : if id(ig+28)=0 : color 255,255,255 : else : color 192,192,192 ; 通常行動済み ;if id(ig+13)>0 : if id(ig+28)=0 : color 144,248,144 : else : color 80,200,80 ; 配属済み ;if ud(ug+30)<id(ig+37)-isel_int : color 96,96,255 ; 必要装備知力が足りない y=iselky1(cnt2+1)+2 ;gmode 3,,,255 ; 加算合成 pos iselx1+4,y+3 : celput it_ftw,id(ig) ;pos 200,y+3 : mes ""+mug ;pos 260,y+3 : mes itd(15,id(ig+0)) ; レベル ;pos iselx1+270,y+4 : mes ""+id(ig) ;font "",26 ; pos iselx1+5,y+4 : mes ""+is2(id(ig));+" "+id(ig+13);+" "+ud(ug+13) ; 名前 font "",28 switch iself case 0 if id(ig+11)>0 : s=str(id(ig+11)) : pfp28 s,iselkx1(17)-10,y+2,3; : mes id(ig+11) ; 攻撃 if id(ig+12)>0 : s=str(id(ig+12)) : pfp28 s,iselkx1(18)-10,y+2,3; : mes id(ig+12) ; 防御 if id(ig+17)>0 : s=str(id(ig+17)) : pfp28 s,iselkx1(19)-10,y+2,3; : mes id(ig+17) ; 射程 if id(ig+9)>0 : s=str(id(ig+9)) : pfp28 s,iselkx1(20)-10,y+2,3; : mes id(ig+9) ; 能力値 if id(ig+8)>0 : pos iselkx1(21)+7,y+2 : celput iabft20w,id(ig+8);mes itks(id(ig+8)) ; 特殊 swbreak case 1 if id(ig+1)>0 : s=str(id(ig+1)) : pfp28 s,iselkx1(17)-10,y+2,3; : mes id(ig+1) ; 筋力 if id(ig+2)>0 : s=str(id(ig+2)) : pfp28 s,iselkx1(18)-10,y+2,3; : mes id(ig+2) ; 魔力 if id(ig+3)>0 : s=str(id(ig+3)) : pfp28 s,iselkx1(19)-10,y+2,3; : mes id(ig+3) ; 知力 if id(ig+4)>0 : s=str(id(ig+4)) : pfp28 s,iselkx1(20)-10,y+2,3; : mes id(ig+4) ; 魅力 if id(ig+37)>0 : s=str(id(ig+37)): pfp28 s,iselkx1(21)+14,y+2,3; : mes id(ig+37) ; 装備知力 swbreak case 2 if id(ig+31)>0 : s=str(id(ig+31)) : pfp28 s,iselkx1(41)+1,y+3,2; : mes id(ig+31) ; 火 if id(ig+32)>0 : s=str(id(ig+32)) : pfp28 s,iselkx1(42)+1,y+3,2; : mes id(ig+32) ; 水 if id(ig+33)>0 : s=str(id(ig+33)) : pfp28 s,iselkx1(43)+1,y+3,2; : mes id(ig+33) ; 風 if id(ig+34)>0 : s=str(id(ig+34)) : pfp28 s,iselkx1(44)+1,y+3,2; : mes id(ig+34) ; 地 if id(ig+35)>0 : s=str(id(ig+35)) : pfp28 s,iselkx1(45)+1,y+3,2; : mes id(ig+35) ; 光 if id(ig+36)>0 : s=str(id(ig+36)) : pfp28 s,iselkx1(46)+1,y+3,2; : mes id(ig+36) ; 闇 swbreak case 3 ;if id(ig+26)>0 : pos iselkx1(22)+5,y+4 : mes id(ig+26) ; HP mug=0 : mun=id(ig+13) : if mun>0 : mug=ud(mun*udb+13) if mug=0 : s="-" : pfp28 s,iselkx1(23)+16,y+3 ;if mug=0 : pos iselkx1(23)+5,y+3 : mes "-" if mug>0 and mug<1000 { s=str(mug/10) ; 国 g=mug\10 if g=0 : s+="L" ; 領主 if g=1 or g=2 or g=3 : s+="A" ; 部隊1 if g=4 or g=5 or g=6 : s+="B" ; 部隊2 if g=7 or g=8 or g=9 : s+="C" ; 部隊3 if g=1 or g=4 or g=7 : s+="1" ; 隊列1 if g=2 or g=5 or g=8 : s+="2" ; 隊列2 if g=3 or g=6 or g=9 : s+="3" ; 隊列3 pfp28 s,iselkx1(23),y+2 ; 配備 } if mug>1000 { ;s=str((mug-1000)/10) ; プレイヤー g=mug\10 if g=1 : s="LEA" ; 首領 if g=2 : s="POP" ; 政務 if g=3 : s="MAG" ; 魔術 if g=4 : s="REL" ; 宗教 if g=5 : s="POL" ; 警察 if g=6 : s="MIL" ; 軍務 pfp28 s,selkx1(23),y+2 ; 配備 } gmulcolor 255,255,255 s=str(id(ig+29)) : pfp28 s,iselkx1(24)-5,y+2,5 ; コスト if id(ig+7)>0 : pos iselkx1(25)+25,y+4 : celput mjzk26w,id(ig+7)-1 ; 属性 swbreak swend loop /* color 190,190,190 boxf iselkx1(8),iselky1(8),iselkx2(8),iselky2(8) boxf iselkx1(9),iselky1(9),iselkx2(9),iselky2(9) ;color 160,160,160 ; boxf iselkx1(8)+1,iselky1(8)+1,iselkx2(8)-1,iselky2(8)-1 ; boxf iselkx1(9)+1,iselky1(9)+1,iselkx2(9)-1,iselky2(9)-1 color 0,0,0 boxf iselkx1(8)+1,iselky1(8)+1,iselkx2(8)-1,iselky2(8)-1 boxf iselkx1(9)+1,iselky1(9)+1,iselkx2(9)-1,iselky2(9)-1 color 240,240,240 pos iselkx1(8)+80,iselky1(8)+12 : mes "外す RELEASE" pos iselkx1(9)+95,iselky1(9)+12 : mes "戻る BACK" ;celput moji3,iselx1,isely1 : mes "アイテム" pos iselx2,isely1 : celput moji3w,0 ; 攻撃 pos iselx3,isely1 : celput moji3w,1 ; 防御 pos iselx4,isely1 : celput moji3w,2 ; 射程 pos iselx5,isely1 : celput moji3w,3 ; 属性 pos iselx6,isely1 : celput moji3w,4 ; 特殊 n=sel_yg : f=0 repeat 7 : cnt2=cnt if isel(n)=0 : f=1 : break in=isel(n) : n+ : ig=in*idb if f=1 : break ;if id(ig+28)=0 : color 255,255,255 : else : color 192,192,192 if id(ig+13)=0 : if id(ig+28)=0 : color 255,255,255 : else : color 192,192,192 ; 通常行動済み if id(ig+13)>0 : if id(ig+28)=0 : color 144,248,144 : else : color 72,192,72 ; 配属済み if ud(ug+30)<id(ig+37) : color 96,96,255 ; 必要装備知力が足りない y=isely2+cnt2*iselyk font "",26 pos iselx1,y : mes is2(id(ig)) ; 名前 ;font "",28 ;pos iselx2,y : mes itss(id(ig+16)) font "",28 ;fp id(ig+11),iselx3,y,0 if id(ig+11)>0 : fp2 id(ig+11),iselx2,y-1,5 ; 攻撃 if id(ig+12)>0 : fp2 id(ig+12),iselx3,y-1,5 ; 防御 if id(ig+17)>0 : fp2 id(ig+17),iselx4,y-1,5 ; 射程 font "",26 pos iselx5,y : mes zks(id(ig+7)) ; 属性 pos iselx6,y : mes itks(id(ig+8)) ; 特殊 loop */ return #deffunc msel_put gmode 2 : gmulcolor 255,255,255 ;color 240,240,240 : font "",26 pos mselkx1(11)+5,mselky1(11)+11 : celput mj26_4w,20;mes "MAP" pos mselkx1(12)+12,mselky1(12)+11 : celput mj26_4w,21;mes "人 口" pos mselkx1(13)+8,mselky1(13)+11 : celput mj26_4w,22;mes "魔 術" pos mselkx1(14)+7,mselky1(14)+11 : celput mj26_4w,23;mes "マ ナ" pos mselkx1(15)+8,mselky1(15)+11 : celput mj26_4w,24; mes "治 安" pos mselkx1(16)+7,mselky1(16)+11 : celput mj26_4w,25;mes "建築物" pos mselkx1(17)+304,mselky1(17)+7 : celput slw,4 ; 戻る pos mselkx1(17)+210,mselky1(17)+12 : celput mj26_4w,16;mes "BACK" pos mselkx1(17)+380,mselky1(17)+12 : celput mj26_4w,17;mes "戻る" n=msel_yg : f=0 repeat 7 : cnt2=cnt if msel(n)=0 : break mdg=msel(n)*mdb y=mselky1(cnt2+1)+2 ;font "",28 if mpc(pn)=msel(n) : gmulcolor cld(pcln(pn-1)*3+1),cld(pcln(pn-1)*3+2),cld(pcln(pn-1)*3+3) s=str(msel(n)) : pfp28 s,mselkx1(11),y+2; : mes msel(n) ; 国 gmulcolor 255,255,255 s=str(md(mdg+1)/100) : pfp28 s,mselkx1(12)-5,y+2,5; : mes md(mdg+1)/100 ; 人口 s=str(md(mdg+2)/100) : pfp28 s,mselkx1(13)-5,y+2,4; : mes md(mdg+2)/100 ; 魔術 s=str(md(mdg+3)/100) : pfp28 s,mselkx1(14)-5,y+2,4; : mes md(mdg+3)/100 ; マナ s=str(md(mdg+4)/1000): pfp28 s,mselkx1(15)+7,y+2,3; : mes md(mdg+4)/1000 ; 治安 pos mselkx1(16)+5,y+2 : celput bulftw,md(mdg+7); : mes buls(md(mdg+7)) ; 建築物 n+ loop return #deffunc equ_put ; 装備画面表示 card_put equx1,equy1,un ug=un*udb : cn=ud(ug) gmode 2 if equif=0 { color 255,255,255 : pos 119,equy2-1 : celput cd_ftw,cn;mes ""+cs2(cn)+" un "+un ; 名前 y=38 pos equx2+12,equy2+y : celput mojiw,0 ; HP n=ud(ug+26) : nx=fpk(n) : fp n,equx2+39+nx,equy2+y+1,0 pos equx2+89,equy2+y+1 : celput bfpw,207 ; / n=ud(ug+25) : fp n,equx2+106,equy2+y+1,0 y=65 : yk=24 pos equx2+12,equy2+y : celput mojiw,1 : s="STR" : bfp s,equx2+57,equy2+y+2,0 n=ud(ug+21) : nx=fpk(n) : fp n,equx2+92+nx,equy2+y+2,0 y+=yk pos equx2+12,equy2+y : celput mojiw,2 : s="MAG" : bfp s,equx2+57,equy2+y+2,0 n=ud(ug+22) : nx=fpk(n) : fp n,equx2+92+nx,equy2+y+2,0 y+=yk pos equx2+12,equy2+y : celput mojiw,3 : s="INT" : bfp s,equx2+57,equy2+y+2,0 n=ud(ug+23) : nx=fpk(n) : fp n,equx2+92+nx,equy2+y+2,0 y+=yk pos equx2+12,equy2+y : celput mojiw,4 : s="CHA" : bfp s,equx2+57,equy2+y+2,0 n=ud(ug+24) : nx=fpk(n) : fp n,equx2+92+nx,equy2+y+2,0 y=36 : yk=24 : x=175 pos equx2+x,equy2+y : celput mojiw,5 : s="ATK" : bfp s,equx2+x+47,equy2+y+2,0 n=ud(ug+11) : nx=fpk(n) : fp n,equx2+x+80+nx,equy2+y+2,0 y+=yk pos equx2+x,equy2+y : celput mojiw,6 : s="DEF" : bfp s,equx2+x+47,equy2+y+2,0 n=ud(ug+12) : nx=fpk(n) : fp n,equx2+x+80+nx,equy2+y+2,0 pos equx2+x,equy2+89 : celput mojiw,7 : s="ability" : bfp s,equx2+x+47,equy2+91,0 pos equx2+x+5,equy2+112 : celput abft20w,ud(ug+8);mes utks(ud(ug+8)) pos equx2+x,equy2+142 : celput moji2w,0;mes "装備知力 "+ud(ug+30) n=ud(ug+30) : nx=fpk(n) : fp n,equx2+x+80+nx,equy2+144,0 repeat 6 pos equx5,equy1+26*cnt-3 : celput mjzkw,cnt bfp zkes(cnt+1),equx5+26,equy1+26*cnt-1,cnt+1 n=ud(ug+31+cnt) : nx=fpk(n) : fp n,equx5+56+nx,equy1+26*cnt-1,0 loop ;火 FIRE ;水 WATER ;風 WIND ;地 EARTH ;光 LIGHT ;闇 DARKNESS } /* repeat 7 dg ud(ug+40+cnt),cnt+10 loop */ f=0 : cntn=0 : color 240,240,240 repeat 20 ; アイテム装備表示 pos equx4+equxk*cntn,equy4 k=27 switch f case 0 ; 右手 if ud(ug+16)=0 : f=3 : swbreak ; 無し if ud(ug+16)>2 : f=2 : swbreak ; 複数手 ;pos equx4+equxk*cntn,equy4-k : mes "in "+ud(ug+40+cntn) ;pos equx4+equxk*cntn,equy4-30 : mes ud(ug+40) ;pos equx4+equxk*cntn,equy4+140 : mes equs(0) pos equx4+equxk*cntn,equy4 if ud(ug+40)=0 : celput wkhw : cntn+ : f=1 : swbreak ; 装備してない pos equx4+equxk*cntn,equy5 : celput rmw ; rmove pos equx4+equxk*cntn+cox/2,equy4 if ud(ug+40)=-2 : gmode 3,,,128 : celput iw,id(ud(ug+41)*idb)-1 : gmode 2 : cntn+ : f=1 : swbreak ; 左両手装備 celput iw,id(ud(ug+40)*idb)-1 ; 表示 cntn+ : f=1 swbreak case 1 ; 左手 ;pos equx4+equxk*cntn,equy4-k : mes "in "+ud(ug+40+cntn) ;pos equx4+equxk*cntn,equy4-30 : mes ud(ug+41) ;pos equx4+equxk*cntn,equy4+140 : mes equs(1) pos equx4+equxk*cntn,equy4 if ud(ug+41)=0 : celput wkhw : cntn+ : f=3 : swbreak ; 装備してない pos equx4+equxk*cntn,equy5 : celput rmw ; rmove pos equx4+equxk*cntn+cox/2,equy4 if ud(ug+41)=-1 : gmode 3,,,128 : celput iw,id(ud(ug+40)*idb)-1 : gmode 2 : cntn+ : f=3 : swbreak ; 右両手装備 celput iw,id(ud(ug+41)*idb)-1 ; 表示 cntn+ : f=3 swbreak case 2 ; 複数手 ;pos equx4+equxk*cntn,equy4-k : mes "in "+ud(ug+40+cntn) if ud(ug+16)<=cntn : f=3 : swbreak ; 終わり ;pos equx4+equxk*cntn,equy4+140 : mes ""+equs(4)+" "+(cntn+1) pos equx4+equxk*cntn,equy4 if ud(ug+40+cntn)=0 : celput wkhw : cntn+ : swbreak ; 装備してない pos equx4+equxk*cntn+cox/2,equy4 if ud(ug+40+cntn)=-1 : gmode 3,,,128 : celput iw,id(ud(ug+40+cntn-1)*idb)-1 : gmode 2 : cntn+ : swbreak ; 右両手装備 if ud(ug+40+cntn)=-2 : gmode 3,,,128 : celput iw,id(ud(ug+40+cntn+1)*idb)-1 : gmode 2 : cntn+ : swbreak ; 左両手装備 celput iw,id(ud(ug+40+cntn)*idb)-1 pos equx4+equxk*cntn,equy5 : celput rmw ; rmove cntn+ : swbreak ; 表示 swbreak case 3 ; 防具 ;pos equx4+equxk*cntn,equy4-k : mes "in "+ud(ug+40+cntn) if ud(ug+17)=0 : f=4 : swbreak ; 無し ;pos equx4+equxk*cntn,equy4+140 : mes equs(2) : pos equx4+equxk*cntn,equy4 if ud(ug+40+cntn)=0 : celput wkaw : cntn+ : f=4 : swbreak ; 装備してない pos equx4+equxk*cntn+cox/2,equy4 celput iw,id(ud(ug+40+cntn)*idb)-1 ; 表示 pos equx4+equxk*cntn,equy5 : celput rmw ; rmove cntn+ : f=4 swbreak case 4 ; 特殊アイテム ;pos equx4+equxk*cntn,equy4-k : mes "in "+ud(ug+40+cntn) ;pos equx4+equxk*cntn,equy4-30 : mes ""+id(ud(ug+40+cntn)*idb+9)+" "+id(ud(ug+40+cntn)*idb+17) if ud(ug+18)=0 : f=5 : swbreak ; 無し ;pos equx4+equxk*cntn,equy4+140 : mes equs(3) : pos equx4+equxk*cntn,equy4 if ud(ug+40+cntn)<=0 : celput wksw : cntn+ : f=5 : swbreak ; 装備してない pos equx4+equxk*cntn+cox/2,equy4 celput iw,id(ud(ug+40+cntn)*idb)-1 ; 表示 pos equx4+equxk*cntn,equy5 : celput rmw ; rmove cntn+ : f=5 swbreak case 5 ; アイテム ;pos equx4+equxk*cntn,equy4-k : mes "in "+ud(ug+40+cntn) if cntn>=ud(ug+16)+ud(ug+17)+ud(ug+18)+ud(ug+19) : f=6 : swbreak ; 終わり if ud(ug+19)=0 : f=6 : swbreak ; 無し pos equx4+equxk*cntn,equy4 if ud(ug+40+cntn)=0 : celput wkiw : cntn+ : swbreak ; 装備してない ;sbk_put2 un pos equx4+equxk*cntn+cox/2,equy4 if ud(ug+40+cntn)>0 : celput iw,id(ud(ug+40+cntn)*idb)-1 ; 表示 pos equx4+equxk*cntn,equy5 : celput rmw ; rmove cntn+ swbreak swend if f=6 : break loop if equif=1 and ud(ug+40+(ky2\10))>0 { ; アイテム情報表示 in=ud(ug+40+(ky2\10)) : ig=in*idb : itn=id(ig) gmode 5,,,255 pos equx4+equxk*(ky2\10)-4,equy4-4 : celput swakuw,0 ; 選択カーソル iwdx=iwdx1-15 : iwdy=iwdy1 evw 0,iwdx,iwdy,22,10 ; イベントウインドウ表示 evw 1,iwdx,iwdy,22,10 ; イベントウインドウ表示 /* color 255,255,255 boxf iwdx,iwdy,iwdx+iwdxk,iwdy+iwdyk color 8,8,8 boxf iwdx+2,iwdy+2,iwdx+iwdxk-2,iwdy+iwdyk-2 */ color 255,255,255 : pos iwdx+12,iwdy+9 : celput it_ftw,id(ig) ; 名前 x=iwdx+19 : y=iwdy+40 pos x,y : celput mojiw,0 ; HP n=id(ig+6) : nx=fpk(n) : fp n,x+25+nx,y+2,0 pos x+75,y+2 : celput bfpw,207 ; / n=id(ig+5) : fp n,x+92,y+2,0 x=iwdx+19 : y=iwdy+62 : yk=22 pos x,y : celput mojiw,1 : s="STR" : bfp s,x+50,y+3,0 n=id(ig+1) : nx=fpk(n) : fp n,x+82+nx,y+3,0 y+=yk pos x,y : celput mojiw,2 : s="MAG" : bfp s,x+50,y+3,0 n=id(ig+2) : nx=fpk(n) : fp n,x+82+nx,y+3,0 y+=yk pos x,y : celput mojiw,3 : s="INT" : bfp s,x+50,y+3,0 n=id(ig+3) : nx=fpk(n) : fp n,x+82+nx,y+3,0 y+=yk pos x,y : celput mojiw,4 : s="CHA" : bfp s,x+50,y+3,0 n=id(ig+4) : nx=fpk(n) : fp n,x+82+nx,y+3,0 x=iwdx+185 : y=iwdy+40 pos x,y : celput mojiw,5 : s="ATK" : bfp s,x+50,y+3,0 n=id(ig+11) : nx=fpk(n) : fp n,x+82+nx,y+3,0 y+=22 pos x,y : celput mojiw,6 : s="DEF" : bfp s,x+50,y+3,0 n=id(ig+12) : nx=fpk(n) : fp n,x+82+nx,y+3,0 y+=24 pos x,y : celput mojiw,7 : s="ability" : bfp s,x+50,y+3,0 y+=22 if id(ig+8)>0 : pos x+5,y : celput iabft20w,id(ig+8); mes utks(id(ig+8)) y+=22 pos x,y : celput moji2w,1 ;mes "必要知性 "+ n=id(ig+37) : nx=fpk(n) : fp n,x+82+nx,y+2,0 } return #deffunc btl_put ;n1=(fg1-1)*3 ; 現在の部隊 ;n2=(fg2-1)*3 gmode 2 pos 0,0 n=map(kn2) if n=1 : celput hai1w,0,2.0,2.0 ; 火 if n=2 : celput hai2w,0,2.0,2.0 ; 水 if n=3 : celput hai3w ; 風 if n=4 : celput hai4w ; 地 if n=5 : celput hai5w,0,2.0,2.0 ; 光 if n=6 : celput hai6w,0,2.0,2.0 ; 闇 repeat 3,1 ; ユニット表示 bp_n=cnt ; ユニットNo. if fn1(bp_n)>0 { hpn=ud(fn1(bp_n)*udb+26) ; HP if hpn>0 : bp_nn=255 : else : bp_nn=128 ; 表示透明度 card_put bcx1(bp_n),btly1,fn1(bp_n),bp_nn,0 ; カード表示 hpbpn=int(double(hpbpxk)/double(ud(fn1(bp_n)*udb+25))*double(hpn)) ; HPバーの長さ color 208,0,0 ; ダメージ boxf bcx1(bp_n)+2,hpbpy+2,bcx1(bp_n)+2+hpbpxk,hpbpy+2+hpbpyk color 112,112,255 ; HP boxf bcx1(bp_n)+2,hpbpy+2,bcx1(bp_n)+2+hpbpn,hpbpy+2+hpbpyk pos bcx1(bp_n),hpbpy : celput hww ; hpバーの枠 ;color 255,255,255 ;pos bcx1(bp_n),hpbpy+5+hpbpyk : mes ""+ud(fn1(bp_n)*udb+26)+"/"+ud(fn1(bp_n)*udb+25) c=0 : k=-22 : bsg=bsp(fn1(bp_n)) repeat 6 ; 状態異常表示 if bs(bsg+cnt+1)<=0 : continue pos bcx1(bp_n)+c*20,btly1+k : celput staw,cnt c+ : if c=4 : c=0 : k-=22 loop if debugf=1 { color 255,255,255 pos bcx1(bp_n),btly1+160 : mes ud(fn1(bp_n)*udb+26) ; HP pos bcx1(bp_n)+60,btly1+160 : mes fn1(bp_n) ; unNo. } } bp_n=cnt ; ユニットNo. if fn2(bp_n)>0 { hpn=ud(fn2(bp_n)*udb+26) ; HP if hpn>0 : bp_nn=255 : else : bp_nn=128 ; 表示透明度 card_put bcx2(bp_n),btly1,fn2(bp_n),bp_nn,1 ; カード表示 hpbpn=int(double(hpbpxk)/double(ud(fn2(bp_n)*udb+25))*double(hpn)) ; HPバーの長さ color 208,0,0 ; ダメージ boxf bcx2(bp_n)+2,hpbpy+2,bcx2(bp_n)+2+hpbpxk,hpbpy+2+hpbpyk color 112,112,255 ; HP boxf bcx2(bp_n)+2,hpbpy+2,bcx2(bp_n)+2+hpbpn,hpbpy+2+hpbpyk pos bcx2(bp_n),hpbpy : celput hww ; hpバーの枠 c=0 : k=-22 : bsg=bsp(fn2(bp_n)) repeat 6 ; 状態異常表示 if bs(bsg+cnt+1)<=0 : continue pos bcx2(bp_n)+c*20,btly1+k : celput staw,cnt c+ : if c=4 : c=0 : k-=22 loop if debugf=1 { color 255,255,255 pos bcx2(bp_n),btly1+160 : mes ud(fn2(bp_n)*udb+26) ; HP pos bcx2(bp_n)+60,btly1+160 : mes fn2(bp_n) ; unNo. } } loop if fs=1 { if temp_atkf=0 : pos bcx1(ut)-8,btly1-7 if temp_atkf=1 : pos bcx2(ut)-8,btly1-7 } if fs=2 { if temp_atkf=0 : pos bcx2(ut)-8,btly1-7 if temp_atkf=1 : pos bcx1(ut)-8,btly1-7 } if cslf=0 : celput kwakuw ; 行動者枠表示 if debugf=1 { ; 戦闘ステータス s="UN","傷","氷","痺","絶","魅","毒","火","氷","風","雷","地","聖","闇","攻","防","加","減","水","風","聖","","","" color 196,196,196 repeat 7 : cnt2=cnt repeat bsb if cnt=0 : pos 70,cnt2*19+2 if cnt>0 : pos 100+cnt*23,cnt2*19+2 if cnt2=0 : mes s(cnt) : continue ; 名 mes bs(bsb*(cnt2-1)+cnt) ; 値 loop loop } if af=1 { color 0,255,0 repeat 7 pos 580,cnt*20 : mes ""+zputs(cnt)+""+zputn(cnt) loop pos 500,300 : mes "rpic" repeat 3 pos 540,300+cnt*20 : mes rdpd(cnt) loop } /* repeat 10 pos 10+cnt*20,320 : mes ft2(cnt) loop repeat 4 pos 10+cnt*20,340 : mes fn2(cnt) loop /* pos 200,10 : mes "始点 "+ss1 pos 200,30 : mes "距離 "+ss4 pos 200,50 : mes "数 "+ss3 pos 200,70 : mes "速さ "+ss2 pos 200,90 : mes "btlck"+btlck pos 200,110: mes "c数 "+ss5 /* pos 200,300 : mes "smnfn " repeat 6 pos 250+cnt*30,300 : mes smnfn(cnt) loop /* repeat 3,1 pos 250+cnt*30,300 : mes ud(fn1(cnt)*udb+26) loop */ /* pos 200,330 : mes "rfn" repeat 4 pos 250+cnt*30,330 : mes rfn(cnt) loop */ return #deffunc un_find_put ; ユニット発見表示 mn=m;pc(pn) if 1<=mn and mn<=14 : ufpx=420 if 15<=mn and mn<=25 : ufpx=100 ufpy=115 : ufpk=40 gmode 2 redraw 0 color 1,1,1 : boxf un_find_put_pn=pn : pn=0 map_put x=hxyd(0,mn)-8 : y=hxyd(1,mn)-8 ; 座標 gmode 5,,,224 : gmulcolor 255,255,255 pos x,y : celput hcw gmode 2 pn=un_find_put_pn evw 0,ufpx-ufpk,ufpy-ufpk-5,10,14 ; イベントウインドウ表示 evw 1,ufpx-ufpk,ufpy-ufpk-5,10,14 ; イベントウインドウ表示 card_put ufpx,ufpy,un /* dg_put color 255,255,255 boxf ufpx-ufpk,ufpy-ufpk,ufpx+cox+ufpk,ufpy+coy+ufpk color 1,1,1 boxf ufpx-ufpk+2,ufpy-ufpk+2,ufpx+cox+ufpk-2,ufpy+coy+ufpk-2 card_put ufpx,ufpy,un color 255,255,255 : pos ufpx-20,ufpy-20 : mes m */ redraw 1 ;pkey ;dg_clr return #deffunc in_find_put ; アイテム発見表示 mn=m;pc(pn) if 1<=mn and mn<=14 : ufpx=420 if 15<=mn and mn<=25 : ufpx=100 ufpy=115 : ufpk=40 gmode 2 redraw 0 color 1,1,1 : boxf in_find_put_pn=pn : pn=0 map_put x=hxyd(0,mn)-8 : y=hxyd(1,mn)-8 ; 座標 gmode 5,,,224 : gmulcolor 255,255,255 pos x,y : celput hcw gmode 2 pn=in_find_put_pn evw 0,ufpx-ufpk,ufpy-ufpk-5,10,14 ; イベントウインドウ表示 evw 1,ufpx-ufpk,ufpy-ufpk-5,10,14 ; イベントウインドウ表示 pos ufpx+cox/2,ufpy : celput iw,id(in*idb)-1 /* dg_put color 255,255,255 boxf ufpx-ufpk,ufpy-ufpk,ufpx+cox+ufpk,ufpy+coy+ufpk color 1,1,1 boxf ufpx-ufpk+2,ufpy-ufpk+2,ufpx+cox+ufpk-2,ufpy+coy+ufpk-2 pos ufpx+cox/2,ufpy : celput iw,id(in*idb)-1 color 255,255,255 pos ufpx+10,ufpy+coy+5 : mes in pos ufpx-20,ufpy-20 : mes m */ redraw 1 ;pkey ;dg_clr return ; Government ordinance ------------------------------------------ ; Build、建築 #deffunc bul_put int bul_putf ;font "",24,0 n=mpl(m) /* if n=0 { color 240,240,240 : pos talx2,taly2 : mes ""+m+" 国" } */ if n>0{ color 255,255,255 : boxf infx1+2,infy1+2,infx1+26,infy1+26 color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 boxf infx1+4,infy1+4,infx1+24,infy1+24 fp2 m,infx1+27,infy1,5 ; color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 ; pos talx2,taly2 : mes ""+m+" 国" } ;color 240,240,240 ;pos talx3,taly2 : mes "魔術 LEVEL "+ml s="MANA POINT " : pfp28 s,talx3,taly2-1 s=str(pmp(pn)) : pfp28 s,talx3+163,taly2-1,7 if bul_putf=1 : return repeat 10 ; 枠 ;if cnt=3 or cnt=6 or cnt=8 : continue if cnt<5 { evw 0,talx1+talxk*(cnt\5),taly1,5,8 evw 1,talx1+talxk*(cnt\5),taly1,5,8 ;pos talx1+talxk*(cnt\5)+cox/2,taly1 : celput owkw } if cnt>4 { evw 0,talx1+talxk*(cnt\5),taly1+talyk,5,8 evw 1,talx1+talxk*(cnt\5),taly1+talyk,5,8 ;pos talx1+talxk*(cnt\5)+cox/2,taly1+talyk : celput owkw } loop ;font "",20,0 repeat 10,1 pos talkx1(cnt)+16,talky1(cnt)+20 : celput atw,(cnt-1),2.0,2.0 cnt2=cnt+1 x=10 ; 3文字 if cnt2=1 or cnt2=7 : x=30 ; 1文字 if cnt2=4 or cnt2=9 or cnt2=11 : x=20 ; 2文字 pos talkx1(cnt)+x,talky1(cnt)+85 : celput mj20_bulw,cnt2;mes buls(cnt+1) loop return #deffunc disma_put ; 解体表示 font "",24,0 n=mpl(m) /* if n=0 { color 240,240,240 : pos talx2,taly2 : mes ""+m+" 国" } */ if n>0{ color 255,255,255 : boxf infx1+2,infy1+2,infx1+26,infy1+26 color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 boxf infx1+4,infy1+4,infx1+24,infy1+24 fp2 m,infx1+27,infy1,5 color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 ; pos talx2,taly2 : mes ""+m+" 国" } color 240,240,240 ;pos talx3,taly2 : mes "魔術 LEVEL "+ml ;pos talx3,taly2 : mes "MANA POINT "+pmp(pn) s="MANA POINT " : pfp28 s,talx3,taly2-1 s=str(pmp(pn)) : pfp28 s,talx3+163,taly2-1,7 pos 320-56,95 : celput atw,md(mdg+7)-2,4.0,4.0 ;pos 180,80 : celput owkw evw 0,140,80,5,8 evw 1,140,80,5,8 ;pos 155,110 : mes "はい" s="YES" : pfp28 s,148,130; : mes "YES" ;pos 450,80 : celput owkw evw 0,410,80,5,8 evw 1,410,80,5,8 ;pos 415,110 : mes "いいえ" s="NO" : pfp28 s,418,130; : mes "NO" pos 170,245 : celput bulftw,md(mdg+7);mes ""+buls(md(mdg+7)) pos 265,245 : celput mj28_lngw,8;mes " を解体しますか?" ;pos 220,300 : mes "MANA POINT -"+bul_mp(12) s="MANA POINT -" : pfp28 s,220,300 s=str(bul_mp(12)) : pfp28 s,220+197,300 return #deffunc bul_ad_put int bul_ad_putf ; 建設、解体表示 c=5 repeat redraw 0 color 1,1,1 : boxf : color 240,240,240 bul_put 1 if bul_ad_putf=0 { pos 320-56,95 : celput atw,(ky-1),4.0,4.0 pos 190,245 : celput bulftw,ky+1;mes ""+buls(ky+1) pos 280,245 : celput mj28_lngw,6;mes " を建てました" s="MANA POINT -" : pfp28 s,220,300 s=str(bul_mp(ky+1)) : pfp28 s,220+197,300 ;pos 220,300 : mes "MANA POINT -"+bul_mp(ky+1) } if bul_ad_putf=1 { pos 320-56,95 : celput atw,(md(mdg+7)-2),4.0,4.0 pos 170,245 : celput bulftw,md(mdg+7) ;pos 170,245 : mes ""+buls(md(mdg+7)) pos 265,245 : celput mj28_lngw,7;mes " を解体しました" ;pos 220,300 : mes "MANA POINT -"+bul_mp(12) } redraw 1 if c>0 : c- : else : stick kb : if kb=256 : break await 1000/40 loop return ; Talent、ユニット #deffunc tal_put int tal_putf ;font "",24,0 n=mpl(m) /* if n=0 { color 240,240,240 : pos talx2,taly2 : mes ""+m+" 国" } */ if n>0{ color 255,255,255 : boxf infx1+2,infy1+2,infx1+26,infy1+26 color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 boxf infx1+4,infy1+4,infx1+24,infy1+24 fp2 m,infx1+27,infy1,5 ;color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 ; pos talx2,taly2 : mes ""+m+" 国" } ;color 240,240,240 ;pos talx3,taly2 : mes "人材LEVEL "+r;ml pos talx3,taly2 : celput mj28w,0 s="LEVEL" : pfp28 s,talx3+61,taly2 s=str(r) : pfp28 s,talx3+154,taly2 ; pos talx4,taly2 : mes "MANA POINT "+pmp(pn) s="MANA POINT " : pfp28 s,talx4+10,taly2 s=str(pmp(pn)) : pfp28 s,talx4+182,taly2 ;pos talx5,taly2 : mes "キャラ総数 "+pmp(m) if tal_putf=1 : return pos talcx+cox/2,talcy : celput owkw /* repeat 5 ; 枠 if ml>cnt : pos talx1+talxk*cnt+cox/2,taly1 : celput owkw if ml>cnt+5 : pos talx1+talxk*cnt+cox/2,taly1+talyk: celput owkw loop font "",20,0 repeat 10,1 if ml<cnt : break pos talkx1(cnt)+10,talky1(cnt)+10 mes "LEVEL"+cnt pos talkx1(cnt)+20,talky1(cnt)+50 mes "~"+cnt*10 pos talkx1(cnt)+10,talky1(cnt)+100 mes tal_mp(cnt) ; 必要マナポイント loop */ return #deffunc tal_fd_put f=0 : cf=1.0 : kb=0 x=320-cox/2 : y=135-coy/2 repeat redraw 0 color 1,1,1 : boxf : color 240,240,240 tal_put 1 switch f case 0 pos talcx+cox/2,talcy : celput owkw,0,cf cf-=0.1 : if cf<=0.0 : f=1 swbreak case 1 pos talcx+cox/2,talcy : celput cw,cn-1,cf cf+=0.1 : if cf>=1.0 : f=2 swbreak case 2 pos talcx+cox/2,talcy : celput cw,cn-1,cf stick kb : if kb=256 : f=3 swbreak swend pos talcx-30,talcy+150 : celput cd_ftw,cn s="LEVEL" : pfp28 s,talcx-25,talcy+190 ;: mes "LEVEL "+cd(15,cn) s=str(cd(15,cn)) : pfp28 s,talcx+73,talcy+190 s="MANA POINT" : pfp28 s,talcx-60,talcy+230 ;: mes "MANA POINT "+tal_mp(cd(15,cn)) s=str(tal_mp(cd(15,cn))) : pfp28 s,talcx+115,talcy+230 redraw 1 await 1000/40 if f=3 : break loop return ; Order、アイテム、表示 #deffunc ord_put int ord_putf ;font "",24,0 n=mpl(m) /* if n=0 { color 240,240,240 : pos talx2,taly2 : mes ""+m+" 国" } */ if n>0{ color 255,255,255 : boxf infx1+2,infy1+2,infx1+26,infy1+26 color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 boxf infx1+4,infy1+4,infx1+24,infy1+24 fp2 m,infx1+27,infy1,5 ; color cld((pcln(n)-1)*3+1),cld((pcln(n)-1)*3+2),cld((pcln(n)-1)*3+3) ; 勢力 ; pos talx2,taly2 : mes ""+m+" 国" } ;color 240,240,240 ;pos talx3,taly2 : mes "技術 LEVEL "+ml pos talx3,taly2 : celput mj28w,1 s="LEVEL" : pfp28 s,talx3+61,taly2 s=str(ml) : pfp28 s,talx3+154,taly2 ;pos talx4,taly2 : mes "MANA POINT "+pmp(pn) s="MANA POINT " : pfp28 s,talx4,taly2-1 s=str(pmp(pn)) : pfp28 s,talx4+165,taly2-1 if ord_putf=1 : return repeat 10 ; 枠 if cnt=3 or cnt=6 or cnt=8 : continue ;if cnt<5 : pos talx1+talxk*(cnt\5)+cox/2,taly1 : celput owkw ;if cnt>4 : pos talx1+talxk*(cnt\5)+cox/2,taly1+talyk : celput owkw if cnt<5 { evw 0,talx1+talxk*(cnt\5),taly1,6,8 evw 1,talx1+talxk*(cnt\5),taly1,6,8 } if cnt>4 { evw 0,talx1+talxk*(cnt\5),taly1+talyk,6,8 evw 1,talx1+talxk*(cnt\5),taly1+talyk,6,8 } loop ;font "",20,0 ; 近距離武器、中距離武器、遠距離武器、防具、アクセサリー、アイテム、魔法 ; SHORT、MEDIUM、LONG、GUARD、ACCESSORY、ITEM、MAGIC x1=19 : x2=29 y1=14 : y2=58 : y3=83 pos talkx1(1)+x1,talky1(1)+y1 celput moji2w,2 ; mes "近距離" ;pos talkx1(1)+15,talky1(1)+55 s="SHORT" : pfp20 s,talkx1(1)+18,talky1(1)+y2 ; mes "SHORT" s="WEAPON" : pfp20 s,talkx1(1)+13,talky1(1)+y3 ; mes "WEAPON" pos talkx1(2)+x1,talky1(2)+y1 celput moji2w,3 ; mes "中距離" s="MEDIUM" : pfp20 s,talkx1(2)+13,talky1(2)+y2 ; mes "MEDIUM" s="WEAPON" : pfp20 s,talkx1(2)+13,talky1(2)+y3 ; mes "WEAPON" pos talkx1(3)+x1,talky1(3)+y1 celput moji2w,4 ; mes "遠距離" s="LONG" : pfp20 s,talkx1(3)+22,talky1(3)+y2 ; mes "LONG" s="WEAPON" : pfp20 s,talkx1(3)+13,talky1(3)+y3 ; mes "WEAPON" pos talkx1(5)+x2,talky1(5)+y1 celput moji2w,5 ; mes "防具" s="GUARD" : pfp20 s,talkx1(5)+18,talky1(5)+y2 ; mes "GUARD" pos talkx1(6)+18,talky1(6)+y1 celput moji2w,6 ; mes "アクセサリー" s="ACCES" : pfp20 s,talkx1(6)+13,talky1(6)+y2 ; mes "ACCES" s="SORY" : pfp20 s,talkx1(6)+33,talky1(6)+78 ; mes "SORY" pos talkx1(8)+9,talky1(8)+y1 celput moji2w,7 ; mes "アイテム" s="ITEM" : pfp20 s,talkx1(8)+22,talky1(8)+y2 ; mes "ITEM" pos talkx1(10)+x2,talky1(10)+y1 celput moji2w,8 ; mes "魔法" s="MAGIC" : pfp20 s,talkx1(10)+18,talky1(10)+y2 ; mes "MAGIC" return #deffunc ord_ms_put int ord_ms_putf ; メッセージ repeat 20 redraw 0 color 1,1,1 : boxf : color 255,255,255 ord_put 1 evw 0,108,132,27,6 ; イベントウインドウ表示 evw 1,108,132,27,6 ; イベントウインドウ表示 ;color 240,240,240 : boxf 100,100,wx-100,wy-100 ;color 1,1,1 : boxf 100+2,100+2,wx-100-2,wy-100-2 ;color 240,240,240 x=144 : y=165 : pos x,y if ord_ms_putf=0 : celput mj28_lngw,0; mes "製作できるものがありません" if ord_ms_putf=1 { s="MANA PONT" : pfp28 s,x,y pos x+163,y : celput mj28_lngw,9; mes "マナポイントが足りません" } if ord_ms_putf=2 : celput mj28_lngw,1; mes "人材府の数が最大です" if ord_ms_putf=3 : celput mj28_lngw,2; mes "倉庫の数が最大です" if ord_ms_putf=4 : celput mj28_lngw,3; mes "人材がいませんでした" if ord_ms_putf=5 { s="UNIT" : pfp28 s,x,y pos x+83,y : celput mj28_lngw,4; mes "ユニットの登録が満杯です" } if ord_ms_putf=6 { s="ITEM" : pfp28 s,x,y pos x+83,y : celput mj28_lngw,4; mes "アイテムの登録が満杯です" } if ord_ms_putf=7 : celput mj28_lngw,5; mes "既に建物が建っています" redraw 1 await 1000/20 loop return #deffunc ord_fd_put ; 発見表示 f=0 : cf=1.0 : kb=0 repeat redraw 0 color 1,1,1 : boxf : color 240,240,240 ord_put 1 switch f case 0 pos talcx+cox/2,talcy : celput owkw,0,cf cf-=0.1 : if cf<=0.0 : f=1 swbreak case 1 pos talcx+cox/2,talcy : celput iw,itn-1,cf cf+=0.1 : if cf>=1.0 : f=2 swbreak case 2 pos talcx+cox/2,talcy : celput iw,itn-1,cf stick kb : if kb=256 : f=3 swbreak swend pos talcx-30,talcy+150 : celput it_ftw,itn s="LEVEL" : pfp28 s,talcx-25,talcy+190 ;: mes "LEVEL "+itd(15,itn) s=str(itd(15,itn)) : pfp28 s,talcx+73,talcy+190 s="MANA POINT" : pfp28 s,talcx-60,talcy+230 ;: mes "MANA POINT "+ord_mp(itd(15,itn)) s=str(ord_mp(itd(15,itn))) : pfp28 s,talcx+115,talcy+230 redraw 1 await 1000/40 if f=3 : break loop return ; 政府、ガバメント、Government #deffunc gov_put color 1,1,1 : boxf color 255,255,255 : boxf infx1+2,infy1+2,infx1+26,infy1+26 color cld((pcln(pn)-1)*3+1),cld((pcln(pn)-1)*3+2),cld((pcln(pn)-1)*3+3) ; 勢力 boxf infx1+4,infy1+4,infx1+24,infy1+24 color 255,255,255 gmulcolor 255,255,255 repeat 6,1 pos govx1(20+cnt),govy1(20+cnt) : celput rmw n=mgv(pn*mgvb+cnt) if n>0 : pos govx1(cnt)+cox/2,govy1(cnt) : celput cw,ud(n*udb)-1 if n=0 : pos govx1(cnt),govy1(cnt) : celput krwkw loop font "",20 pos govx2(1)+22,govy1(1)+43 : celput mojiw,17 ;mes govs1(1) s=govs3(1) : pfp20 s,govx2(1)+17,govy1(1)+68 ;: mes govs3(1) repeat 5,2 pos govx1(cnt),govy1(cnt)-40 : celput mojiw,10+cnt ;mes govs1(cnt) s=govs3(cnt) : pfp20 s,govx1(cnt)-5,govy1(cnt)-21 ;: mes govs3(cnt) loop font "",32 pos 98,32 : celput mj32w,0 ;mes "政府" pos 53,80 : celput mj32w,1 ;mes "GOVERNMENT";"Government" s="unit" : pfp20 s,496,34,5 s=str(pubg(pn)) : pfp20 s,516,55,3 pos 556,55 : celput pft20w,51 s=str(pubn(pn)) : pfp20 s,574,55,3 s="item" : pfp20 s,496,84,5 s=str(pibg(pn)) : pfp20 s,516,105,3 pos 556,105 : celput pft20w,51 s=str(pibn(pn)) : pfp20 s,574,105,3 /* s="unit" : bfp s,496,34,5 fp pubg(pn),516,54,5 s="/" : bfp s,546,54,5 fp pubn(pn),576,54,5 s="item" : bfp s,496,84,5 fp pibg(pn),516,104,5 s="/" : bfp s,546,104,5 fp pibn(pn),576,104,5 */ /* n=255 repeat 3 : c=cnt*10 repeat 6,1 : nn=c+cnt color n,n,n boxf govx1(nn),govy1(nn),govx2(nn),govy2(nn) n-=10 loop loop */ return ; op、ed表示 ------------------------------------------------------ oemjb=20 dim oemjf,oemjb ; フラグ、グラNo.(0=op、1=ed、2=cr) dim oemjn,oemjb ; 文字No. dim oemjc,oemjb ; カラーNo. dim oemjx,oemjb ; x座標 dim oemjy,oemjb ; y座標 dim oemjm,oemjb ; 移動方向 dim oemjd,oemjb ; 移動量 #deffunc edmj_set int edmj_setn ; ed文字セット f=0 repeat edmjb : n=cnt if edmjf(n)=0 : f=1 : break loop if f=0 : return edmjf(n)=edmj_setn ; 文字No. edmjy(n)=wy ; y座標 edmjz(n)=1 ; スピード return #deffunc edmj_put ; ed文字表示 gmode 2 repeat edmjb : n=cnt if edmjf(n)=0 : continue edmjy(n)-=edmjz(n) if edmjy(n)<-35 : edmjf(n)=0 : continue pos 48,edmjy(n) : celput mj32_edw,edmjf(n)-1 loop return #deffunc edcr_set int edcr_n1,int edcr_n2,int edcr_n3,int edcr_n4 ; edクレジット文字セット ;n1=x座標、n2=グラNo.、n3=文字No.、n4=カラー f=0 repeat edcrb : n=cnt if edcrf(n)=0 : f=1 : break loop if f=0 : return edcrx(n)=edcr_n1 ; x座標 edcrf(n)=edcr_n2 ; グラNo. edcrn(n)=edcr_n3 ; 文字No. edcrc(n)=edcr_n4 ; カラーNo. edcry(n)=wy ; y座標 edcrz(n)=2 ; スピード return #deffunc edcr_put ; edクレジット文字表示 gmode 2 repeat edcrb : n=cnt if edcrf(n)=0 : continue if edcrc(n)=0 : gmulcolor 255,255,255 ; 白 if edcrc(n)=1 : gmulcolor 160,160,255 ; 青 if edcrc(n)=2 : gmulcolor 128,255,128 ; 緑 if edcrc(n)=3 : gmulcolor 228+27,85+27,139+27 ; ピンク if edcrc(n)=4 : gmulcolor 255,96,96 ; 火 if edcrc(n)=5 : gmulcolor 96,96,255 ; 水 if edcrc(n)=6 : gmulcolor 96,255,96 ; 風 if edcrc(n)=7 : gmulcolor 255,255,96 ; 地 if edcrc(n)=8 : gmulcolor 255,255,255 ; 光 if edcrc(n)=9 : gmulcolor 160,160,160 ; 闇 edcry(n)-=edcrz(n) if edcry(n)<-35 : edcrf(n)=0 : continue pos edcrx(n),edcry(n) if edcrf(n)=1 : celput cre_ftw,edcrn(n)-1 if edcrf(n)=2 : celput cre_ft2w,edcrn(n)-1 loop gmulcolor 255,255,255 return /* #deffunc edmj_set int edmj_setn ; ed文字セット f=0 repeat edmjb : n=cnt if edmjf(n)=0 : f=1 : break loop if f=0 : return edmjf(n)=edmj_setn ; 文字No. edmjy(n)=wy ; y座標 edmjz(n)=1 ; スピード return #deffunc edmj_put ; ed文字表示 gmode 2 repeat edmjb : n=cnt if edmjf(n)=0 : continue edmjy(n)-=edmjz(n) if edmjy(n)<-35 : edmjf(n)=0 : continue pos 48,edmjy(n) : celput mj32_edw,edmjf(n)-1 loop return #deffunc edcr_set int edcr_n1,int edcr_n2,int edcr_n3,int edcr_n4 ; edクレジット文字セット ;n1=x座標、n2=グラNo.、n3=文字No.、n4=カラー f=0 repeat edcrb : n=cnt if edcrf(n)=0 : f=1 : break loop if f=0 : return edcrx(n)=edcr_n1 ; x座標 edcrf(n)=edcr_n2 ; グラNo. edcrn(n)=edcr_n3 ; 文字No. edcrc(n)=edcr_n4 ; カラーNo. edcry(n)=wy ; y座標 edcrz(n)=2 ; スピード return #deffunc edcr_put ; edクレジット文字表示 gmode 2 repeat edcrb : n=cnt if edcrf(n)=0 : continue if edcrc(n)=0 : gmulcolor 255,255,255 ; 白 if edcrc(n)=1 : gmulcolor 160,160,255 ; 青 if edcrc(n)=2 : gmulcolor 128,255,128 ; 緑 if edcrc(n)=3 : gmulcolor 228+27,85+27,139+27 ; ピンク if edcrc(n)=4 : gmulcolor 255,96,96 ; 火 if edcrc(n)=5 : gmulcolor 96,96,255 ; 水 if edcrc(n)=6 : gmulcolor 96,255,96 ; 風 if edcrc(n)=7 : gmulcolor 255,255,96 ; 地 if edcrc(n)=8 : gmulcolor 255,255,255 ; 光 if edcrc(n)=9 : gmulcolor 160,160,160 ; 闇 edcry(n)-=edcrz(n) if edcry(n)<-35 : edcrf(n)=0 : continue pos edcrx(n),edcry(n) if edcrf(n)=1 : celput cre_ftw,edcrn(n)-1 if edcrf(n)=2 : celput cre_ft2w,edcrn(n)-1 loop gmulcolor 255,255,255 return */ #deffunc cdsw_set int cdsw_setf ; カードショーセット f=0 repeat cdswb : n=cnt if cdswf(n)=0 : f=1 : break loop if f=0 : return zk=rnd(6)+1 ; 属性種類 r=rnd(cha_syu(zk)) cn=cha_zoks(zk)+r ; キャラNo. cdswf(n)=cn ; フラグ if cdsw_setf=0 { ; 真ん中 cdswx(n)=wx/2 cdswy(n)=77 cdswz(n)=0 } if cdsw_setf=3 { ; 右から左へ cdswx(n)=wx+10 cdswy(n)=rnd(wy-coy) cdswz(n)=rnd(157) if cdswz(n)\2=1 : cdswz(n)+=1 } cdswd(n)=cdsw_setf ; 移動方向 return #deffunc cdsw_put ; カードショー表示 gmode 2 repeat cdswb : n=cnt if cdswf(n)=0 : continue cn=cdswf(n) if cdswd(n)=3 : cdswx(n)-=1 : if cdswx(n)<(0-cox) : cdswf(n)=0 : continue ; 左へ cdswz(n)+=2 if cdswz(n)\314=0 { zk=rnd(6)+1 ; 属性種類 r=rnd(cha_syu(zk)) cdswf(n)=cha_zoks(zk)+r ; キャラNo. } zf=sin(double(cdswz(n))*0.01) pos cdswx(n),cdswy(n) : celput cw,cn-1,zf loop return ; SAVE、LOAD --------------------------------------------------- #deffunc save_put ;color 190,190,190 ;boxf 400,svy1(4),500,svy2(4) evw 0,28+16,24,35,13 ; イベントウインドウ表示 evw 1,28+16,24,35,13 ; イベントウインドウ表示 color 203,172,49 repeat 2,1 line svx1,24+8+cnt*64,svx2,24+8+cnt*64 loop gmulcolor 255,255,255 s="SAVE 1" : bfp s,svx1+32,svy1(1)+24,5 if dtf1=1 : s="TURN "+trn1 : bfp s,svx1+200,svy1(1)+24,5 s="SAVE 2" : bfp s,svx1+32,svy1(2)+24,5 if dtf2=1 : s="TURN "+trn2 : bfp s,svx1+200,svy1(2)+24,5 s="SAVE 3" : bfp s,svx1+32,svy1(3)+24,5 if dtf3=1 : s="TURN "+trn3 : bfp s,svx1+200,svy1(3)+24,5 evw 0,28+16,192+24+24+16,35,5 ; イベントウインドウ表示 evw 1,28+16,192+24+24+16,35,5 ; イベントウインドウ表示 switch savef case 0 s="AUTO SAVE" : bfp s,svx1+32,svy1(4)+24,0 if dtf0=1 : s="TURN "+trn0 : bfp s,svx1+200,svy1(4)+24,5 swbreak case 1 color 255,255,255 if dt_no=4 { s="AUTO SAVE" : pfp20 s,svx1+32,svy1(4)+22 ; mes "AUTO SAVE にセーブしますか" pos svx1+142,svy1(4)+22 : celput mj20_svldw,0 } else { s=str(dt_no) : pfp20 s,svx1+32,svy1(4)+23 ; mes ""+dt_no+" 番にセーブしますか" pos svx1+62,svy1(4)+22 : celput mj20_svldw,1 } pos 400,svy1(4)+24 : s="YES" : bfp s,400,svy1(4)+24,5 pos 400,svy1(4)+24 : s="NO" : bfp s,500,svy1(4)+24,5 swbreak case 2 ;color 255,255,255 s=str(dt_no) : pfp20 s,svx1+32,svy1(4)+23 ; mes ""+dt_no+" 番にセーブしました" pos svx1+62,svy1(4)+22 : celput mj20_svldw,2 swbreak swend return #deffunc load_put evw 0,28+16,24,35,13 ; イベントウインドウ表示 evw 1,28+16,24,35,13 ; イベントウインドウ表示 color 203,172,49 repeat 3,1 line svx1,24+8+cnt*64,svx2,24+8+cnt*64 loop gmulcolor 255,255,255 s="SAVE 1" : bfp s,svx1+32,svy1(1)+24,5 if dtf1=1 : s="TURN "+trn1 : bfp s,svx1+200,svy1(1)+24,5 s="SAVE 2" : bfp s,svx1+32,svy1(2)+24,5 if dtf2=1 : s="TURN "+trn2 : bfp s,svx1+200,svy1(2)+24,5 s="SAVE 3" : bfp s,svx1+32,svy1(3)+24,5 if dtf3=1 : s="TURN "+trn3 : bfp s,svx1+200,svy1(3)+24,5 evw 0,28+16,192+24+24+16,35,5 ; イベントウインドウ表示 evw 1,28+16,192+24+24+16,35,5 ; イベントウインドウ表示 switch savef case 0 s="AUTO SAVE" : bfp s,svx1+32,svy1(4)+24,0 if dtf0=1 : s="TURN "+trn0 : bfp s,svx1+200,svy1(4)+24,5 swbreak case 1 color 255,255,255 if dt_no=0 { s="AUTO SAVE" : pfp20 s,svx1+32,svy1(4)+22 ; mes "AUTO SAVE からロードしますか" pos svx1+142,svy1(4)+22 : celput mj20_svldw,3 } else { s=str(dt_no) : pfp20 s,svx1+32,svy1(4)+23 ; mes ""+dt_no+" 番からロードしますか" pos svx1+62,svy1(4)+22 : celput mj20_svldw,4 } pos 400,svy1(4)+24 : s="YES" : bfp s,400,svy1(4)+24,5 pos 400,svy1(4)+24 : s="NO" : bfp s,500,svy1(4)+24,5 swbreak case 2 color 255,255,255 if dt_no=0 { s="AUTO SAVE" : pfp20 s,svx1+32,svy1(4)+22 ; mes "AUTO SAVE からロードしました" : swbreak pos svx1+142,svy1(4)+22 : celput mj20_svldw,5 } else { s=str(dt_no) : pfp20 s,svx1+32,svy1(4)+23 ; mes ""+dt_no+" 番からロードしました" pos svx1+62,svy1(4)+22 : celput mj20_svldw,6 } swbreak swend return ; エフェクト --------------------------------------------------- #deffunc dmp_set int dmp_setn1,int dmp_setn2,int dmp_setn3 ; ダメージ表示セット ; 1=値、2=位置No.、3=カラー repeat 20 : n=cnt*6 ; フラグ if dmp(n)=0 : dmp(n)=1 : break loop dmp(n+1)=dmp_setn1 ; 値 if dmp_setn2<=3 : dmp(n+2)=bcx1(dmp_setn2) ; x if dmp_setn2>=4 : dmp(n+2)=bcx2(dmp_setn2-3) ; x dmp(n+3)=btly1-30 ; y dmp(n+4)=dmp_setn3 ; カラー dmp(n+5)=25 ; カウンター return #deffunc dmp_put ; ダメージ表示 repeat 20 : n=cnt*6 if dmp(n)=0 : continue fp48 dmp(n+1),dmp(n+2),dmp(n+3),dmp(n+4) ;fp3 dmp(n+1),dmp(n+2),dmp(n+3),dmp(n+4) dmp(n+3)-=4 dmp(n+5)- : if dmp(n+5)=0 : dmp(n)=0 loop return #deffunc bp int bpn2 ;pos 150,325 : mes bpn2 if bpn2=0 : return ;font "",30 : color 255,255,255 x=230 : y=314 if bpn2=1 : pos x,y : celput mj26_4w,26 ;mes "右素手" if bpn2=2 : pos x,y : celput it_ftw,bpn3 ;mes is2(bpn3) if bpn2=3 : pos x,y : celput mj26_4w,27 ;mes "左素手" if bpn2=4 : pos x,y : celput it_ftw,bpn3 ;mes is2(bpn3) if bpn2=5 : pos x,y : celput mj26_4w,28 ;mes "素ATK" if bpn2=6 : pos x,y : celput mj26_4w,29 ;mes "急降下" if bpn2>15 and bpn2<100 : pos x,y : celput abft26w,bpn ;if bpn2>15 and bpn2<100 : pos x,y : mes utks(bpn) if bpn2>100 : pos x,y : celput it_ftw,bpn ;mes is2(bpn) ;font "",20 return #deffunc efsx ; 座標x if efsn2<=3 : ef(efg+6)=bcx1(efsn2)+40 ; x if efsn2>=4 : ef(efg+6)=bcx2(efsn2-3)+40 ; x return #deffunc efsm int efsmf ; 向き repeat 1 if efsmf=1 : eff(efg2+0)*=1.0 : eff(efg2+1)*=1.0 : break ; 正 if efsmf=2 : eff(efg2+0)*=-1.0 : eff(efg2+1)*=1.0 : break ; 左右反転 if efsmf=3 : eff(efg2+0)*=1.0 : eff(efg2+1)*=-1.0 : break ; 上下反転 if efsmf=4 : eff(efg2+0)*=-1.0 : eff(efg2+1)*=-1.0 : break ; 全反転 loop if efsn2<=3 : eff(efg2+0)*=-1.0 ; 左の隊の場合の反転 return #deffunc efs int efsf,int efsn1,int efsn3,int efsd,int efsa,int efse,int efsox,int efsoy ; int efsx,int efsy,int dfsr,int dfsrn ; エフェクトセット(フラグ、グラ、速さ、反転、移動時間、透明か加算か、大きさx、大きさy); 動きx、動きy、回転、回転速度) if efsf=0 : return f=0 repeat efb ; No,ピック if ef(efd*cnt)=0 : efg=efd*cnt : efg2=4*cnt : f=1 : break loop if f=0 : return ; 空きが無い ef(efg)=efsf ; 表示種類 ef(efg+1)=efsn1 ; グラNo. ;ef(efg+2)=efsn2 ; 表示場所 ef(efg+3)=0 ; アニメカウント ef(efg+4)=0 ; アニメ速さカウント ef(efg+5)=efsn3 ; アニメ速さ ef(efg+6)=0 ; x ef(efg+7)=btly1+65 ; y ef(efg+8)=0 ; 動きx ef(efg+9)=0 ; 動きy ef(efg+10)=efse ; 表示種類(0=通常、1=加算) ef(efg+11)=efsa ; 移動時間 repeat 4 eff(efg2+cnt)=0.0 ; リセット loop switch efsf ; 表示種類 case 1 ; 自分固定 if fs=1 : efsn2=ut : else : efsn2=ut+3 ; 場所x swbreak case 2 ; 敵固定 if fs=1 : efsn2=et+3 : else : efsn2=et ; 場所x swbreak case 3 ; 投射 if fs=1 : efsn2=ut : else : efsn2=ut+3 ; 場所x n=ut+et-1 : ef(efg+8)=(btlxk*n+btlck)/efsa : if fs=2 : ef(efg+8)*=-1 ; 距離とスピード swbreak case 4 ; 敵全体投射 if fs=1 : efsn2=4 : else : efsn2=1 ; 場所x ef(efg+8)=(btlxk*3)/efsa : if fs=2 : ef(efg+8)*=-1 ; 距離とスピード swbreak case 5 ; 味方全体 if fs=1 : efsn2=2 : else : efsn2=5 ; 場所x swbreak case 6 ; 敵全体 if fs=1 : efsn2=5 : else : efsn2=2 ; 場所x swbreak case 7 ; 召還 if fs=1 : efsn2=smn : else : efsn2=smn+3 ; 場所x swbreak case 8 ; リザレクション if fs=1 : efsn2=rt : else : efsn2=rt+3 ; 場所x swbreak swend efsx ; x if efsox=0 : eff(efg2+0)=1.0 : else : eff(efg2+0)=1.0*double(efsox)/10.0 ; 大きさ修正x if efsoy=0 : eff(efg2+1)=1.0 : else : eff(efg2+1)=1.0*double(efsoy)/10.0 ; 大きさ修正y efsm efsd ; 向き ; 回転 if btsn=5 : if efsn2<=3 : eff(efg2+2)=0.6 : else : eff(efg2+2)=-0.6 ; 曲刀 if btsn=6 : if efsn2<=3 : eff(efg2+2)=-0.3 : else : eff(efg2+2)=0.3 ; 刺突剣 if btsn=8 : if efsn2<=3 : eff(efg2+2)=-0.9 : else : eff(efg2+2)=0.9 ; 大剣 if btsn=11 : if efsn2<=3 : eff(efg2+2)=0.6 : else : eff(efg2+2)=-0.6 ; 槌 if btsn=15 { ; 大砲 if fs=1 : eff(efg2+3)=2.0 ; 回転 if fs=2 : eff(efg2+3)=-2.0 } if btsf2=10 : if efsn2<=3 : eff(efg2+2)=1.6 : else : eff(efg2+2)=-1.6 ; フャイヤー if btsf2=14 : if efsn2<=3 : eff(efg2+2)=0.6 : else : eff(efg2+2)=-0.6 ; フレイムアロー if btsf2=20 : if efsn2<=3 : eff(efg2+2)=-1.5 : else : eff(efg2+2)=1.5 ; アイスニードル if btsf2=21 : if efsn2<=3 : eff(efg2+2)=1.6 : else : eff(efg2+2)=-1.6 ; ウォーターストリーム if btsf2=24 { ; アイスジャベリン if efsn2<=3 : eff(efg2+2)=-1.6 : else : eff(efg2+2)=1.6 ef(efg+3)=10 : ef(efg+11)=30 ; グラ途中から } if btsf2=25 : eff(efg2+2)=-1.7 : eff(efg2+2)=1.7 ; アイスピラー if btsf2=28 : ef(efg+7)+=24 ; メイルシュトローム if btsf2=37 { ; ライトニングボルト if efsn2<=3 : eff(efg2+2)=1.6 : else : eff(efg2+2)=-1.6 } if btsf2=38 { ; ウィンドストーム if fs=1 : ef(efg+6)-=60 : else : ef(efg+6)+=60 ; x } if btsf2=40 : ef(efg+7)-=20 ; アースキュア if btsf2=42 : ef(efg+7)-=15 ; ネイチャーヒール if btsf2=46 : if efsn2<=3 : eff(efg2+2)=1.6 : else : eff(efg2+2)=-1.6 ; ストーンブラスト if btsf2=57 : if efsn2<=3 : eff(efg2+2)=1.6 : else : eff(efg2+2)=-1.6 ; サイキックフォース if btsf2=59 : ef(efg+6)-=1 : ef(efg+7)-=60 ; ホーリーライトサークル if btsf2=60 : ef(efg+7)-=10 ; レイブレイド if btsf2=92 : ef(efg+7)-=40 ; スタン if btsf2=105 or btsf2=106 { ; ファイヤーブレス、コールドブレス if fs=1 : eff(efg2+2)=1.5 : ef(efg+6)-=20 if fs=2 : eff(efg2+2)=-1.5 : ef(efg+6)+=20 } if btsf2=108 { ; 咆哮 if fs=1 : ef(efg+6)-=60 : else : ef(efg+6)+=60 ; x } if btsf2=110 { ; ポイズンブレス if fs=1 : ef(efg+6)-=60 : else : ef(efg+6)+=60 ; x } if btsf2=119 { ; 火炎弾 if fs=1 : eff(efg2+2)=-1.6 : else : eff(efg2+2)=1.6 } if btsf2=122 : ef(efg+7)-=14 ; ヒールオール if btsf2=210 { ; ダイナマイト if fs=1 : eff(efg2+3)=0.8 ; 回転 if fs=2 : eff(efg2+3)=-0.8 } if btsf2=211 { ; 爆弾 if fs=1 : eff(efg2+3)=1.7 ; 回転 if fs=2 : eff(efg2+3)=-1.7 } return #deffunc efp ; エフェクトプット repeat efb efg=efd*cnt : efg2=4*cnt ; データの先頭 if ef(efg)=0 : continue ; 無い ef(efg+4)+ : if ef(efg+4)>=ef(efg+5) : ef(efg+3)+ : ef(efg+4)=0 : ; アニメウエイト処理 if ef(efg+10)=0 : gmode 3,,,255 : else : gmode 5,,,255 ; 透明、加算 pos ef(efg+6),ef(efg+7) celput efw(ef(efg+1)),ef(efg+3),eff(efg2+0),eff(efg2+1),eff(efg2+2) if ef(efg+3)>=efga(ef(efg+1)) : ef(efg)=0 : break ; アニメ if ef(efg+3)<=ef(efg+11) : ef(efg+6)+=ef(efg+8) ; 動きx ef(efg+7)+=ef(efg+9) ; 動きy eff(efg2+2)+=eff(efg2+3) ; 回転 loop return #deffunc bts int btsf,int btsc ; エフェクト分配 btsn=0 : btsf2=btsf ; 種類 switch btsf case 1 ; 素アタック if us=6 or us=11 or us=13 or us=33 or us=36 or us=46 or us=51 or us=72 or us=74 or us=97 or us=111 or us=167 or us=181 or us=185 or us=205 : btsn=1 if us=71 or us=92 or us=96 or us=118 or us=132 or us=184 : btsn=2 if us=7 or us=16 or us=52 or us=135 or us=168 : btsn=3 if us=1 or us=8 or us=12 or us=32 or us=35 or us=43 or us=50 or us=73 or us=94 or us=95 or us=112 or us=120 or us=151 or us=152 or us=153 or us=169 or us=190 or us=192 : btsn=4 if us=31 or us=183 : btsn=17 ; 急降下 if btsn=0 : efs 2,1,2,1,0,0 : mmplays 21 : swbreak ; 素手 if btsn=1 : efs 2,3,2,1,0,0 : mmplays 22 : swbreak ; 牙 if btsn=2 : efs 2,2,2,2,0,0 : mmplays 23 : swbreak ; 爪 if btsn=3 : efs 2,4,2,2,0,0 : mmplays 24 : swbreak ; 尾 if btsn=4 : efs 2,9,2,1,0,0 : mmplays 25 : swbreak ; 体当たり if btsn=17 : efs 2,100,2,1,0,0 : mmplays 26 : swbreak ; 急降下 swbreak case 2 ; 近接武器アタック itn=id(ig) /* redraw 0 color 255,0,0 pos 100,100 : mes itn redraw 1 pkey */ if itn=9 or itn=10 or itn=16 or itn=24 : btsn=5 : efs 2,5,1,1,0,0 : mmplays 27 : swbreak ; 曲刀 if itn=8 or itn=11 or itn=14 or itn=23 : btsn=6 : efs 2,7,2,2,0,0 : mmplays 28 : swbreak ; 刺突剣 if id(ig+19)=1 : btsn=7 : efs 2,15,2,2,0,0 : mmplays 29 : swbreak ; 剣 if id(ig+19)=2 : btsn=8 : efs 2,11,2,1,0,0 : mmplays 30 : swbreak ; 大剣 if id(ig+19)=3 : btsn=9 : efs 2, 8,2,1,0,0 : mmplays 31 : swbreak ; 槍 if id(ig+19)=4 : btsn=10 : efs 2,12,2,2,0,0 : mmplays 32 : swbreak ; 斧 if id(ig+19)=5 : btsn=11 : efs 2,13,2,2,0,0 : mmplays 33 : swbreak ; 槌 if id(ig+19)=6 : btsn=12 : efs 2,14,2,4,0,0 : mmplays 34 : swbreak ; 杖 if id(ig+8)=1 : btsn=7 : efs 2,15,2,2,0,0 : mmplays 39 : swbreak ; その他投擲 swbreak case 3 ; 投射武器アタック if id(ig+19)=7 : btsn=13 : efs 3,16 ,1,1,8,0 : mmplays 35 : swbreak ; 弓 if id(ig+19)=8 : btsn=14 : efs 3,18 ,1,2,9,0 : mmplays 36 : swbreak ; ボウ if id(ig)=90 : btsn=15 : efs 3,107,7,1,5,1,16,16 : mmplays 37 : swbreak ; 大砲 if id(ig+19)=9 : btsn=16 : efs 2,17 ,1,1,0,0 : mmplays 38 : swbreak ; 銃 if id(ig+8)=1 : efs 3,104,1,1,8,0 : mmplays 39 : swbreak ; 投擲 swbreak case 10 : efs 3,20,2,3,14,1 : mmplays 49 : swbreak ; ファイヤー case 11 : efs 1,21,1,1,0 ,1,7 ,7 : mmplays 50 : swbreak ; ファイヤーウェポン case 12 : efs 1,22,2,1,0 ,1 : mmplays 51 : swbreak ; バーサーク case 13 : efs 2,23,2,1,0 ,1 : mmplays 52 : swbreak ; ファイヤーピレイム case 14 : efs 3,24,1,1,13,1 : mmplays 53 : swbreak ; フレイムアロー case 15 : efs 1,25,1,1,0 ,1 : mmplays 54 : swbreak ; バトルソング case 16 : efs 3,26,1,1,7 ,1 : mmplays 55 : swbreak ; ファイアーボール case 17 : efs 6,28,3,1,0 ,1 : mmplays 57 : swbreak ; ファイヤーウォール case 18 : efs 6,29,3,1,0 ,1 : mmplays 58 : swbreak ; エクスプロージョン case 20 : efs 3,30,1,1,18,1,2 ,0 : mmplays 58 : swbreak ; アイスニードル case 21 : efs 3,31,2,3,17,1 : mmplays 59 : swbreak ; ウォーターストリーム case 22 : efs 1,59,1,1,0 ,1 : mmplays 60 : swbreak ; ピュリファイ case 23 : efs 1,33,1,1,0 ,1,8 ,8 : mmplays 61 : swbreak ; アイスエンチャント case 24 : efs 3,34,1,1,18,1,2 ,18 : mmplays 62 : swbreak ; アイスジャベリン case 25 : efs 2,35,3,4,0 ,0 : mmplays 63 : swbreak ; アイスピラー case 26 : efs 1,36,2,1,0 ,1 : mmplays 64 : swbreak ; ウォータースクリーン case 27 : efs 6,37,3,1,0 ,1 : mmplays 65 : swbreak ; 津波 case 28 : efs 6,38,3,1,0 ,1,25,0 : mmplays 66 : swbreak ; メイルシュトローム case 29 ; ブリザード repeat 3,1 et=cnt : efs 2,39,2,1,0 ,1,8 ,8 loop mmplays 67 swbreak case 30 : efs 3,40,1,1,8 ,1,0 ,3 : mmplays 68 : swbreak ; ウインドカッター case 31 : efs 1,41,2,1,0 ,1,7 ,7 : mmplays 69 : swbreak ; ウインドムーブ case 32 : efs 2,42,1,1,0 ,0,6 ,6 : mmplays 70 : swbreak ; サンダー case 33 : efs 1,43,1,1,0 ,0,8 ,8 : mmplays 71 : swbreak ; ウィンドエンチャント case 34 : efs 1,44,1,1,0 ,1,8 ,18 : mmplays 72 : swbreak ; サンダーウエポン case 35 : efs 6,45,2,1,0 ,0 : mmplays 73 : swbreak ; セイレーンボイス case 36 : efs 1,46,2,1,0 ,1 : mmplays 74 : swbreak ; ウィンドウォール case 37 : efs 6,47,2,1,0 ,1,8 ,30 : mmplays 75 : swbreak ; ライトニングボルト case 38 : efs 4,48,3,1,26,1,14,14 : mmplays 76 : swbreak ; ウィンドストーム case 40 : efs 1,49,2,1,0 ,1,14,14 : mmplays 79 : swbreak ; アースキュア case 41 : efs 1,50,2,1,0 ,1,12,12 : mmplays 78 : swbreak ; ハードコーティング case 42 : efs 1,58,2,1,0 ,1,12,12 : mmplays 77 : swbreak ; ネイチャーヒール case 43 : efs 2,52,1,1,0 ,1,8 ,8 : mmplays 80 : swbreak ; グラヴィティマグネット case 44 : efs 1,53,2,1,0 ,1 : mmplays 81 : swbreak ; グラビティウエポン case 45 : efs 2,54,2,1,0 ,1 : mmplays 82 : swbreak ; バインディングブランチ case 46 : efs 3,55,2,1,14,0 : mmplays 83 : swbreak ; ストーンブラスト case 47 : efs 7,56,2,1,0 ,1 : mmplays 84 : swbreak ; ゴーレムクリエイト case 48 : efs 6,57,3,1,0 ,0,0 ,13 : mmplays 85 : swbreak ; アースクエイク case 50 : efs 1,60,1,1,0 ,1,7 ,7 : mmplays 86 : swbreak ; ヒール case 51 : efs 2,61,2,1,0 ,1,8 ,8 : mmplays 87 : swbreak ; ターンアンデッド case 52 : efs 1,62,1,1,0 ,1,7 ,7 : mmplays 88 : swbreak ; フォースセンス case 53 : efs 1,63,2,1,0 ,1 : mmplays 89 : swbreak ; ホーリーライトキュア case 54 : efs 1,64,1,1,0 ,1,7 ,7 : mmplays 90 : swbreak ; ホーリーウエポン case 55 : efs 1,65,2,1,0 ,1 : mmplays 91 : swbreak ; プロテクト case 56 : efs 3,66,1,2,5 ,1,0 ,17 : mmplays 92 : swbreak ; レイアロー case 57 : efs 3,67,1,3,8 ,1 : mmplays 93 : swbreak ; サイキックフォース case 58 : efs 1,68,1,1,0 ,1,7 ,7 : mmplays 94 : swbreak ; ブレス case 59 : efs 1,69,1,1,0 ,1,17,17 : mmplays 95 : swbreak ; ホーリーライトサークル case 60 : efs 2,70,2,2,0 ,1,9 ,9 : mmplays 96 : swbreak ; レイブレイド case 61 : efs 5,71,3,1,0 ,1,50,7 : swbreak ; ホーリーライトヒール case 62 : efs 7,72,2,1,0 ,1 : mmplays 98 : swbreak ; ウィル・オ・ウィスプ case 63 : efs 8,32,2,1,0 ,1 : mmplays 99 : swbreak ; リザレクション case 70 : efs 2,73,1,1,0 ,1,9 ,9 : mmplays 100 : swbreak ; マインドブラスト case 71 : efs 2,74,2,1,0 ,1,16,16 : mmplays 101 : swbreak ; ポイズン case 72 : efs 2,75,2,1,0 ,0,20,20 : mmplays 102 : swbreak ; 邪眼 case 73 : efs 2,76,1,1,0 ,1 : mmplays 103 : swbreak ; チャーム case 74 : efs 2,77,1,1,0 ,1 : mmplays 104 : swbreak ; ウィークネス case 75 : efs 2,78,2,1,0 ,1 : mmplays 105 : swbreak ; カース case 76 : efs 2,79,1,1,0 ,1 : mmplays 106 : swbreak ; ダークネス case 77 ; フレイムカース repeat 3,1 et=cnt : efs 2,80,2,1,0 ,1,14,14 loop mmplays 107 swbreak case 78 : efs 7,81,2,1,0 ,1 : mmplays 108 : swbreak ; デモンズゲート ; その他のエフェクト case 90 : efs 2,27,1,1,0 ,1 : mmplays 56 : swbreak ; ファイアーボールの爆発 case 91 : n=btsc+1 : efs n,91,2,1,0 ,0,8 ,8 : swbreak ; 麻痺 case 92 : n=btsc+1 : efs n,90,1,1,0 ,1 : swbreak ; スタン case 93 : n=btsc+1 : efs n,92,1,1,0 ,1 : swbreak ; 魅惑、自 case 94 : n=btsc+1 : efs n,93,2,1,0 ,1 : swbreak ; 火傷 case 95 : n=btsc+1 : efs n,74,2,1,0 ,1 : swbreak ; 毒 case 96 : efs 1,43,2,1,0 ,1,9 ,9 : mmplays 114 : swbreak ; 再生 case 97 : efs 2,92,1,1,0 ,1 : mmplays 103 : swbreak ; 魅惑、敵 ; 特殊 case 101 : efs 2,76,1,1,0 ,1 : mmplays 103 : swbreak ; チャーム case 102 : efs 7,81,2,1,0 ,1 : mmplays 117 : swbreak ; ネクロマンサー case 103 : efs 2,82,1,1,0 ,1 : mmplays 118 : swbreak ; 吸血 case 104 : efs 2,83,1,1,0 ,1,7 ,7 : mmplays 119 : swbreak ; ナイトメア case 105 : efs 6,84,1,4,0 ,1,5 ,18 : mmplays 120 : swbreak ; ファイヤーブレス case 106 : efs 6,85,1,4,0 ,1,5 ,18 : mmplays 121 : swbreak ; コールドブレス case 107 : efs 6,47,2,1,0 ,1 : mmplays 75 : swbreak ; サンダーブレス case 108 : efs 4,86,1,2,15,1 : mmplays 123 : swbreak ; 咆哮 case 109 : efs 6,87,1,1,0 ,1,20,0 : mmplays 124 : swbreak ; ホーリーブレス case 110 : efs 4,78,2,1,20,1 : mmplays 125 : swbreak ; ポイズンブレス case 111 : efs 6,37,3,1,0 ,1 : mmplays 65 : swbreak ; 津波 case 112 : efs 2,89,2,1,0 ,1 : mmplays 127 : swbreak ; 火の息 case 113 : efs 2,27,1,1,0 ,1 : mmplays 56 : swbreak ; ファイアーボールの爆発 case 114 : efs 3,26,1,1,7 ,1 : mmplays 55 : swbreak ; ファイアーボール case 115 : efs 6,29,3,1,0 ,1 : mmplays 130 : swbreak ; ファイアーストーム case 116 : efs 6,39,2,1,0 ,1 : mmplays 131 : swbreak ; コールドストーム case 117 : efs 2,80,2,1,0 ,1 : mmplays 132 : swbreak ; ダークスフィア case 118 : efs 3,48,3,0,20,1 : mmplays 133 : swbreak ; ウィンドストーム case 119 : efs 3,23,2,0,17,1 : mmplays 134 : swbreak ; 火炎弾 case 120 : efs 2,101,1,0,0,1 : mmplays 135 : swbreak ; 岩投下 case 121 : efs 1,102,2,0,0,1 : mmplays 86 : swbreak ; 天使系ヒール case 122 : efs 5,69,3,1,0 ,1,50,15 : swbreak ; 天使系ヒールオール case 123 : efs 1,103,1,1,0,1 : swbreak ; ヒールソング ; アイテム case 201 : efs 1,94,2,1,0 ,1,6,6 : mmplays 41 : swbreak ; 包帯 case 202 : efs 1,95,2,1,0 ,1 : mmplays 42 : swbreak ; ポーション case 203 : efs 1,94,2,1,0 ,1,7,7 : swbreak ; 救急箱 case 204 : efs 1,95,2,1,0 ,1,14,14 : mmplays 43 : swbreak ; ラージポーション case 205 : efs 1,96,2,1,0 ,1,8,8 : mmplays 44 : swbreak ; 火傷の塗り薬 case 206 : efs 1,97,2,1,0 ,1,8,8 : mmplays 45 : swbreak ; ファイアードロップ case 207 : efs 1,98,2,1,0 ,1,8,8 : mmplays 46 : swbreak ; マヒ消し case 208 : efs 1,56,2,1,0 ,1,8,8 : mmplays 47 : swbreak ; 気付け薬 case 209 : efs 1,99,2,1,0 ,1,8,8 : mmplays 48 : swbreak ; 毒消し case 210 : efs 3,105,10,1,7,1,25,25 : swbreak ; ダイナマイト case 211 : efs 3,106,10,1,7,1,25,25 : swbreak ; 爆弾 ; 投擲 96、剣45 ; ヒールソング 112f ; 天使系ヒール 074,回復系1-1, ; 急降下085、084.剣2-3 ; 岩投下、地1-2、1-3、地1、 ; 火炎弾102a火16 ;包帯 008.013b-1.51.116a, ;POT 107f.029, ;キュア 025,029.051~.065~、073.013a,013a-1,013a-2, ;解毒 回復12, ;解麻痺、気絶 回復2,光3. ;解火傷 火2,火3, ;解氷 水1 ;解呪 闇17、 swend return
たくさん(3500行)書いてあるけど、これがこのゲームの表示のほとんど全てだ。
それと 660行までは表示のための変数定義になってる。
mes命令がコメントアウトで残ってるから、どこが変更になったのか多少分かると思う。
以上です。
後残ってる作業はオープニングとエンディング、後はテストプレイ、デバッグ、バランス調整。
発売は 4月か 5月になると思うけど、3年前の 5月から作り始めてるみたいなので、丸 3年かかったという事になりそう。