Diablo 2: Создание модов – Часть 3:
Полное описание файла Monstats.txt

Терминология

  • ИИ (англ. AI) – Искусственный Интеллект. Каждый юнит имеет ИИ, который состоит из набора действий. Каждый ИИ имеет набор слотов, типа Атака1, Бег, Скил1 и тд.
  • Токен (англ. Token) – очень распространенный термин, который обозначает графический код юнита. В файле Monstats.txt находится в колонке под названием “CODE”, но в среде модмэйкеров привыкли применять именно Токен. Название кода также является названием папки, в которой находятся файлы анимации юнита.
  • Харкод (англ. Hardcode) – Функции или параметры, которые записаны в форме кода в .DLL файлах игры и которые невозможно редактировать через текстовые файлы.
  • Юнит (англ. Unit) – общее название для монстра, нпс, мерка, саммона, т.е. всего движущегося.
  • Код-строка (англ. String-key) – код который ми заносим в .tbl файлы, который отвечает за отображение текста в игре.
  • Булев (англ. Boolean) – примитивный тип данных в информатике, который может принимать два возможных значения, иногда называемых истиной (true) и ложью (false).
  • Мили (англ. Melee) – термин обозначающий ближний бой. Обычно используется для определения типа сражения – мили бой.
  • Спаунеры (англ. Spawner/Nest) – тип юнитов которые призывают других юнитов (гнезда).
  • НаградКлас © (англ. TreasureClass) – я нигде не нашел перевода данного термина поэтому решил создать свое слово. НаградКлас не встречается нигде в игре, но это один из самых важных моментов в создании мода, который необходимо знать. Наградклас это группы предметов со схожими уровнями, один из которых выбирается для дропа тогда, когда выбирается определённый НК. Здесь коротко изложен поцес дропа а также другая полезная информация. Подробнее о генерации предметов.

Параметры ИД

  • ID – этот столбец содержит указатель который используется в других текстовых файлах, таких как levels.txt и superuniques.txt
  • HCIDX – это фактический ИД юнита. Каждый юнит должен иметь свой уникальный ИД. Означает “HardCodedInDeX. Он используется и для других функций: например, определить использует ли юнит DCC или DC6 анимацию (как Мефисто и анимация смерти Диабло, Королевы Личинок). Также эта колонка соединяет другие хардкодные эффекты юнита, такие как прозрачность на скелетах Некроманта и изменение цвета имени у уникальных боссов.
  • BASEID – этот столбец содержит ИД указатель «базового» юнита для этого конкретного типа монстра (например: есть пять типов монстров «Fallen»; все они используют fallen1 как их «базовый» юнит). Эта колонка также отвечает за некоторые харкодные поведения, например проходимость сквозь стены (Призраки), распознает каких именно монстров воскресить, или сотворить (шаманы) и еще эффект взрыва у монсторв-камикадзе.
  • NEXTINCLASS – этот столбец содержит ИД следующего юнита в цепочке. (Как в предыдущем примере, fallen1 будет иметь следующий ИД fallen2). Если вы хотите укоротить цепочку, вам нужно просто оставить эту колонку пустой, а BASEID указать такой же, как и ID.

Параметры отображения 1

  • Translvl – указывает какой цвет использовать в перекраске монстров. Большинство монстров имеют файл palshift.dat в папке COF, который имеет 8 палитр (обычно используются 5 из них). Эти палитры используются игрой, чтобы представить монстров в «новом свете». Учтите, некоторые токены такие как FC не принимают никаких изменений палитр вообще.
  • Namestr – этот столбец содержит код-строку который используется в .tbl файлах чтобы отобразить имя монстра когда вы наводите на него мышкой. Учтите, что коды-строки чувствительны к регистру (большие или маленькие буквы), то есть если вы вводите код “Foo” в monstats.txt, вы должны ввести именно такой же код в .tbl файле, иначе появится надпись «an evil force».
  • MonStatsEx – этот столбец содержит ИД указатель для файла Monstats2.txt.

