[Урок] Делаем Админ статистику [ DC_CMD, mxINI ] - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок] Делаем Админ статистику [ DC_CMD, mxINI ]
СашаБелый Дата: Среда, 30.03.2016, 16:56 | Сообщение # 1
Вирты SVL
Сообщений: 328
Статус: Offline
В этом мануале я расскажу Вам как сделать статистику администратора на кики/варны и многое другое

в PlayerInfo:
Код
pZabanil,
pKicknyl,


public OnPlayerConnect(playerid):
Код
PlayerInfo[playerid][pZabanil] = 0;
PlayerInfo[playerid][pKicknyl] = 0;


В создание аккаунта, у меня называется stock CreateAccount(playerid, password[]):
Код
ini_setInteger(iniFile,"Забанил(a) игроков:",PlayerInfo[playerid][pZabanil]);
ini_setInteger(iniFile,"Кикнул(a) игроков:",PlayerInfo[playerid][pKicknyl]);


в паблик OnPlayerLogin(playerid):
Код
ini_getInteger(iniFile,"Забанил(a) игроков:",PlayerInfo[playerid][pZabanil]);
ini_getInteger(iniFile,"Кикнул(a) игроков:",PlayerInfo[playerid][pKicknyl]);


В сохранение аккаунта, у меня называется stock SavePlayer(playerid):
Код
ini_setInteger(iniFile,"Забанил(a) игроков:",PlayerInfo[playerid][pZabanil]);
ini_setInteger(iniFile,"Кикнул(a) игроков:",PlayerInfo[playerid][pKicknyl);


Теперь создадим команду для просмотра статистики:
Код
CMD:aget(playerid,params[]){
if(PlayerInfo[playerid][pAdmin] < 4) return true;
if(sscanf(params, "d", params[0]))return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /aget [id]");
if(PlayerInfo[targetid][pAdmin] == 0) return SendClientMessage(playerid, 0xAFAFAFAA, "У данного игрока нет прав администратора.");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "Такого игрока не существует!");
ShowAdminStats(playerid,params[0]);
return true;}  


В конец мода:
Код
stock ShowAdminStats(playerid,targetid){
static const msg[] =
"{ffffff}Имя администратора: {B52828}%s\n"\
"{ffffff}Забанил(a) игроков: {B52828}%d раз\n"\
"{ffffff}Кикнул(a) игроков: {B52828}%d раз\n"\
new string[sizeof(msg)-2+MAX_PLAYER_NAME+(-2+11)*5];
GetPlayerName(targetid, string, sizeof(string));
format( string, sizeof(string), msg, string,
PlayerInfo[targetid][pZabanil], PlayerInfo[targetid][pKicknyl]
return ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "{66B6FF}Статистика администратора", string, "Закрыть","");}


теперь сделаем очистку админ. статистики:
Код
CMD:aclearstats(playerid,params[]){
if(PlayerInfo[playerid][pAdmin] < 5) return true;
if(sscanf(params,"u",params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /aclearstats [id]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "Такого игрока не существует!");
ClearAdminStats(playerid,params[0]);
return true;}  


В конец мода:
Код
stock ClearAdminStats(playerid,targetid){
PlayerInfo[targetid][pZabanil]=0;
PlayerInfo[targetid][pKicknyl]=0;
SendClientMessage(playerid, 0x66cc00AA, "Вы успешно очистили админ статистику");
SavePlayer(playerid); // Меняем на своё сохранение аккаунта
return 1;}  


Что бы добавить в админ статистику, вставляем код например в /kick
Код
PlayerInfo[playerid][pKicknyl]++;


Вот что должно получиться:


Автор: #Belochka


Так-же если вы хотите смотреть статистику не только по id а по nickname то вместо
Код
CMD:aget(playerid,params[]){
if(PlayerInfo[playerid][pAdmin] < 4) return true;
if(sscanf(params, "d", params[0]))return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /aget [id]");
if(PlayerInfo[targetid][pAdmin] == 0) return SendClientMessage(playerid, 0xAFAFAFAA, "У данного игрока нет прав администратора.");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "Такого игрока не существует!");
ShowAdminStats(playerid,params[0]);
return true;}  


Вставте:
Код
CMD:aget(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 4)
        return 1;
    if(sscanf(params, "u", params[0]))
        return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /aget [id или имя]");
    if(PlayerInfo[targetid][pAdmin] == 0)
        return SendClientMessage(playerid, 0xAFAFAFAA, "У данного игрока нет прав администратора.");
    if(!IsPlayerConnected(params[0]))
        return SendClientMessage(playerid, 0xAFAFAFAA, "Такого игрока не существует!");
    ShowAdminStats(playerid,params[0]);
    return true;
}  
.
Спасибо за внимание.
Прикрепления: 1969772.png (23.7 Kb)


Покупка/Продажа Вирт SVL
Операции с валютой. Сбербанк/ЯД/Киви
Мой VK


Сообщение отредактировал osinovka - Воскресенье, 03.04.2016, 15:19
Shaga228 Дата: Вторник, 05.04.2016, 12:07 | Сообщение # 2
Новичок
Статус: Offline
спасибо, получилось
СашаБелый Дата: Четверг, 07.04.2016, 09:05 | Сообщение # 3
Вирты SVL
Сообщений: 328
Статус: Offline
Цитата Shaga228 ()
спасибо, получилось

Не за что)


Покупка/Продажа Вирт SVL
Операции с валютой. Сбербанк/ЯД/Киви
Мой VK
[CM]iNiko Дата: Четверг, 07.04.2016, 11:41 | Сообщение # 4
Бывалый
Сообщений: 397
Статус: Offline
Классно, переведите команды на стандартный процессор. Заранее спасибо

Всё случается в этой жизни.
=) Дата: Четверг, 07.04.2016, 20:20 | Сообщение # 5
Боец
Сообщений: 271
Статус: Offline
[CM]iNiko,
Код

else if(strcmp(cmd, "/aget", true) == 0)
{
    if(PlayerInfo[playerid][pAdmin] < 4) return 1;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /aget [id]");
    new targetid = ReturnUser(tmp);
    if(PlayerInfo[targetid][pAdmin] == 0) return SendClientMessage(playerid, 0xAFAFAFAA, "У данного игрока нет прав администратора.");
    else if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xAFAFAFAA, "Такого игрока не существует!");
    ShowAdminStats(playerid,targetid);
    return 1;
}
FryGames[CM] Дата: Четверг, 07.04.2016, 22:59 | Сообщение # 6
Боец
Сообщений: 130
Статус: Offline
[CM]iNiko,

Код

else if(strcmp(cmd, "/aclearstats", true) == 0)
{
    if(PlayerInfo[playerid][pAdmin] < 5) return 1;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /aclearstats [id]");
    new targetid = ReturnUser(tmp);
    if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xAFAFAFAA, "Такого игрока не существует!");
    ClearAdminStats(playerid, targetid);
    return1;
}  


Сообщение отредактировал FryGames[CM] - Четверг, 07.04.2016, 22:59
СашаБелый Дата: Пятница, 08.04.2016, 06:34 | Сообщение # 7
Вирты SVL
Сообщений: 328
Статус: Offline
смайлик ты тут хозяйничаешь смотрю)

Покупка/Продажа Вирт SVL
Операции с валютой. Сбербанк/ЯД/Киви
Мой VK
  • Страница 1 из 1
  • 1
Поиск: