Wizardry1/Apple/解析メモ/Monsters
-
Data Driven Gamer: The bestiary of Wizardry (こちらが詳しいし、たぶん私よりも正しい)
目次
地図付属の出現頻度テーブル
- (未解析)
読み方
モンスターテーブル
Data Driven Gamer: The bestiary of Wizardryに一覧あり。
特に指定がないものはINTEGER
- 不確定名 単数/複数, 確定名 単数/複数
- 各15文字まで
- 絵(PIC)
- 出現 (LOW/MID/HIGH)
- HP dice (LEVEL,HPFAC,HPMINAD)
- 1d8+1 なら 1,8,1
- 先頭の値はLEVELも表す
- CLASS (0..15)
- 0-7: FIG, MAG, PRI, THI,MIDGET, GIANT, MITHICAL
- 8-13: DRAGON, ANIMAL, LYCANTHROPE, UNDEAD, DAEMON, INSECT, ENCHANTED
- 14,15: は未使用
- AC
- 最大攻撃回数(RECSN)
- 攻撃力(RECS) dice [0..7]
- EXP (LOW/MID/HIGH)
- 実はこの項目は使われていない。monterのHPや属性から計算されている。
- DRAINAMT
- この値だけLEVEL DRAINしてくる
- HEALPTS
- この値だけ毎ターン回復
- 宝:徘徊テーブルID、玄室テーブルID
- ATTK012=0:REWARD1, 1:REWARD1,ONEORTWO=2, 2:REWARD2 (固定モンスター, ALARMを鳴らした等)
- ENEMY TEAM, TEAMPERC
- 後続のモンスターの番号, 出現率(%)
- MAGSPELS, PRISPELS
- 魔法・僧侶のレベル 0-7
- UNIQUE
- 出現回数。BUGの項参照
- BREATH
- MAGIC RESISTANCE (UNAFFCT)
- WEPVSTY3 [0..15] of BOOLEAN
- 0: NONE/FRIENDS
- 1: FIRE
- 2: COLD
- 3: POISON
- 4: DRAIN
- 5: STONING
- 6: MAGIC
- 特性フラグSPPCI [0..15] of BOOLEAN
- 0: STONE
- 1: POISON
- 2: PARALYZE
- 3: CRITICALLY HIT
- 4: 眠る
- 5: 逃げる
- (別記)
- 6: 仲間を呼ぶ
モンスターを倒した時の経験値
プログラム上は下記の計算をしたかったのだと思われる。 f(n,x) は (2^(n-1))*x を計算するための処理。 fを求める関数(MLTADDKX)にバグがあって値がおかしくなる(後述)。
- 経験値 = (LEVELHPFAC)(ブレスあり?40:20)
- さらに以下の補正がかかる
- 魔法レベルにより +f(MAGSPELS,35)
- 僧侶レベルにより +f(PRISPELS,35)
- ドレイン能力により +f(DRAINAMT,200)
- 回復能力により +f(HEALPTS,90)
- ACにより +f(11-AC,40)
- RECSN>1 なら +f(RECSN,30)
- UNAFFCT>0 なら +f(UNAFFCT/10+1,40
- 特性(WEPVSTY3)のある数nを元に +f(n,35)
- 特性(SPPCI)のある数nを元に +f(n,40)
BUG
- Wizardry re-engineering
- モンスターの経験値が高すぎるバグ
- MLTADDKXで渡される変数が副作用で壊れて、多く加算されている
MLTADDKX
経験値計算に使われる関数がバグっている(引数の参照渡しに起因するバグ)。計算結果が10000未満なら発覚しないと思われる。
see. Data Driven Gamer: The bestiary of Wizardry
LEVEL 7 FIGHTERS IN MONSTER ALLOCATION CENTER
- ディスク内にはモンスターの出現回数テーブル(UNIQUE)があり、モンスターを倒すと -1 される
- ほとんどのモンスターは無限(-1)の値を持つが、なぜか LEVEL 7 FIGHTER (4階 MOSTER ALLOCATION CENTER)は値が1になっている
- そのため、このモンスターは1度しか出会えない。一度でも会った後は値が0になる。
- しかも、 LEVEL 7 FIGHTERS(#100)は、DEADLY RING(#93) を出す唯一のモンスター。
- cf. https://groups.google.com/d/msg/comp.sys.apple2/aI5ob1mLUwY/6R7oHF55KhkJ
- ディスクが書き換えられてしまうので、大抵のユーザーのディスクでは0になってるはず
- 得物屋 - AppleII#1 MONSTERS-11では最初から0になってると書かれているが...