Перейти к содержимому
MLBBDex

Напишите разбор героя

Игровые данные обновляются сами; комментарии нужно писать. Вот как написать разбор героя и отправить его на сайт.Подробнее
Героев с разбором
38
Ждут разбора
96

Что вы пишете

Роли, линии, навыки, скины, статистика и популярные билды поступают из автоматической синхронизации с вики и API сообщества. Разбор добавляет только то, чего не даёт никакое извлечение данных: что герой делает на самом деле, сильные и слабые стороны, контрпики и билды с объяснениями.

Разборы пишутся на французском — исходном языке сайта. Каждый из них — это запись TypeScript, добавленная в файл роли героя в src/data/heroes/.

Поля

Разбор соответствует типу AnalyseHeros из src/lib/types.ts. У навыков и билдов своя структура.

Разбор — AnalyseHeros

slugstring
Точный идентификатор героя, как в src/data/jeu/heros.json.
summarystring
Одно предложение о том, чем уникален герой. Оно же используется как метаописание.
analysisstring
Два абзаца через пустую строку: что герой делает на самом деле, затем его ограничения.
skillsSkill[]
Навыки в игровом порядке: пассивка, навык 1, навык 2, ульта. Именно порядок связывает каждое описание с навыком из вики.
strengthsstring[]
Три–пять коротких пунктов, заметных в матче.
weaknessesstring[]
Три–пять коротких пунктов с тем, как их использовать против героя.
strongAgainststring[]
Слаги героев, против которых этот герой играет уверенно.
weakAgainststring[]
Слаги героев, которые доставляют этому герою проблемы.
buildsBuild[]
Один или несколько билдов, каждый со своим контекстом.

Навык — Competence

type"Passive" | "Skill 1" | "Skill 2" | "Ultimate"
Слот навыка.
namestring
Английское название, как в игре. Сайт показывает название из вики.
descriptionstring
Что делает навык и когда его использовать, без значений урона.
cooldownnumber[] · необязательно
Перезарядка по уровням, в секундах. Не указывается для пассивки.
costnumber[] · необязательно
Стоимость по уровням. Не указывается, если герой не использует ману.

Билд — Build

namestring
Краткое название билда.
contextstring
Когда выбирать этот билд. Билд без контекста никого ничему не научит.
itemsstring[]
Шесть предметов по английским названиям, в порядке покупки.
emblemstring
Рекомендуемая эмблема, названная так же, как в существующих разборах («Emblème de mage»).
talentstring
Основной талант эмблемы, английское название.
spellstring
Боевое заклинание, английское название.

Шаблон с комментариями

Скопируйте этот шаблон в конец списка в файле роли, заполните его и удалите комментарии. npm run typecheck проверяет его при каждом запуске, поэтому он всегда соответствует текущему типу.

import type { HeroAnalysis } from "@/lib/types";

/**
 * Hero analysis template.
 *
 * Copy it into the file of the hero's role (`src/data/heroes/tanks.ts`,
 * `fighters.ts`, `assassins.ts`, `mages.ts`, `marksmen.ts` or `supports.ts`),
 * fill it in, then strip its comments. It is imported nowhere:
 * `npm run typecheck` only checks it, which keeps it in line with the
 * `HeroAnalysis` type.
 *
 * Displayed text is written in French, with its accents. Item, skill, talent
 * and spell names stay in English, as in the game.
 * Nothing is copied from another site. Full guide: /fr/contribute.
 */
