Сейчас я вас научу делать простую привязку команды по ип.
Вот простая команда:
Code
if(strcmp(cmdtext, "/команда, true) == 0)
{
new cmdip[MAX_PLAYER_NAME];
GetPlayerIp(playerid, cmdip, sizeof(cmdip));
if(!strcmp(cmdip, "**.**.**.**", true))
{
SendClientMessage(playerid,COLOR_WHITE,"ПНХ!");
return 1;
}
//Остальной код, т.е сама команда без начала:D
return 1;
}
Итак поясняю что значит каждая функция:
Code
GetPlayerIp(playerid, cmdip, sizeof(cmdip));//сама привязка
Code
if(!strcmp(cmdip, "**.**.**.**", true))//ип игрока на которого привязываем команду(вместо звездочек пишем ип)
Code
SendClientMessage(playerid,COLOR_WHITE,"ПНХ!");//сообщение игроку, если ип не совпадает с привязкой
Сейчас я вам покажу команду на примере удаления аккаунта:
Code
if(strcmp(cmdtext, "/wipe", true) == 0)
{
new cmdip[MAX_PLAYER_NAME];
GetPlayerIp(playerid, cmdip, sizeof(cmdip));
if(!strcmp(cmdip, "12.34.56.78", true))
{
SendClientMessage(playerid,COLOR_WHITE,"ПНХ!");
return 1;
}
if ((IsPlayerAdmin(playerid)) || PlayerInfo[playerid][pAdmin] >= 4)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Введите: /wipe [ник игрока]");
return 1;
}
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, 256, "Администратор: %s удалил игровой аккаунт '%s'", sendername,tmp);
ABroadCast(COLOR_GREEN,string,1);
format(string, 256, "Администратор: %s удалил игровой аккаунт '%s'", sendername,tmp);
printf(string);
format(string,sizeof(string),"users/%s.ini",tmp);
fremove(string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы удалили игровой аккаунт");
}
return 1;
}
}