Другие связи с внешними файлами/кодами

  • Monprop – этот столбец содержит ИД указатель на запись в файле MonProp.txt. MonProp.txt контролирует какие специальные атрибуты присваиваются юниту, например случайные резисты или иммунитеты, скилы «при получении повреждений» и много другого.
  • Montype – этот столбец содержит групповой ИД «супер группы» к которой принадлежит данный монстр, например все скелеты принадлежат к «супер-группе» скелетов. Относится к файлу MonType.txt.
  • AI – этот столбец сообщает игре какой ИИ (исскуственный интелект) использовать для данного монстра. Учтите, что каждый ИИ должен иметь установленное число режимов анимации (GH, A1, A2, S1, WL, RN и тд).

Параметры отображения 2

  • Descstr – этот столбец содержит код-строку для описания монстров, то есть текст который отображается под названием монстра (типа, «Крадет Ману»)
  • Code – этот параметр контролирует какой графический токен игра использует для данного монстра, тоесть из какой папки брать анимацию. Названия токена это названия папок в data\global\MONSTERS\.

Параметры Булев 1

  • Enabled – 1 = задействованный; 0 = незадействованный. Этот параметр контролирует задействованный ли монстр, или незадействованный.
  • Rangedtype – 1=дистанционный монстр; 0=мили монтср. Этот параметр сообщает игре когда монстр дистанционный.

Параметры гнезд/спаунеров

  • Placespawn – Булев, 1=спаунер, 0=не спаунер. Этот параметр сообщает игре является ли данный юнит «гнездом», то есть монстры которые призывают других монстров. Можно заставить любого монстра призывать монстров, вне зависимости от их ИИ. Все что надо сделать, это настроить эти четыре столбца и дать им скил “Nest” или “Minion Spawner”.
  • Spawn – этот столбец сожержит ИД указатель юнита которого призывают. Если хотите чтобы ваш монстр призывал Балрогов, укажите МД Балрогов в этом столбце.
  • Spawnx, Spawny – х/у оси места, где появится монстр когда его призывают. Этот параметр позволяет избежать призыва монстра на месте самого призывателя.
  • Spawnmode – в какой форме монстр будет призван (то есть анимация при призывании). Если вы например хотите чтобы монстр призывал големов, здесь нужно указать S1 чтобы големы появлялись как у некроманта, в другом случае големы будут просто появляться на земле.

Параметры групп и миньонов

  • Minion1, Minion2 – эти столбцы содержат ИД указатели миньонов которые появляются вокруг данного юнита, когда он создается. Скажем, вы хотите создать босса который появляется с пятью Oblivion Knights. Для этого введите ИД Oblivion Knights в столбец Minion, выставите Partymin и Partymax на 5. Этот столбец имеет и другие функции. Если монстр появляется уникальным или супер-уникальным, его миньоны будут монстры из Minion1/Minion2, а не монстры его базового типа. Именно поэтому Лорд Де Сеис больше не появляется с Oblivion Knights. Еще одна функция, которую имеет этот столбец, это какой монстр появится, если данный монстр умрет. Например, после смерти Flayer Shaman на его месте появится обычный Flayer. Чтобы включить данную функцию установите «1» в столбце SPLENDDEATH.
  • Setboss – Булев, 1=установить юнита как босса; 0=не устанавливать юнита как босса.
  • Bossxfer – Булев, 1-включить; 0=выключить. Назначение неизвестно.
  • Partymin, Partymax – определяет количество миньонов, которые появятся вместе с данным юнитом. Не ставить больше 15.
  • Mingrp, Maxgrp – работает точно так же как и столбцы выше, но в данном случае, миньоны будут базового типа монстра.

Параметры заселения уровней и динамики 1

  • Sparsepopulate – этот столбец контролирует общий шанс появления монстра на уровне (0-100%). Работает как «второй уровень безопасности» когда дело доходит до заселения уровней монстрами. Припустим, вы создали очень сильных монстров и хотите, чтобы они появлялись реже, чем другие монстры на уровне. Вы можете уменьшить параметр MONDEN в файле levels.txt или Mingrp, Maxgrp. Но это не даст именно, то что нам надо. Понижая параметр MONDEN мы уменьшаем саму густоту монстров (а не шанс появления), а изменение количества монстров в группе, наверное, сделает ваши монстров слабее. Так вот, данный параметр контролирует общий шанс появления монстра на уровне (пустая клетка равна 100%). Если здесь ввести число 80, то тогда когда игра решит создать данного монстра, она сначала проверит шансы на появление. Значит, в 2 из 10 случаев монстр не появится. Ставить ниже 50 не рекомендуется. Это не значит что случится что-то плохое. Просто, если игра не создаст монстра, а у него есть миньоны в Minion1, Minion2, то появятся только сами миньоны, без «главаря».

