ข้ามไปยังเนื้อหา
MLBBDex

เขียนบทวิเคราะห์ฮีโร่

ข้อมูลเกมอัปเดตเองได้ แต่บทวิเคราะห์ต้องมีคนเขียน นี่คือวิธีเขียนบทวิเคราะห์ฮีโร่และส่งเข้าเว็บไซต์

ฮีโร่ที่มีบทวิเคราะห์แล้ว
38
รอบทวิเคราะห์
96

สิ่งที่คุณเขียน

บทบาท เลน สกิล สกิน สถิติ และบิลด์ยอดนิยมมาจากการซิงก์อัตโนมัติกับวิกิและ API ของคอมมูนิตี้ บทวิเคราะห์จะเพิ่มเฉพาะสิ่งที่การดึงข้อมูลอัตโนมัติให้ไม่ได้: ฮีโร่ทำอะไรได้จริง จุดแข็งและจุดอ่อน เคาน์เตอร์ และบิลด์พร้อมคำอธิบาย

บทวิเคราะห์เขียนเป็นภาษาฝรั่งเศส ซึ่งเป็นภาษาต้นฉบับของเว็บไซต์ แต่ละบทเป็นรายการ TypeScript ที่เพิ่มลงในไฟล์บทบาทของฮีโร่ใน src/data/heroes/

ช่องข้อมูล

บทวิเคราะห์ใช้ type AnalyseHeros ใน src/lib/types.ts สกิลและบิลด์แต่ละรายการมีโครงสร้างของตัวเอง

บทวิเคราะห์ — AnalyseHeros

slugstring
ตัวระบุที่ตรงกันของฮีโร่ ตามที่ระบุไว้ใน src/data/jeu/heros.json
summarystring
ประโยคเดียวที่บอกว่าฮีโร่ตัวนี้มีอะไรพิเศษ ใช้เป็นคำอธิบายเมตาด้วย
analysisstring
สองย่อหน้าคั่นด้วยบรรทัดว่าง: ฮีโร่ทำอะไรได้จริง แล้วตามด้วยข้อจำกัด
skillsSkill[]
สกิลตามลำดับในเกม: พาสซีฟ สกิล 1 สกิล 2 อัลติเมต ลำดับนี้ใช้จับคู่แต่ละคำอธิบายกับสกิลในวิกิ
strengthsstring[]
3 ถึง 5 ข้อสั้นๆ ที่เห็นได้ในแมตช์
weaknessesstring[]
3 ถึง 5 ข้อสั้นๆ พร้อมวิธีที่ใช้ประโยชน์จากจุดอ่อนนั้น
strongAgainststring[]
slug ของฮีโร่ที่ฮีโร่ตัวนี้รับมือได้สบาย
weakAgainststring[]
slug ของฮีโร่ที่ทำให้ฮีโร่ตัวนี้เล่นยาก
buildsBuild[]
บิลด์หนึ่งหรือหลายบิลด์ แต่ละบิลด์มีบริบทการใช้งานของตัวเอง

สกิล — Competence

type"Passive" | "Skill 1" | "Skill 2" | "Ultimate"
ตำแหน่งสกิล
namestring
ชื่อภาษาอังกฤษตามในเกม เว็บไซต์จะแสดงชื่อจากวิกิ
descriptionstring
สกิลนี้ทำอะไรได้และควรใช้เมื่อไร โดยไม่ระบุค่าดาเมจ
cooldownnumber[] · ไม่จำเป็น
คูลดาวน์ต่อเลเวล หน่วยเป็นวินาที ไม่ต้องใส่สำหรับพาสซีฟ
costnumber[] · ไม่จำเป็น
ค่าใช้ต่อเลเวล ไม่ต้องใส่หากฮีโร่ไม่ใช้มานา

บิลด์ — Build

namestring
ชื่อสั้นๆ ของบิลด์
contextstring
ควรใช้บิลด์นี้เมื่อไร บิลด์ที่ไม่มีบริบทไม่ได้ช่วยให้ใครเรียนรู้อะไร
itemsstring[]
ไอเทมหกชิ้น ใช้ชื่อภาษาอังกฤษ เรียงตามลำดับการซื้อ
emblemstring
Emblem ที่แนะนำ ตั้งชื่อแบบเดียวกับบทวิเคราะห์ที่มีอยู่ ("Emblème de mage")
talentstring
Talent หลักของ Emblem ใช้ชื่อภาษาอังกฤษ
spellstring
Battle Spell ใช้ชื่อภาษาอังกฤษ

เทมเพลตพร้อมคำอธิบาย

คัดลอกเทมเพลตนี้ไปไว้ท้ายลิสต์ในไฟล์บทบาท กรอกข้อมูล แล้วลบคอมเมนต์ออก npm run typecheck ตรวจเทมเพลตนี้ทุกครั้งที่รัน จึงตรงกับ type ปัจจุบันเสมอ

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

กฎการเขียน

  • ใส่เครื่องหมายเน้นเสียงภาษาฝรั่งเศสทุกที่ที่ภาษาต้องใช้: ข้อความบทวิเคราะห์จะแสดงให้ผู้เข้าชมเห็น แม้โค้ดของโปรเจกต์จะไม่ใช้ก็ตาม
  • คำศัพท์ในเกมใช้ภาษาอังกฤษ: ไอเทม สกิล Talent และ Battle Spell ใช้ชื่อที่ผู้เล่นเห็นในเกม ("Winter Crown", "Flicker")
  • ห้ามคัดลอก: ไม่ว่าจากวิกิ ไกด์ หรือวิดีโอ บทวิเคราะห์ที่นำมาจากที่อื่น แม้จะเรียบเรียงใหม่แบบใกล้เคียงก็จะถูกปฏิเสธ
  • ห้ามใส่ค่าดาเมจ: ค่าเหล่านี้เปลี่ยนแทบทุกแพตช์ ให้อธิบายเอฟเฟกต์ ไม่ใช่ตัวเลข
  • เน้นรูปธรรมมากกว่าคำโอ้อวด: "ชนะไฟต์ยาวได้ตราบใดที่ศัตรูไม่ซื้อไอเทมลดฮีล" ดีกว่า "แข็งแกร่งมาก"

การตรวจทานผ่าน pull request

  1. Fork repository บน GitHub แล้วสร้าง branch สำหรับบทวิเคราะห์ของคุณ
  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. เมื่อ merge แล้ว บทวิเคราะห์จะขึ้นเว็บในการ deploy ครั้งถัดไป และชื่อของคุณจะอยู่ในประวัติของ repository