# @cooking — чат-кулинария (обход клиента) Пункт дорожной карты «обход ограничений клиента через chat». Клиент 2007 (PV7) не имеет окна кулинарии. Реализовано чат-командой поверх существующего движка крафта. ## Как устроено (бэкенд уже был) - Рецепты блюд живут в `db/produce_db.txt` как записи с `ItemLV` **11-20** (60 шт.). - Гейт — «кулинарная книга»: рецепт требует предмет 7472-7476 (Cookbook Lv1-5) с количеством 0 (= «иметь в инвентаре, не тратится»). - Готовка идёт через штатный `skill_produce_mix()` — он сам проверяет книгу + ингредиенты, применяет RNG-успех и списывает материалы (тот же путь, что у клиента). **Дюп-риска нет.** - Kit-предметы 12125-12129 («Cooking Kit») в uAthena уже работают через `{ produce 11..15; }` (окно изготовления). `@cooking` — альтернатива для безоконного клиента, не заменяет их. ## Что добавлено - **`@cooking`** — список блюд, которые можно приготовить сейчас (есть книга + ингредиенты): `: <Имя> (Lv<тир>) - ready`. - **`@cooking all`** — весь каталог блюд (`ready`/`locked`). - **`@cooking `** — приготовить блюдо №N (N — стабильный сквозной индекс из списка). - **`@cook`** — алиас `@cooking`. - Уровень — игрокам (`conf/atcommand_athena.conf`: `cooking: 0`, `cook: 0`). - Хелперы `skill_cooking_{nameid,list,make}` в `src/map/skill.c` (+ декларации в skill.h). Существующее поведение не менялось. ## Сообщения - успех → «Cooking success!»; провал RNG → «The dish was ruined...»; - нет книги/ингредиентов → «You lack the required Cookbook or ingredients.»; - неверный номер → «Invalid dish number.». - Метки ASCII English (кодировка клиента 2007; RU позже через msg_txt). ## Что проверять тестировщикам (кластер + клиент) 1. Без кулинарной книги: `@cooking` → «No dishes ready...»; `@cooking all` → список с `locked`. 2. Получить Cookbook Lv1 (id 7472) + ингредиенты рецепта Lv1 → `@cooking` показывает блюдо как `ready`. 3. `@cooking ` на готовое блюдо → ингредиенты списываются, при успехе блюдо появляется в инвентаре, при провале — нет; книга (7472-7476) НЕ тратится. 4. `@cooking ` без книги/ингредиентов → отказ, ничего не списано. 5. Неверный/нечисловой номер → корректное сообщение об использовании. 6. Старый путь (Cooking Kit-предмет → окно изготовления) работает как раньше. ## Балансная заметка (для решения) `@cooking` НЕ требует расхода Cooking Kit (12125-12129) — гейт только по кулинарной книге + ингредиентам. Если нужна строгая экономия (тратить набор за сессию), можно добавить требование/расход набора — скажите, доработаю.