Параметры скорости

  • Velocity, Run – контролирует скорость ходьбы и бега. Учтите, что Run используется только если у монстра есть режим RN, и его ИИ использует этот режим. Не ставить тольше 25.

Параметры заселения уровней и динамики 2

  • Rarity – этот параметр также позволяет контролировать заселение уровней монстрами. Контролирует общий шанс появления монстра на уровне. Припустим, в файле levels.txt у вас стоит два монстра. Монстр А имеет Rarity параметр 10, а Монстр Б имеет 1, а сам уровень ограниченный на появление только одного типа монстров. Сначала игра суммирует шансы (10+1=11), потом рассчитывает шанс появления монстра. Для Монстра А шанс будет 10/11 (91%), а для Монстра Б 1/11 (9% ). Таким образом Монстр А имеет больший шанс появления чем Монстр Б.

Параметры Уровней

  • Level, Level (N), Level (H) – контролирует уровень монстров на определенной сложности. Этот параметр работает только на Нормале, потому что на Кошмаре и на Аду уровень монстров идентичен уровню зоны.

Параметры звука

  • Monsound – указывает ИД указатель этого монстра в файле Monsound.txt когда этот монстр обычный.
  • Umonsound – указывает ИД указатель этого монстра в файле Monsound.txt когда этот монстр чемпион или уникальный. ИД указатели Суперуникальных монстров находятся в файле Superuniques.txt.

Параметры ИИ

  • Threat – этот параметр используется системой Threat Rating System чтобы сказать ИИ какой юнит атаковать первым. Чем выше число, тем выше уровень Threat.
  • Aidel, Aidel (N), Aidel (H) – контролирует задержки между ходами ИИ, однако как именно работает данный параметр окутано тайной. В общем, чем больше число, тем медленней юнит будет действовать.
  • Aidist, Aidist (N), Aidist (H) – дистанция нужная для «включения» Мефисто на Кошмаре и на Аду.
  • Aip1-8, Aip1-8 (N), Aip1-8 (H) – эти данные передают параметры (обычно в процентах) Искусственному Интеллекту. Для описания что означают эти параметры смотрите MonAI.txt. К сожалению, там некоторые ИИ очень плохо или вообще не описаны.

Параметры метательных снарядов

  • MissA1, MissA2, MissS1, MissS2, MissS3, MissS4, MissSC, MissSQ, – эти параметры контролируют «не-скиловые» реактивные снаряды дальнобойных монтсров. Если, например, вписать в MissA1 ИД указатель из файла Missiles.txt, тогда, каждый раз когда монстр будет использовать режим Attack1, они будет выстреливать снаряд тот, который вы указали. Для справки: A1 – Attack1, A2 – Attack 2, S1 – Skill1, S2 – Skill2, S3 – Skill3, S4 – Skill4, SC – Cast, SQ – Sequence.

Параметры Булев 2 (особенно параметры NPC)

  • Align – 0=враг; 1=союзник; 2=нейтральный. Эти настройки контролируют когда монстр бьется на вашей стороне или против вас (или просто бродит по уровню).
  • Isspawn – 1=спаунится; 0=не спаунится; Этот параметр контролирует может ли монстр спаунится через Level.txt.
  • Ismelee – 1=мили; 0=не мили; Этот контролирует может ли монстр спаунится с босс-атрибутами, типа Мульти Выстрел. (Если монстр мили, Мульти Выстрел не появится)
  • NPC – 1=я NPC; 0-я не NPC;
  • Interact – 1=задействованы специальные возможности NPC; 0=специальные возможности не задействованы; Этот параметр контролирует можете ли вы взаимодействовать с данным NPC. Например, открытие диалогового окна, меню.
  • Inventory – 1=имеет инвентарь; 2=не имеет инвентаря. Контролирует, может ли данный NPC или юнит носить вещи. В случае с NPC, это означает что вы можете покупать у них вещи, а для монстров это означает что они могут иметь предметы из файла MonEquip.txt.
  • Intown – 1=я могу входить в город; 0=я не могу входить в город. Для всех типов юнитов которые могут ходить по городу.

