Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система защиты аккаунта игрока от наказаний

VSYSTEM

Ученик
Приветствую всех, выкладываю систему по типу "защиты" от наказаний администратора. Сразу извиняюсь за плохое и не ясное оформление, но, используя CTRL + C и CTRL + V всё заработает.

- Для чего это нужно?
Допустим, администратор захотел наказать определённого игрока за что либо, с данной функцией "защиты" он не сможет это сделать. Система не позволит.

1. В enum pInfo
C++:
pProtectionAcc,
2. Ко всем define:
C++:
#define SendMes(%1,%2,%3)    format(stringer1,sizeof(stringer1),%3), SendClientMessage(%1,%2,stringer1)
3. В publics: LoginCallback:

C++:
PlayerInfo[playerid][pProtectionAcc] = cache_get_field_content_int(0, "pProtectionAcc", connects);
4. В код к команде, от которой нужно сделать защиту:

C++:
if(PlayerInfo[params[0]][pProtectionAcc] == 1) return 1; //параметр, отвечающий за ID таргета меняйте на свой, у меня же params0], с PlayerInfo тоже самое
5. Код команды для выдачи защиты аккаунта:

C++:
CMD:protect(playerid,params[])
{
    if(strcmp(PlayerInfo[playerid][pNames], "Vsystem_Vsystem")) return true; // проверку меняйте на свою, PlayerInfo и pNames так-же на своё
    extract params -> new player:arg1,arg2; else
        return SendClientMessage(playerid,gr,!"Используйте: /protect [ID] [1/0]");
    if(!IsPlayerConnected(arg1)) return SendClientMessage(playerid,-1,!"Игрок не в сети");
    if(arg2 > 1 || arg2 < 0) return SendClientMessage(playerid,-1,!"0 - забрать защиту у игрока, 1 - выдать защиту игроку");
    PlayerInfo[arg1][pProtectionAcc] = arg2; //PlayerInfo меняйте на своё
    UpdatePlayerData(arg1,"pProtectionAcc",PlayerInfo[arg1][pProtectionAcc]);
    format(mysql_query_, sizeof(mysql_query_), "UPDATE `acci` SET `pProtectionAcc` = '1", PlayerInfo[playerid][pProtectionAcc]); //// acci - меняйте на своё название таблицы с аккаунтами, connects - также на своё подключение к базе данных
    mysql_function_query(connects, mysql_query_, false, "", "");
    return SendMes(playerid,-1,"%s",(PlayerInfo[arg1][pProtectionAcc] == 1)? "Вы выдали игроку защиту аккаунта" : "Вы забрали защиту аккаунта у игрока");
Зайдите в таблицу с аккаунтами и создайте структуру
Имя: pProtectionAcc, тип: INT, длина/значения: 11, всё остальное не трогайте. После чего нажмите кнопку "сохранить"

UPD: по умолчанию > как определенно > 0



Cкриншот:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
 
Последнее редактирование:
Сверху Снизу