逆コンパイル向け > 解析情報 > map_data

map_data

マップ関連

MAP情報を格納する配列の中に格納されている。

ワールドマップ上に存在するマップオブジェクトの一覧
adata.s1

dim adata, 40, 200 ~Version 1.16 reloaded fix 3(2009 Christmas Edition)
 40要素 × 200オブジェクト分
dim adata, 40, 500 Version 1.17(開発版)~Version 1.22(開発版)
 40要素 × 500オブジェクト分

adata(00, マップNo) マップタイプ
01:ワールドマップ
・ノースティリス
02:アクリ・テオラ、ラーナ、工房ミラル・ガロク、パルミア大使館
03:街
・ヴェルニース
・ヨウィン
・パルミア
・ダルフィ
・ポート・カプール
・ノイエル
・ルミエスト
04:野外
05:プレイヤー物件
・わが家
・シェルター(プレイヤー物件)
・牧場
・博物館
・店
・畑
・倉庫
06:ルミエスト墓所、神々の休戦地、妹の館、
混沌の城《獣》、混沌の城《機甲》、混沌の城《奇形》、実験場、シェルター(各街)
07:ハウスドーム、闘技場、コロシアム、即時依頼時マップ
20:ダンジョン(洞窟)
・レシマス
・死者の洞窟
・竜窟
・山道
・子犬の洞窟
・ミノタウロスの巣
・イークの洞窟
・ピラミッド
21:ダンジョン(塔)
・灼熱の塔
22:ダンジョン(森)
23:ダンジョン(砦)
・古城
adata(1, マップNo) マップオブジェクトが存在するワールドマップ上のX座標
adata(2, マップNo) マップオブジェクトが存在するワールドマップ上のY座標
adata(3, マップNo) マップ進入時の配置(map_placecharaonentrance)
adata(4, マップNo) マップの描画に使用するマップチップセットの指定 ⇒mdata(02)
adata(5, マップNo) ランダムダンジョン接続語タイプ
0:typeA
1:typeB
危険度  typeA       : typeB
危険度1~4  はじまりの     : 安全な
危険度5~9  時めきの      : 冒険者の
危険度10~14  迷いの       : 勇者の
危険度15~15  死の        : 闇の
危険度20以上  混沌の       : 不帰の
adata(6, マップNo) マップの到達最深階
adata(9, マップNo) ターンコスト
マップ上に存在する全ユニットに速度を加算
mdata(9)のターンコスト値以上になると行動
マップ上に存在する全ユニットに対し、cdata(10)がmdata(9)以上かを判定。
判定が真ならcdata(10)からmdata(9)を減算
判定が偽となるまでそのユニットのターンを繰り返す。
判定が偽なら次のユニットの判定へ
adata(10, マップNo) マップの最深階
adata(11, マップNo) マップ再生成フラグ ⇒mdata(07)
adata(12, マップNo) マップのユニット標準位置が参照されるフラグ(再配置・aiDull) ⇒mdata(8)
adata(15, マップNo) マップオブジェクトのチップ番号
adata(16, マップNo) マップオブジェクト識別番号
マップNoとは必ずしも対応しない(特に複数建てられる物件)が、多くの場合は一致している。
002:野外
003:レシマス
004:ノースティリス
005:ヴェルニース
006:闘技場
007:わが家
008:ランダムダンジョン
009:実験場
010:ルミエスト墓所
011:ポート・カプール
012:ヨウィン
013:即時依頼時マップ
・街近辺
・市街地
・パーティー会場
・※依頼内容によって変化
014:ダルフィ
015:パルミア
016:灼熱の塔
017:死者の洞窟
018:古城
019:竜窟
020:神々の休戦地
021:アクリ・テオラ
022:混沌の城《獣》
023:混沌の城《機甲》
024:混沌の城《奇形》
025:ラーナ
026:山道
027:子犬の洞窟
028:イークの洞窟
029:妹の館
030:シェルター
031:牧場
032:パルミア大使館
033:ノイエル
034:工房ミラル・ガロク
035:ハウスドーム
036:ルミエスト
037:ピラミッド
038:ミノタウロスの巣
040:コロシアム
041:牢獄
042:すくつ
043:ノースティリス南関所
044:サウスティリス
045:サウスティリス北関所
046:煙とパイプ亭
047:テストワールド
048:テストワールド北関所
101:博物館
102:店
103:畑
104:倉庫
adata(17, マップNo) マップの開始階層(=危険度)
adata(18, マップNo) マップで使用するタイル種類(map_tileset) ⇒mdata(12)
adata(20, マップNo) ダンジョンの主討伐フラグ
-1:討伐済み
adata(21, マップNo) 屋内フラグ(天候の影響に使用 1:屋内 2:屋外)
adata(22, マップNo) アリーナ連勝数
adata(23, マップNo) ペットアリーナ連勝数
adata(24, マップNo) アリーナの対戦相手(決闘)用乱数種?
adata(25, マップNo) 次のアリーナの乱数種初期化日時
%s < 現在時刻なら挑戦できない。
adata(26, マップNo) アリーナの対戦相手(ランブル)用乱数種?
次の決闘の開始日時。
adata(27, マップNo) 次のランブルの開始日時。
adata(28, マップNo) 街フラグ(タウンデータ用)
adata(29, マップNo) 聖夜祭フラグ
adata(30, マップNo) 脱出先マップNo? ⇒gdata(850)




