- 6
- 1
- Версия SA-MP
-
- 0.3.7 (R1)
- 0.3.7-R3
- Другая
На просторах какого-то форума откопал код. Может, кто-нибудь взглянуть на него и сказать, рабочий ли он?
код:
#include <a_samp>
// Константы для уровней администраторов
#define ADMIN_LEVEL_NONE 0
#define ADMIN_LEVEL_BASIC 1
#define ADMIN_LEVEL_MODERATOR 2
#define ADMIN_LEVEL_ADMIN 3
#define ADMIN_LEVEL_SUPER_ADMIN 4
// Массив для хранения уровней администраторов
new gAdminLevel[MAX_PLAYERS];
// Инициализация уровней администраторов
public OnPlayerConnect(playerid)
{
gAdminLevel[playerid] = ADMIN_LEVEL_NONE;
return 1;
}
// Управление игроками
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp(cmdtext, "/kick", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_MODERATOR)
{
new targetid = GetPlayerIdFromName(cmdtext[6]);
if (targetid != INVALID_PLAYER_ID)
{
Kick(targetid);
SendClientMessage(playerid, -1, "Игрок успешно кикнут.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/ban", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_ADMIN)
{
new targetid = GetPlayerIdFromName(cmdtext[5]);
if (targetid != INVALID_PLAYER_ID)
{
Ban(targetid);
SendClientMessage(playerid, -1, "Игрок успешно забанен.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/mute", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_MODERATOR)
{
new targetid = GetPlayerIdFromName(cmdtext[6]);
if (targetid != INVALID_PLAYER_ID)
{
TogglePlayerSpectator(targetid, 1);
SendClientMessage(playerid, -1, "Игрок успешно замучен.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/unmute", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_MODERATOR)
{
new targetid = GetPlayerIdFromName(cmdtext[8]);
if (targetid != INVALID_PLAYER_ID)
{
TogglePlayerSpectator(targetid, 0);
SendClientMessage(playerid, -1, "Игрок успешно размучен.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/tp", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_MODERATOR)
{
new targetid = GetPlayerIdFromName(cmdtext[4]);
if (targetid != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(targetid, x, y, z);
SendClientMessage(playerid, -1, "Вы телепортировали игрока.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/tphere", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_MODERATOR)
{
new targetid = GetPlayerIdFromName(cmdtext[8]);
if (targetid != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(targetid, x, y, z);
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, -1, "Вы телепортировались к игроку.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/pm", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_BASIC)
{
new targetid = GetPlayerIdFromName(cmdtext[4]);
if (targetid != INVALID_PLAYER_ID)
{
new message[128];
GetCmdParams(cmdtext, 4, message, sizeof(message));
SendClientMessage(targetid, -1, message);
SendClientMessage(playerid, -1, "Сообщение отправлено.");
}
else
{
SendClientMessage(playerid, -1, "Игрок не найден.");
}
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
if (!strcmp(cmdtext, "/announce", true))
{
if (gAdminLevel[playerid] >= ADMIN_LEVEL_ADMIN)
{
new message[128];
GetCmdParams(cmdtext, 9, message, sizeof(message));
SendClientMessageToAll(-1, message);
SendClientMessage(playerid, -1, "Объявление сделано.");
}
else
{
SendClientMessage(playerid, -1, "У вас недостаточно прав для этой команды.");
}
return 1;
}
return 0;
}