Самп скрипт выдача розыска

Самп скрипт выдача розыска превращает обычный сервер в настоящий криминальный симулятор — ставь цены на головы, лови игроков и получай награды!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Выдача розыска (wanted level) в SA-MP – один из ключевых элементов полицейской ролевой игры․
Правильно настроенный скрипт выдачи розыска позволяет офицерам легко «вешать» уровень преследования игроку,
а самому игроку – видеть свою «звёздность» и её последствия (появление нарядов полиции, вертолётов, ФБР и т․д․)․
Ниже – подробная инструкция, примеры команд и готовый код, который можно вставить в ваш gamemode или filterscript․

Что такое «розыск» в SA-MP

  • Wanted Level – число от 0 до 6, где 0 = чист, 6 = максимальный федеральный розыск․
  • Игрок с уровнем розыска ≥ 1 будет виден на радаре полицейским, а система спавна начнёт вызывать патрули, вертолёты, дорожные блок-посты и т․д․
  • Данные хранятся в PlayerInfo[playerid][pWantedLevel] (или аналогичном массиве вашего мода)․

Минимальная структура данных

Создайте (или убедитесь, что уже создана) такая перечисляемая структура:

enum pInfo
{
 pWantedLevel
 // ․․․ другие переменные
}
new PlayerInfo[MAX_PLAYERS][pInfo];

Готовый скрипт команды /setwanted

Файл commands․pwn (или любой ваш)

// Команда: /setwanted [playerid/PartOfName] [0-6]
CMD:setwanted(playerid, params[])
{
 new targetid, level;
 new str[128], name[MAX_PLAYER_NAME], targetname[MAX_PLAYER_NAME];

 if(sscanf(params, "ud", targetid, level)) return SendUsageError(playerid, "/setwanted [id/часть ника] [0-6]");
 if(level < 0 || level > 6) return SendError(playerid, "Уровень 0-6!");

 if(!IsPlayerConnected(targetid)) return SendError(playerid, "Игрок не в сети․");
 GetPlayerName(targetid, targetname, sizeof(targetname));
 GetPlayerName(playerid, name, sizeof(name));

 PlayerInfo[targetid][pWantedLevel] = level;
 SetPlayerWantedLevel(targetid, level); // встроенная функция GTA

 format(str, sizeof(str), "{33CCFF}[POLICE]{FFFFFF} %s выдал %s %d уровень розыска․", name, targetname, level);
 SendClientMessageToAll(-1, str);

 return 1;
}

Строка в server․cfg

Не забудьте внести команду в вашу систему обработки:

RegisterCommand("setwanted", "CMD:setwanted", 2); // 2 = RCON или уровень офицера

Повышение реалистичности – вариации нарядов

Чтобы полицейские машины и пешие NPC спавнились более реалистично,
можно изменить dispatch․meta (в клиентской части мода)․
Пример настройки из мода Better Wanted Level System Police Spawning:

  • Добавлено 20% шанса появления женщины-офицера (по статистике LAPD)․
  • Для каждой «звезды» расширен пул техники:
    1. 1★ – 1 патрульный автомобиль;
    2. 2★ – 2 машины + пешие офицеры;
    3. 3★ – вертолёт Police Maverick;
    4. 4★ – SWAT-Van и спецназ;
    5. 5★ – ФБР и RoadBlocks;
    6. 6★ – армия и Rhino․

Снижение розыска

Чтобы игрок мог «смыть» уровень, используйте команду /clearwanted:

CMD:clearwanted(playerid, params[])
{
 new targetid;
 if(sscanf(params, "u", targetid)) return SendUsageError(playerid, "/clearwanted [id/часть ника]");

 PlayerInfo[targetid][pWantedLevel] = 0;
 SetPlayerWantedLevel(targetid, 0);
 SendClientMessage(targetid, -1, "{33AA33}Ваш розыск снят․");
 SendClientMessage(playerid, -1, "{FFFF00}Вы сняли розыск․");
 return 1;
}

Дополнительные фичи

  • Автоматическое повышение – если игрок убивает офицеров, кричит ограбление и т․д․
  • Таймер снижения – каждые 60 секунд уровень падает на 1 при отсутствии правонарушений․
  • Отображение HUD – отправлять клиенту GameTextForPlayer с текущим уровнем․
  • Логирование – писать в файл wanted․log кто и кому выдал розыск․

Пример лог-функции

stock LogWanted(issuerid, targetid, newlevel)
{
 new File:wantedlog = fopen("logs/wanted․log", io_append);
 if(wantedlog)
 {
 new str[256], date[32];
 getdate(date[0], date[1], date[2]); // день, месяц, год
 format(str, sizeof(str), "[%02d/%02d/%d] %s выдал %s розыск %d",
 date[0], date[1], date[2], GetPlayerNameEx(issuerid), GetPlayerNameEx(targetid), newlevel);
 fwrite(wantedlog, str);
 fclose(wantedlog);
 }
}

Правильно реализованный самп скрипт выдачи розыска – это не просто пара команд,
а важная система, влияющая на геймплей всего сервера․
Используйте предложенные фрагменты кода, доработайте под свои нужды и ваши игроки почувствуют настоящий дух GTA:SA в многопользовательской среде․