本節では職業について述べる。
職業を表現するオブジェクト型について述べる。
アドレス $C4179E
に下の表に示すような巨大なオブジェクトが 9 個配列されている。
これらがそれぞれの職業の性質を表現する。
表 5.50 構造体 $C4179E
オフセット | 桁 | 属性 |
---|---|---|
#$0000
|
#$00FFFF
|
名前 |
#$0002
|
#$0000FF
|
スプライト男 |
#$0003
|
#$0000FF
|
スプライト女 |
#$0004
|
#$0000FF
|
スプライト水着 |
#$0005
|
#$0000FF
|
頭文字コード |
#$0006
|
#$0000FF
|
初期性格条件 0 |
#$0007
|
#$0000FF
|
初期性格条件 1 |
#$0008
|
#$0000FF
|
初期性格条件 2 |
#$0009
|
#$0000FF
|
初期性格条件 3 |
#$000A
|
#$0000FF
|
初期性格条件 4 |
#$000B
|
#$FFFFFF
|
習得呪文配列 |
#$000E
|
#$0000FF
|
習得呪文個数 |
#$000F
|
#$FFFFFF
|
経験値 #$00 |
#$0012
|
#$FFFFFF
|
経験値 #$01 |
#$0015
|
#$FFFFFF
|
経験値 #$02 |
#$0018
|
#$FFFFFF
|
経験値 #$03 |
#$001B
|
#$FFFFFF
|
経験値 #$04 |
#$001E
|
#$FFFFFF
|
経験値 #$05 |
#$0021
|
#$FFFFFF
|
経験値 #$06 |
#$0024
|
#$FFFFFF
|
経験値 #$07 |
#$0027
|
#$FFFFFF
|
経験値 #$08 |
#$002A
|
#$FFFFFF
|
経験値 #$09 |
#$002D
|
#$FFFFFF
|
経験値 #$0A |
#$0030
|
#$FFFFFF
|
経験値 #$0B |
#$0033
|
#$FFFFFF
|
経験値 #$0C |
#$0036
|
#$FFFFFF
|
経験値 #$0D |
#$0039
|
#$FFFFFF
|
経験値 #$0E |
#$003C
|
#$FFFFFF
|
経験値 #$0F |
#$003F
|
#$FFFFFF
|
経験値 #$10 |
#$0042
|
#$FFFFFF
|
経験値 #$11 |
#$0045
|
#$FFFFFF
|
経験値 #$12 |
#$0048
|
#$FFFFFF
|
経験値 #$13 |
#$004B
|
#$FFFFFF
|
経験値 #$14 |
#$004E
|
#$FFFFFF
|
経験値 #$15 |
#$0051
|
#$FFFFFF
|
経験値 #$16 |
#$0054
|
#$FFFFFF
|
経験値 #$17 |
#$0057
|
#$FFFFFF
|
経験値 #$18 |
#$005A
|
#$FFFFFF
|
経験値 #$19 |
#$005D
|
#$FFFFFF
|
経験値 #$1A |
#$0060
|
#$FFFFFF
|
経験値 #$1B |
#$0063
|
#$FFFFFF
|
経験値 #$1C |
#$0066
|
#$FFFFFF
|
経験値 #$1D |
#$0069
|
#$FFFFFF
|
経験値 #$1E |
#$006C
|
#$FFFFFF
|
経験値 #$1F |
#$006F
|
#$FFFFFF
|
経験値 #$20 |
#$0072
|
#$FFFFFF
|
経験値 #$21 |
#$0075
|
#$FFFFFF
|
経験値 #$22 |
#$0078
|
#$FFFFFF
|
経験値 #$23 |
#$007B
|
#$FFFFFF
|
経験値 #$24 |
#$007E
|
#$FFFFFF
|
経験値 #$25 |
#$0081
|
#$FFFFFF
|
経験値 #$26 |
#$0084
|
#$FFFFFF
|
経験値 #$27 |
#$0087
|
#$FFFFFF
|
経験値 #$28 |
#$008A
|
#$FFFFFF
|
経験値 #$29 |
#$008D
|
#$FFFFFF
|
経験値 #$2A |
#$0090
|
#$FFFFFF
|
経験値 #$2B |
#$0093
|
#$FFFFFF
|
経験値 #$2C |
#$0096
|
#$FFFFFF
|
経験値 #$2D |
#$0099
|
#$FFFFFF
|
経験値 #$2E |
#$009C
|
#$FFFFFF
|
経験値 #$2F |
#$009F
|
#$FFFFFF
|
経験値 #$30 |
#$00A2
|
#$FFFFFF
|
経験値 #$31 |
#$00A5
|
#$FFFFFF
|
経験値 #$32 |
#$00A8
|
#$FFFFFF
|
経験値 #$33 |
#$00AB
|
#$FFFFFF
|
経験値 #$34 |
#$00AE
|
#$FFFFFF
|
経験値 #$35 |
#$00B1
|
#$FFFFFF
|
経験値 #$36 |
#$00B4
|
#$FFFFFF
|
経験値 #$37 |
#$00B7
|
#$FFFFFF
|
経験値 #$38 |
#$00BA
|
#$FFFFFF
|
経験値 #$39 |
#$00BD
|
#$FFFFFF
|
経験値 #$3A |
#$00C0
|
#$FFFFFF
|
経験値 #$3B |
#$00C3
|
#$FFFFFF
|
経験値 #$3C |
#$00C6
|
#$FFFFFF
|
経験値 #$3D |
#$00C9
|
#$FFFFFF
|
経験値 #$3E |
#$00CC
|
#$FFFFFF
|
経験値 #$3F |
#$00CF
|
#$FFFFFF
|
経験値 #$40 |
#$00D2
|
#$FFFFFF
|
経験値 #$41 |
#$00D5
|
#$FFFFFF
|
経験値 #$42 |
#$00D8
|
#$FFFFFF
|
経験値 #$43 |
#$00DB
|
#$FFFFFF
|
経験値 #$44 |
#$00DE
|
#$FFFFFF
|
経験値 #$45 |
#$00E1
|
#$FFFFFF
|
経験値 #$46 |
#$00E4
|
#$FFFFFF
|
経験値 #$47 |
#$00E7
|
#$FFFFFF
|
経験値 #$48 |
#$00EA
|
#$FFFFFF
|
経験値 #$49 |
#$00ED
|
#$FFFFFF
|
経験値 #$4A |
#$00F0
|
#$FFFFFF
|
経験値 #$4B |
#$00F3
|
#$FFFFFF
|
経験値 #$4C |
#$00F6
|
#$FFFFFF
|
経験値 #$4D |
#$00F9
|
#$FFFFFF
|
経験値 #$4E |
#$00FC
|
#$FFFFFF
|
経験値 #$4F |
#$00FF
|
#$FFFFFF
|
経験値 #$50 |
#$0102
|
#$FFFFFF
|
経験値 #$51 |
#$0105
|
#$FFFFFF
|
経験値 #$52 |
#$0108
|
#$FFFFFF
|
経験値 #$53 |
#$010B
|
#$FFFFFF
|
経験値 #$54 |
#$010E
|
#$FFFFFF
|
経験値 #$55 |
#$0111
|
#$FFFFFF
|
経験値 #$56 |
#$0114
|
#$FFFFFF
|
経験値 #$57 |
#$0117
|
#$FFFFFF
|
経験値 #$58 |
#$011A
|
#$FFFFFF
|
経験値 #$59 |
#$011D
|
#$FFFFFF
|
経験値 #$5A |
#$0120
|
#$FFFFFF
|
経験値 #$5B |
#$0123
|
#$FFFFFF
|
経験値 #$5C |
#$0126
|
#$FFFFFF
|
経験値 #$5D |
#$0129
|
#$FFFFFF
|
経験値 #$5E |
#$012C
|
#$FFFFFF
|
経験値 #$5F |
#$012F
|
#$FFFFFF
|
経験値 #$60 |
#$0132
|
#$FFFFFF
|
経験値 #$61 |
#$0135
|
#$0000FF
|
ちから初期値男 |
#$0136
|
#$0000FF
|
ちから初期値女 |
#$0137
|
#$0000FF
|
ちからレベル 0 |
#$0138
|
#$0000FF
|
ちから増分 0 |
#$0139
|
#$0000FF
|
ちからレベル 1 |
#$013A
|
#$0000FF
|
ちから増分 1 |
#$013B
|
#$0000FF
|
ちからレベル 2 |
#$013C
|
#$0000FF
|
ちから増分 2 |
#$013D
|
#$0000FF
|
ちからレベル 3 |
#$013E
|
#$0000FF
|
ちから増分 3 |
#$013F
|
#$0000FF
|
ちからレベル 4 |
#$0140
|
#$0000FF
|
ちから増分 4 |
#$0141
|
#$0000FF
|
すばやさ初期値男 |
#$0142
|
#$0000FF
|
すばやさ初期値女 |
#$0143
|
#$0000FF
|
すばやさレベル 0 |
#$0144
|
#$0000FF
|
すばやさ増分 0 |
#$0145
|
#$0000FF
|
すばやさレベル 1 |
#$0146
|
#$0000FF
|
すばやさ増分 1 |
#$0147
|
#$0000FF
|
すばやさレベル 2 |
#$0148
|
#$0000FF
|
すばやさ増分 2 |
#$0149
|
#$0000FF
|
すばやさレベル 3 |
#$014A
|
#$0000FF
|
すばやさ増分 3 |
#$014B
|
#$0000FF
|
すばやさレベル 4 |
#$014C
|
#$0000FF
|
すばやさ増分 4 |
#$014D
|
#$0000FF
|
たいりょく初期値男 |
#$014E
|
#$0000FF
|
たいりょく初期値女 |
#$014F
|
#$0000FF
|
たいりょくレベル 0 |
#$0150
|
#$0000FF
|
たいりょく増分 0 |
#$0151
|
#$0000FF
|
たいりょくレベル 1 |
#$0152
|
#$0000FF
|
たいりょく増分 1 |
#$0153
|
#$0000FF
|
たいりょくレベル 2 |
#$0154
|
#$0000FF
|
たいりょく増分 2 |
#$0155
|
#$0000FF
|
たいりょくレベル 3 |
#$0156
|
#$0000FF
|
たいりょく増分 3 |
#$0157
|
#$0000FF
|
たいりょくレベル 4 |
#$0158
|
#$0000FF
|
たいりょく増分 4 |
#$0159
|
#$0000FF
|
たいりょくレベル 5 |
#$015A
|
#$0000FF
|
たいりょく増分 5 |
#$015B
|
#$0000FF
|
かしこさ初期値男 |
#$015C
|
#$0000FF
|
かしこさ初期値女 |
#$015D
|
#$0000FF
|
かしこさレベル 0 |
#$015E
|
#$0000FF
|
かしこさ増分 0 |
#$015F
|
#$0000FF
|
かしこさレベル 1 |
#$0160
|
#$0000FF
|
かしこさ増分 1 |
#$0161
|
#$0000FF
|
かしこさレベル 2 |
#$0162
|
#$0000FF
|
かしこさ増分 2 |
#$0163
|
#$0000FF
|
かしこさレベル 3 |
#$0164
|
#$0000FF
|
かしこさ増分 3 |
#$0165
|
#$0000FF
|
かしこさレベル 4 |
#$0166
|
#$0000FF
|
かしこさ増分 4 |
#$0167
|
#$0000FF
|
うんのよさ初期値男 |
#$0168
|
#$0000FF
|
うんのよさ初期値女 |
#$0169
|
#$0000FF
|
うんのよさレベル 0 |
#$016A
|
#$0000FF
|
うんのよさ増分 0 |
#$016B
|
#$0000FF
|
うんのよさレベル 1 |
#$016C
|
#$0000FF
|
うんのよさ増分 1 |
#$016D
|
#$0000FF
|
うんのよさレベル 2 |
#$016E
|
#$0000FF
|
うんのよさ増分 2 |
#$016F
|
#$0000FF
|
うんのよさレベル 3 |
#$0170
|
#$0000FF
|
うんのよさ増分 3 |
#$0171
|
#$0000FF
|
うんのよさレベル 4 |
#$0172
|
#$0000FF
|
うんのよさ増分 4 |
各属性の意味を次に述べる。
職業の名前を表す文字列 の ID を値に取る属性だ。 文字列については 5.2 文字列 で述べる。
「はなす」対象分類オブジェクトの ID を値に取る属性だ。 この職業のキャラクターを移動中の画面上に表現するときに用いられるスプライトに関する情報は、 そのオブジェクトから参照する。
「はなす」対象分類オブジェクトについては 5.26.1.2 構造体 $C893D4
: 「はなす」対象分類 で述べる。
移動中や戦闘中のパーティー編成ウィンドウにおいて、各キャラクターのレベルの左に現れる平仮名一文字のコード値を取る属性だ。
この職業のキャラクターを仲間登録所で新規に作成する際に用いるオブジェクトの ID を値とする属性だ。 詳細は 5.16 冒険者たちの登録所 で述べる。
この職業のキャラクターが、レベルアップ時に習得する可能性のあるレベルと、
習得呪文のペアを定義する配列のアドレスである。
厳密には、コマンド ID を直接保持するわけではなく、
仲間キャラクターオブジェクトの一部である「習得済み呪文フラグ」の位置を指示する配列
$C456AC
の添字を保持する。
仲間キャラクターオブジェクトについては 5.4 仲間キャラクターオブジェクト で述べる。
上述した習得呪文配列属性の配列長を値とする属性だ。
#$00
..#$61
)
この職業のキャラクターのレベルが k + 2 であるために必要な経験値を値とする属性だ。
この職業のキャラクターを仲間登録所で新規に作成する際、男女それぞれのちから属性値の初期値(の最小値)を表す属性だ。 実際にはここにある乱数が加算される。
この職業のキャラクターのレベルが上がるときに再設定されるちから属性値の基準値を計算するための属性だ。 この職業のキャラクターのレベルがちからレベル k 以上ちからレベル k + 1 未満であるとき、 その評価値を次の式で求める:
基準値 = (初期値 + 増分[0] * (レベル[0] - 2) + 増分[1] * (レベル[1] - レベル[0]) + ... + 増分[k - 1] * (レベル[k - 1] - レベル[k - 2]) + 増分[k] * (キャラレベル - レベル[k])) / 16
ちからでの各属性についての説明をすばやさに置き換えて読んで欲しい。
ちからでの各属性についての説明をたいりょくに置き換えて読んで欲しい。
ちからでの各属性についての説明をかしこさに置き換えて読んで欲しい。
ちからでの各属性についての説明をうんのよさに置き換えて読んで欲しい。
職業オブジェクトが参照される処理のうち主要なものは、 仲間キャラクター初期化処理、同レベルアップ処理、同転職処理だろう。 本節ではそのうちで最も職業オブジェクトの属性値を参照するレベルアップ処理について記す。
仲間キャラクター初期化処理については 5.16.2.1 サブルーチン $C3DAEB
: 登録所メイン で、
転職処理については 5.18.2.1 サブルーチン $C3E477
: ダーマの神官との対話的処理 でそれぞれ述べる。