Напишите разбор героя
Игровые данные обновляются сами; комментарии нужно писать. Вот как написать разбор героя и отправить его на сайт.Подробнее
- Героев с разбором
- 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
- Сделайте форк репозитория на GitHub и создайте ветку для своего разбора.
- Добавьте запись в файл роли:
tanks.ts,fighters.ts,assassins.ts,mages.ts,marksmen.tsилиsupports.ts. - Запустите
npm run lint,npm run typecheckиnpm test. Автоматические проверки всё равно запустят их снова. - Откройте pull request с понятным заголовком в повелительном наклонении на французском: «ajoute l'analyse de Ling».
- Мейнтейнер проверяет содержание и форму — актуальность для текущего патча, стиль, оригинальность — и оставляет комментарии в pull request, если что-то нужно изменить.
- После слияния разбор появится на сайте со следующим деплоем, а ваше имя останется в истории репозитория.