Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MZakon

MZakon

Настольный справочник и пошаговый ассистент по законодательству для сотрудников гос-фракций GTA5 RP (Majestic, сервер Memphis).

Windows (HUD-оверлей поверх игры) · iPhone (Flutter, ipa)
в комплекте актуальная база Memphis: 1400+ статей из 10 документов · 58 регрессионных тестов · read-only, с клиентом игры не взаимодействует


Зачем

Новичок в гос-фракции не знает законодательную базу: за неправильное задержание наказывают и адвокаты, и прокуратура, и администрация. Держать в голове 1400 статей, восемь процессуальных таймеров, порядок Миранды, правила обыска и потолки сроков невозможно, а лезть в форум посреди задержания некогда.

MZakon решает это иначе: он знает кодексы сам и ведёт сотрудника за руку. Добавил статьи, которые собираешься вменить, и получил готовый план конкретно под это дело: с чего начать, что сказать дословно, что изъять, куда везти и сколько просить в меню ареста.

Скриншоты

Протокол по статьям Штрафной исход Мастер для новичка
Протокол Штраф Мастер

Возможности

Протокол задержания

Главная фича. Из статей обвинительного листа строится пошаговый todo-план:

  • Исход определяется сам: в листе только дорожные и административные составы (сроков там нет) - это штрафной протокол, никакого ареста и КПЗ; есть уголовные - арестный, с полной процедурой.
  • Блоки по составам: перестрелка и подкрепление встают ДО наручников, проверка добровольной сдачи оружия и наркотиков - до обыска, экономика и должностные - после. Покрыты все главы УК: оружие, наркотики, угон, похищения, собственность, коррупция, побег, браконьерство и далее.
  • Автоконтекст: статьи о должностных преступлениях сами включают обязательную процедуру задержания гос.служащего (уведомление руководства и прокурора с таймерами). Что из статей не выводится, включается чипами: ограбление, маска, задержан гос.служащий.
  • Доставка и место отбывания: физически задержанного всегда везут в КПЗ (любое силовое: LSPD, LSCSD, FIB). При суммарном сроке от 3 лет протокол подскажет выбрать федеральную тюрьму в меню ареста - туда осуждённого телепортирует система. Порог - из кодекса, со ссылкой.
  • Фраза задержания генерируется из листа: "Вы задержаны по подозрению в совершении: посягательство на жизнь сотрудника (УК ст.17.1); ..." - одна кнопка, скопировал, сказал в голос.
  • Отметка шага запускает связанный процессуальный таймер и пишется в локальный журнал сессии.

Каф-мастер

Готовые сценарии для новичка: перестрелка на трассе, остановка транспорта, системная угонка, лицензии и документы, маска, задержанный гос.служащий, проникновение на объект. Каждый шаг: что сделать, что сказать дословно (включая Миранду из кодекса), какую статью вменить кнопкой. Блок "на что давит адвокат" в каждом сценарии.

Обвинение

Калькулятор итога: суммарный срок с потолком из УК, минуты посадки (механика сервера, честно помечена как не-закон), уровень розыска, залог, диапазон штрафов, юрисдикция, предупреждения о спорных местах. Рапорт о задержании с хронологией - в буфер обмена одной кнопкой.

Поиск

Код, номер, часть, кодовые слова игрового жаргона (около 40: ствол, каф, угонка, состав, оборона...), русская морфология, буст совпадений в заголовке. Пустой результат честно говорит "не найдена", а не подсовывает похожее. Полные тексты всех документов читаются по главам.

Контр-адвокат

33 типовых вопроса адвоката, сгруппированных по тактикам: элементы состава, доказательства, процедура, применение силы, освобождение. На каждый - ответ со ссылками на действующие нормы (все ссылки проверены тестами).

Мелочи, которые решают

  • Глобальный хоткей отмечает текущий шаг протокола или мастера прямо из игры, окно листается к нужной карточке само.
  • Компакт-режим: узкая полоса поверх игры для одного монитора.
  • Процессуальные таймеры со звуковой индикацией просрочки видны из любой вкладки.
  • Иконка в трее, прозрачность окна колесом мыши, настраиваемые бинды.
  • Избранные статьи переживают обновление кодексов.

Установка

Windows: страница Releases - скачай MZakon.exe свежей версии. Один файл, установка не нужна. Логи и рапорты пишутся в папку logs/ рядом с exe.

