データ構造

Last-modified: 2024-05-04 (土) 21:39:39

this.loader.dataが持つプロパティのデータ構造を記載します。
起動に必要なデータはchalist,itemlist,enelist,droplist,talkdata,floorname,skilldata,challengedata,ezukan,izukan
です。最低でもchalist,itemlist,enelist,skilldata がほしいです。未確定な情報は"?"にしてあり適当な値もあります。


目次


chalist

一人分 = ”NO/NAME/JOB/avatar/LV/COST/INFO”
chalist = "一人分\n一人分\n.."

  • NO = NPCのNo.であり、charaData.charaListに格納されるときのインデックス
  • NAME = NPCの名前
  • JOB = 職業。(0=ニュートラル、1=ファイター、2=ハンター、3=メイジ、4=プリースト、5=サモナー、9=ロード、10=ガード)
  • avatar = 最大5文字の文字列。5文字="髪型+顔と髪の色+帽子+服+特殊コスチューム"。特殊コスチュームはトーキンの眼鏡などに使われる。特殊コスチュームが無い場合は5文字目は必要無い。"0000"にすると、「茶髪、NPCのマイケルと同じ髪型、全裸」になる。また、「たてふだ」、「ほんだな」、「ボンチッチ」、「ポロン」などの特殊NPCには特別なグラフィックが用意されており、avatarを0文字にすると適応される。(※特殊NPC以外のavatarを0文字にするとエラーが発生するので注意)
    コード内のChara.avatar_str の文字を見ればわかる
  • LV = NPCのLV
  • COST = 雇う際に必要なG
  • INFO = ステータス画面のINFOで見れるキャラの説明。wikiに記載されている説明をコピーして、"\n"の部分を" "に変えるといい感じに改行される。

例. "144/コースタン/4/002J/7/750/ようへいを ふくぎょうとするプリースト。 おさけが のめない たいしつのため、 ふだんは さかばで ミルクをのみながら しごとを まっている。"

また、NO=1,2,3,4,5は、プレイヤーキャラの処理にも一部使われる。ファイターの場合、NO=1、ハンターの場合、NO=2、メイジの場合、NO=3、プリーストの場合、NO=4、サモナーの場合、NO=5が使われる。

COST=-1にすると雇えなくなる

最低限avatar=1にしておけば裸になるけど一応動く

同じキャラでも複数あるやつもいる


itemlist

アイテムのデータが書いてあるリスト

itemlist = "item1\nitem2\nitem3\n..."
item* = "NO/NAME/HD/ATK1/ATK2/DEF/DELAY/BLOCK/BRANGE/ACT/PRICE/OPset/RP/INFO"

  • NO = itemData.itemListに格納されるときのインデックス
  • NAME = アイテムのなまえ
  • HD = 0 -> 片手武器, 1->両手武器
  • ATK1 = 攻撃力の最小値に使われる値
  • ATK2 = 攻撃力の最大値に使われる値
  • DEF = 防御力
  • DELAY = 攻撃の頻度
  • BLOCK = ブロック率
  • BRANGE = ブロック範囲
  • ACT = アイテムについてるスキル・わざ
  • PRICE = 買値
  • OPset = オプションの集合、"{武器種}:{OP1}:{OP2}:..."
  • RP = プレミアムの場合のオプション、"{OP1}:{val1}_{OP2}:{val2}_..."
  • INFO = アイテムの説明

オプション対応表

しゃてい=ranかず=numAかず(B)=numBかず(C)=numCかず(D)=numDれんぞく=cntこうげきりょく+=ataこうげきりょく+%=atcぶつりたいせい=gadrぶろっくりつ=blcかんつう=pirはんい=sprノックバック=shoかいひりつ=dogクリティカルヒット=crtホーミング=homぼうぎょはかい=brkサイズ=sizスタン=frzめいちゅうりつm=hitコスト=cstじかんA=timAじかんB=timBじかんC=timCひばしら=firえんじょうかくりつ=burしょうげきは=impダメージ=dmgこうげきそくど=agiブロックはんい=brnブロックこうちょく=bloひがいダメージ=gadぞくせいたいせい=regaかえんたいせい=regfれいきたいせい=regcでんきたいせい=reglどくたいせい=regpじょうたいいじょうたいせい=reguこんらん=cofどく=pznHP+=hpHP+%=hprMP+=mpMP+%=mprぼうぎょ+=defaぼうぎょ+%=defrしもべのHP=smHPしもべのこうげき=smATCしもべのぼうぎょ=smDEFHPきゅうしゅう=draMPきゅうしゅう=mdrぼうぎょむし=dfoたいせいをじゃくたいか=rgoいどうそくど=spdHPかいふくそくど=hrgMPかいふくそくど=mrgダメージをうけるとほうでん=staそくし=dthダメージはんしゃ=refかえんダメージ=dmgfれいきダメージ=dmgcでんきダメージ=dmglしょうかんモンスターをかえす=sbkバウンド=bouリング=ring盾=shield剣=sword斧=axe短剣=dagger弓=bow杖=staff棍棒・棒=mace契約書=summon=====


