Monsters (72.dat): Difference between revisions

From Raynegard Wiki
Jump to navigationJump to search
New page: the 72.dat human enemies (records, how the server shows them, data status) (via create-page on MediaWiki MCP Server)
 
Document the gear and look columns (via update-page on MediaWiki MCP Server)
Line 23: Line 23:
* ''The Great Dogof'' (39) has the boss block used elsewhere for unbeatable characters (Life 9989, DEF/AGL 999).
* ''The Great Dogof'' (39) has the boss block used elsewhere for unbeatable characters (Life 9989, DEF/AGL 999).
* Drops are [[Monster items]] (36.dat), not the weapon they carry, and only 8 rows drop anything. ''Dogof XIII'' and ''Dogof XIX'' drop pieces of the '''Dogof's Charm''' set (19 charms; [[Monsters (71.dat)]] holds most of the rest). Item 141 is named ''Manaha's fang'', but its description says it is Dogof the 19th's charm: another sign of unfinished data.
* Drops are [[Monster items]] (36.dat), not the weapon they carry, and only 8 rows drop anything. ''Dogof XIII'' and ''Dogof XIX'' drop pieces of the '''Dogof's Charm''' set (19 charms; [[Monsters (71.dat)]] holds most of the rest). Item 141 is named ''Manaha's fang'', but its description says it is Dogof the 19th's charm: another sign of unfinished data.
== Gear and look columns ==
A row defines a human's '''weapon''' (col8/col9, a 16-22.dat weapon that is also its attack) and '''armor''' (col25/col26, a 23-31.dat armor; the clothes of the player body). There are '''no ring, emblem or extra clothing columns''': col12/col13 (the second attack set) and col10/col11/col14/col15 (extra appearance rows) are all 0. The remaining look columns are:
* col5: gender (1 = male, 2 = female), matching the <code>Pm</code>/<code>Pf</code> model;
* col6 = 1: turns on the extra layer in col30;
* col24: the body model ([[textdata inaba.dat|inaba.dat]] row, <code>Pm..</code>/<code>Pf..</code>);
* col30 = 479: an effect overlay (inaba <code>Ep02</code>), drawn by <code>EObject_LoadAnimationSequences</code> when col6 is set;
* col31 = 73: the action sound effect (<code>EObject_PlayActionResultSound</code>, record +0x9c, bank 6).
As a player character on the client, a human only shows its weapon and armor. The model, overlay and sound columns would only matter if the row were drawn as a monster.


== Overview ==
== Overview ==

Revision as of 02:33, 15 October 2026

Monsters (72.dat) documents the 41 records in 72.dat: the human enemies: thieves, bandits, mercenaries, fallen knights and a set of named story characters. It is a record-type-9 monster file (32-column stat line, per NN.dat). Unlike every other monster file, each row describes a player-style character: a player body model, a player armor and a player weapon. The matching cpt72.txt has no flavor text (every line is 0).

72.dat is not loaded by the client. rg.exe's dat table (TextFile_Dat_FileNum_to_value @ 0x00485760) has no slot for 71, 72 or 76. A lookup for any of them indexes past the end of the table and crashes the client (TextDatFiles_GetSlotEntry @ 0x00485ac0, access violation at 0x00485af5). So these records are server-side data only: an entity sent as dat 72 crashes every client that sees it.

How they are shown

Each row carries exactly what a player character's spawn body needs, so the server (RG_Server_New, RG_World_Entity.Create_Human) sends a human enemy as another player character:

  • Ref: dat 1, entry 0. The client treats dats 1 and 2 the same. ObjectRegistry_CreateAndRegister builds the same peer character (class 0x940, vtable 0x004C6E48) for both, and never looks a player-type character up in its dat table.
  • Body: the row's Korean/English names, weapon (col8/col9), armor (col25/col26), and gender from the model name (Pf... = female, Pm... = male; inaba.dat row col24).
  • Spawn packet: 0x86 (silent), as for real players. With 0x83 (appear), a player character waits in state 0x16 for a 0x8C before it loads its model (PeerChar_State16_Appear_Tick @ 0x004788B0), so it stays invisible.
  • Player Attack: the status byte has the PA bit (0x80) set. The client only lets a player attack a player character when both have Player Attack on (Input_DispatchClickAction case 9). Without it, clicking a human just walks you to it.

Fighting a human therefore behaves like PvP:

  • Damage both ways uses the client's player-vs-player factor (x0.7).
  • A human's killing blow counts as a player kill on the victim's client (EObject_ApplyEffectToTargets sets +0xC54). The fainted player then drops one random worn weapon, armor or ring and takes off their emblem: the client's own PvP death penalty.

Status of the data

The rows look unfinished:

  • Every fightable row (1-20, 39-41) has the same placeholder combat block: Life 200, Exp 9999, ATK/DEF/AGL 0. Their damage comes only from the weapon (col8/col9). The bare-handed Thief (1) and Rogue (40) therefore do no damage at all.
  • Rows 21-38 have Life 0 and can't be fought as they stand: People of Fire, Buma Katzan, Agme Rita, the six Death and ... knights, Gozarch, Neclord, Barzel, Regnents and the four Reynega... warriors. Most are equipped with legendary weapons and armor (Nu Grigori, Korelaus) and drop story "Symbol of ..." items, so they look like planned story/event encounters.
  • The Great Dogof (39) has the boss block used elsewhere for unbeatable characters (Life 9989, DEF/AGL 999).
  • Drops are Monster items (36.dat), not the weapon they carry, and only 8 rows drop anything. Dogof XIII and Dogof XIX drop pieces of the Dogof's Charm set (19 charms; Monsters (71.dat) holds most of the rest). Item 141 is named Manaha's fang, but its description says it is Dogof the 19th's charm: another sign of unfinished data.

Gear and look columns

A row defines a human's weapon (col8/col9, a 16-22.dat weapon that is also its attack) and armor (col25/col26, a 23-31.dat armor; the clothes of the player body). There are no ring, emblem or extra clothing columns: col12/col13 (the second attack set) and col10/col11/col14/col15 (extra appearance rows) are all 0. The remaining look columns are:

  • col5: gender (1 = male, 2 = female), matching the Pm/Pf model;
  • col6 = 1: turns on the extra layer in col30;
  • col24: the body model (inaba.dat row, Pm../Pf..);
  • col30 = 479: an effect overlay (inaba Ep02), drawn by EObject_LoadAnimationSequences when col6 is set;
  • col31 = 73: the action sound effect (EObject_PlayActionResultSound, record +0x9c, bank 6).

As a player character on the client, a human only shows its weapon and armor. The model, overlay and sound columns would only matter if the row were drawn as a monster.

Overview

# Name Korean Model Armor Weapon (attack) Life Exp Drops ID
1 Thief 도적 Pm13_01 hadaka (31,1) sude (22,1) 200 9999 Thief's charm 72,1
2 Highwayman 노상강도 Pm13_01 hadaka (31,1) Slen geen (16,1) 200 9999 Thief's feather 72,2
3 Master Thief 숙련된 도적 Pm13_01 hadaka (31,1) Slen geen (16,1) 200 9999 — 72,3
4 Thief 도적 Pf13_01 hadaka (31,1) Slen wurl (20,1) 200 9999 — 72,4
5 Looter 약탈자 Pf13_01 hadaka (31,1) Slen wurl (20,1) 200 9999 — 72,5
6 Master Thief 숙련된 도적 Pf13_01 hadaka (31,1) Slen wurl (20,1) 200 9999 — 72,6
7 Mercenary 용병 Pm01_01 Raynalfona(B) (23,1) Peil guin (17,1) 200 9999 — 72,7
8 Mercenary 용병 Pf01_01 Raynalfona(B) (23,1) C.A.2 (16,10) 200 9999 — 72,8
9 Fallen Knight 타락기사 Pm06_01 Godesauga(B) (25,17) Gogondo (18,1) 200 9999 — 72,9
10 Fallen Knight 타락기사 Pf06_01 Godesauga(B) (25,17) Worgar (21,1) 200 9999 — 72,10
11 Mercenary 용병 Pm08_01 Palistoberio(B) (26,17) Slensegin (19,1) 200 9999 — 72,11
12 Moo the Rage 성난 무 Pf08_01 Palistoberio(B) (26,17) Slensegin (19,1) 200 9999 — 72,12
13 The Doulang Man 두란하임인 Pm10_01 Doulanbahts(B) (27,17) Pera zail (18,10) 200 9999 — 72,13
14 Runi the Rosebud 작은장미 루니 Pf10_01 Doulanbahts(B) (27,17) Fizdenkya (21,10) 200 9999 — 72,14
15 Mercenary 용병 Pm01_02 Raynalfona(G) (23,2) Gore geen (16,15) 200 9999 — 72,15
16 Reynegapoa 레인가포아 Pf14_01 Korelaus(Y) (30,1) Gore geen (16,15) 200 9999 Symbol of Poa 72,16
17 Dogof XIII 도고프13세 Pm05_01 Goulartzerth(G) (25,2) Ester gins (17,10) 200 9999 Dogof's Charm#13 72,17
18 Bandit 산적 Pm05_02 Sifulzerth(G) (25,14) Pera zail (18,10) 200 9999 — 72,18
19 Bandit 산적 Pf05_01 Goulartzerth(B) (25,1) Loden segin (19,10) 200 9999 — 72,19
20 Dogof XIX 도고프19세 Pm06_02 Godesauga(G) (25,18) Geosuggeid (17,15) 200 9999 Manaha's fang 72,20
21 People of Fire 불의 민족 Pm11_02 Gadalamtaska(G) (28,1) Ernis wallow (20,10) 0 0 Symbol of Fire 72,21
22 People of Fire 불의 민족 Pf11_02 Gadalamtaska(K) (28,2) Ernis wallow (20,10) 0 0 Symbol of Fire 72,22
23 Buma Katzan 부마 카찬 Pm12_02 Zofulfei(B) (28,17) Gagen wajik (20,15) 0 0 Symbol of Chief 72,23
24 Agme Rita 아그메 리타 Pf12_02 Zofulfei(G) (28,18) Gagen wajik (20,15) 0 0 Symbol of Shaman 72,24
25 Death and Howl 죽음과 통곡 Pm15_02 Nu Grigori(R) (29,2) Fizdenkya (21,10) 0 0 — 72,25
26 Death and Callus 죽음과 무상 Pm15_02 Nu Grigori(R) (29,2) Demiseran (19,15) 0 0 — 72,26
27 Death and Hatred 죽음과 증오 Pm15_02 Nu Grigori(R) (29,2) Hoam segin (19,20) 0 0 — 72,27
28 Death and Sorrow 죽음과 비애 Pf15_02 Nu Grigori(R) (29,2) Geosuggeid (17,15) 0 0 — 72,28
29 Death and Rage 죽음과 분노 Pm15_02 Nu Grigori(R) (29,2) Gee nage (18,15) 0 0 — 72,29
30 Death and Raver 죽음과 광기 Pf15_02 Nu Grigori(R) (29,2) Gee nage (18,15) 0 0 — 72,30
31 Gozarch 고즈악 Pm15_01 Nu Grigori(G) (29,1) Bind Regnents (18,20) 0 0 — 72,31
32 Neclord 네크로드 Pm15_03 Nu Grigori(B) (29,3) Dejive (21,20) 0 0 — 72,32
33 Barzel 바젤 Pm12_03 Nu Grigori(B) (29,3) Death and Rage (20,20) 0 0 — 72,33
34 Regnents 레그넨트 Pm15_02 Nu Grigori(R) (29,2) Bind Regnents (18,20) 0 0 — 72,34
35 Reynegameld 레인가멜드 Pm14_01 Korelaus(Y) (30,1) Fulmeraon (19,18) 0 0 Symbol of Meld 72,35
36 Reynegabucco 레인가벅코 Pm14_02 Korelaus(R) (30,2) Omm segin (19,19) 0 0 Symbol of Bucco 72,36
37 Reynegaaiom 레인가이옴 Pm14_03 Korelaus(B) (30,3) Rankerlemrio (16,18) 0 0 Symbol of Aiom 72,37
38 Reynegaleus 레인가레우스 Pm14_04 Korelaus(S) (30,4) Weiz shiena (16,19) 0 0 Symbol of Aleus 72,38
39 The Great Dogof 그레이트 도고프 Pm15_01 Nu Grigori(G) (29,1) Dungdrajeen (17,22) 9989 9999 Dogof's Charm#1 72,39
40 Rogue 악한 Pm13_01 hadaka (31,1) sude (22,1) 200 9999 — 72,40
41 Burglar 밤도둑 Pf13_01 hadaka (31,1) Berus geen (16,2) 200 9999 — 72,41

Raw record data

The full 32-column stat line for each record, exactly as stored. See Monsters (65.dat)#Record columns for the column map. The ones that matter here are col3/col4 drop, col8/col9 weapon (attack record), col20 life, col21 exp, col24 model (inaba row) and col25/col26 armor. col5 is the gender: 1 on every Pm (male) row, 2 on every Pf (female) row. The armor hadaka (31,1) is the player baseline "No armor" (Japanese for "naked").

idx name                 | full record line
  1 Thief                | 72 1 36 78 1 1 620 22 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 106 31 1 2 1 2 479 73 85
  2 Highwayman           | 72 2 36 77 1 1 620 16 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 106 31 1 2 1 2 479 73 85
  3 Master_Thief         | 72 3 0 0 1 1 620 16 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 106 31 1 2 1 2 479 73 85
  4 Thief                | 72 4 0 0 2 1 620 20 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 49 31 1 2 1 2 479 73 85
  5 Looter               | 72 5 0 0 2 1 620 20 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 49 31 1 2 1 2 479 73 85
  6 Master_Thief         | 72 6 0 0 2 1 620 20 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 49 31 1 2 1 2 479 73 85
  7 Mercenary            | 72 7 0 0 1 1 620 17 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 58 23 1 2 1 2 479 73 85
  8 Mercenary            | 72 8 0 0 2 1 620 16 10 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 1 23 1 2 1 2 479 73 85
  9 Fallen_Knight        | 72 9 0 0 1 1 620 18 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 78 25 17 1 1 2 479 73 85
 10 Fallen_Knight        | 72 10 0 0 2 1 620 21 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 21 25 17 1 1 2 479 73 85
 11 Mercenary            | 72 11 0 0 1 1 620 19 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 86 26 17 2 1 2 479 73 85
 12 Moo_the_Rage         | 72 12 0 0 2 1 620 19 1 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 29 26 17 2 1 2 479 73 85
 13 The_Doulang_Man      | 72 13 0 0 1 1 620 18 10 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 94 27 17 2 1 2 479 73 85
 14 Runi_the_Rosebud     | 72 14 0 0 2 1 620 21 10 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 37 27 17 2 1 2 479 73 85
 15 Mercenary            | 72 15 0 0 1 1 620 16 15 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 59 23 2 2 1 2 479 73 85
 16 Reynegapoa           | 72 16 36 149 2 1 620 16 15 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 50 30 1 2 1 2 479 73 85
 17 Dogof_XIII           | 72 17 36 135 1 1 620 17 10 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 74 25 2 2 1 2 479 73 85
 18 Bandit               | 72 18 0 0 1 1 620 18 10 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 75 25 14 2 1 2 479 73 85
 19 Bandit               | 72 19 0 0 2 1 620 19 10 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 17 25 1 2 1 2 479 73 85
 20 Dogof_XIX            | 72 20 36 141 1 1 620 17 15 0 0 0 0 0 0 0 0 0 0 200 9999 100 150 79 25 18 2 1 2 479 73 85
 21 People_of_Fire       | 72 21 36 142 1 1 620 20 10 0 0 0 0 0 0 0 0 0 0 0 0 100 150 99 28 1 2 2 2 479 73 85
 22 People_of_Fire       | 72 22 36 143 2 1 620 20 10 0 0 0 0 0 0 0 0 0 0 0 0 100 150 42 28 2 2 2 2 479 73 85
 23 Buma_Katzan          | 72 23 36 144 1 1 620 20 15 0 0 0 0 0 0 0 0 0 0 0 0 100 150 103 28 17 2 2 2 479 73 85
 24 Agme_Rita            | 72 24 36 145 2 1 620 20 15 0 0 0 0 0 0 0 0 0 0 0 0 100 150 46 28 18 2 2 2 479 73 85
 25 Death_and_Howl       | 72 25 0 0 1 1 620 21 10 0 0 0 0 0 0 0 0 0 0 0 0 100 150 112 29 2 1 2 2 479 73 85
 26 Death_and_Callus     | 72 26 0 0 1 1 620 19 15 0 0 0 0 0 0 0 0 0 0 0 0 100 150 112 29 2 1 2 2 479 73 85
 27 Death_and_Hatred     | 72 27 0 0 1 1 620 19 20 0 0 0 0 0 0 0 0 0 0 0 0 100 150 112 29 2 1 2 2 479 73 85
 28 Death_and_Sorrow     | 72 28 0 0 2 1 620 17 15 0 0 0 0 0 0 0 0 0 0 0 0 100 150 55 29 2 1 2 2 479 73 85
 29 Death_and_Rage       | 72 29 0 0 1 1 620 18 15 0 0 0 0 0 0 0 0 0 0 0 0 100 150 112 29 2 1 2 2 479 73 85
 30 Death_and_Raver      | 72 30 0 0 2 1 620 18 15 0 0 0 0 0 0 0 0 0 0 0 0 100 150 55 29 2 1 2 2 479 73 85
 31 Gozarch              | 72 31 0 0 1 1 620 18 20 0 0 0 0 0 0 0 0 0 0 0 0 100 150 111 29 1 1 2 2 479 73 85
 32 Neclord              | 72 32 0 0 1 1 620 21 20 0 0 0 0 0 0 0 0 0 0 0 0 100 150 113 29 3 1 2 2 479 73 85
 33 Barzel               | 72 33 0 0 1 1 620 20 20 0 0 0 0 0 0 0 0 0 0 0 0 100 150 104 29 3 2 2 2 479 73 85
 34 Regnents             | 72 34 0 0 1 1 620 18 20 0 0 0 0 0 0 0 0 0 0 0 0 100 150 112 29 2 1 2 2 479 73 85
 35 Reynegameld          | 72 35 36 150 1 1 620 19 18 0 0 0 0 0 0 0 0 0 0 0 0 100 150 107 30 1 1 2 2 479 73 85
 36 Reynegabucco         | 72 36 36 146 1 1 620 19 19 0 0 0 0 0 0 0 0 0 0 0 0 100 150 108 30 2 1 2 2 479 73 85
 37 Reynegaaiom          | 72 37 36 147 1 1 620 16 18 0 0 0 0 0 0 0 0 0 0 0 0 100 150 109 30 3 1 2 2 479 73 85
 38 Reynegaleus          | 72 38 36 148 1 1 620 16 19 0 0 0 0 0 0 0 0 0 0 0 0 100 150 110 30 4 2 2 2 479 73 85
 39 The_Great_Dogof      | 72 39 36 123 1 1 620 17 22 0 0 0 0 0 0 0 999 999 999 9989 9999 75 100 111 29 1 2 2 2 479 73 85
 40 Rogue                | 72 40 0 0 1 1 620 22 1 0 0 0 0 0 0 0 0 0 0 200 9999 75 100 106 31 1 2 2 2 479 73 85
 41 Burglar              | 72 41 0 0 2 1 620 16 2 0 0 0 0 0 0 0 0 0 0 200 9999 75 100 49 31 1 2 2 2 479 73 85

See also