iPhone: там же лежит неподписанный MZakon.ipa - ставится через Sideloadly или AltStore с бесплатным Apple ID. Версия под Android в планах.

Архитектура

data/raw/*.txt          тексты законов (вставляются вручную, см. ниже)
        |
parse_law_text.py       парсер: статьи, части, главы, приоритеты, санкции
        |
full_codes.json         все статьи                 <- поисковый индекс
        |
build_kb.py             вывод ops-слоя ИЗ ТЕКСТА кодексов
        |
knowledge_base.json     таймеры, Миранда, залог, потолки - каждое значение
        |               хранит ссылку на статью-источник
        +-- десктоп (tkinter HUD)
        +-- build_flutter_data.py -> data.json -> мобильная версия (Flutter)

Принципы:

  • Ничего не захардкожено. Потолок срока, уровень розыска за год, сумма залога, текст Миранды - всё извлекается из текста законов. Поменялся кодекс - пересобрал базу, приложение считает по-новому.
  • Не выдумывать. Если значение не извлеклось из текста, оно пропускается с предупреждением, а не подставляется "по памяти". Пустой поиск возвращает "не найдена". Каждая ссылка на статью в сценариях, протоколе и контр-адвокате проверяется тестом против действующей базы.
  • Игровое отдельно от закона. Конверсия лет в минуты посадки, эпинефрин, рация - механики сервера. Они живут в отдельном файле с пометкой codified: false и в интерфейсе подписаны "механика, не закон".
  • Read-only. Приложение не читает память игры, не шлёт в клиент ни нажатия, ни текст. Глобальные хоткеи только слушают клавиатуру, и есть safe-режим, где не ставится даже слушающий хук.

Тесты

58 регрессионных тестов покрывают базу законов, а не только код: каждый закрывает реальный баг, найденный на живом тексте форума (части статей слипались, звёзды приоритета читались из прозы, комментарии клеились к чужой статье, диапазон "от 1 до 5 звёзд" считался шестью звёздами). Обновление законов прогоняет их автоматически: если форум поменял формат и парсер начал терять данные, падает тест, а не сотрудник на задержании.

Обновление законов

База законов Memphis уже в комплекте - ничего заполнять не нужно. Когда законодательство обновится (или для другого сервера Majestic), тексты вставляются вручную, форум за авторизацией. Два пути:

  1. Из приложения: Настройки -> "Сервер и база законов" -> выбери кодекс, скопируй текст закона с форума, кнопка "Импорт из буфера". Работает и в собранном exe.
  2. Файлами: положи тексты в data/raw/ по инструкции data/raw/README.md и запусти python tools/update_laws.py - пересборка с прогоном тестов.

Там же в настройках задаётся имя сервера: база подходит любому серверу Majestic с тем же законодательством штата.

Сборка из исходников

pip install -r requirements.txt
python -m src.main              # запуск HUD
python -m pytest tests -q      # тесты
python tools/build_exe.py      # -> dist/MZakon.exe (PyInstaller, onefile)

Мобильная версия (Flutter):

python tools/build_flutter_data.py
cd app
flutter create --platforms=ios --project-name mzakon .
flutter pub get
flutter build ios --release --no-codesign

CI на каждый push в main гоняет тесты и flutter analyze; git-тег vX.Y.Z собирает exe и ipa и публикует релиз этой версии.

Стек

Слой Технологии
Десктоп Python 3.12, tkinter (кастомная тема), pystray, Pillow, PyInstaller
Мобильный Flutter / Dart, Material 3
Данные Собственный regex-парсер форумных текстов, JSON
Качество pytest (58 регрессий на законодательную базу), GitHub Actions

Дизайн: тёмная тема "encrypted terminal" - угольный фон, волосяные рамки, единственный акцентный цвет Signal Lime, моноширинные номера статей.

Дисклеймер

Фан-проект, не аффилирован с Majestic RP. Инструмент только читает и показывает - не автоматизирует игру. Тексты законов принадлежат их авторам на форуме проекта и в репозиторий не входят; здесь только парсер и производная база для работы приложения. Спорные нормы проверяй по первоисточнику: форум всегда прав.

Лицензия

MIT - LICENSE.

About

Legal reference and step-by-step assistant for GTA5 RP government factions (Windows overlay, iPhone app)

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages