Всем привет.
Ну пожалуй начнем.
Для начала найдем enum pInfo.
И вставляем туда:
Code
pAdminName[32],
Далее ищем Паблик OnPlayerRegister и вставляем туда:
Code
format(var, 32, "AdminName=NoAdmin\n", PlayerInfo[playerid][pAdminName]);fwrite(hFile, var);
Далее ищем паблик SavePlayer и туда вставляем:
Code
format(var, 32, "AdminName=%s\n", PlayerInfo[playerid][pAdminName]);fwrite(hFile, var);
Ищем паблик OnPlayerLogin и туда вставляем:
Code
if( strcmp( key , "AdminName" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(PlayerInfo[playerid][pAdminName], val, 0, strlen(val)-1, 255);}
Теперь давай добавим саму команду /makeadmin
Code
if(strcmp(cmd, "/makeadmin", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Введите: /makeadmin [ID игрока] [уровень админа] [Админ ник");
return 1;
}
new AdmName[32];
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
AdmName = strtok(cmdtext, idx);
if (!strlen(AdmName))
{
SendClientMessage(playerid, COLOR_GREY, "Введите: /makeadmin [ID игрока] [уровень админа] [Админ ник]");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 8)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pAdmin] = level;
format(string, sizeof(string), "%s", AdmName);
strmid(PlayerInfo[para1][pAdminName], string, 0, strlen(string), 255);
if(level > 0)
{
printf("*Внимание! %s был назначен администратором %d-го уровня администратором %s, Админ ник: %s", giveplayer, level, PlayerInfo[playerid][pAdminName], AdmName);
format(string, sizeof(string), " Вы стали админом %d-го уровня благодаря %s. Ваш админ ник: [%s]", level, PlayerInfo[playerid][pAdminName], AdmName);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Вы назначили %s администратором %d уровня, Админи-ник: %s", giveplayer,level, AdmName);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
if(level < 1)
{
printf("*Внимание! %s был снят с администрирования администратором %s", giveplayer, PlayerInfo[playerid][pAdminName]);
format(string, sizeof(string), " Вы были сняты с должности админа администратором %s", PlayerInfo[playerid][pAdminName]);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Вы сняли %s с должности админа", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
}
}
}
}
return 1;
}
Теперь во всех командах админа заменяем sendername на PlayerInfo[playerid][pAdminName] пишем /makeleader ставим себе ник и вуаля все работает.
Удачи всем.
Если будут вопросы пишите в комментариях.
Автор: AVIZT