Приступим
Первый шаг. В этой строчке:
Code
enum pInfo
Добавим:
Code
pHelper,
Второй шаг. В public OnPlayerConnect добавим:
Code
PlayerInfo[playerid][pHelper] = 0;
Третий шаг. В public OnPlayerRegister добавим:
Code
iniSetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
Четвертый шаг. Вpublic OnPlayerUpdate добавим:
Code
iniSetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
Шаг пятый. В public OnPlayerLogin добавим:
Code
iniGetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
Шаг шестой. Добавим команду для назначения хелпера:
Code
if(strcmp(cmd, "/makehelper", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /makehelper [playerid/PartOfName] [level(1-5)]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(PlayerInfo[playerid][pAdmin] >= 1338)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pHelper] = level;
printf("AdmCmd: %s сделал %s хелпером уровня %d.", sendername, giveplayer, level);
format(string, sizeof(string), "Вы были повышены до %d хелпера админом %s", level, sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Вы дали %s %d уровень хелпера.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
printf("%s использовал /makehelper",sendername);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "У вас не достаточно прав!");
}
}
return 1;
}
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /makehelper [playerid/PartOfName] [level(1-5)]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(PlayerInfo[playerid][pAdmin] >= 1338)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pHelper] = level;
printf("AdmCmd: %s сделал %s хелпером уровня %d.", sendername, giveplayer, level);
format(string, sizeof(string), "Вы были повышены до %d хелпера админом %s", level, sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Вы дали %s %d уровень хелпера.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
printf("%s использовал /makehelper",sendername);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "У вас не достаточно прав!");
}
}
return 1;
}
Заключительный шаг - седьмой. Создадим какую нибудь команду для хелпера, допустим (/helpersetskin):
Code
if(strcmp(cmd, "/helpersetskin", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /helpersetskin [playerid/PartOfName] [skin id]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(level > 299 || level < 1) { SendClientMessage(playerid, COLOR_GREY, "Такого скина не существует!"); return 1; }
if (PlayerInfo[playerid][pHelper] >= 1)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pChar] = level;
format(string, sizeof(string), "Ваш скин был изменён админом %s", sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Вы дали %s скин %d.", giveplayer,level);
SendClientMessage(playerid, COLOR_WHITE, string);
SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
}
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не хелпер!");
}
}
return 1;
}
Автор: Jack_Oliver