Параметры типов

  • Lundead – 1=нежить; 0=не нежить. Близзарды использовали эти параметры для различия между High Undead и Low Undead. Lundead это малая нежить, такие как Зомби, Скелеты. Активация одного из этих параметров делает монстра Нежитью.
  • Hundead – 1=нежить; 0=не нежить. Для больших неживых существ (Личи, Анравеллеры). Эти параметры должны быть использованы именно так, потому что Большая нежить воскрешает Малую Нежить.
  • Demon – 1=демон; 0=не демон.

Параметры Булев 3

  • Flying – 1=я могу летать; 0=не могу летать. Если поставить «1», монстр сможет проходить сквозь непроходимые зоны (преграды, реки, лужы)
  • Opendoor – 1=я могу открывать двери; 0=я слишком тупой чтобы отрыть двери;
  • Boss – 1=я босс; 0=я не босс; Монстры которые установлены как «боссы», игнорируют настройки уровня на карте, а получают уровень который определенный в Monstats.txt
  • Primeevil – 1=я первичное зло; 0=я не первичное зло. Другими словами Актовые Боссы.
  • Killable – 1=смертный; 0=бессмертный.
  • SwitchAI – 1=может менять стороны; 0=не может менять стороны. Контролирует, может ли монстр переходить на вашу сторону при помощи скилов типа “Conversion” или “Revive”.
  • NoAura – 1=не получит ауру; 0=может получить ауру. Контролирует, будут ли дружные ауры влиять на монстра.
  • NoMultiShot – 1=не может получить Мульти Шот; 0=может получить Мульти Шот. Это еще один уровень безопасности чтобы предотвратить появление данного атрибута у монстров (кроме параметра Ismelee)
  • Nevercount – Неизвестно
  • PetIgnore – Не работает
  • Deathdmg – 1=наносит урон при смерти; 0=не наносит урон при смерти. Наносит урон окружающим игрокам при смерти (Стигийские куклы).
  • Genericspawn – Неизвестно
  • Zoo – Неизвестно

Параметры Скилов

  • Sendskills – 1=неизвестно; 2=используестя ловушками ассасина; Этот параметр используется только двумя ловушками Ассасина, но что именно он делает неизвестно.
  • Skill 1-8 – ИД указатель скила, который монстр будет использовать, когда ИИ использует данный слот (из Skills.txt). Какие именно слоты используются определяет ИИ монстра.
  • SK1Mode-SK8Mode – Графический режим который монстр использует для скилов.
  • SK1LV – SK8LV – Уровень скила. Получает бонусы на Кошмаре и Аде, которые контролируются в файле DifficultyLevels.txt.

Параметры Резистов

  • Drain, Drain(N), Drain(H) – контролирует эффективность кражи Жизни и Манны. 0=не может красть. Также следует помнить, что кроме этого, эффективность кражи также ограничена файлом DifficultyLevels.txt.
  • Coldeffect, Coldeffect(N), Coldeffect(H) – контролирует эффективность урона холодом. Чем меньше число – тем больше скорости теряет данный юнит при заморозке. -100 наверное полностью остановит юнит. Позитивные числа будут ускорять юнита, а 0 сделает юнит «незамерзаемым». Данный параметр на влияет на «Длительность обморожения». Для Длительности обморожения и заморозки смотрите DifficultyLevels.txt.
  • ResDM, ResDM(N), ResDM(H) – Резисты физическому урону. Негативные числа означает что юнит получит больше урона от этого типа. Числа выше 100 перерастают в Иммунитет.
  • ResMA, ResMA(N), ResMa(H) – Резисты магическому урону. Негативные числа означает, что юнит получит больше урона от этого типа. Числа выше 100 перерастают в Иммунитет.
  • ResFI, ResFIR(N), ResFI(H) – Резисты урону огнем. Негативные числа означает, что юнит получит больше урона от этого типа. Числа выше 100 перерастают в Иммунитет.
  • ResLI, ResLI(N), ResLI(H) – Резисты урону молнией. Негативные числа означает, что юнит получит больше урона от этого типа. Числа выше 100 перерастают в Иммунитет.
  • ResCO, ResCO(N), ResCO(H) – Резисты урону холодом. Негативные числа означает, что юнит получит больше урона от этого типа. Числа выше 100 перерастают в Иммунитет.
  • ResPO, ResPO (N), ResPO(H) – Резисты урону ядом. Негативные числа означает, что юнит получит больше урона от этого типа. Числа выше 100 перерастают в Иммунитет.