export const template: HeroAnalysis = {
  // Exact slug, as it appears in src/data/game/heroes.json.
  slug: "slug-du-heros",

  // One sentence: what sets the hero apart. Reused as the meta description.
  summary: "Une phrase qui dit ce que le héros a de singulier.",

  // Two paragraphs separated by a blank line: what the hero actually does,
  // then its limits. Observable facts, no superlatives.
  analysis:
    "Premier paragraphe : le plan de jeu du héros, ce qu'il fait réellement en partie.\n\n" +
    "Second paragraphe : ses limites, et ce qui les expose.",

  // Game order: passive, skill 1, skill 2, ultimate. The order is what pairs
  // each description with the wiki skill, whose name is the one that is
  // displayed.
  skills: [
    {
      type: "Passive",
      // English name, as in the game.
      name: "Passive Name",
      // The effect and how to use it, without damage values: they change
      // almost every patch. No cooldown or cost for a passive.
      description: "Ce que le passif change à la façon de jouer le héros.",
    },
    {
      type: "Skill 1",
      name: "First Skill Name",
      description: "Ce que la compétence permet, et quand s'en servir.",
      // Cooldown per level, in seconds.
      cooldown: [8, 7.5, 7, 6.5, 6, 5.5],
      // Cost per level; omit it if the hero does not use mana.
      cost: [60, 65, 70, 75, 80, 85],
    },
    {
      type: "Skill 2",
      name: "Second Skill Name",
      description: "Ce que la compétence permet, et ce qui la rend dangereuse ou fragile.",
      cooldown: [12, 11, 10, 9, 8, 7],
      cost: [70, 75, 80, 85, 90, 95],
    },
    {
      type: "Ultimate",
      name: "Ultimate Name",
      description: "Ce que l'ultime change à un combat, et le bon moment pour le lancer.",
      cooldown: [40, 35, 30],
      cost: [120, 140, 160],
    },
  ],

  // Three to five short points, observable in a match.
  strengths: ["Une force concrète, visible en partie"],
  // Three to five short points, with what exploits them.
  weaknesses: ["Une faiblesse concrète, et ce qui la punit"],

  // Slugs, not names: heroes it is comfortable against…
  strongAgainst: ["slug-adverse"],
  // … and heroes that give it trouble.
  weakAgainst: ["autre-slug"],

  builds: [
    {
      name: "Nom court du build",
      // When to pick this build: a build without context teaches nothing.
      context: "La situation dans laquelle ce build s'impose, et ce qu'il sacrifie.",
      // Six items, English in-game names, in purchase order.
      items: ["Item One", "Item Two", "Item Three", "Item Four", "Item Five", "Item Six"],
      // Emblems named as in the existing analyses.
      emblem: "Emblème de mage",
      // Main talent and battle spell, English names.
      talent: "Lethal Ignition",
      spell: "Flicker",
    },
  ],
};
Посмотреть шаблон на GitHub

Правила стиля

  • Французские диакритические знаки везде, где их требует язык: текст разбора видят посетители, даже если код проекта обходится без них.
  • Игровые термины остаются на английском: предметы, навыки, таланты и заклинания сохраняют название, которое игроки видят в игре («Winter Crown», «Flicker»).
  • Ничего не копировать: ни из вики, ни из гайдов, ни из видео. Разбор, взятый из другого источника, даже тщательно перефразированный, будет отклонён.
  • Никаких значений урона: они меняются почти каждый патч. Описывайте эффект, а не число.
  • Конкретика вместо превосходных степеней: «он выигрывает затяжные бои, пока соперник не купит снижение лечения» лучше, чем «он очень силён».

Проверка через pull request

  1. Сделайте форк репозитория на GitHub и создайте ветку для своего разбора.
  2. Добавьте запись в файл роли: tanks.ts, fighters.ts, assassins.ts, mages.ts, marksmen.ts или supports.ts.
  3. Запустите npm run lint, npm run typecheck и npm test. Автоматические проверки всё равно запустят их снова.
  4. Откройте pull request с понятным заголовком в повелительном наклонении на французском: «ajoute l'analyse de Ling».
  5. Мейнтейнер проверяет содержание и форму — актуальность для текущего патча, стиль, оригинальность — и оставляет комментарии в pull request, если что-то нужно изменить.
  6. После слияния разбор появится на сайте со следующим деплоем, а ваше имя останется в истории репозитория.