Игровые механики | Реворк системы Деморгана (Тюрьмы): Активная отработка и Тюремный опыт

𝕊𝕙𝕚𝕗𝕦 𝕌𝕣𝕒𝕘𝕒𝕟

𝕊𝕙𝕚𝕗𝕦 𝕌𝕣𝕒𝕘𝕒𝕟

Свой на районе
ИГРОК
Регистрация:21.05.2025
Сообщения:18
Реакции:7
Баллы:35
1. Суть проблемы (Обоснование)
На данный момент система исправительных работ в Деморгане не выполняет свою главную функцию - вовлечение игрока в процесс исправления.

  • Дисбаланс времени: Тратить 30 секунд на токаря ради списания 5 секунд срока (КПД 1:6) - нерационально. Игрокам выгоднее просто стоять AFK, что нагружает сервер "мертвыми душами" и убивает геймплей.
  • Скудность выбора: Мытье полов (которое часто багуется и не снижает срок), ящики и токарь быстро надоедают.
2. Предложение: Система "Тюремный Опыт" (Prison XP)
Предлагаю ввести шкалу прокачки навыка заключенного (назовем это "Авторитет" или "Навык труда").

  • За каждое выполненное действие игрок получает не только списание времени, но и XP.
  • Уровни:
    • Новичок: Стандартный коэффициент списания.
    • Бывалый: +15% к списанию времени за те же действия.
    • Авторитет: +30% к списанию времени + доступ к "Легким работам" (менее пыльные, но эффективные).
3. Ребаланс текущих и добавление новых работ
Цель: Сделать так, чтобы 1 минута реального активного труда снимала от 1.5 до 2 минут срока. Это справедливо: игрок тратит усилия, а не просто стоит.

А. Ребаланс старых:
  • Токарь: Увеличить снижение срока с 5 сек до 20 сек (процесс занимает 30 сек).
  • Ящики: Увеличить снижение с 2 сек до 10 сек (процесс занимает 10-15 сек).
  • Мытье полов: Починить механику, добавить мини-игру (как протирание столов в кафе), снижение 15 сек.
Б. Новые работы (Список, можно дополнить, администрация :) ):
  1. Швейный цех (Пошив формы):
    • Механика: Мини-игра QTE (Quick Time Event) (либо другой вариант). На экране появляется ползунок, нужно вовремя нажать пробел, когда иголка находится в зеленой зоне.
    • Снижение: 25 секунд.
    • Логика: Шьем тюремные робы для новых заключенных.
  2. Кухонная дежурство (Чистка картошки/Мытье посуды):
    • Механика: Круговое меню, где нужно быстро прокликивать появляющиеся грязные пятна на тарелке или срезать кожуру (движения мышкой).
    • Снижение: 15 секунд (быстрая мини-игра).
  3. Электрик (Починка щитков):
    • Механика: Соединение проводов одного цвета (классическая мини-игра Among Us или GTA V Hacking). Доступно с уровня "Бывалый".
    • Снижение: 40 секунд (сложнее, но выгоднее).
  4. Сортировка мусора/вещей:
    • Механика: На конвейере едут предметы (бутылки, бумага, объедки), нужно клавишами A/D или стрелками скидывать их в правильные контейнеры.
    • Снижение: Зависит от серии правильных попаданий. Комбо х10 = бонусное списание.

Техническая часть (Для разработчиков)

Здесь описана логика реализации с точки зрения кода (RAGE:MP, C# Server + JS/Vue Client).

Серверная часть (Backend Logic - C#)

Необходим класс-хендлер для расчета коэффициентов.
public class PrisonWorkHandler
{
// Конфигурация работ
private Dictionary<string, WorkData> works = new Dictionary<string, WorkData>
{
{ "lathe", new WorkData { BaseTimeReduction = 20, XpReward = 5 } },
{ "sewing", new WorkData { BaseTimeReduction = 25, XpReward = 7 } },
{ "electrician", new WorkData { BaseTimeReduction = 40, XpReward = 10, MinLevel = 2 } }
};

// Метод, вызываемый при завершении работы клиентом
[RemoteEvent("server:completePrisonWork")]
public void OnWorkComplete(Player player, string workId)
{
if (!works.ContainsKey(workId)) return;

var work = works[workId];
var charData = player.GetCharacterData(); // Псевдокод получения данных

// Проверка уровня
if (charData.PrisonLevel < work.MinLevel) {
player.Notify("Ваш авторитет слишком мал для этой работы.");
return;
}

// Расчет бонуса от уровня (Мультипликатор)
double multiplier = 1.0 + (charData.PrisonLevel * 0.15); // +15% за уровень
int timeToReduce = (int)(work.BaseTimeReduction * multiplier);

// Применение изменений
player.ReduceJailTime(timeToReduce);
player.AddPrisonXP(work.XpReward);

// Логика повышения уровня
CheckLevelUp(player);

player.Notify($"Срок снижен на {timeToReduce} сек. Получено {work.XpReward} опыта.");
}

private void CheckLevelUp(Player player)
{
// Логика проверки порогов опыта (например, 100, 500, 1000 XP)
}
}

Клиентская часть (Frontend/UI - JS + CEF)

Использование CEF (Chromium Embedded Framework) для мини-игр, так как нативные GTA-интерфейсы скудны.
let isSewing = false;
let successZone = { start: 40, end: 60 }; // % полосы
let cursorPosition = 0;

// Запуск игры
mp.events.add('client:startSewingMinigame', () => {
isSewing = true;
browser.execute(showSewingUI()); // Показать HTML/CSS интерфейс
// Анимация персонажа
mp.players.local.taskPlayAnim("amb@world_human_seat_sewing@female@base", "base", 8.0, 1, -1, 1, 0, false, false, false);
});

// Обработка нажатия (например, Пробел)
mp.keys.bind(0x20, true, function() {
if (isSewing && browser.active) {
// Получаем позицию курсора из UI браузера
let result = browser.executeReturn(getSliderPosition());

if (result >= successZone.start && result <= successZone.end) {
mp.events.callRemote('server:completePrisonWork', 'sewing');
mp.game.graphics.notify("~g~Отличная работа!");
} else {
mp.game.graphics.notify("~r~Брак! Иголка сломалась.");
// Можно добавить штраф или кулдаун
}

isSewing = false;
mp.players.local.clearTasks(); // Сброс анимации
browser.execute(hideSewingUI());
}
});

Итог

Внедрение такой системы решит проблему AFK в деморгане, добавит интереса к процессу наказания (геймификация наказания) и позволит игрокам честным трудом сокращать свой срок с адекватной скоростью. Технически реализация требует создания нескольких простых CEF-интерфейсов и обновления логики расчета времени на сервере.
 
Б

больжедор

Новичок
ИГРОК
Регистрация:21.11.2025
Сообщения:5
Реакции:1
Баллы:5
happymerchant

happymerchant

Дворовый бро
ИГРОК
Регистрация:23.09.2023
Сообщения:65
Реакции:14
Баллы:65
Маленькому надоедают работы, которые ты можешь делать, сидя в бане, и почему-то даже получать уменьшение срока наказания. Бедный мальчик
Спасибо, нейросеть, но предложение — дерьмо
 

Personalize

Верх Низ