alexdedyura/flamelegacy
Open Source RPG-гейм мод для [open.mp](https://www.open.mp) (open multiplayer), написанный на Pawn.
README.md
Flame Project
Open Source RPG-гейм мод для open.mp (open multiplayer), написанный на Pawn.
Изначально разрабатывался для SA:MP, сейчас полностью переведён на open.mp через слой совместимости SAMP_COMPAT.
Весь гейммод компилируется в один
flame.amxиз единственной точки входа —sources/flame.pwn. Подробное техническое описание архитектуры и систем: sources/ARCHITECTURE.md.
Возможности
Игровой процесс построен вокруг классической RPG-механики (San Fierro как основная карта):
Игрок
- Авторизация — регистрация/вход, выбор скина при регистрации, ограничение попыток входа.
- Аккаунт и сохранения — деньги, банк, RP-уровень/опыт, статистика (kills/deaths), настройки чата.
- Инвентарь — предметы, использование, выброс, отображение (textdraw-UI).
- Банк — счёт, переводы, проценты по вкладу, история транзакций.
- Документы и лицензии — ID-карта, водительские права, паспорт/документы.
- Квесты и RP-рейтинг — прогрессия персонажа.
- Смартфон (iPhone) — интерфейс телефона, SMS с историей, обои, часы, вызов транспорта.
- Спавн и смерть — система возрождения и обработка смерти.
Транспорт
Крупная подсистема (sources/vehicles/):
- владение и покупка (автосалон / shop), ключи, каршеринг (sharing);
- топливо и двигатель, налог, номерные знаки, покраска/компоненты, гараж;
- спидометр и статистика транспорта.
Мир и системы
- Автобусные остановки, пикапы (входы/выходы интерьеров), погода.
- Работа (job Horizon / Cell Fixer).
- Актёры (NPC), NPC-поезда (filterscript + записи маршрутов).
- Большой набор статичных объектов/интерьеров: банк, госпиталь, полиция (PD), DMV, аэропорт, правительство, апартаменты, бизнесы (бар, кафе, магазин одежды) и др.
Интерфейс (TextDraws)
Спидометр, инвентарь, iPhone, загрузочный экран, логотип, автосалон, выбор скина, таймер автобуса, инфо-панели.
Команды
~287 команд, сгруппированных по темам (sources/commands/):
- chat — RP-чат:
/me,/do,/s,/w,/b,/pm,/shoutи т.д.; - anim — большая библиотека анимаций;
- main — утилиты, role-play и админ-команды;
- fraction, pame — фракции и доп. механики.
Технологический стек
| Слой | Что используется |
|---|---|
| Платформа | open.mp (open multiplayer), запуск через omp-server.exe |
| Язык | Pawn (SAMP_COMPAT + #include <open.mp>) |
| Библиотеки/инклюды | YSI (y_hooks, y_iterate), izcmd, sscanf2, streamer, a_mysql, rustext |
Плагины (plugins/) | crashdetect, jit, streamer (Incognito), sscanf, mysql, pawn-memory, rustext |
Компоненты (components/) | нативные подсистемы open.mp: Actors, Vehicles, Objects, TextDraws, Pickups, Dialogs и др. |
| База данных | MySQL, база flame (схема — database/flame.sql) |
Сборка
Компиляция под Windows:
compile.bat
Скрипт вызывает qawno\pawncc.exe для sources\flame.pwn и переносит собранный flame.amx в gamemodes\.
Отдельного шага линтинга/тестов нет — «сборка прошла» означает, что компилятор Pawn создал flame.amx без новых ошибок.
Запуск
- Установите MySQL и импортируйте схему:
mysql -u root -p flame < database/flame.sql - Укажите параметры подключения к БД в
sources/core/mysql.inc(MYSQL_HOST/MYSQL_USER/MYSQL_PASS/MYSQL_BASE) и пересоберите гейммод. - Задайте свой RCON-пароль в
config.json(rcon.password) — по умолчанию он пустой. - Запустите сервер:
omp-server.exe(Windows). Конфигурация читается изconfig.json(заменяет старыйserver.cfg;qawnoзаменяет старыйpawno).
⚠️ Перед публичным запуском обязательно задайте RCON-пароль и реальные учётные данные MySQL — в репозитории они намеренно пустые/дефолтные (localhost / root / без пароля) и не подходят для продакшена.
CI/CD (GitHub Actions)
Сборка автоматизирована через .github/workflows/build.yml:
- На каждый push в
main/ pull request — геймод компилируется наwindows-latest(проверка, чтоflame.amxсобирается), готовый сервер пакуется в.zipи загружается как artifact прогона (вкладка Actions → конкретный run → Artifacts). - На пуш тега
v*(напримерv1.0.0) — дополнительно создаётся GitHub Release, к которому прикрепляется.zipсо сборкой.
Выпустить релиз:
git tag v1.0.0
git push origin v1.0.0
Собранный .zip содержит готовый к запуску Windows-сервер (omp-server.exe, gamemodes/flame.amx,
компоненты, плагины, config.json, схему БД) без dev-инструментов (qawno/, исходников, .pdb).
Linux-сборку планируется добавить отдельной job'ой (см. Roadmap).
Структура репозитория
flameproject/
├── sources/ # исходный код гейммода (Pawn)
│ ├── flame.pwn # точка входа
│ ├── ARCHITECTURE.md # подробное описание систем и архитектуры
│ ├── core/ # ядро: MySQL-хелперы, цвета, диалоги, зоны, таймеры, утилиты
│ ├── player/ # авторизация, аккаунт, инвентарь, банк, документы, телефон, админка
│ ├── vehicles/ # транспортная подсистема
│ ├── textdraws/ # UI (textdraws)
│ ├── objects/ # статичные объекты/интерьеры по локациям
│ ├── systems/ # остановки, пикапы, погода, работы
│ └── commands/ # чат-команды по темам
├── config.json # конфигурация open.mp-сервера
├── database/flame.sql # схема базы данных
├── components/ # нативные компоненты open.mp (.dll)
├── plugins/ # legacy-плагины Pawn (.dll)
├── qawno/ # компилятор Pawn и инклюды
├── filterscripts/ # filterscripts (NPC-поезда)
├── npcmodes/ # записи маршрутов NPC
└── scriptfiles/ # runtime-данные сервера
Кодировка (важно)
Исходные файлы с русским текстом сохранены в Windows-1251 (cp1251), MySQL также настроен на cp1251.
Русский текст может отображаться как «кракозябры» в UTF-8-инструментах — это ожидаемо.
Не перекодируйте .inc/.pwn файлы в UTF-8 — это необратимо повредит кириллицу.
Подробности и безопасные способы правки — в CLAUDE.md.
Roadmap / Планы развития
Проект активно развивается — это не заброшенный дамп кода, а живая база, которую планируется расширять. Ближайшие направления:
- Игровые системы — улучшать и дописывать существующие механики, добавлять новые.
- Документация — сайт на GitHub Pages: alexdedyura.github.io/flameproject (исходники — в
website/, сборка на Docusaurus). - CI/CD (Windows) — сборка
.zipи публикация в Releases через GitHub Actions (build.yml). - CI/CD (Linux) — добавить Linux-сборку сервера отдельной job'ой.
- flamelibrary — вынести базовую логику в отдельный фреймворк/библиотеку для переиспользования.
Идеи и предложения приветствуются — открывайте issue или обсуждение.
Contributing / Вклад в проект
Пулл-реквесты приветствуются! 🔥 Проект открыт для развития сообществом.
- Перед крупными изменениями желательно открыть issue и обсудить идею.
- Сохраняйте модульную структуру: новую логику — в ближайший тематический модуль внутри
sources/. - Команды добавляйте через
izcmd(CMD:name(playerid, params[])), callbacks расширяйте черезy_hooks, работу с БД ведите через хелперы изsources/core/mysql.inc. - Соблюдайте кодировку cp1251 для
.inc/.pwnс кириллицей (см. раздел выше иCLAUDE.md). - Убедитесь, что геймод компилируется (
compile.bat) без новых ошибок/варнингов.
Подробные гайды для контрибьюторов и AI-ассистентов: CLAUDE.md и sources/ARCHITECTURE.md.
Авторы
Автор: Alex Dedyura.
Лицензия
Проект распространяется под лицензией GNU General Public License v3.0 — полный текст в файле LICENSE.
Flame Project — Open Source RPG gamemode for open.mp
Copyright (C) 2026 Alex Dedyura
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Esta página se genera con lo que GitHub publica sobre el repositorio. samp.directory no aloja el código. Informar de un problema con esta ficha