4521 lines
85 KiB
TypeScript
4521 lines
85 KiB
TypeScript
/**
|
|
* Canonical Diablo II v1.13c Hireling data table & stat resolver.
|
|
*
|
|
* Ground Truth References:
|
|
* - `Hireling.txt` / `hireling.bin` (120 rows)
|
|
* - D2Common.dll ordinal 10988 (0x6fd7c9e0) -> Act index resolution
|
|
* - D2Common.dll ordinal 10458 (0x6fd7ccc0) -> 64-bit LCG candidate evaluation
|
|
* - D2Common.dll ordinal 10091 (0x6fd7c9c0) -> Ability description string resolution
|
|
* - D2Client.dll 0x6faf9440 -> Candidate dialog line formatting
|
|
*
|
|
* DO NOT EDIT MANUALLY.
|
|
*/
|
|
|
|
import { lookupTbl } from '../formats/tbl.ts'
|
|
|
|
export interface HirelingRecord {
|
|
readonly version: number
|
|
readonly subTypeId: number
|
|
readonly classId: number
|
|
readonly act: number
|
|
readonly difficulty: number
|
|
readonly seller: number
|
|
readonly hireCost: number
|
|
readonly level: number
|
|
readonly expPerLvl: number
|
|
readonly hp: number
|
|
readonly hpPerLvl: number
|
|
readonly defense: number
|
|
readonly defPerLvl: number
|
|
readonly str: number
|
|
readonly strPerLvl: number
|
|
readonly dex: number
|
|
readonly dexPerLvl: number
|
|
readonly ar: number
|
|
readonly arPerLvl: number
|
|
readonly dmgMin: number
|
|
readonly dmgMax: number
|
|
readonly dmgPerLvl: number
|
|
readonly resist: number
|
|
readonly resistPerLvl: number
|
|
readonly hireDesc: number
|
|
readonly nameFirstKey: string
|
|
readonly nameLastKey: string
|
|
readonly wNameFirstId: number
|
|
readonly wNameLastId: number
|
|
readonly skills: readonly number[]
|
|
}
|
|
|
|
export const HIRELING_RECORDS: readonly HirelingRecord[] = [
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 0,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 100,
|
|
"level": 3,
|
|
"expPerLvl": 100,
|
|
"hp": 45,
|
|
"hpPerLvl": 8,
|
|
"defense": 15,
|
|
"defPerLvl": 6,
|
|
"str": 35,
|
|
"strPerLvl": 10,
|
|
"dex": 45,
|
|
"dexPerLvl": 16,
|
|
"ar": 10,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 1,
|
|
"dmgMax": 3,
|
|
"dmgPerLvl": 2,
|
|
"resist": 0,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 0,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 100,
|
|
"level": 25,
|
|
"expPerLvl": 100,
|
|
"hp": 221,
|
|
"hpPerLvl": 13,
|
|
"defense": 147,
|
|
"defPerLvl": 12,
|
|
"str": 63,
|
|
"strPerLvl": 10,
|
|
"dex": 89,
|
|
"dexPerLvl": 16,
|
|
"ar": 230,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 7,
|
|
"dmgMax": 9,
|
|
"dmgPerLvl": 4,
|
|
"resist": 44,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 0,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 100,
|
|
"level": 49,
|
|
"expPerLvl": 100,
|
|
"hp": 533,
|
|
"hpPerLvl": 25,
|
|
"defense": 435,
|
|
"defPerLvl": 18,
|
|
"str": 93,
|
|
"strPerLvl": 10,
|
|
"dex": 137,
|
|
"dexPerLvl": 16,
|
|
"ar": 710,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 19,
|
|
"dmgMax": 21,
|
|
"dmgPerLvl": 6,
|
|
"resist": 86,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 1,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 150,
|
|
"level": 3,
|
|
"expPerLvl": 105,
|
|
"hp": 45,
|
|
"hpPerLvl": 8,
|
|
"defense": 15,
|
|
"defPerLvl": 6,
|
|
"str": 35,
|
|
"strPerLvl": 10,
|
|
"dex": 45,
|
|
"dexPerLvl": 16,
|
|
"ar": 10,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 1,
|
|
"dmgMax": 3,
|
|
"dmgPerLvl": 2,
|
|
"resist": 0,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 1,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 150,
|
|
"level": 25,
|
|
"expPerLvl": 105,
|
|
"hp": 221,
|
|
"hpPerLvl": 12,
|
|
"defense": 147,
|
|
"defPerLvl": 12,
|
|
"str": 63,
|
|
"strPerLvl": 10,
|
|
"dex": 89,
|
|
"dexPerLvl": 16,
|
|
"ar": 230,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 7,
|
|
"dmgMax": 9,
|
|
"dmgPerLvl": 4,
|
|
"resist": 44,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 1,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 150,
|
|
"level": 49,
|
|
"expPerLvl": 105,
|
|
"hp": 509,
|
|
"hpPerLvl": 16,
|
|
"defense": 435,
|
|
"defPerLvl": 18,
|
|
"str": 93,
|
|
"strPerLvl": 10,
|
|
"dex": 137,
|
|
"dexPerLvl": 16,
|
|
"ar": 710,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 19,
|
|
"dmgMax": 21,
|
|
"dmgPerLvl": 6,
|
|
"resist": 86,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 2,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 6000,
|
|
"level": 25,
|
|
"expPerLvl": 110,
|
|
"hp": 199,
|
|
"hpPerLvl": 12,
|
|
"defense": 132,
|
|
"defPerLvl": 12,
|
|
"str": 60,
|
|
"strPerLvl": 10,
|
|
"dex": 84,
|
|
"dexPerLvl": 16,
|
|
"ar": 207,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 6,
|
|
"dmgMax": 8,
|
|
"dmgPerLvl": 4,
|
|
"resist": 41,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 2,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 6000,
|
|
"level": 49,
|
|
"expPerLvl": 110,
|
|
"hp": 487,
|
|
"hpPerLvl": 16,
|
|
"defense": 420,
|
|
"defPerLvl": 18,
|
|
"str": 90,
|
|
"strPerLvl": 10,
|
|
"dex": 132,
|
|
"dexPerLvl": 16,
|
|
"ar": 687,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 18,
|
|
"dmgMax": 20,
|
|
"dmgPerLvl": 6,
|
|
"resist": 83,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 3,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 7500,
|
|
"level": 25,
|
|
"expPerLvl": 115,
|
|
"hp": 199,
|
|
"hpPerLvl": 12,
|
|
"defense": 132,
|
|
"defPerLvl": 12,
|
|
"str": 60,
|
|
"strPerLvl": 10,
|
|
"dex": 84,
|
|
"dexPerLvl": 16,
|
|
"ar": 207,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 6,
|
|
"dmgMax": 8,
|
|
"dmgPerLvl": 4,
|
|
"resist": 41,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 3,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 7500,
|
|
"level": 49,
|
|
"expPerLvl": 115,
|
|
"hp": 487,
|
|
"hpPerLvl": 16,
|
|
"defense": 420,
|
|
"defPerLvl": 18,
|
|
"str": 90,
|
|
"strPerLvl": 10,
|
|
"dex": 132,
|
|
"dexPerLvl": 16,
|
|
"ar": 687,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 18,
|
|
"dmgMax": 20,
|
|
"dmgPerLvl": 6,
|
|
"resist": 83,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 4,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 3,
|
|
"seller": 150,
|
|
"hireCost": 12500,
|
|
"level": 49,
|
|
"expPerLvl": 120,
|
|
"hp": 438,
|
|
"hpPerLvl": 16,
|
|
"defense": 378,
|
|
"defPerLvl": 18,
|
|
"str": 87,
|
|
"strPerLvl": 10,
|
|
"dex": 127,
|
|
"dexPerLvl": 16,
|
|
"ar": 618,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 17,
|
|
"dmgMax": 19,
|
|
"dmgPerLvl": 6,
|
|
"resist": 80,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 5,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 3,
|
|
"seller": 150,
|
|
"hireCost": 14000,
|
|
"level": 49,
|
|
"expPerLvl": 125,
|
|
"hp": 438,
|
|
"hpPerLvl": 16,
|
|
"defense": 378,
|
|
"defPerLvl": 18,
|
|
"str": 87,
|
|
"strPerLvl": 10,
|
|
"dex": 127,
|
|
"dexPerLvl": 16,
|
|
"ar": 618,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 17,
|
|
"dmgMax": 19,
|
|
"dmgPerLvl": 6,
|
|
"resist": 80,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 0,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 100,
|
|
"level": 3,
|
|
"expPerLvl": 100,
|
|
"hp": 45,
|
|
"hpPerLvl": 9,
|
|
"defense": 15,
|
|
"defPerLvl": 8,
|
|
"str": 35,
|
|
"strPerLvl": 10,
|
|
"dex": 45,
|
|
"dexPerLvl": 16,
|
|
"ar": 10,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 1,
|
|
"dmgMax": 3,
|
|
"dmgPerLvl": 2,
|
|
"resist": 0,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 0,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 100,
|
|
"level": 36,
|
|
"expPerLvl": 100,
|
|
"hp": 342,
|
|
"hpPerLvl": 18,
|
|
"defense": 279,
|
|
"defPerLvl": 15,
|
|
"str": 77,
|
|
"strPerLvl": 10,
|
|
"dex": 111,
|
|
"dexPerLvl": 16,
|
|
"ar": 406,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 9,
|
|
"dmgMax": 11,
|
|
"dmgPerLvl": 4,
|
|
"resist": 66,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 0,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 100,
|
|
"level": 67,
|
|
"expPerLvl": 100,
|
|
"hp": 900,
|
|
"hpPerLvl": 30,
|
|
"defense": 744,
|
|
"defPerLvl": 22,
|
|
"str": 116,
|
|
"strPerLvl": 10,
|
|
"dex": 173,
|
|
"dexPerLvl": 16,
|
|
"ar": 1150,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 25,
|
|
"dmgMax": 27,
|
|
"dmgPerLvl": 6,
|
|
"resist": 121,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 1,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 150,
|
|
"level": 3,
|
|
"expPerLvl": 105,
|
|
"hp": 45,
|
|
"hpPerLvl": 9,
|
|
"defense": 15,
|
|
"defPerLvl": 8,
|
|
"str": 35,
|
|
"strPerLvl": 10,
|
|
"dex": 45,
|
|
"dexPerLvl": 16,
|
|
"ar": 10,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 1,
|
|
"dmgMax": 3,
|
|
"dmgPerLvl": 2,
|
|
"resist": 0,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 1,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 150,
|
|
"level": 36,
|
|
"expPerLvl": 105,
|
|
"hp": 342,
|
|
"hpPerLvl": 18,
|
|
"defense": 279,
|
|
"defPerLvl": 15,
|
|
"str": 77,
|
|
"strPerLvl": 10,
|
|
"dex": 111,
|
|
"dexPerLvl": 16,
|
|
"ar": 406,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 9,
|
|
"dmgMax": 11,
|
|
"dmgPerLvl": 4,
|
|
"resist": 66,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 1,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 1,
|
|
"seller": 150,
|
|
"hireCost": 150,
|
|
"level": 67,
|
|
"expPerLvl": 105,
|
|
"hp": 900,
|
|
"hpPerLvl": 30,
|
|
"defense": 744,
|
|
"defPerLvl": 22,
|
|
"str": 116,
|
|
"strPerLvl": 10,
|
|
"dex": 173,
|
|
"dexPerLvl": 16,
|
|
"ar": 1150,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 25,
|
|
"dmgMax": 27,
|
|
"dmgPerLvl": 6,
|
|
"resist": 121,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 2,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 6000,
|
|
"level": 36,
|
|
"expPerLvl": 110,
|
|
"hp": 308,
|
|
"hpPerLvl": 18,
|
|
"defense": 251,
|
|
"defPerLvl": 15,
|
|
"str": 74,
|
|
"strPerLvl": 10,
|
|
"dex": 106,
|
|
"dexPerLvl": 16,
|
|
"ar": 365,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 8,
|
|
"dmgMax": 10,
|
|
"dmgPerLvl": 4,
|
|
"resist": 63,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 2,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 6000,
|
|
"level": 67,
|
|
"expPerLvl": 110,
|
|
"hp": 866,
|
|
"hpPerLvl": 30,
|
|
"defense": 716,
|
|
"defPerLvl": 22,
|
|
"str": 113,
|
|
"strPerLvl": 10,
|
|
"dex": 168,
|
|
"dexPerLvl": 16,
|
|
"ar": 1109,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 24,
|
|
"dmgMax": 26,
|
|
"dmgPerLvl": 6,
|
|
"resist": 118,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 3,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 7500,
|
|
"level": 36,
|
|
"expPerLvl": 115,
|
|
"hp": 308,
|
|
"hpPerLvl": 18,
|
|
"defense": 251,
|
|
"defPerLvl": 15,
|
|
"str": 74,
|
|
"strPerLvl": 10,
|
|
"dex": 106,
|
|
"dexPerLvl": 16,
|
|
"ar": 365,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 8,
|
|
"dmgMax": 10,
|
|
"dmgPerLvl": 4,
|
|
"resist": 63,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 3,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 2,
|
|
"seller": 150,
|
|
"hireCost": 7500,
|
|
"level": 67,
|
|
"expPerLvl": 115,
|
|
"hp": 866,
|
|
"hpPerLvl": 30,
|
|
"defense": 716,
|
|
"defPerLvl": 22,
|
|
"str": 113,
|
|
"strPerLvl": 10,
|
|
"dex": 168,
|
|
"dexPerLvl": 16,
|
|
"ar": 1109,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 24,
|
|
"dmgMax": 26,
|
|
"dmgPerLvl": 6,
|
|
"resist": 118,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 4,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 3,
|
|
"seller": 150,
|
|
"hireCost": 12500,
|
|
"level": 67,
|
|
"expPerLvl": 120,
|
|
"hp": 779,
|
|
"hpPerLvl": 30,
|
|
"defense": 644,
|
|
"defPerLvl": 22,
|
|
"str": 110,
|
|
"strPerLvl": 10,
|
|
"dex": 163,
|
|
"dexPerLvl": 16,
|
|
"ar": 998,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 23,
|
|
"dmgMax": 25,
|
|
"dmgPerLvl": 6,
|
|
"resist": 115,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 1,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
7
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 5,
|
|
"classId": 271,
|
|
"act": 1,
|
|
"difficulty": 3,
|
|
"seller": 150,
|
|
"hireCost": 14000,
|
|
"level": 67,
|
|
"expPerLvl": 125,
|
|
"hp": 779,
|
|
"hpPerLvl": 30,
|
|
"defense": 644,
|
|
"defPerLvl": 22,
|
|
"str": 110,
|
|
"strPerLvl": 10,
|
|
"dex": 163,
|
|
"dexPerLvl": 16,
|
|
"ar": 998,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 23,
|
|
"dmgMax": 25,
|
|
"dmgPerLvl": 6,
|
|
"resist": 115,
|
|
"resistPerLvl": 5,
|
|
"hireDesc": 2,
|
|
"nameFirstKey": "merc01",
|
|
"nameLastKey": "merc41",
|
|
"wNameFirstId": 3411,
|
|
"wNameLastId": 3451,
|
|
"skills": [
|
|
8,
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 6,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 9,
|
|
"expPerLvl": 110,
|
|
"hp": 120,
|
|
"hpPerLvl": 10,
|
|
"defense": 45,
|
|
"defPerLvl": 9,
|
|
"str": 57,
|
|
"strPerLvl": 14,
|
|
"dex": 40,
|
|
"dexPerLvl": 12,
|
|
"ar": 20,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 7,
|
|
"dmgMax": 14,
|
|
"dmgPerLvl": 4,
|
|
"resist": 18,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 6,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 31,
|
|
"expPerLvl": 110,
|
|
"hp": 340,
|
|
"hpPerLvl": 20,
|
|
"defense": 243,
|
|
"defPerLvl": 16,
|
|
"str": 96,
|
|
"strPerLvl": 14,
|
|
"dex": 73,
|
|
"dexPerLvl": 12,
|
|
"ar": 240,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 18,
|
|
"dmgMax": 25,
|
|
"dmgPerLvl": 6,
|
|
"resist": 62,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 6,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 55,
|
|
"expPerLvl": 110,
|
|
"hp": 820,
|
|
"hpPerLvl": 35,
|
|
"defense": 627,
|
|
"defPerLvl": 24,
|
|
"str": 138,
|
|
"strPerLvl": 14,
|
|
"dex": 109,
|
|
"dexPerLvl": 12,
|
|
"ar": 720,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 36,
|
|
"dmgMax": 43,
|
|
"dmgPerLvl": 8,
|
|
"resist": 104,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 7,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 9,
|
|
"expPerLvl": 110,
|
|
"hp": 120,
|
|
"hpPerLvl": 10,
|
|
"defense": 45,
|
|
"defPerLvl": 9,
|
|
"str": 57,
|
|
"strPerLvl": 14,
|
|
"dex": 40,
|
|
"dexPerLvl": 12,
|
|
"ar": 20,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 7,
|
|
"dmgMax": 14,
|
|
"dmgPerLvl": 4,
|
|
"resist": 18,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 7,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 31,
|
|
"expPerLvl": 110,
|
|
"hp": 340,
|
|
"hpPerLvl": 20,
|
|
"defense": 243,
|
|
"defPerLvl": 16,
|
|
"str": 96,
|
|
"strPerLvl": 14,
|
|
"dex": 73,
|
|
"dexPerLvl": 12,
|
|
"ar": 240,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 18,
|
|
"dmgMax": 25,
|
|
"dmgPerLvl": 6,
|
|
"resist": 62,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 7,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 55,
|
|
"expPerLvl": 110,
|
|
"hp": 820,
|
|
"hpPerLvl": 35,
|
|
"defense": 627,
|
|
"defPerLvl": 24,
|
|
"str": 138,
|
|
"strPerLvl": 14,
|
|
"dex": 109,
|
|
"dexPerLvl": 12,
|
|
"ar": 720,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 36,
|
|
"dmgMax": 43,
|
|
"dmgPerLvl": 8,
|
|
"resist": 104,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 8,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 9,
|
|
"expPerLvl": 110,
|
|
"hp": 120,
|
|
"hpPerLvl": 10,
|
|
"defense": 45,
|
|
"defPerLvl": 9,
|
|
"str": 57,
|
|
"strPerLvl": 14,
|
|
"dex": 40,
|
|
"dexPerLvl": 12,
|
|
"ar": 20,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 7,
|
|
"dmgMax": 14,
|
|
"dmgPerLvl": 4,
|
|
"resist": 18,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 8,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 31,
|
|
"expPerLvl": 110,
|
|
"hp": 340,
|
|
"hpPerLvl": 20,
|
|
"defense": 243,
|
|
"defPerLvl": 16,
|
|
"str": 96,
|
|
"strPerLvl": 14,
|
|
"dex": 73,
|
|
"dexPerLvl": 12,
|
|
"ar": 240,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 18,
|
|
"dmgMax": 25,
|
|
"dmgPerLvl": 6,
|
|
"resist": 62,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 8,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 55,
|
|
"expPerLvl": 110,
|
|
"hp": 820,
|
|
"hpPerLvl": 35,
|
|
"defense": 627,
|
|
"defPerLvl": 24,
|
|
"str": 138,
|
|
"strPerLvl": 14,
|
|
"dex": 109,
|
|
"dexPerLvl": 12,
|
|
"ar": 720,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 36,
|
|
"dmgMax": 43,
|
|
"dmgPerLvl": 8,
|
|
"resist": 104,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 9,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 31,
|
|
"expPerLvl": 120,
|
|
"hp": 306,
|
|
"hpPerLvl": 20,
|
|
"defense": 219,
|
|
"defPerLvl": 16,
|
|
"str": 92,
|
|
"strPerLvl": 14,
|
|
"dex": 69,
|
|
"dexPerLvl": 12,
|
|
"ar": 216,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 16,
|
|
"dmgMax": 23,
|
|
"dmgPerLvl": 6,
|
|
"resist": 59,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
103
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 9,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 55,
|
|
"expPerLvl": 120,
|
|
"hp": 786,
|
|
"hpPerLvl": 35,
|
|
"defense": 603,
|
|
"defPerLvl": 24,
|
|
"str": 134,
|
|
"strPerLvl": 14,
|
|
"dex": 105,
|
|
"dexPerLvl": 12,
|
|
"ar": 696,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 34,
|
|
"dmgMax": 41,
|
|
"dmgPerLvl": 8,
|
|
"resist": 101,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
103
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 10,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 31,
|
|
"expPerLvl": 120,
|
|
"hp": 306,
|
|
"hpPerLvl": 20,
|
|
"defense": 219,
|
|
"defPerLvl": 16,
|
|
"str": 92,
|
|
"strPerLvl": 14,
|
|
"dex": 69,
|
|
"dexPerLvl": 12,
|
|
"ar": 216,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 16,
|
|
"dmgMax": 23,
|
|
"dmgPerLvl": 6,
|
|
"resist": 59,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
114
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 10,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 55,
|
|
"expPerLvl": 120,
|
|
"hp": 786,
|
|
"hpPerLvl": 35,
|
|
"defense": 603,
|
|
"defPerLvl": 24,
|
|
"str": 134,
|
|
"strPerLvl": 14,
|
|
"dex": 105,
|
|
"dexPerLvl": 12,
|
|
"ar": 696,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 34,
|
|
"dmgMax": 41,
|
|
"dmgPerLvl": 8,
|
|
"resist": 101,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
114
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 11,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 31,
|
|
"expPerLvl": 120,
|
|
"hp": 306,
|
|
"hpPerLvl": 20,
|
|
"defense": 219,
|
|
"defPerLvl": 16,
|
|
"str": 92,
|
|
"strPerLvl": 14,
|
|
"dex": 69,
|
|
"dexPerLvl": 12,
|
|
"ar": 216,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 16,
|
|
"dmgMax": 23,
|
|
"dmgPerLvl": 6,
|
|
"resist": 59,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
98
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 11,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 55,
|
|
"expPerLvl": 120,
|
|
"hp": 786,
|
|
"hpPerLvl": 35,
|
|
"defense": 603,
|
|
"defPerLvl": 24,
|
|
"str": 134,
|
|
"strPerLvl": 14,
|
|
"dex": 105,
|
|
"dexPerLvl": 12,
|
|
"ar": 696,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 34,
|
|
"dmgMax": 41,
|
|
"dmgPerLvl": 8,
|
|
"resist": 101,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
98
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 12,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 3,
|
|
"seller": 198,
|
|
"hireCost": 15000,
|
|
"level": 55,
|
|
"expPerLvl": 130,
|
|
"hp": 707,
|
|
"hpPerLvl": 35,
|
|
"defense": 543,
|
|
"defPerLvl": 24,
|
|
"str": 130,
|
|
"strPerLvl": 14,
|
|
"dex": 101,
|
|
"dexPerLvl": 12,
|
|
"ar": 626,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 32,
|
|
"dmgMax": 39,
|
|
"dmgPerLvl": 8,
|
|
"resist": 98,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 13,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 3,
|
|
"seller": 198,
|
|
"hireCost": 15000,
|
|
"level": 55,
|
|
"expPerLvl": 130,
|
|
"hp": 707,
|
|
"hpPerLvl": 35,
|
|
"defense": 543,
|
|
"defPerLvl": 24,
|
|
"str": 130,
|
|
"strPerLvl": 14,
|
|
"dex": 101,
|
|
"dexPerLvl": 12,
|
|
"ar": 626,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 32,
|
|
"dmgMax": 39,
|
|
"dmgPerLvl": 8,
|
|
"resist": 98,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 14,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 3,
|
|
"seller": 198,
|
|
"hireCost": 15000,
|
|
"level": 55,
|
|
"expPerLvl": 130,
|
|
"hp": 707,
|
|
"hpPerLvl": 35,
|
|
"defense": 543,
|
|
"defPerLvl": 24,
|
|
"str": 130,
|
|
"strPerLvl": 14,
|
|
"dex": 101,
|
|
"dexPerLvl": 12,
|
|
"ar": 626,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 32,
|
|
"dmgMax": 39,
|
|
"dmgPerLvl": 8,
|
|
"resist": 98,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 6,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 9,
|
|
"expPerLvl": 110,
|
|
"hp": 120,
|
|
"hpPerLvl": 15,
|
|
"defense": 45,
|
|
"defPerLvl": 11,
|
|
"str": 57,
|
|
"strPerLvl": 14,
|
|
"dex": 40,
|
|
"dexPerLvl": 12,
|
|
"ar": 20,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 7,
|
|
"dmgMax": 14,
|
|
"dmgPerLvl": 4,
|
|
"resist": 18,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 6,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 43,
|
|
"expPerLvl": 110,
|
|
"hp": 630,
|
|
"hpPerLvl": 25,
|
|
"defense": 419,
|
|
"defPerLvl": 19,
|
|
"str": 117,
|
|
"strPerLvl": 14,
|
|
"dex": 91,
|
|
"dexPerLvl": 12,
|
|
"ar": 428,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 24,
|
|
"dmgMax": 31,
|
|
"dmgPerLvl": 6,
|
|
"resist": 86,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 6,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 75,
|
|
"expPerLvl": 110,
|
|
"hp": 1430,
|
|
"hpPerLvl": 40,
|
|
"defense": 1027,
|
|
"defPerLvl": 28,
|
|
"str": 173,
|
|
"strPerLvl": 14,
|
|
"dex": 139,
|
|
"dexPerLvl": 12,
|
|
"ar": 1196,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 48,
|
|
"dmgMax": 55,
|
|
"dmgPerLvl": 8,
|
|
"resist": 142,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 7,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 9,
|
|
"expPerLvl": 110,
|
|
"hp": 120,
|
|
"hpPerLvl": 15,
|
|
"defense": 45,
|
|
"defPerLvl": 11,
|
|
"str": 57,
|
|
"strPerLvl": 14,
|
|
"dex": 40,
|
|
"dexPerLvl": 12,
|
|
"ar": 20,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 7,
|
|
"dmgMax": 14,
|
|
"dmgPerLvl": 4,
|
|
"resist": 18,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 7,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 43,
|
|
"expPerLvl": 110,
|
|
"hp": 630,
|
|
"hpPerLvl": 25,
|
|
"defense": 419,
|
|
"defPerLvl": 19,
|
|
"str": 117,
|
|
"strPerLvl": 14,
|
|
"dex": 91,
|
|
"dexPerLvl": 12,
|
|
"ar": 428,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 24,
|
|
"dmgMax": 31,
|
|
"dmgPerLvl": 6,
|
|
"resist": 86,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 7,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 75,
|
|
"expPerLvl": 110,
|
|
"hp": 1430,
|
|
"hpPerLvl": 40,
|
|
"defense": 1027,
|
|
"defPerLvl": 28,
|
|
"str": 173,
|
|
"strPerLvl": 14,
|
|
"dex": 139,
|
|
"dexPerLvl": 12,
|
|
"ar": 1196,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 48,
|
|
"dmgMax": 55,
|
|
"dmgPerLvl": 8,
|
|
"resist": 142,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 8,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 9,
|
|
"expPerLvl": 110,
|
|
"hp": 120,
|
|
"hpPerLvl": 15,
|
|
"defense": 45,
|
|
"defPerLvl": 11,
|
|
"str": 57,
|
|
"strPerLvl": 14,
|
|
"dex": 40,
|
|
"dexPerLvl": 12,
|
|
"ar": 20,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 7,
|
|
"dmgMax": 14,
|
|
"dmgPerLvl": 4,
|
|
"resist": 18,
|
|
"resistPerLvl": 8,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 8,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 43,
|
|
"expPerLvl": 110,
|
|
"hp": 630,
|
|
"hpPerLvl": 25,
|
|
"defense": 419,
|
|
"defPerLvl": 19,
|
|
"str": 117,
|
|
"strPerLvl": 14,
|
|
"dex": 91,
|
|
"dexPerLvl": 12,
|
|
"ar": 428,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 24,
|
|
"dmgMax": 31,
|
|
"dmgPerLvl": 6,
|
|
"resist": 86,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 8,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 1,
|
|
"seller": 198,
|
|
"hireCost": 350,
|
|
"level": 75,
|
|
"expPerLvl": 110,
|
|
"hp": 1430,
|
|
"hpPerLvl": 40,
|
|
"defense": 1027,
|
|
"defPerLvl": 28,
|
|
"str": 173,
|
|
"strPerLvl": 14,
|
|
"dex": 139,
|
|
"dexPerLvl": 12,
|
|
"ar": 1196,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 48,
|
|
"dmgMax": 55,
|
|
"dmgPerLvl": 8,
|
|
"resist": 142,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 9,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 43,
|
|
"expPerLvl": 120,
|
|
"hp": 567,
|
|
"hpPerLvl": 25,
|
|
"defense": 377,
|
|
"defPerLvl": 19,
|
|
"str": 113,
|
|
"strPerLvl": 14,
|
|
"dex": 87,
|
|
"dexPerLvl": 12,
|
|
"ar": 385,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 22,
|
|
"dmgMax": 29,
|
|
"dmgPerLvl": 6,
|
|
"resist": 83,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
103
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 9,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 75,
|
|
"expPerLvl": 120,
|
|
"hp": 1367,
|
|
"hpPerLvl": 40,
|
|
"defense": 985,
|
|
"defPerLvl": 28,
|
|
"str": 169,
|
|
"strPerLvl": 14,
|
|
"dex": 135,
|
|
"dexPerLvl": 12,
|
|
"ar": 1153,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 46,
|
|
"dmgMax": 53,
|
|
"dmgPerLvl": 8,
|
|
"resist": 139,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
103
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 10,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 43,
|
|
"expPerLvl": 120,
|
|
"hp": 567,
|
|
"hpPerLvl": 25,
|
|
"defense": 377,
|
|
"defPerLvl": 19,
|
|
"str": 113,
|
|
"strPerLvl": 14,
|
|
"dex": 87,
|
|
"dexPerLvl": 12,
|
|
"ar": 385,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 22,
|
|
"dmgMax": 29,
|
|
"dmgPerLvl": 6,
|
|
"resist": 83,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
114
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 10,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 75,
|
|
"expPerLvl": 120,
|
|
"hp": 1367,
|
|
"hpPerLvl": 40,
|
|
"defense": 985,
|
|
"defPerLvl": 28,
|
|
"str": 169,
|
|
"strPerLvl": 14,
|
|
"dex": 135,
|
|
"dexPerLvl": 12,
|
|
"ar": 1153,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 46,
|
|
"dmgMax": 53,
|
|
"dmgPerLvl": 8,
|
|
"resist": 139,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
114
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 11,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 43,
|
|
"expPerLvl": 120,
|
|
"hp": 567,
|
|
"hpPerLvl": 25,
|
|
"defense": 377,
|
|
"defPerLvl": 19,
|
|
"str": 113,
|
|
"strPerLvl": 14,
|
|
"dex": 87,
|
|
"dexPerLvl": 12,
|
|
"ar": 385,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 22,
|
|
"dmgMax": 29,
|
|
"dmgPerLvl": 6,
|
|
"resist": 83,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
98
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 11,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 2,
|
|
"seller": 198,
|
|
"hireCost": 7900,
|
|
"level": 75,
|
|
"expPerLvl": 120,
|
|
"hp": 1367,
|
|
"hpPerLvl": 40,
|
|
"defense": 985,
|
|
"defPerLvl": 28,
|
|
"str": 169,
|
|
"strPerLvl": 14,
|
|
"dex": 135,
|
|
"dexPerLvl": 12,
|
|
"ar": 1153,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 46,
|
|
"dmgMax": 53,
|
|
"dmgPerLvl": 8,
|
|
"resist": 139,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
98
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 12,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 3,
|
|
"seller": 198,
|
|
"hireCost": 15000,
|
|
"level": 75,
|
|
"expPerLvl": 130,
|
|
"hp": 1230,
|
|
"hpPerLvl": 40,
|
|
"defense": 887,
|
|
"defPerLvl": 28,
|
|
"str": 165,
|
|
"strPerLvl": 14,
|
|
"dex": 131,
|
|
"dexPerLvl": 12,
|
|
"ar": 1038,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 44,
|
|
"dmgMax": 51,
|
|
"dmgPerLvl": 8,
|
|
"resist": 136,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 3,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
99
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 13,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 3,
|
|
"seller": 198,
|
|
"hireCost": 15000,
|
|
"level": 75,
|
|
"expPerLvl": 130,
|
|
"hp": 1230,
|
|
"hpPerLvl": 40,
|
|
"defense": 887,
|
|
"defPerLvl": 28,
|
|
"str": 165,
|
|
"strPerLvl": 14,
|
|
"dex": 131,
|
|
"dexPerLvl": 12,
|
|
"ar": 1038,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 44,
|
|
"dmgMax": 51,
|
|
"dmgPerLvl": 8,
|
|
"resist": 136,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 4,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
104
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 14,
|
|
"classId": 338,
|
|
"act": 2,
|
|
"difficulty": 3,
|
|
"seller": 198,
|
|
"hireCost": 15000,
|
|
"level": 75,
|
|
"expPerLvl": 130,
|
|
"hp": 1230,
|
|
"hpPerLvl": 40,
|
|
"defense": 887,
|
|
"defPerLvl": 28,
|
|
"str": 165,
|
|
"strPerLvl": 14,
|
|
"dex": 131,
|
|
"dexPerLvl": 12,
|
|
"ar": 1038,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 44,
|
|
"dmgMax": 51,
|
|
"dmgPerLvl": 8,
|
|
"resist": 136,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 5,
|
|
"nameFirstKey": "merca201",
|
|
"nameLastKey": "merca221",
|
|
"wNameFirstId": 1019,
|
|
"wNameLastId": 1039,
|
|
"skills": [
|
|
10,
|
|
108
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 15,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 15,
|
|
"expPerLvl": 110,
|
|
"hp": 160,
|
|
"hpPerLvl": 8,
|
|
"defense": 80,
|
|
"defPerLvl": 4,
|
|
"str": 49,
|
|
"strPerLvl": 10,
|
|
"dex": 40,
|
|
"dexPerLvl": 8,
|
|
"ar": 15,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 1,
|
|
"dmgMax": 7,
|
|
"dmgPerLvl": 4,
|
|
"resist": 25,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 15,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 37,
|
|
"expPerLvl": 110,
|
|
"hp": 336,
|
|
"hpPerLvl": 14,
|
|
"defense": 168,
|
|
"defPerLvl": 10,
|
|
"str": 77,
|
|
"strPerLvl": 10,
|
|
"dex": 62,
|
|
"dexPerLvl": 8,
|
|
"ar": 235,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 12,
|
|
"dmgMax": 18,
|
|
"dmgPerLvl": 4,
|
|
"resist": 64,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 15,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 61,
|
|
"expPerLvl": 110,
|
|
"hp": 672,
|
|
"hpPerLvl": 20,
|
|
"defense": 408,
|
|
"defPerLvl": 18,
|
|
"str": 107,
|
|
"strPerLvl": 10,
|
|
"dex": 86,
|
|
"dexPerLvl": 8,
|
|
"ar": 715,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 24,
|
|
"dmgMax": 30,
|
|
"dmgPerLvl": 4,
|
|
"resist": 106,
|
|
"resistPerLvl": 6,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 16,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1500,
|
|
"level": 15,
|
|
"expPerLvl": 120,
|
|
"hp": 160,
|
|
"hpPerLvl": 8,
|
|
"defense": 80,
|
|
"defPerLvl": 4,
|
|
"str": 49,
|
|
"strPerLvl": 10,
|
|
"dex": 40,
|
|
"dexPerLvl": 8,
|
|
"ar": 15,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 1,
|
|
"dmgMax": 7,
|
|
"dmgPerLvl": 4,
|
|
"resist": 25,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 16,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1500,
|
|
"level": 37,
|
|
"expPerLvl": 120,
|
|
"hp": 336,
|
|
"hpPerLvl": 14,
|
|
"defense": 168,
|
|
"defPerLvl": 10,
|
|
"str": 77,
|
|
"strPerLvl": 10,
|
|
"dex": 62,
|
|
"dexPerLvl": 8,
|
|
"ar": 235,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 12,
|
|
"dmgMax": 18,
|
|
"dmgPerLvl": 4,
|
|
"resist": 64,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 16,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1500,
|
|
"level": 61,
|
|
"expPerLvl": 120,
|
|
"hp": 672,
|
|
"hpPerLvl": 20,
|
|
"defense": 408,
|
|
"defPerLvl": 16,
|
|
"str": 107,
|
|
"strPerLvl": 10,
|
|
"dex": 86,
|
|
"dexPerLvl": 8,
|
|
"ar": 715,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 24,
|
|
"dmgMax": 30,
|
|
"dmgPerLvl": 4,
|
|
"resist": 106,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 17,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 15,
|
|
"expPerLvl": 110,
|
|
"hp": 160,
|
|
"hpPerLvl": 8,
|
|
"defense": 80,
|
|
"defPerLvl": 4,
|
|
"str": 49,
|
|
"strPerLvl": 10,
|
|
"dex": 40,
|
|
"dexPerLvl": 8,
|
|
"ar": 15,
|
|
"arPerLvl": 10,
|
|
"dmgMin": 1,
|
|
"dmgMax": 7,
|
|
"dmgPerLvl": 4,
|
|
"resist": 25,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 17,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 37,
|
|
"expPerLvl": 110,
|
|
"hp": 336,
|
|
"hpPerLvl": 14,
|
|
"defense": 168,
|
|
"defPerLvl": 10,
|
|
"str": 77,
|
|
"strPerLvl": 10,
|
|
"dex": 62,
|
|
"dexPerLvl": 8,
|
|
"ar": 235,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 12,
|
|
"dmgMax": 18,
|
|
"dmgPerLvl": 4,
|
|
"resist": 64,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 17,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 61,
|
|
"expPerLvl": 110,
|
|
"hp": 672,
|
|
"hpPerLvl": 20,
|
|
"defense": 408,
|
|
"defPerLvl": 16,
|
|
"str": 107,
|
|
"strPerLvl": 10,
|
|
"dex": 86,
|
|
"dexPerLvl": 8,
|
|
"ar": 715,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 24,
|
|
"dmgMax": 30,
|
|
"dmgPerLvl": 4,
|
|
"resist": 106,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 18,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 9500,
|
|
"level": 37,
|
|
"expPerLvl": 120,
|
|
"hp": 302,
|
|
"hpPerLvl": 14,
|
|
"defense": 151,
|
|
"defPerLvl": 10,
|
|
"str": 73,
|
|
"strPerLvl": 10,
|
|
"dex": 58,
|
|
"dexPerLvl": 8,
|
|
"ar": 212,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 10,
|
|
"dmgMax": 16,
|
|
"dmgPerLvl": 4,
|
|
"resist": 61,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 18,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 9500,
|
|
"level": 61,
|
|
"expPerLvl": 120,
|
|
"hp": 638,
|
|
"hpPerLvl": 20,
|
|
"defense": 391,
|
|
"defPerLvl": 16,
|
|
"str": 103,
|
|
"strPerLvl": 10,
|
|
"dex": 82,
|
|
"dexPerLvl": 8,
|
|
"ar": 692,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 22,
|
|
"dmgMax": 28,
|
|
"dmgPerLvl": 4,
|
|
"resist": 103,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 19,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 12000,
|
|
"level": 37,
|
|
"expPerLvl": 130,
|
|
"hp": 302,
|
|
"hpPerLvl": 14,
|
|
"defense": 151,
|
|
"defPerLvl": 10,
|
|
"str": 73,
|
|
"strPerLvl": 10,
|
|
"dex": 58,
|
|
"dexPerLvl": 8,
|
|
"ar": 212,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 10,
|
|
"dmgMax": 16,
|
|
"dmgPerLvl": 4,
|
|
"resist": 61,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 19,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 12000,
|
|
"level": 61,
|
|
"expPerLvl": 130,
|
|
"hp": 638,
|
|
"hpPerLvl": 20,
|
|
"defense": 391,
|
|
"defPerLvl": 16,
|
|
"str": 103,
|
|
"strPerLvl": 10,
|
|
"dex": 82,
|
|
"dexPerLvl": 8,
|
|
"ar": 692,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 22,
|
|
"dmgMax": 28,
|
|
"dmgPerLvl": 4,
|
|
"resist": 103,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 20,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 10000,
|
|
"level": 37,
|
|
"expPerLvl": 120,
|
|
"hp": 302,
|
|
"hpPerLvl": 14,
|
|
"defense": 151,
|
|
"defPerLvl": 10,
|
|
"str": 73,
|
|
"strPerLvl": 10,
|
|
"dex": 58,
|
|
"dexPerLvl": 8,
|
|
"ar": 212,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 10,
|
|
"dmgMax": 16,
|
|
"dmgPerLvl": 4,
|
|
"resist": 61,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 20,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 10000,
|
|
"level": 61,
|
|
"expPerLvl": 120,
|
|
"hp": 638,
|
|
"hpPerLvl": 20,
|
|
"defense": 391,
|
|
"defPerLvl": 16,
|
|
"str": 103,
|
|
"strPerLvl": 10,
|
|
"dex": 82,
|
|
"dexPerLvl": 8,
|
|
"ar": 692,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 22,
|
|
"dmgMax": 28,
|
|
"dmgPerLvl": 4,
|
|
"resist": 103,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 21,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 3,
|
|
"seller": 252,
|
|
"hireCost": 21000,
|
|
"level": 61,
|
|
"expPerLvl": 130,
|
|
"hp": 574,
|
|
"hpPerLvl": 20,
|
|
"defense": 352,
|
|
"defPerLvl": 16,
|
|
"str": 99,
|
|
"strPerLvl": 10,
|
|
"dex": 78,
|
|
"dexPerLvl": 8,
|
|
"ar": 623,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 20,
|
|
"dmgMax": 26,
|
|
"dmgPerLvl": 4,
|
|
"resist": 100,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 22,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 3,
|
|
"seller": 252,
|
|
"hireCost": 27000,
|
|
"level": 61,
|
|
"expPerLvl": 140,
|
|
"hp": 574,
|
|
"hpPerLvl": 20,
|
|
"defense": 352,
|
|
"defPerLvl": 16,
|
|
"str": 99,
|
|
"strPerLvl": 10,
|
|
"dex": 78,
|
|
"dexPerLvl": 8,
|
|
"ar": 623,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 20,
|
|
"dmgMax": 26,
|
|
"dmgPerLvl": 4,
|
|
"resist": 100,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 23,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 3,
|
|
"seller": 252,
|
|
"hireCost": 21000,
|
|
"level": 61,
|
|
"expPerLvl": 130,
|
|
"hp": 574,
|
|
"hpPerLvl": 20,
|
|
"defense": 352,
|
|
"defPerLvl": 16,
|
|
"str": 99,
|
|
"strPerLvl": 10,
|
|
"dex": 78,
|
|
"dexPerLvl": 8,
|
|
"ar": 623,
|
|
"arPerLvl": 30,
|
|
"dmgMin": 20,
|
|
"dmgMax": 27,
|
|
"dmgPerLvl": 4,
|
|
"resist": 100,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 15,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 15,
|
|
"expPerLvl": 110,
|
|
"hp": 160,
|
|
"hpPerLvl": 9,
|
|
"defense": 80,
|
|
"defPerLvl": 5,
|
|
"str": 49,
|
|
"strPerLvl": 10,
|
|
"dex": 40,
|
|
"dexPerLvl": 8,
|
|
"ar": 15,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 1,
|
|
"dmgMax": 7,
|
|
"dmgPerLvl": 4,
|
|
"resist": 25,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 15,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 49,
|
|
"expPerLvl": 110,
|
|
"hp": 466,
|
|
"hpPerLvl": 18,
|
|
"defense": 250,
|
|
"defPerLvl": 13,
|
|
"str": 92,
|
|
"strPerLvl": 10,
|
|
"dex": 74,
|
|
"dexPerLvl": 8,
|
|
"ar": 423,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 18,
|
|
"dmgMax": 24,
|
|
"dmgPerLvl": 4,
|
|
"resist": 85,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 15,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 79,
|
|
"expPerLvl": 110,
|
|
"hp": 1006,
|
|
"hpPerLvl": 27,
|
|
"defense": 640,
|
|
"defPerLvl": 25,
|
|
"str": 130,
|
|
"strPerLvl": 10,
|
|
"dex": 104,
|
|
"dexPerLvl": 8,
|
|
"ar": 1143,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 33,
|
|
"dmgMax": 39,
|
|
"dmgPerLvl": 4,
|
|
"resist": 138,
|
|
"resistPerLvl": 6,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 16,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1500,
|
|
"level": 15,
|
|
"expPerLvl": 120,
|
|
"hp": 160,
|
|
"hpPerLvl": 9,
|
|
"defense": 80,
|
|
"defPerLvl": 5,
|
|
"str": 49,
|
|
"strPerLvl": 10,
|
|
"dex": 40,
|
|
"dexPerLvl": 8,
|
|
"ar": 15,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 1,
|
|
"dmgMax": 7,
|
|
"dmgPerLvl": 4,
|
|
"resist": 25,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 16,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1500,
|
|
"level": 49,
|
|
"expPerLvl": 120,
|
|
"hp": 466,
|
|
"hpPerLvl": 18,
|
|
"defense": 250,
|
|
"defPerLvl": 13,
|
|
"str": 92,
|
|
"strPerLvl": 10,
|
|
"dex": 74,
|
|
"dexPerLvl": 8,
|
|
"ar": 423,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 18,
|
|
"dmgMax": 24,
|
|
"dmgPerLvl": 4,
|
|
"resist": 85,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 16,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1500,
|
|
"level": 79,
|
|
"expPerLvl": 120,
|
|
"hp": 1006,
|
|
"hpPerLvl": 27,
|
|
"defense": 640,
|
|
"defPerLvl": 25,
|
|
"str": 130,
|
|
"strPerLvl": 10,
|
|
"dex": 104,
|
|
"dexPerLvl": 8,
|
|
"ar": 1143,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 33,
|
|
"dmgMax": 39,
|
|
"dmgPerLvl": 4,
|
|
"resist": 138,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 17,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 15,
|
|
"expPerLvl": 110,
|
|
"hp": 160,
|
|
"hpPerLvl": 9,
|
|
"defense": 80,
|
|
"defPerLvl": 5,
|
|
"str": 49,
|
|
"strPerLvl": 10,
|
|
"dex": 40,
|
|
"dexPerLvl": 8,
|
|
"ar": 15,
|
|
"arPerLvl": 12,
|
|
"dmgMin": 1,
|
|
"dmgMax": 7,
|
|
"dmgPerLvl": 4,
|
|
"resist": 25,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 17,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 49,
|
|
"expPerLvl": 110,
|
|
"hp": 466,
|
|
"hpPerLvl": 18,
|
|
"defense": 250,
|
|
"defPerLvl": 13,
|
|
"str": 92,
|
|
"strPerLvl": 10,
|
|
"dex": 74,
|
|
"dexPerLvl": 8,
|
|
"ar": 423,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 18,
|
|
"dmgMax": 24,
|
|
"dmgPerLvl": 4,
|
|
"resist": 85,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 17,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 1,
|
|
"seller": 252,
|
|
"hireCost": 1000,
|
|
"level": 79,
|
|
"expPerLvl": 110,
|
|
"hp": 1006,
|
|
"hpPerLvl": 27,
|
|
"defense": 640,
|
|
"defPerLvl": 25,
|
|
"str": 130,
|
|
"strPerLvl": 10,
|
|
"dex": 104,
|
|
"dexPerLvl": 8,
|
|
"ar": 1143,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 33,
|
|
"dmgMax": 39,
|
|
"dmgPerLvl": 4,
|
|
"resist": 138,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 18,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 9500,
|
|
"level": 49,
|
|
"expPerLvl": 120,
|
|
"hp": 419,
|
|
"hpPerLvl": 18,
|
|
"defense": 225,
|
|
"defPerLvl": 13,
|
|
"str": 88,
|
|
"strPerLvl": 10,
|
|
"dex": 70,
|
|
"dexPerLvl": 8,
|
|
"ar": 381,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 16,
|
|
"dmgMax": 22,
|
|
"dmgPerLvl": 4,
|
|
"resist": 82,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 18,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 9500,
|
|
"level": 79,
|
|
"expPerLvl": 120,
|
|
"hp": 959,
|
|
"hpPerLvl": 27,
|
|
"defense": 615,
|
|
"defPerLvl": 25,
|
|
"str": 126,
|
|
"strPerLvl": 10,
|
|
"dex": 100,
|
|
"dexPerLvl": 8,
|
|
"ar": 1101,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 31,
|
|
"dmgMax": 37,
|
|
"dmgPerLvl": 4,
|
|
"resist": 135,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 19,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 12000,
|
|
"level": 49,
|
|
"expPerLvl": 130,
|
|
"hp": 419,
|
|
"hpPerLvl": 18,
|
|
"defense": 225,
|
|
"defPerLvl": 13,
|
|
"str": 88,
|
|
"strPerLvl": 10,
|
|
"dex": 70,
|
|
"dexPerLvl": 8,
|
|
"ar": 381,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 16,
|
|
"dmgMax": 22,
|
|
"dmgPerLvl": 4,
|
|
"resist": 82,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 19,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 12000,
|
|
"level": 79,
|
|
"expPerLvl": 130,
|
|
"hp": 959,
|
|
"hpPerLvl": 27,
|
|
"defense": 615,
|
|
"defPerLvl": 25,
|
|
"str": 126,
|
|
"strPerLvl": 10,
|
|
"dex": 100,
|
|
"dexPerLvl": 8,
|
|
"ar": 1101,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 31,
|
|
"dmgMax": 37,
|
|
"dmgPerLvl": 4,
|
|
"resist": 135,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 20,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 10000,
|
|
"level": 49,
|
|
"expPerLvl": 120,
|
|
"hp": 419,
|
|
"hpPerLvl": 18,
|
|
"defense": 225,
|
|
"defPerLvl": 13,
|
|
"str": 88,
|
|
"strPerLvl": 10,
|
|
"dex": 70,
|
|
"dexPerLvl": 8,
|
|
"ar": 381,
|
|
"arPerLvl": 24,
|
|
"dmgMin": 16,
|
|
"dmgMax": 22,
|
|
"dmgPerLvl": 4,
|
|
"resist": 82,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 20,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 2,
|
|
"seller": 252,
|
|
"hireCost": 10000,
|
|
"level": 79,
|
|
"expPerLvl": 120,
|
|
"hp": 959,
|
|
"hpPerLvl": 27,
|
|
"defense": 615,
|
|
"defPerLvl": 25,
|
|
"str": 126,
|
|
"strPerLvl": 10,
|
|
"dex": 100,
|
|
"dexPerLvl": 8,
|
|
"ar": 1101,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 31,
|
|
"dmgMax": 37,
|
|
"dmgPerLvl": 4,
|
|
"resist": 135,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 21,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 3,
|
|
"seller": 252,
|
|
"hireCost": 21000,
|
|
"level": 79,
|
|
"expPerLvl": 130,
|
|
"hp": 863,
|
|
"hpPerLvl": 27,
|
|
"defense": 554,
|
|
"defPerLvl": 25,
|
|
"str": 122,
|
|
"strPerLvl": 10,
|
|
"dex": 96,
|
|
"dexPerLvl": 8,
|
|
"ar": 991,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 29,
|
|
"dmgMax": 35,
|
|
"dmgPerLvl": 4,
|
|
"resist": 132,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 6,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
41,
|
|
47
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 22,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 3,
|
|
"seller": 252,
|
|
"hireCost": 27000,
|
|
"level": 79,
|
|
"expPerLvl": 140,
|
|
"hp": 863,
|
|
"hpPerLvl": 27,
|
|
"defense": 554,
|
|
"defPerLvl": 25,
|
|
"str": 122,
|
|
"strPerLvl": 10,
|
|
"dex": 96,
|
|
"dexPerLvl": 8,
|
|
"ar": 991,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 29,
|
|
"dmgMax": 35,
|
|
"dmgPerLvl": 4,
|
|
"resist": 132,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 7,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
55,
|
|
40,
|
|
45
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 23,
|
|
"classId": 359,
|
|
"act": 3,
|
|
"difficulty": 3,
|
|
"seller": 252,
|
|
"hireCost": 21000,
|
|
"level": 79,
|
|
"expPerLvl": 130,
|
|
"hp": 863,
|
|
"hpPerLvl": 27,
|
|
"defense": 554,
|
|
"defPerLvl": 25,
|
|
"str": 122,
|
|
"strPerLvl": 10,
|
|
"dex": 96,
|
|
"dexPerLvl": 8,
|
|
"ar": 991,
|
|
"arPerLvl": 36,
|
|
"dmgMin": 29,
|
|
"dmgMax": 36,
|
|
"dmgPerLvl": 4,
|
|
"resist": 132,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 8,
|
|
"nameFirstKey": "merca222",
|
|
"nameLastKey": "merca241",
|
|
"wNameFirstId": 1040,
|
|
"wNameLastId": 1059,
|
|
"skills": [
|
|
38,
|
|
49
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 24,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 28,
|
|
"expPerLvl": 120,
|
|
"hp": 288,
|
|
"hpPerLvl": 14,
|
|
"defense": 180,
|
|
"defPerLvl": 7,
|
|
"str": 101,
|
|
"strPerLvl": 15,
|
|
"dex": 63,
|
|
"dexPerLvl": 10,
|
|
"ar": 150,
|
|
"arPerLvl": 17,
|
|
"dmgMin": 16,
|
|
"dmgMax": 20,
|
|
"dmgPerLvl": 6,
|
|
"resist": 56,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 24,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 42,
|
|
"expPerLvl": 120,
|
|
"hp": 484,
|
|
"hpPerLvl": 21,
|
|
"defense": 278,
|
|
"defPerLvl": 20,
|
|
"str": 128,
|
|
"strPerLvl": 15,
|
|
"dex": 81,
|
|
"dexPerLvl": 10,
|
|
"ar": 388,
|
|
"arPerLvl": 27,
|
|
"dmgMin": 27,
|
|
"dmgMax": 31,
|
|
"dmgPerLvl": 8,
|
|
"resist": 81,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 24,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 75,
|
|
"expPerLvl": 120,
|
|
"hp": 1177,
|
|
"hpPerLvl": 35,
|
|
"defense": 938,
|
|
"defPerLvl": 40,
|
|
"str": 190,
|
|
"strPerLvl": 15,
|
|
"dex": 123,
|
|
"dexPerLvl": 10,
|
|
"ar": 1279,
|
|
"arPerLvl": 37,
|
|
"dmgMin": 60,
|
|
"dmgMax": 64,
|
|
"dmgPerLvl": 8,
|
|
"resist": 139,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 25,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 28,
|
|
"expPerLvl": 120,
|
|
"hp": 288,
|
|
"hpPerLvl": 14,
|
|
"defense": 180,
|
|
"defPerLvl": 7,
|
|
"str": 101,
|
|
"strPerLvl": 15,
|
|
"dex": 63,
|
|
"dexPerLvl": 10,
|
|
"ar": 150,
|
|
"arPerLvl": 17,
|
|
"dmgMin": 16,
|
|
"dmgMax": 20,
|
|
"dmgPerLvl": 6,
|
|
"resist": 56,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 25,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 42,
|
|
"expPerLvl": 120,
|
|
"hp": 484,
|
|
"hpPerLvl": 21,
|
|
"defense": 278,
|
|
"defPerLvl": 20,
|
|
"str": 128,
|
|
"strPerLvl": 15,
|
|
"dex": 81,
|
|
"dexPerLvl": 10,
|
|
"ar": 388,
|
|
"arPerLvl": 27,
|
|
"dmgMin": 27,
|
|
"dmgMax": 31,
|
|
"dmgPerLvl": 8,
|
|
"resist": 81,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 25,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 75,
|
|
"expPerLvl": 120,
|
|
"hp": 1177,
|
|
"hpPerLvl": 35,
|
|
"defense": 938,
|
|
"defPerLvl": 40,
|
|
"str": 190,
|
|
"strPerLvl": 15,
|
|
"dex": 123,
|
|
"dexPerLvl": 10,
|
|
"ar": 1279,
|
|
"arPerLvl": 37,
|
|
"dmgMin": 60,
|
|
"dmgMax": 64,
|
|
"dmgPerLvl": 8,
|
|
"resist": 139,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 26,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 42,
|
|
"expPerLvl": 130,
|
|
"hp": 436,
|
|
"hpPerLvl": 21,
|
|
"defense": 250,
|
|
"defPerLvl": 20,
|
|
"str": 125,
|
|
"strPerLvl": 15,
|
|
"dex": 76,
|
|
"dexPerLvl": 10,
|
|
"ar": 349,
|
|
"arPerLvl": 27,
|
|
"dmgMin": 25,
|
|
"dmgMax": 29,
|
|
"dmgPerLvl": 8,
|
|
"resist": 78,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 26,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 75,
|
|
"expPerLvl": 130,
|
|
"hp": 1129,
|
|
"hpPerLvl": 35,
|
|
"defense": 910,
|
|
"defPerLvl": 40,
|
|
"str": 187,
|
|
"strPerLvl": 15,
|
|
"dex": 118,
|
|
"dexPerLvl": 10,
|
|
"ar": 1240,
|
|
"arPerLvl": 37,
|
|
"dmgMin": 58,
|
|
"dmgMax": 62,
|
|
"dmgPerLvl": 8,
|
|
"resist": 136,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 27,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 42,
|
|
"expPerLvl": 130,
|
|
"hp": 436,
|
|
"hpPerLvl": 21,
|
|
"defense": 250,
|
|
"defPerLvl": 20,
|
|
"str": 125,
|
|
"strPerLvl": 15,
|
|
"dex": 76,
|
|
"dexPerLvl": 10,
|
|
"ar": 349,
|
|
"arPerLvl": 27,
|
|
"dmgMin": 25,
|
|
"dmgMax": 29,
|
|
"dmgPerLvl": 8,
|
|
"resist": 78,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 27,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 75,
|
|
"expPerLvl": 130,
|
|
"hp": 1129,
|
|
"hpPerLvl": 35,
|
|
"defense": 910,
|
|
"defPerLvl": 40,
|
|
"str": 187,
|
|
"strPerLvl": 15,
|
|
"dex": 118,
|
|
"dexPerLvl": 10,
|
|
"ar": 1240,
|
|
"arPerLvl": 37,
|
|
"dmgMin": 58,
|
|
"dmgMax": 62,
|
|
"dmgPerLvl": 8,
|
|
"resist": 136,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 28,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 3,
|
|
"seller": 515,
|
|
"hireCost": 32000,
|
|
"level": 75,
|
|
"expPerLvl": 140,
|
|
"hp": 1016,
|
|
"hpPerLvl": 35,
|
|
"defense": 819,
|
|
"defPerLvl": 40,
|
|
"str": 184,
|
|
"strPerLvl": 15,
|
|
"dex": 113,
|
|
"dexPerLvl": 10,
|
|
"ar": 1116,
|
|
"arPerLvl": 37,
|
|
"dmgMin": 56,
|
|
"dmgMax": 60,
|
|
"dmgPerLvl": 8,
|
|
"resist": 133,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 0,
|
|
"subTypeId": 29,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 3,
|
|
"seller": 515,
|
|
"hireCost": 32000,
|
|
"level": 75,
|
|
"expPerLvl": 140,
|
|
"hp": 1016,
|
|
"hpPerLvl": 35,
|
|
"defense": 819,
|
|
"defPerLvl": 40,
|
|
"str": 184,
|
|
"strPerLvl": 15,
|
|
"dex": 113,
|
|
"dexPerLvl": 10,
|
|
"ar": 1116,
|
|
"arPerLvl": 37,
|
|
"dmgMin": 56,
|
|
"dmgMax": 60,
|
|
"dmgPerLvl": 8,
|
|
"resist": 133,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 24,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 28,
|
|
"expPerLvl": 120,
|
|
"hp": 288,
|
|
"hpPerLvl": 18,
|
|
"defense": 180,
|
|
"defPerLvl": 10,
|
|
"str": 101,
|
|
"strPerLvl": 15,
|
|
"dex": 63,
|
|
"dexPerLvl": 10,
|
|
"ar": 150,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 16,
|
|
"dmgMax": 20,
|
|
"dmgPerLvl": 6,
|
|
"resist": 56,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 24,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 58,
|
|
"expPerLvl": 120,
|
|
"hp": 828,
|
|
"hpPerLvl": 27,
|
|
"defense": 480,
|
|
"defPerLvl": 35,
|
|
"str": 158,
|
|
"strPerLvl": 15,
|
|
"dex": 101,
|
|
"dexPerLvl": 10,
|
|
"ar": 750,
|
|
"arPerLvl": 35,
|
|
"dmgMin": 39,
|
|
"dmgMax": 43,
|
|
"dmgPerLvl": 8,
|
|
"resist": 109,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 24,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 80,
|
|
"expPerLvl": 120,
|
|
"hp": 1422,
|
|
"hpPerLvl": 45,
|
|
"defense": 1250,
|
|
"defPerLvl": 50,
|
|
"str": 200,
|
|
"strPerLvl": 15,
|
|
"dex": 129,
|
|
"dexPerLvl": 10,
|
|
"ar": 1520,
|
|
"arPerLvl": 45,
|
|
"dmgMin": 61,
|
|
"dmgMax": 65,
|
|
"dmgPerLvl": 8,
|
|
"resist": 148,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 25,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 28,
|
|
"expPerLvl": 120,
|
|
"hp": 288,
|
|
"hpPerLvl": 18,
|
|
"defense": 180,
|
|
"defPerLvl": 10,
|
|
"str": 101,
|
|
"strPerLvl": 15,
|
|
"dex": 63,
|
|
"dexPerLvl": 10,
|
|
"ar": 150,
|
|
"arPerLvl": 20,
|
|
"dmgMin": 16,
|
|
"dmgMax": 20,
|
|
"dmgPerLvl": 6,
|
|
"resist": 56,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 25,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 58,
|
|
"expPerLvl": 120,
|
|
"hp": 828,
|
|
"hpPerLvl": 27,
|
|
"defense": 480,
|
|
"defPerLvl": 35,
|
|
"str": 158,
|
|
"strPerLvl": 15,
|
|
"dex": 101,
|
|
"dexPerLvl": 10,
|
|
"ar": 750,
|
|
"arPerLvl": 35,
|
|
"dmgMin": 39,
|
|
"dmgMax": 43,
|
|
"dmgPerLvl": 8,
|
|
"resist": 109,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 25,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 1,
|
|
"seller": 515,
|
|
"hireCost": 9000,
|
|
"level": 80,
|
|
"expPerLvl": 120,
|
|
"hp": 1422,
|
|
"hpPerLvl": 45,
|
|
"defense": 1250,
|
|
"defPerLvl": 50,
|
|
"str": 200,
|
|
"strPerLvl": 15,
|
|
"dex": 129,
|
|
"dexPerLvl": 10,
|
|
"ar": 1520,
|
|
"arPerLvl": 45,
|
|
"dmgMin": 61,
|
|
"dmgMax": 65,
|
|
"dmgPerLvl": 8,
|
|
"resist": 148,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 26,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 58,
|
|
"expPerLvl": 130,
|
|
"hp": 745,
|
|
"hpPerLvl": 27,
|
|
"defense": 432,
|
|
"defPerLvl": 35,
|
|
"str": 155,
|
|
"strPerLvl": 15,
|
|
"dex": 96,
|
|
"dexPerLvl": 10,
|
|
"ar": 675,
|
|
"arPerLvl": 35,
|
|
"dmgMin": 37,
|
|
"dmgMax": 41,
|
|
"dmgPerLvl": 8,
|
|
"resist": 106,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 26,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 80,
|
|
"expPerLvl": 130,
|
|
"hp": 1339,
|
|
"hpPerLvl": 45,
|
|
"defense": 1202,
|
|
"defPerLvl": 50,
|
|
"str": 197,
|
|
"strPerLvl": 15,
|
|
"dex": 124,
|
|
"dexPerLvl": 10,
|
|
"ar": 1445,
|
|
"arPerLvl": 45,
|
|
"dmgMin": 59,
|
|
"dmgMax": 63,
|
|
"dmgPerLvl": 8,
|
|
"resist": 145,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 27,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 58,
|
|
"expPerLvl": 130,
|
|
"hp": 745,
|
|
"hpPerLvl": 27,
|
|
"defense": 432,
|
|
"defPerLvl": 35,
|
|
"str": 155,
|
|
"strPerLvl": 15,
|
|
"dex": 96,
|
|
"dexPerLvl": 10,
|
|
"ar": 675,
|
|
"arPerLvl": 35,
|
|
"dmgMin": 37,
|
|
"dmgMax": 41,
|
|
"dmgPerLvl": 8,
|
|
"resist": 106,
|
|
"resistPerLvl": 7,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 27,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 2,
|
|
"seller": 515,
|
|
"hireCost": 18000,
|
|
"level": 80,
|
|
"expPerLvl": 130,
|
|
"hp": 1339,
|
|
"hpPerLvl": 45,
|
|
"defense": 1202,
|
|
"defPerLvl": 50,
|
|
"str": 197,
|
|
"strPerLvl": 15,
|
|
"dex": 124,
|
|
"dexPerLvl": 10,
|
|
"ar": 1445,
|
|
"arPerLvl": 45,
|
|
"dmgMin": 59,
|
|
"dmgMax": 63,
|
|
"dmgPerLvl": 8,
|
|
"resist": 145,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 28,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 3,
|
|
"seller": 515,
|
|
"hireCost": 32000,
|
|
"level": 80,
|
|
"expPerLvl": 140,
|
|
"hp": 1205,
|
|
"hpPerLvl": 45,
|
|
"defense": 1082,
|
|
"defPerLvl": 50,
|
|
"str": 194,
|
|
"strPerLvl": 15,
|
|
"dex": 119,
|
|
"dexPerLvl": 10,
|
|
"ar": 1301,
|
|
"arPerLvl": 45,
|
|
"dmgMin": 57,
|
|
"dmgMax": 61,
|
|
"dmgPerLvl": 8,
|
|
"resist": 142,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
},
|
|
{
|
|
"version": 100,
|
|
"subTypeId": 29,
|
|
"classId": 561,
|
|
"act": 5,
|
|
"difficulty": 3,
|
|
"seller": 515,
|
|
"hireCost": 32000,
|
|
"level": 80,
|
|
"expPerLvl": 140,
|
|
"hp": 1205,
|
|
"hpPerLvl": 45,
|
|
"defense": 1082,
|
|
"defPerLvl": 50,
|
|
"str": 194,
|
|
"strPerLvl": 15,
|
|
"dex": 119,
|
|
"dexPerLvl": 10,
|
|
"ar": 1301,
|
|
"arPerLvl": 45,
|
|
"dmgMin": 57,
|
|
"dmgMax": 61,
|
|
"dmgPerLvl": 8,
|
|
"resist": 142,
|
|
"resistPerLvl": 4,
|
|
"hireDesc": 0,
|
|
"nameFirstKey": "MercX101",
|
|
"nameLastKey": "MercX167",
|
|
"wNameFirstId": 10835,
|
|
"wNameLastId": 10901,
|
|
"skills": [
|
|
126,
|
|
139
|
|
]
|
|
}
|
|
]
|
|
|
|
export interface HirelingCandidateDesc {
|
|
readonly mercId: number
|
|
readonly nameId: number
|
|
readonly seed: number
|
|
readonly actIndex: number
|
|
readonly classId: number
|
|
readonly subTypeId: number
|
|
readonly name: string
|
|
readonly level: number
|
|
readonly hp: number
|
|
readonly defense: number
|
|
readonly strength: number
|
|
readonly dexterity: number
|
|
readonly cost: number
|
|
readonly resist: number
|
|
readonly hireDescId: number
|
|
readonly hireDesc: string
|
|
readonly skills: readonly number[]
|
|
readonly line1: string
|
|
readonly line2: string
|
|
}
|
|
|
|
/**
|
|
* Maps a mercenary name ID to their act index (0..3) per D2Common.dll ordinal 10988 (0x6fd7c9e0).
|
|
*/
|
|
export function resolveHirelingAct(wMercName: number, expansion = true): number {
|
|
const version = expansion ? 100 : 0
|
|
for (const r of HIRELING_RECORDS) {
|
|
if (r.version === version && r.wNameFirstId <= wMercName && wMercName <= r.wNameLastId) {
|
|
return r.act - 1
|
|
}
|
|
}
|
|
// Fallbacks by known name ranges
|
|
if (wMercName >= 3411 && wMercName <= 3451) return 0
|
|
if (wMercName >= 1019 && wMercName <= 1039) return 1
|
|
if (wMercName >= 1040 && wMercName <= 1059) return 2
|
|
if (wMercName === 11021 || wMercName === 0x0421) return 2
|
|
if (wMercName >= 10835 && wMercName <= 10901) return 4
|
|
return 0
|
|
}
|
|
|
|
/**
|
|
* Resolves a mercenary name string from their TBL index per D2Client.dll 0x6faf9783.
|
|
*/
|
|
export function resolveHirelingName(wMercName: number, lang: 'ENG' | 'CHI' = 'CHI'): string {
|
|
// D2Client.dll 0x6faf978c: if wMercName == 0x0421 (1057), replace with 0x2b0d (11021 = "Jarulf")
|
|
const resolvedNameId = wMercName === 0x0421 ? 0x2b0d : wMercName
|
|
|
|
if (resolvedNameId === 0x2b0d) {
|
|
return lookupTbl('merca239', lang) ?? (lang === 'ENG' ? 'Jarulf' : '賈魯夫')
|
|
}
|
|
|
|
// Act 1 Rogue (string.tbl 3411..3444 -> merc01..merc34)
|
|
if (resolvedNameId >= 3411 && resolvedNameId <= 3451) {
|
|
const idx = resolvedNameId - 3411 + 1
|
|
const key = `merc${idx < 10 ? `0${idx}` : idx}`
|
|
return lookupTbl(key, lang) ?? (lang === 'ENG' ? `Rogue #${idx}` : `羅格 #${idx}`)
|
|
}
|
|
|
|
// Act 2 Desert Mercenary (patchstring.tbl 1019..1039 -> merca201..merca221)
|
|
if (resolvedNameId >= 1019 && resolvedNameId <= 1039) {
|
|
const idx = resolvedNameId - 1019 + 1
|
|
const key = `merca2${idx < 10 ? `0${idx}` : idx}`
|
|
return lookupTbl(key, lang) ?? (lang === 'ENG' ? `Desert Mercenary #${idx}` : `沙漠傭兵 #${idx}`)
|
|
}
|
|
|
|
// Act 3 Iron Wolf (patchstring.tbl 1040..1059 -> merca222..merca241)
|
|
if (resolvedNameId >= 1040 && resolvedNameId <= 1059) {
|
|
const idx = resolvedNameId - 1040 + 22
|
|
const key = `merca2${idx}`
|
|
return lookupTbl(key, lang) ?? (lang === 'ENG' ? `Iron Wolf #${idx}` : `鐵狼 #${idx}`)
|
|
}
|
|
|
|
// Act 5 Barbarian (patchstring.tbl 835..901 / global 10835..10901 -> MercX101..MercX167)
|
|
const barbId = resolvedNameId >= 10000 ? resolvedNameId - 10000 : resolvedNameId
|
|
if (barbId >= 835 && barbId <= 901) {
|
|
const idx = barbId - 835 + 101
|
|
const key = `MercX${idx}`
|
|
return lookupTbl(key, lang) ?? (lang === 'ENG' ? `Barbarian #${idx}` : `野蠻人 #${idx}`)
|
|
}
|
|
|
|
return lookupTbl(`merc${resolvedNameId}`, lang) ?? `Mercenary #${resolvedNameId}`
|
|
}
|
|
|
|
/**
|
|
* Resolves the hireling ability description string per D2Common.dll ordinal 10091 (0x6fd7c9c0).
|
|
*/
|
|
export function resolveHirelingDesc(hireDescId: number, lang: 'ENG' | 'CHI' = 'CHI'): string {
|
|
switch (hireDescId) {
|
|
case 1:
|
|
return lookupTbl('strhirespecial1', lang) ?? (lang === 'ENG' ? 'Fire Arrow' : '火箭')
|
|
case 2:
|
|
return lookupTbl('strhirespecial2', lang) ?? (lang === 'ENG' ? 'Cold Arrow' : '冰箭')
|
|
case 3:
|
|
return lookupTbl('PalMercEXST4X', lang) ?? (lang === 'ENG' ? 'Combat' : '戰鬥')
|
|
case 4:
|
|
return lookupTbl('PalMercExST1X', lang) ?? (lang === 'ENG' ? 'Defensive' : '防禦')
|
|
case 5:
|
|
return lookupTbl('PalMercEXST3X', lang) ?? (lang === 'ENG' ? 'Offensive' : '進攻')
|
|
case 6:
|
|
return lookupTbl('strhirespecial7', lang) ?? (lang === 'ENG' ? 'Fire' : '火')
|
|
case 7:
|
|
return lookupTbl('strhirespecial6', lang) ?? (lang === 'ENG' ? 'Cold' : '冷')
|
|
case 8:
|
|
return lookupTbl('strhirespecial5', lang) ?? (lang === 'ENG' ? 'Lightning' : '閃電')
|
|
default:
|
|
return ''
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Formats a candidate into 2 lines for the scrollable list control per D2Client.dll 0x6faf9440.
|
|
*/
|
|
export function formatHirelingCandidateLines(
|
|
name: string,
|
|
level: number,
|
|
hp: number,
|
|
defense: number,
|
|
cost: number,
|
|
hireDesc: string,
|
|
lang: 'ENG' | 'CHI' = 'CHI',
|
|
): { line1: string; line2: string } {
|
|
const lvlLabel = lookupTbl('Level', lang) ?? (lang === 'ENG' ? 'Lvl' : '等級')
|
|
const lifeLabel = lookupTbl('HP', lang) ?? (lang === 'ENG' ? 'Life' : '生命')
|
|
const defLabel = lookupTbl('AC', lang) ?? (lang === 'ENG' ? 'Def' : '防禦')
|
|
const costLabel = lookupTbl('Cost', lang) ?? (lang === 'ENG' ? 'Cost' : '花費')
|
|
|
|
// Line 1: <Name> - Lvl: <lvl> Life: <hp> Def: <def> Cost: <cost>
|
|
const line1 = `${name} - ${lvlLabel}: ${level} ${lifeLabel}: ${hp} ${defLabel}: ${defense} ${costLabel}: ${cost}`
|
|
|
|
// Line 2: 2 leading spaces + HireDesc (or blank if no special ability)
|
|
const line2 = hireDesc ? ` ${hireDesc}` : ' '
|
|
|
|
return { line1, line2 }
|
|
}
|
|
|
|
/**
|
|
* Evaluates a candidate's authentic stats, level, and hire cost using Diablo II's 64-bit LCG
|
|
* per D2Common.dll ordinal 10458 (0x6fd7ccc0).
|
|
*/
|
|
export function resolveHirelingCandidate(
|
|
candidate: { readonly nameId: number; readonly seed: number },
|
|
playerLevel: number,
|
|
difficulty: number,
|
|
actIndex: number,
|
|
expansion = true,
|
|
lang: 'ENG' | 'CHI' = 'CHI',
|
|
): HirelingCandidateDesc {
|
|
const version = expansion ? 100 : 0
|
|
const targetAct = actIndex + 1
|
|
const targetDiff = difficulty + 1
|
|
|
|
// 1. Collect all base rows matching (version, act, difficulty) per 0x6fda3050
|
|
const actDiffRows = HIRELING_RECORDS.filter(
|
|
(r) => r.version === version && r.act === targetAct && r.difficulty === targetDiff,
|
|
)
|
|
|
|
let matchingRows = actDiffRows
|
|
if (actDiffRows.length > 0) {
|
|
const baseLevel = actDiffRows[0]!.level
|
|
const levelFiltered = actDiffRows.filter((r) => r.level === baseLevel)
|
|
if (levelFiltered.length > 0) {
|
|
matchingRows = levelFiltered
|
|
}
|
|
}
|
|
|
|
if (matchingRows.length === 0) {
|
|
matchingRows = HIRELING_RECORDS.filter((r) => r.act === targetAct)
|
|
}
|
|
if (matchingRows.length === 0) {
|
|
matchingRows = [HIRELING_RECORDS[0]!]
|
|
}
|
|
|
|
// 2. D2Common 64-bit LCG simulation (0x6fd7cd20..0x6fd7cd95)
|
|
let seedLo = candidate.seed >>> 0
|
|
let seedHi = 0x29a // 666
|
|
|
|
// Step 1: Subtype / row selection
|
|
const step1 = BigInt(seedLo) * 0x6ac690c5n + BigInt(seedHi)
|
|
seedLo = Number(step1 & 0xffffffffn) >>> 0
|
|
seedHi = Number((step1 >> 32n) & 0xffffffffn) >>> 0
|
|
|
|
const rowCount = matchingRows.length
|
|
const isPowerOfTwo = (rowCount & (rowCount - 1)) === 0
|
|
const rowIndex = isPowerOfTwo ? (seedLo & (rowCount - 1)) : (seedLo % rowCount)
|
|
const pRow = matchingRows[rowIndex] ?? matchingRows[0]!
|
|
|
|
// Step 2: Level selection
|
|
const step2 = BigInt(seedLo) * 0x6ac690c5n + BigInt(seedHi)
|
|
const seedLo2 = Number(step2 & 0xffffffffn) >>> 0
|
|
const levelOffset = (seedLo2 >>> 0) % 5
|
|
|
|
const effPlayerLevel = Math.max(1, playerLevel)
|
|
const mercLevel = Math.max(2, effPlayerLevel + levelOffset - 5)
|
|
const levelDelta = mercLevel - pRow.level
|
|
|
|
// Step 3: Compute exact stats
|
|
const hp = Math.max(40, pRow.hp + levelDelta * pRow.hpPerLvl)
|
|
const defense = Math.max(0, pRow.defense + levelDelta * pRow.defPerLvl)
|
|
const strength = Math.max(10, pRow.str + ((levelDelta * pRow.strPerLvl) >> 3))
|
|
const dexterity = Math.max(10, pRow.dex + ((levelDelta * pRow.dexPerLvl) >> 3))
|
|
const cost = Math.max(
|
|
pRow.hireCost,
|
|
Math.trunc((pRow.hireCost * (100 + 15 * levelDelta)) / 100),
|
|
)
|
|
const resist = Math.max(0, pRow.resist + ((levelDelta * pRow.resistPerLvl) >> 3))
|
|
|
|
const name = resolveHirelingName(candidate.nameId, lang)
|
|
const hireDesc = resolveHirelingDesc(pRow.hireDesc, lang)
|
|
const { line1, line2 } = formatHirelingCandidateLines(
|
|
name,
|
|
mercLevel,
|
|
hp,
|
|
defense,
|
|
cost,
|
|
hireDesc,
|
|
lang,
|
|
)
|
|
|
|
return {
|
|
mercId: candidate.nameId, // client uses wMercName as mercId for 0x36
|
|
nameId: candidate.nameId,
|
|
seed: candidate.seed,
|
|
actIndex,
|
|
classId: pRow.classId,
|
|
subTypeId: pRow.subTypeId,
|
|
name,
|
|
level: mercLevel,
|
|
hp,
|
|
defense,
|
|
strength,
|
|
dexterity,
|
|
cost,
|
|
resist,
|
|
hireDescId: pRow.hireDesc,
|
|
hireDesc,
|
|
skills: pRow.skills,
|
|
line1,
|
|
line2,
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Resolves a list of candidates from raw { nameId, seed } pairs.
|
|
*/
|
|
export function resolveHirelingCandidates(
|
|
candidates: readonly { readonly nameId: number; readonly seed: number }[],
|
|
playerLevel: number,
|
|
difficulty: number,
|
|
actIndex: number,
|
|
expansion = true,
|
|
lang: 'ENG' | 'CHI' = 'CHI',
|
|
): readonly HirelingCandidateDesc[] {
|
|
return candidates.map((c) =>
|
|
resolveHirelingCandidate(c, playerLevel, difficulty, actIndex, expansion, lang),
|
|
)
|
|
}
|