2020年 6月 23日
BGMは主に 0番を使うとして、SEは戦闘の始めに必要なものを 2~29番にロードする方法にした。
最大 6人 × アイテムスロット 7つと考えて、最大 SE数はザッと 42個と仮定できる。
27個以上の場合は、その SEは鳴らない事にする。
左上の緑の数字が読み込んだ音声ファイル No.の最大数、白い数字は各 SEが何番のファイル No.に割り当てられたかを示す。
戦闘に入る直前に割り当てと読み込みを行う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
;------- SEセット ------- repeat senob : seno(21+cnt)=0 : loop senon=2 ; SEセットNo. ; 状態異常 semm_set 109 ; 麻痺 semm_set 110 ; スタン semm_set 111 ; 魅惑、自 semm_set 112 ; 火傷 semm_set 113 ; 毒 repeat 3,1 ; SEセット、自部隊 un=fn1(cnt) : if un>0 : gosub *se_set loop repeat 3,1 ; SEセット、敵部隊 un=fn2(cnt) : if un>0 : gosub *se_set loop ; ボリュームセット if mt_sef=0 : sevo2=sevo : else : sevo2=0 ; ミュート repeat senob,21 : no=seno(cnt) if no=0 : continue n=mvo*sevo2*vo(no)-999 mmvol no,n loop ;------------------------ |
senoの配列変数は、各 SEが何番の音声ファイルNo.かを格納する。
senonは音声ファイルNo.
状態異常の 5個は必ずセットする、これはソース内に散見されるので、それを拾うプログラムが煩雑になるため。
*se_set、ここでそのユニットがどの SEを鳴らすのかを特定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
*se_set ; SEセット ug=un*udb : us=ud(ug) repeat 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 : semm_set 22 : break if us=71 or us=92 or us=96 or us=118 or us=132 or us=184 : semm_set 23 : break if us=7 or us=16 or us=52 or us=135 or us=168 : semm_set 24 : break 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 : semm_set 25 : break if us=31 or us=183 : semm_set 26 : break ; 急降下 semm_set 21 ; 素手 loop ; 特殊 if ud(ug+8)=33 : semm_set 114 ; 再生 if ud(ug)=156 or ud(ug)=71 or ud(ug)=195 or ud(ug)=201 : semm_set 103 ; 魅惑、キューピット、ネコ if ud(ug+8)=31 : semm_set 117 ; ネクロマンサー if ud(ug+8)=32 : semm_set 118 ; 吸血 if ud(ug+8)=35 : semm_set 119 ; ナイトメア if ud(ug+8)=50 : semm_set 120 ; ファイヤーブレス if ud(ug+8)=51 : semm_set 121 ; コールドブレス if ud(ug+8)=52 : semm_set 75 ; サンダーブレス if ud(ug+8)=53 : semm_set 123 ; 咆哮 if ud(ug+8)=54 : semm_set 124 ; ホーリーブレス if ud(ug+8)=55 : semm_set 125 ; ポイズンブレス if ud(ug+8)=56 : semm_set 65 ; 津波 if ud(ug+8)=60 : semm_set 127 ; 火の息 if ud(ug+8)=61 : semm_set 55 ; ファイアーボール if ud(ug+8)=62 : semm_set 130 ; ファイアーストーム if ud(ug+8)=63 : semm_set 131 ; コールドストーム if ud(ug+8)=64 : semm_set 132 ; ダークスフィア if ud(ug+8)=65 : semm_set 133 ; ウィンドストーム if ud(ug+8)=66 : semm_set 134 ; 火炎弾 if ud(ug+8)=44 : semm_set 135 ; 岩投下 if ud(ug)=151 or ud(ug)=155 or ud(ug)=157 : semm_set 86 ; 天使系ヒール if ud(ug+8)=71 : semm_set 97 ; ヒールオール if ud(ug+8)=72 : semm_set 86 ; ヒールソング if ud(ug)=85 : semm_set 95 ; シスター ; その他のエフェクト if itn=257 or itn=221 or itn=222 or itn=90 or ud(ug+8)=61 : semm_set 56 : semm_set 40 ; 爆発、ファイアーボール、ダイナマイト、爆弾、大砲 if itn=286 or id(ig+8)=36 : semm_set 103 ; 魅惑、敵 ; アイテム if itn=201 : semm_set 41 ; 包帯 if itn=202 : semm_set 42 ; ポーション if itn=203 ; 救急箱 if itn=204 : semm_set 43 ; ラージポーション if itn=205 : semm_set 44 ; 火傷の塗り薬 if itn=206 : semm_set 45 ; ファイアードロップ if itn=207 : semm_set 46 ; マヒ消し if itn=208 : semm_set 47 ; 気付け薬 if itn=209 : semm_set 48 ; 毒消し repeat sbkn ; 装備 in=ud(ug+40+cnt) : if in<=0 : continue ig=in*idb : itn=id(ig) repeat 1 ; セット ; 武器 if itn=9 or itn=10 or itn=16 or itn=24 : semm_set 27 : continue ; 曲刀 if itn=8 or itn=11 or itn=14 or itn=23 : semm_set 28 : continue ; 刺突剣 if id(ig+19)=1 : semm_set 29 : continue ; 剣 if id(ig+19)=2 : semm_set 30 : continue ; 大剣 if id(ig+19)=3 : semm_set 31 : continue ; 槍 if id(ig+19)=4 : semm_set 32 : continue ; 斧 if id(ig+19)=5 : semm_set 33 : continue ; 槌 if id(ig+19)=6 : semm_set 34 : continue ; 杖 ; 投射武器 if id(ig+19)=7 : semm_set 35 : continue ; 弓 if id(ig+19)=8 : semm_set 36 : continue ; ボウ if itn=90 : semm_set 37 : continue ; 大砲 if id(ig+19)=9 : semm_set 38 : continue ; 銃 if id(ig+8)=1 : semm_set 39 : continue ; 投擲 ; 魔法 if itn=252 : semm_set 49 : continue ; ファイヤー if itn=253 : semm_set 50 : continue ; ファイヤーウェポン if itn=256 : semm_set 51 : continue ; バーサーク if itn=255 : semm_set 52 : continue ; ファイヤーピレイム if itn=254 : semm_set 53 : continue ; フレイムアロー if itn=251 : semm_set 54 : continue ; バトルソング if itn=257 : semm_set 55 : continue ; ファイアーボール if itn=258 : semm_set 57 : continue ; ファイヤーウォール if itn=259 : semm_set 58 : continue ; エクスプロージョン if itn=263 : semm_set 58 : continue ; アイスニードル if itn=261 : semm_set 59 : continue ; ウォーターストリーム if itn=262 : semm_set 60 : continue ; ピュリファイ if itn=266 : semm_set 61 : continue ; アイスエンチャント if itn=265 : semm_set 62 : continue ; アイスジャベリン if itn=267 : semm_set 63 : continue ; アイスピラー if itn=264 : semm_set 64 : continue ; ウォータースクリーン if itn=270 : semm_set 65 : continue ; 津波 if itn=268 : semm_set 66 : continue ; メイルシュトローム if itn=269 : semm_set 67 : continue ; ブリザード if itn=284 : semm_set 68 : continue ; ウインドカッター if itn=281 : semm_set 69 : continue ; ウインドムーブ if itn=283 : semm_set 70 : continue ; サンダー if itn=282 : semm_set 71 : continue ; ウィンドエンチャント if itn=287 : semm_set 72 : continue ; サンダーウエポン if itn=286 : semm_set 73 : continue ; セイレーンボイス if itn=285 : semm_set 74 : continue ; ウィンドウォール if itn=288 : semm_set 75 : continue ; ライトニングボルト if itn=289 : semm_set 76 : continue ; ウィンドストーム if itn=291 : semm_set 77 : continue ; アースキュア if itn=298 : semm_set 78 : continue ; ハードコーティング if itn=295 : semm_set 79 : continue ; ネイチャーヒール if itn=292 : semm_set 80 : continue ; グラヴィティマグネット if itn=294 : semm_set 81 : continue ; グラビティウエポン if itn=293 : semm_set 82 : continue ; バインディングブランチ if itn=296 : semm_set 83 : continue ; ストーンブラスト if itn=297 : semm_set 84 : continue ; ゴーレムクリエイト if itn=299 : semm_set 85 : continue ; アースクエイク if itn=308 : semm_set 86 : continue ; ヒール if itn=303 : semm_set 87 : continue ; ターンアンデッド if itn=302 : semm_set 88 : continue ; フォースセンス if itn=304 : semm_set 89 : continue ; ホーリーライトキュア if itn=311 : semm_set 90 : continue ; ホーリーウエポン if itn=305 : semm_set 91 : continue ; プロテクト if itn=307 : semm_set 92 : continue ; レイアロー if itn=310 : semm_set 93 : continue ; サイキックフォース if itn=301 : semm_set 94 : continue ; ブレス if itn=309 : semm_set 95 : continue ; ホーリーライトサークル if itn=306 : semm_set 96 : continue ; レイブレイド if itn=312 : semm_set 97 : continue ; ホーリーライトヒール if itn=313 : semm_set 98 : continue ; ウィル・オ・ウィスプ if itn=314 : semm_set 99 : continue ; リザレクション if itn=324 : semm_set 100 : continue ; マインドブラスト if itn=322 : semm_set 101 : continue ; ポイズン if itn=326 : semm_set 102 : continue ; 邪眼 if itn=323 : semm_set 103 : continue ; チャーム if itn=321 : semm_set 104 : continue ; ウィークネス if itn=328 : semm_set 105 : continue ; カース if itn=325 : semm_set 106 : continue ; ダークネス if itn=327 : semm_set 107 : continue ; フレイムカース if itn=329 : semm_set 108 : continue ; デモンズゲート loop loop return |
これを書くのに時間がかかった。
今回は付けたし変更だったため、このような無様な(笑)ソースになったが、始めからならもう少し合理的な方法を考えたい所。
特定したら、その SEの音声ファイルNo.をセットし、その No.にデータを読み込む。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
#deffunc semm_set int semm_setn ; SEセット semmn=semm_setn if senon>29 : return ; 登録上限 if seno(semmn)>0 : return ; 登録済み repeat 1 if semmn=21 : seno(21)=senon : mmload fi3+"panchi10.wav" ,senon,0 : vo(senon)=5 : break ; 素手 if semmn=22 : seno(22)=senon : mmload fi3+"kiba.wav" ,senon,0 : vo(senon)=6 : break ; 牙 if semmn=23 : seno(23)=senon : mmload fi3+"tume5.wav" ,senon,0 : vo(senon)=5 : break ; 爪 if semmn=24 : seno(24)=senon : mmload fi3+"sipo.wav" ,senon,0 : vo(senon)=9 : break ; 尾 if semmn=25 : seno(25)=senon : mmload fi3+"takle.wav" ,senon,0 : vo(senon)=8 : break ; 体当たり if semmn=26 : seno(26)=senon : mmload fi3+"kouka.wav" ,senon,0 : vo(senon)=8 : break ; 急降下 if semmn=27 : seno(27)=senon : mmload fi3+"kyokuto2.wav" ,senon,0 : vo(senon)=10 : break ; 曲刀 if semmn=28 : seno(28)=senon : mmload fi3+"sitotu.wav" ,senon,0 : vo(senon)=10 : break ; 刺突剣 if semmn=29 : seno(29)=senon : mmload fi3+"swad.wav" ,senon,0 : vo(senon)=10 : break ; 剣 if semmn=30 : seno(30)=senon : mmload fi3+"bswad3.wav" ,senon,0 : vo(senon)=7 : break ; 大剣 if semmn=31 : seno(31)=senon : mmload fi3+"spia.wav" ,senon,0 : vo(senon)=9 : break ; 槍 if semmn=32 : seno(32)=senon : mmload fi3+"axe3.wav" ,senon,0 : vo(senon)=10 : break ; 斧 if semmn=33 : seno(33)=senon : mmload fi3+"club.wav" ,senon,0 : vo(senon)=10 : break ; 槌 if semmn=34 : seno(34)=senon : mmload fi3+"stick.wav" ,senon,0 : vo(senon)=9 : break ; 杖 if semmn=35 : seno(35)=senon : mmload fi3+"bow.wav" ,senon,0 : vo(senon)=6 : break ; 弓 if semmn=36 : seno(36)=senon : mmload fi3+"cbow.wav" ,senon,0 : vo(senon)=8 : break ; ボウ if semmn=37 : seno(37)=senon : mmload fi3+"canon.wav" ,senon,0 : vo(senon)=10 : break ; 大砲 if semmn=38 : seno(38)=senon : mmload fi3+"gun.wav" ,senon,0 : vo(senon)=10 : break ; 銃 if semmn=39 : seno(39)=senon : mmload fi3+"throw.wav" ,senon,0 : vo(senon)=8 : break ; 投擲 if semmn=40 : seno(40)=senon : mmload fi3+"bom.wav" ,senon,0 : vo(senon)=1 : break ; 爆弾 if semmn=41 : seno(41)=senon : mmload fi3+"houtai.wav" ,senon,0 : vo(senon)=6 : break ; 包帯 if semmn=42 : seno(42)=senon : mmload fi3+"pot.wav" ,senon,0 : vo(senon)=10 : break ; POT if semmn=43 : seno(43)=senon : mmload fi3+"lpot.wav" ,senon,0 : vo(senon)=10 : break ; LPOT if semmn=44 : seno(44)=senon : mmload fi3+"f_drug.wav" ,senon,0 : vo(senon)=10 : break ; 火傷の塗り薬 if semmn=45 : seno(45)=senon : mmload fi3+"i_drug.wav" ,senon,0 : vo(senon)=10 : break ; ファイアードロップ if semmn=46 : seno(46)=senon : mmload fi3+"pa_drug.wav" ,senon,0 : vo(senon)=10 : break ; マヒ消し if semmn=47 : seno(47)=senon : mmload fi3+"s_drug.wav" ,senon,0 : vo(senon)=10 : break ; 気付け薬 if semmn=48 : seno(48)=senon : mmload fi3+"po_drug.wav" ,senon,0 : vo(senon)=10 : break ; 毒消し if semmn=49 : seno(49)=senon : mmload fi3+"fire3.wav" ,senon,0 : vo(senon)=10 : break ; ファイアー if semmn=50 : seno(50)=senon : mmload fi3+"enchant.wav" ,senon,0 : vo(senon)=6 : break ; エンチャント if semmn=51 : seno(51)=senon : mmload fi3+"berserk2.wav" ,senon,0 : vo(senon)=10 : break ; バーサーク if semmn=52 : seno(52)=senon : mmload fi3+"pireim2.wav" ,senon,0 : vo(senon)=10 : break ; ピレイム if semmn=53 : seno(53)=senon : mmload fi3+"farow.wav" ,senon,0 : vo(senon)=10 : break ; フレイムアロー if semmn=54 : seno(54)=senon : mmload fi3+"bsong.wav" ,senon,0 : vo(senon)=10 : break ; バトルソング if semmn=55 : seno(55)=senon : mmload fi3+"fb_tou2.wav" ,senon,0 : vo(senon)=10 : break ; ファイアーボール投げ if semmn=56 : seno(56)=senon : mmload fi3+"fb_bom2.wav" ,senon,0 : vo(senon)=10 : break ; ファイアーボール爆発 if semmn=57 : seno(57)=senon : mmload fi3+"fwall4.wav" ,senon,0 : vo(senon)=10 : break ; ファイアーウォール if semmn=58 : seno(58)=senon : mmload fi3+"fexp3.wav" ,senon,0 : vo(senon)=10 : break ; エクスプロージョン if semmn=58 : seno(58)=senon : mmload fi3+"inidru2.wav" ,senon,0 : vo(senon)=10 : break ; アイスニードル if semmn=59 : seno(59)=senon : mmload fi3+"wstrm.wav" ,senon,0 : vo(senon)=10 : break ; ウォーターストリーム if semmn=60 : seno(60)=senon : mmload fi3+"pyuri.wav" ,senon,0 : vo(senon)=10 : break ; ピュリファイ if semmn=61 : seno(61)=senon : mmload fi3+"i_encya3.wav" ,senon,0 : vo(senon)=3 : break ; アイスエンチャント if semmn=62 : seno(62)=senon : mmload fi3+"ijyabe.wav" ,senon,0 : vo(senon)=10 : break ; アイスジャベリン if semmn=63 : seno(63)=senon : mmload fi3+"ipira.wav" ,senon,0 : vo(senon)=10 : break ; アイスピラー if semmn=64 : seno(64)=senon : mmload fi3+"wscren.wav" ,senon,0 : vo(senon)=7 : break ; ウォータースクリーン if semmn=65 : seno(65)=senon : mmload fi3+"tunami.wav" ,senon,0 : vo(senon)=8 : break ; 津波 if semmn=66 : seno(66)=senon : mmload fi3+"meilsyu.wav" ,senon,0 : vo(senon)=10 : break ; メイルシュトローム if semmn=67 : seno(67)=senon : mmload fi3+"c_storm.wav" ,senon,0 : vo(senon)=8 : break ; ブリザード if semmn=68 : seno(68)=senon : mmload fi3+"cutter.wav" ,senon,0 : vo(senon)=8 : break ; ウインドカッター if semmn=69 : seno(69)=senon : mmload fi3+"move.wav" ,senon,0 : vo(senon)=10 : break ; ウインドムーブ if semmn=70 : seno(70)=senon : mmload fi3+"thunder.wav" ,senon,0 : vo(senon)=10 : break ; サンダー if semmn=71 : seno(71)=senon : mmload fi3+"encha_w.wav" ,senon,0 : vo(senon)=7 : break ; ウィンドエンチャント if semmn=72 : seno(72)=senon : mmload fi3+"encha_t.wav" ,senon,0 : vo(senon)=10 : break ; サンダーウエポン if semmn=73 : seno(73)=senon : mmload fi3+"silent2.wav" ,senon,0 : vo(senon)=10 : break ; セイレーンボイス if semmn=74 : seno(74)=senon : mmload fi3+"w_wall3.wav" ,senon,0 : vo(senon)=10 : break ; ウィンドウォール if semmn=75 : seno(75)=senon : mmload fi3+"l_bolt.wav" ,senon,0 : vo(senon)=4 : break ; ライトニングボルト if semmn=76 : seno(76)=senon : mmload fi3+"w_storm2.wav" ,senon,0 : vo(senon)=10 : break ; ウィンドストーム if semmn=71 : seno(71)=senon : mmload fi3+"eath_qua.wav" ,senon,0 : vo(senon)=10 : break ; アースキュア if semmn=71 : seno(71)=senon : mmload fi3+"coating2.wav" ,senon,0 : vo(senon)=10 : break ; ハードコーティング if semmn=71 : seno(71)=senon : mmload fi3+"heal_n.wav" ,senon,0 : vo(senon)=10 : break ; ネイチャーヒール if semmn=80 : seno(80)=senon : mmload fi3+"magnet.wav" ,senon,0 : vo(senon)=3 : break ; グラヴィティマグネット if semmn=81 : seno(81)=senon : mmload fi3+"skill.wav" ,senon,0 : vo(senon)=3 : break ; グラビティウエポン if semmn=82 : seno(82)=senon : mmload fi3+"bind.wav" ,senon,0 : vo(senon)=10 : break ; バインディングブランチ if semmn=83 : seno(83)=senon : mmload fi3+"stone.wav" ,senon,0 : vo(senon)=10 : break ; ストーンブラスト if semmn=84 : seno(84)=senon : mmload fi3+"golem.wav" ,senon,0 : vo(senon)=10 : break ; ゴーレムクリエイト if semmn=85 : seno(85)=senon : mmload fi3+"quake2.wav" ,senon,0 : vo(senon)=10 : break ; アースクエイク if semmn=86 : seno(86)=senon : mmload fi3+"heal.wav" ,senon,0 : vo(senon)=10 : break ; ヒール if semmn=87 : seno(87)=senon : mmload fi3+"tarnund2.wav" ,senon,0 : vo(senon)=10 : break ; ターンアンデッド if semmn=88 : seno(88)=senon : mmload fi3+"fors2.wav" ,senon,0 : vo(senon)=10 : break ; フォースセンス if semmn=89 : seno(89)=senon : mmload fi3+"hr_qua.wav" ,senon,0 : vo(senon)=10 : break ; ホーリーライトキュア if semmn=90 : seno(90)=senon : mmload fi3+"h_wapon.wav" ,senon,0 : vo(senon)=7 : break ; ホーリーウエポン if semmn=91 : seno(91)=senon : mmload fi3+"protect2.wav" ,senon,0 : vo(senon)=10 : break ; プロテクト if semmn=92 : seno(92)=senon : mmload fi3+"rayarow.wav" ,senon,0 : vo(senon)=9 : break ; レイアロー if semmn=93 : seno(93)=senon : mmload fi3+"psyfors.wav" ,senon,0 : vo(senon)=10 : break ; サイキックフォース if semmn=94 : seno(94)=senon : mmload fi3+"bless.wav" ,senon,0 : vo(senon)=10 : break ; ブレス if semmn=95 : seno(95)=senon : mmload fi3+"hr_cie.wav" ,senon,0 : vo(senon)=10 : break ; ホーリーライトサークル if semmn=96 : seno(96)=senon : mmload fi3+"raybrad.wav" ,senon,0 : vo(senon)=10 : break ; レイブレイド if semmn=97 : seno(97)=senon : mmload fi3+"hr_heal.wav" ,senon,0 : vo(senon)=10 : break ; ホーリーライトヒール if semmn=98 : seno(98)=senon : mmload fi3+"will_o.wav" ,senon,0 : vo(senon)=10 : break ; ウィル・オ・ウィスプ if semmn=99 : seno(99)=senon : mmload fi3+"riza.wav" ,senon,0 : vo(senon)=10 : break ; リザレクション if semmn=100 : seno(100)=senon : mmload fi3+"mindbrs5.wav" ,senon,0 : vo(senon)=4 : break ; マインドブラスト if semmn=101 : seno(101)=senon : mmload fi3+"poison.wav" ,senon,0 : vo(senon)=10 : break ; ポイズン if semmn=102 : seno(102)=senon : mmload fi3+"evileye2.wav" ,senon,0 : vo(senon)=6 : break ; 邪眼 if semmn=103 : seno(103)=senon : mmload fi3+"chrm.wav" ,senon,0 : vo(senon)=8 : break ; チャーム if semmn=104 : seno(104)=senon : mmload fi3+"weaknes.wav" ,senon,0 : vo(senon)=10 : break ; ウィークネス if semmn=105 : seno(105)=senon : mmload fi3+"curse.wav" ,senon,0 : vo(senon)=10 : break ; カース if semmn=106 : seno(106)=senon : mmload fi3+"darknes.wav" ,senon,0 : vo(senon)=8 : break ; ダークネス if semmn=107 : seno(107)=senon : mmload fi3+"f_curse3.wav" ,senon,0 : vo(senon)=10 : break ; フレイムカース if semmn=108 : seno(108)=senon : mmload fi3+"d_gate4.wav" ,senon,0 : vo(senon)=10 : break ; デモンズゲート if semmn=109 : seno(109)=senon : mmload fi3+"mahi3.wav" ,senon,0 : vo(senon)=10 : break ; 麻痺 if semmn=110 : seno(110)=senon : mmload fi3+"stan6.wav" ,senon,0 : vo(senon)=1 : break ; スタン if semmn=111 : seno(111)=senon : mmload fi3+"bs_chrm2.wav" ,senon,0 : vo(senon)=4 : break ; 魅惑、自 if semmn=112 : seno(112)=senon : mmload fi3+"bs_fire.wav" ,senon,0 : vo(senon)=7 : break ; 火傷 if semmn=113 : seno(113)=senon : mmload fi3+"bs_poi.wav" ,senon,0 : vo(senon)=8 : break ; 毒 if semmn=114 : seno(114)=senon : mmload fi3+"regene2.wav" ,senon,0 : vo(senon)=10 : break ; 再生 ;mmload fi3+"" ,115,0 : vo(115)=10 ; 魅惑、敵 ;mmload fi3+"" ,116,0 : vo(116)=8 ; チャーム if semmn=117 : seno(117)=senon : mmload fi3+"necro4.wav" ,senon,0 : vo(senon)=8 : break ; ネクロマンサー if semmn=118 : seno(118)=senon : mmload fi3+"bd_suck.wav" ,senon,0 : vo(senon)=6 : break ; 吸血 if semmn=119 : seno(119)=senon : mmload fi3+"nigtmea2.wav" ,senon,0 : vo(senon)=7 : break ; ナイトメア if semmn=120 : seno(120)=senon : mmload fi3+"f_bres.wav" ,senon,0 : vo(senon)=5 ; ファイヤーブレス if semmn=121 : seno(121)=senon : mmload fi3+"coldbrs.wav" ,senon,0 : vo(senon)=10 ; コールドブレス ;mmload fi3+"" ,122,0 : vo(122)=10 ; サンダーブレス if semmn=123 : seno(123)=senon : mmload fi3+"shout4.wav" ,senon,0 : vo(senon)=4 ; 咆哮 if semmn=124 : seno(124)=senon : mmload fi3+"holybrs.wav" ,senon,0 : vo(senon)=6 ; ホーリーブレス if semmn=125 : seno(125)=senon : mmload fi3+"p_bres2.wav" ,senon,0 : vo(senon)=8 ; ポイズンブレス ;mmload fi3+"" ,126,0 : vo(126)=10 ; 津波 if semmn=127 : seno(127)=senon : mmload fi3+"hinoiki2.wav" ,senon,0 : vo(senon)=10 ; 火の息 ;mmload fi3+"" ,128,0 : vo(128)=10 ; ファイアーボールの爆発 ;mmload fi3+"" ,129,0 : vo(129)=10 ; ファイアーボール if semmn=130 : seno(130)=senon : mmload fi3+"f_storm5.wav" ,senon,0 : vo(senon)=10 ; ファイアーストーム if semmn=131 : seno(131)=senon : mmload fi3+"brizad2.wav" ,senon,0 : vo(senon)=8 ; コールドストーム if semmn=132 : seno(132)=senon : mmload fi3+"dark_f.wav" ,senon,0 : vo(senon)=8 ; ダークスフィア if semmn=133 : seno(133)=senon : mmload fi3+"windstm.wav" ,senon,0 : vo(senon)=9 ; ウィンドストーム if semmn=134 : seno(134)=senon : mmload fi3+"kaendan.wav" ,senon,0 : vo(senon)=8 ; 火炎弾 if semmn=135 : seno(135)=senon : mmload fi3+"rockdwn.wav" ,senon,0 : vo(senon)=10 ; 岩投下 ;mmload fi3+"" ,136,0 : vo(136)=10 ; 天使系ヒール ;mmload fi3+"" ,137,0 : vo(137)=10 ; 天使系ヒールオール ;mmload fi3+"" ,138,0 : vo(138)=10 ; ヒールソング loop senon+ ; seNo.+ return |
データの読み込みが戦闘の始めに行われるため、戦闘に入るまでにタイムラグが発生してしまう、たぶん市販のゲームの LOADINGもこんな感じなんだろうな。
全部検証したらボリュームのセットを行う。
音を鳴らすときは今まで使っていた mmplays(作った関数)を少し改造したものを使う、呼び出しの鳴らす方のソースはそのままで済む。
1 2 3 4 5 6 7 8 9 |
#deffunc mmplays int mmplaysn ; SEを鳴らす senon=mmplaysn if mvo=0 or sevo=0 or mt_sef>0 : return ; ミュート if seno(senon)>0 : mmplay seno(senon) return |
mmplay seno(senon)で、指定の SEを鳴らす事ができる訳だ。
音声関係の調整はまだ全部終わってませんけど、おおむねこれで対応できたと思います。