わざ対応表

エアスラッシュ=Slash


enelist

エネミーのデータが書いてあるリスト

enelist = "ENE1\nENE2\nENE3\n..."
ENE* = "NO/NAME/JOB/HP/MP/ATK1/ATK2/DEF/STR/INT/DEX/SPD/REGf/REGc/REGl/REGp/REGu/rect_width/rect_height/move_category/GOLD/EXP/put_no/INFO"

  • NO = enemyList に格納するときのインデックス
  • NAME = エネミーの名前
  • JOB = ジョブ?
  • HP = HP
  • MP = MP
  • ATK1 = こうげきりょく最低
  • ATK2 = こうげきりょく最高
  • DEF = 防御
  • STR = 物理攻撃にこの値の半分が加わる
  • INT = 魔法攻撃にこの値の半分が加わる
  • DEX = 命中率・回避率にこの値が加わる
  • SPD = うごくスピード
  • REGf = 炎耐性
  • REGc = 氷耐性
  • REGl = 雷耐性
  • REGp = 毒耐性
  • REGu = 状態異常耐性
  • rect_width = エネミーの横表示サイズ
  • rect_height = エネミーの縦表示サイズ
  • move_category = 動ける場所、1なら地上,2なら水中
  • GOLD = ゴールド
  • EXP = 経験値
  • put_no = 図鑑の登録番号、基本的にはNOと同じで良い、センチピードの脚やサーペントの下の部分など登録しないものは空白に
  • INFO = 図鑑に載る説明

droplist

上のエネミーリストの各エネミーに対応したドロップアイテムのリスト

droplist = "DRO1\nDRO2\nDRO3\n..."
DRO* = "NO,drop_item,drop_prob"

  • NO = enelist の NO
  • drop_item = ドロップアイテムの NO
  • drop_prob = ドロップする確率、10000が100%、完全にブラックボックスなのでとりあえずユニークアイテムは100(=1%)、それ以外は1000(=10%)にしています

talkdata

それぞれのキャラがしゃべる内容のデータ

talkdata = "T1\nT2\nT3\n..."
T* = "chara/talk_no/talk_text"

  • chara = 対応するキャラの charaData.charaList の NO
  • talk_no = トークに割り振られてる番号
  • talk_text = トークの内容

{***}で会話の一部が対応するテキストに置き換わる@NPC.talkReplace

{user} = 自キャラの名前{name} = トークしているキャラの名前{cost} = 雇うための代金{name} = トークしているキャラの名前{buy}{item}

改行は"_"でおこなう
選択肢を含む会話の場合、下のように<>の中に選択肢を並べ、イベントを起こす方に適当な文字(この例では0)をつける(推測される仕様)
talkdata = "aaaaa<はい:0,いいえ:>"
xmlで読み込む場合、<と>はそれぞれ&lt、;&gt;とエスケープする必要があることに注意

イベントタグ{undead},{undead2},{avatar},{avatar2},{jobchange}

floorname

floorname = "F1\nF2\nF3\n..."
F* = "i,j,xxx"

使われるのはタウンポータルの表示名だけ?@ItemName.142

skilldata

skilldata = "S1\nS2\nS3\n..."
S* = "no/name/info"

no = スキルの番号
name = スキルの名前
info = スキルの説明

challengedata

それぞれのチャレンジの説明テキストが書いてあるデータ

chalengedata = "C1\nC2\nC3\n..."
C* = "no/info"

  • no = チャレンジのNO、だいたいエネミーのNOと同じ
  • info = チャレンジの説明

ezukan

エネミーを図鑑に載るかどうかのデータ、これに含まれるエネミーは図鑑に載る

ezukan = "EZ1\nEZ2\nEZ3\n..."
EZ* = "no/flag"

  • no = エネミーのNO
  • flag = 1 ならチャレンジ達成済み

1/0\n10/0\n20/0\n30/0\n40/0\n...

izukan

アイテムを図鑑に載るかどうかのデータ、これに含まれるアイテムは図鑑に載る

izukan = "IZ1\nIZ2\nIZ3\n..."
IZ* = "no"

  • no = 図鑑に載せるアイテムのNO