PDA

Просмотр полной версии : [Мануал] Статистика администратора.



Osetin
16.09.2013, 21:32
Первым делом, если у вас в моде нет DLG_NONE, добавьте его ко всем дефайнам:

#define DLG_NONE 0 // вместо 0 свой ID, который не обрабатывается в OnDialogResponse

К enum pInfo добавляем после pPayDayHad:

pAreport, // сохранение на аккаунт администратора, сколько раз он ответил
pAban, // сколько раз забанил
pAwarn, // сколько раз выдал варнов.
pAkick, // сколько раз кикнул.
pAmute, // сколько раз выдал мутов

Находим public OnPlayerConnect(playerid), в нем находим PlayerInfo[playerid][pFuel] = 0; и после него ставим:

PlayerInfo[playerid][pAreport] = 0;
PlayerInfo[playerid][pAban] = 0;
PlayerInfo[playerid][pAwarn] = 0;
PlayerInfo[playerid][pAkick] = 0;
PlayerInfo[playerid][pAmute] = 0;

Находим public OnPlayerRegister(playerid, password[]) в нем находим ini_setInteger(File,"Fuel",PlayerInfo[playerid][pFuel]); после него ставим:

ini_setInteger(File,"Areport",PlayerInfo[playerid][pAreport]);
ini_setInteger(File,"Aban",PlayerInfo[playerid][pAban]);
ini_setInteger(File,"Awarn",PlayerInfo[playerid][pAwarn]);
ini_setInteger(File,"Akick",PlayerInfo[playerid][pAkick]);
ini_setInteger(File,"Amute",PlayerInfo[playerid][pAmute]);

Находим public SavessAkk(playerid,string3[]) (в моем моде эта, функция за сохранение аккаунта а у вас ишите сами ) там находим ini_setInteger(File,"Fuel",PlayerInfo[playerid][pFuel]); и после него вставляем:

ini_setInteger(File,"Areport",PlayerInfo[playerid][pAreport]);
ini_setInteger(File,"Aban",PlayerInfo[playerid][pAban]);
ini_setInteger(File,"Awarn",PlayerInfo[playerid][pAwarn]);
ini_setInteger(File,"Akick",PlayerInfo[playerid][pAkick]);
ini_setInteger(File,"Amute",PlayerInfo[playerid][pAmute]);

Находим public OnPlayerLogin(playerid,password[]) в нем находим ini_getInteger(File,"Fuel",PlayerInfo[playerid][pFuel]); и после него вставляем:

ini_getInteger(File,"Areport",PlayerInfo[playerid][pAreport]);
ini_setInteger(File,"Aban",PlayerInfo[playerid][pAban]);
ini_setInteger(File,"Awarn",PlayerInfo[playerid][pAwarn]);
ini_setInteger(File,"Akick",PlayerInfo[playerid][pAkick]);
ini_getInteger(File,"Amute",PlayerInfo[playerid][pAmute]);

Находим public OnPlayerClickPlayer(playerid, clickedplayerid, source) вставляем в админ-клик меню

10) Статистика данного администратора
Идем дальше:
Находим case <ID диалога админ-меню>: и вставляем:

if(listitem == 9) // 9 - последний пункт в диалоге, замените на свой
{
if(PlayerInfo[playerid][pAdmin] < 8) // Заменить на свой последний уровень админки.
return SendClientMessage(playerid, -1, "Недостаточно прав для использования команды!");
if(PlayerInfo[playerid][pAdmin] == 0)
return SendClientMessage(playerid, -1, "{afafaf}Вы не администратор сервера!");
ShowAdminStats(playerid,ChosenPlayer[playerid]);
}

Находим команду /pm (или Вашу команду ответа на репорт) и вставляем в неё:

PlayerInfo[playerid][pAreport]++;

Находим команду /ban, вставляем в неё:

PlayerInfo[playerid][pAban]++;

Находим команду /warn, вставляем в неё:

PlayerInfo[playerid][pAwarn]++;

Находим команду /kick, вставляем в неё:

PlayerInfo[playerid][pAkick]++;

Находим команду /mute, вставляем в неё:

PlayerInfo[playerid][pAmute]++;

В конец мода:

stock ShowAdminStats(playerid,targetid)
{
static const msg[] =
"{ffffff}Статистика администратора - {1e90ff}%s\n"\
"\n"\
"{ffffff}Проигранно часов: {ff8800}%d\n"\
"{ffffff}Ответил на репорт: {ff8800}%d раз\n"\
"{ffffff}Забанил игроков: {ff8800}%d раз\n"\
"{ffffff}Выдал Warn игрокам: {ff8800}%d раз\n"\
"{ffffff}Кикнул игроков: {ff8800}%d раз\n"\
"{ffffff}Выдал мут: {ff8800}%d раз";
new string[sizeof(msg)-2+MAX_PLAYER_NAME+(-2+11)*5];
GetPlayerName(targetid, string, sizeof(string));
format( string, sizeof(string), msg, string,
PlayerInfo[targetid][pPayDayHad], PlayerInfo[targetid][pAreport], PlayerInfo[targetid][pAban],
PlayerInfo[targetid][pAwarn], PlayerInfo[targetid][pAkick], PlayerInfo[targetid][pAmute]);
return ShowPlayerDialog(playerid, DLG_NONE, DIALOG_STYLE_MSGBOX, "{ffcc00}Статистика", string, "Закрыть","");
}
http://rghost.ru/47896819/image.png

Вот и все. Автор системы: Ivan Budko
Доработка: Daniel_Cortez

Salvacore
17.09.2013, 00:11
Охренеть!
Вчера вшивал такую:3

Airon007
09.10.2013, 16:04
Хех:) Проверю позже

Ra4ok
21.10.2013, 00:15
Давно видел когда был адм на сервер Ultra Rp

#MAVRIN
24.10.2013, 09:45
Спасибо!!!:king:

Maksim97
10.06.2014, 20:48
а если такого нету

Идем дальше:
Находим case <ID диалога админ-меню>: и вставляем:

То что?

MR_BEN
10.06.2014, 22:22
а если такого нету

Идем дальше:
Находим case <ID диалога админ-меню>: и вставляем:

То что?

То всё, жизнь кончена :(