Разнообразные настройки

  • Damageregen – сколько жизни регенирирует данный юнит. Иногда редактируется ИИ юнита. В версии 1.09 формула была (REGEN*HP)/4096. Тоесть монстр з 200 хп и числом регенирации 10, регенирировал ~0,5 его хп за каждый фрейм.
  • Skilldamage – ИД указатель скила который контролирует урон данного юнита. Это используется для саммонов друида (потому что их урон указывается в Skills.txt, а не в Monstats.txt).

Параметры статов

  • Noratio – булев, 1=не использовать Monlvl.txt; 0=использовать Monlvl.txt. Контролирует, использует ли монстр файл Monlvl.txt, или статы указаны в Monstats.txt как есть. «1» может привести к массе проблем, так что не советую.
  • Noshldblock – 1=может блокировать без анимации блока, 0=не может блокировать без анимации блока. Чтобы блокировать удар, юнит должен иметь анимации блока (режим BL), но если поставить здесь 1 то юнит буде блокировать атаки вне зависимости от того имеет ли он анимацию блока.
  • Toblock, Toblock(N), Toblock(H) – шанс на блок данного юнита. Макс 75%.
  • Crit – шанс на критический удар.

Числа приведенные ниже это процентное отношение (если конечно у вас в Noratio стоит «0»). Игра сначала проверяет уровень монстра а потом использует эти проценты чтобы вычислить реальные статы из «общих статов», которые занесены в Monlvl.txt. Это происходит обычным процентным обчислением, т.е. S/100*P, где S=стат, P=процент. Например, если ваш монстр 50 уровня имеет минимальный показатель жизни 200, а «общий стат» для Жизни на уровне 50 это 100, тогда происходит следующие обчисление: 100/100*200, в результате получается 200 ХР.

  • MinHP, MaxHP, MinHP(N), MaxHP(N), MinHP(H), MaxHP(H) – минималное и максималное количество жизни на трех сложностях.
  • AC, AC(N), AC(H) – класс брони.
  • EXP, EXP(N), EXP(H) – количество опыта которое вы получаете от убийства данного юнита.
  • A1mind, A1maxd, A1mind(N), A1maxd(N), A1mind(H), A1maxd(H) – минимальный и максимальный урон при использовании режима Attack1.
  • A2mind, A2maxd, A2mind(N), A2maxd(N), A2mind(H), A2maxd(H) – минимальный и максимальный урон при использовании режима Attack2.
  • S1mind, S1maxd, S1mind(N), S1maxd(N), S1mind(H), S1maxd(H) – минимальный и максимальный урон при использовании режима Special attack 1 (или Skill 1), обычно используется для снарядов типа стрел.
  • A1TH, A1TH(N), A1TH(N) – рейтинг атаки для Attack1.
  • A2TH, A2TH(N), A2TH(N) – рейтинг атаки для Attack2.
  • S1TH, S1TH(N), S1TH(N) – рейтинг атаки для режима Special attack 1 (или Skill 1), обычно используется для снарядов типа стрел.