Version 1.02(開発版)~Version 1.16 reloaded fix 3(2009 Christmas Edition)
Version 1.02(開発版)以前は未確認
マップNo100~149はプレイヤーが建設する我が家以外の建物用、マップNo150~199はランダムダンジョン用。

Version 1.17(開発版)~Version 1.22(開発版)
マップNo300~449はプレイヤーが建設する我が家以外の建物用、マップNo450~499はランダムダンジョン用。

どちらも使用されていない領域(adata(16, マップNo) == 0)に新しく作られる。
使用されていない領域が無ければ生成に失敗する。

ワールドマップ上に存在する各マップオブジェクトの詳細?(目次みたいなもの?)

mdata_????.s2
dim mdata, 100
mdata(0) 現在いるマップのX方向の大きさ
mdata(1) 現在いるマップのY方向の大きさ
mdata(2) 現在いるマップの描画に使用するマップチップセットの指定
※Version 1.22(開発版)時点では単純にgraphicフォルダ内のmap?.bmpの ?部分をあらわす整数値
mdata(3) 次回マップ再生成年月日時?(未生成なら0 再生成したら現在日時+120)
(年 * 24 * 30 * 12) + (月 * 24 * 30) + (日 * 24) + (時)
(例)0=0年0月0日 744=0年1月1日 
mdata(4) 現在いるマップの降り階段のX座標 + Y座標 * 1000
mdata(5) 現在いるマップの昇り階段のX座標 + Y座標 * 1000
mdata(6) 現在いるマップのタイプ
1:ワールドマップ
3:街(依頼掲示板有り)(?)
5:
mdata(7) マップ再生成フラグ(?)
0:強制新規再作成
マップデータ(mdata_xxx.s2)が存在していても必ず新規作成
ビッグダディが出現しない
1:任意再生成
mdata(8) 現在いるマップでユニット標準位置が参照されるフラグ
mdata(9) 現在いるマップのターンコスト
mdata(10) ランダム生成係数(固定でないキャラ・アイテムの初期生成とキャラの再沸きに使用)
mdata(12) マップで使用するタイル種類(map_tileset)
mdata(13) BGM番号
mdata(14) 現在のマップの屋内フラグ(天候の影響に使用 1:屋内 2:屋外)
mdata(15) ユーザーマップフラグ?
mdata(16) 次回NPCアイテム補充年月日時(補充したら現在日時+24)
(年 * 24 * 30 * 12) + (月 * 24 * 30) + (日 * 24) + (時) + 24
(例)24=0年0月0日 768=0年1月1日 
mdata(17) クエストマップフラグ?
mdata(18) マップに置けるアイテムの最大数?
mdata(19) バージョン番号(1.12なら1120)+マップ再生成回数
mdata(20) 焚き火音フラグ