Параметры елементального урона

  • EL1Mode-EL3Mode – режим к которому прибавляется елементальный урон (A1, A2, S1, S2, S3, S4, SC, SQ).
  • El1TYPE-EL3TYPE – тип елементального урона который прибавляется к атаке. Fire=огненный урон, ltng=урон молнией, cold=урон холодом (использует длительность), pois=урон ядом (использует длительность), mag=урон магией, life=кража жизни (монстр будет лечить себя при атаке вас), mana=кража манны, stam=кража выносливости, stun=оглушение песронажа (использует длительность, урон не наносится, действует только на саммонов и мерков), rand=рандомный удар (использует длительность, каждая атака будет случайно наносить урон огнем или холодом или ядом или молнией), burn=горение (использует длительность, к этому типу урона нету резиста, и следовательно его не стоит использовать), frze=замораживающий урон (использует длительность, на персов работает как урон холодом, но разобьет в дребезги саммонов).
  • EL1PCT-EL3PCT, EL1PCT(N)-EL3PCT(N), EL1PCT(H)-EL3PCT(H), – шанс прибавить елементальный урон к атакам на трех слодностях. 0=никогда, 100=всегда
  • EL1MIND-EL3MIND, EL1MAXD-EL3MAXD, EL1MIND(N)-EL3MIND(N), EL1MAXD(N)-EL3MAXD(N), EL1MIND(H)-EL3MIND(H), EL1MAXD(H)-EL3MAXD(H) – количество минимум и максимум елементального урона который прибавляется к атакам.
  • EL1DUR-EL3DUR, EL1DUR(N)-EL3DUR(N), EL1DUR(H)-EL3DUR(H) – длительность эффектов заморозки, горения, холода, яда и оглушения.

Параметры наградкласса

Из-за новой системы Наградкласса в версии 1.10 эти данные имеют малую значимость по отношению к тому какой наградкласс выбирается, разве что вы измените систему редактирую TreasureClassEx.txt.

  • TreasureClass1, TreasureClass1(N), TreasureClass1(H) – Наградкласс который использует данный монстр, если он обычный, на трех сложностях.
  • TreasureClass2, TreasureClass2(N), TreasureClass2(H) – Наградкласс который использует данный монстр, если он чемпион, на трех сложностях.
  • TreasureClass3, TreasureClass3(N), TreasureClass3(H) – Наградкласс который использует данный монстр, если он уникальный или суперуникальный, на трех сложностях.
  • TreasureClass4, TreasureClass4(N), TreasureClass4(H) – Квестовый Наградкласс который использует данный монстр (например актовые боссы всегда имеют больше шансов дропнуть редкий, сэтовый или уникальный предмет когда вы впервые их убиваете).
  • TCQUESTID – ИД квеста который приводит в действие квестовый Наградкласс дроп.
  • TCQUESTCP – ИД квеста-состояния которое вам нужно завершить чтобы в действие квестовый Наградкласс дроп.

Осообенные параметры

  • Splenddeath – 0=нету особенной смерти; 1=вызвать монстра из столбца MINION1 когда я умру; 2=убить монстра который сидит на мне, когда я умру (используется монстрами и 5 акта)
  • Splgetmodechart – Незивестно
  • Splendgeneric – 1=включить; 0=выключить. Работает в связи с Splendclientend. Делает юнит ненацеливаемым когда он впервые появляется (для монстров которые в воде, под землей или летают).
  • Splendclientend – 1=включить; 0=выключить. Работает в связи с Splendgeneric. Делает юнит невидимым когда он впервые появляется (для монстров которые в воде, под землей или летают).
  • EOL – конец линии, всегда ставить «0».

Вернуться к разделу: создание модов в Diablo 2


Автор: JetaMan




Комментарии

юр 2019-02-22 10:12:03
и где искать этот monstats.txt его нету в папке с игрой

[Ответить]
↑ +2 ↓
alkargames 2017-12-31 01:12:17
Alkar Games, сервер Diablo II, Ladder Reset 22.12.2017
ex-alkar.net

[Ответить]
↑ +2 ↓
dwari-9@mail.ru 2017-01-24 01:28:17
В какой папке находятся Чармы в диабло 2?

[Ответить]
↑ +2 ↓

Страницы: [1]

Оставить комментарий


Ваше имя:

Комментарий:



Реклама:

Наша командаРазработка глобального обновления

При поддержке Сил Преисподней
2008-2024