mdatan_????.s2
sdim mdatan, 20, 2
改行付きテキストファイル
2行
1:マップ名?
2:?
※mdata_????.s2とセット
3次元配列
map(X座標, Y座標, 0) = マップチップ番号(表示・未探索のときはそのマップの汎用チップ)
map(X座標, Y座標, 1) = ユニット番号+1
map(X座標, Y座標, 2) = マップチップ番号(設定)
map(X座標, Y座標, 3) = 未使用
map(X座標, Y座標, 4) = アイテム情報(設定)
1個なら上位2バイトにアイテムチップ番号 下位2バイトにアイテム色番号
4個以上なら上位2バイトに363:袋のチップ番号 下位2バイトに0:無色
2個なら上のアイテムから順に(-1) * ((アイテムNo - 5080) + (アイテムNo - 5080) * 1000 + 999 * 1000000)
3個なら上のアイテムから順に(-1) * ((アイテムNo - 5080) + (アイテムNo - 5080) * 1000 + (アイテムNo - 5080) * 1000000)
map(X座標, Y座標, 5) = アイテム情報(表示)
map(X座標, Y座標, 6) = マップフィート情報(罠・階段など)
feat + feat(1) * 1000 + feat(2) * 100000 + feat(3) * 10000000
map(X座標, Y座標, 7) = 血飛沫レベル + 破片レベル *10
map(X座標, Y座標, 8) = マップ効果番号+1
map(X座標, Y座標, 9) = 光源情報 ⇒lightdata,ilight
※mdata_???_???.s2とセット

マップフィート情報
dim feat, 5
feat = チップ番号(表示)
feat(1) = マップフィート種類
           10:昇り階段
           11:降り階段
           14:罠
           15:マップオブジェクト(マップNo = feat(2) + feat(3) * 100)
           20:開いた扉
           21:閉じた扉
           22:隠し通路
           23:依頼掲示板
           24:探索スポット
           25:採掘スポット
           26:釣りスポット
           27:残骸スポット
           28:採取スポット
           29:種を植えた場所
           30:壷
           31:投票箱
           32:小さなメダル
           33:街掲示板
           34:建物(炭鉱・灯台等)
feat(2) = 付加情報1(階段先の階層・罠番号・開錠難度・種の種類)
feat(3) = 付加情報2(地雷設置ユニット・栽培日数)
feat(4) = 未使用


マップ効果情報
mef_???_???.s1
dim mef, 9, 200
マップ効果数が200超えたらランダムな番号の効果を消す
mef(0, 効果番号) = マップ効果種類
                  1:蜘蛛の巣 2:闇の霧 3:酸の海 4:エーテルの海 5:火柱 6:ポーション類 7:原子爆弾
mef(1, 効果番号) = アイテムチップ番号 + 色番号 *10000
mef(2, 効果番号) = X座標
mef(3, 効果番号) = Y座標
mef(4, 効果番号) = 持続ターン(-1でターンによる消滅なし)
mef(5, 効果番号) = スペルパワー
mef(6, 効果番号) = 効果元ユニット(hostileactionやcheck_killで使用)
mef(7, 効果番号) = ポーション類ならアイテムID ⇒inv(03,アイテムNo)
mef(8, 効果番号) = ポーション類なら祝呪状態 ⇒inv(17,アイテムNo)
※mdata_???_???.s2とセット


マップチップ情報
dim chipm, 8, 33 * 25
mdata(2):map?.bmpの種類 によって同じマップチップ番号でも効果は変わるので注意
chipm(0, チップ番号) = マップ種類
                      1:日干し岩 2:畑 3:水 4:雪原 6:収容所の壁 7:砂漠 8:荒野 10:浅瀬
chipm(1, チップ番号) = マップ種類2
                      5:温泉 9:境界
chipm(2, チップ番号) = 壁種類
                      1:壁下端 2:壁内部
chipm(3, チップ番号) = アニメコマ数(連番のチップをアニメに使う)
chipm(4, チップ番号) = 未使用
chipm(5, チップ番号) = 上にずらすピクセル数
                      6:砦 8:森 16:塔・灼熱の塔・混沌の城 56:ムーンゲート?
chipm(6, チップ番号) = 下も描画するピクセル数
                      48:ムーンゲート?
chipm(7, チップ番号) = 効果
                      1:射線を遮る 4:通行不可(視界○) 5:通行不可

縦 = チップ番号 / 33
横 = チップ番号 \ 33


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2014年04月22日 10:20