В теме 9 сообщений

Гость stibs
Новичок

ГОТОВОЕ РЕШЕНИЕ


Всем привет! В одном моде (слитый Sunrise) увидел неплохую системку статистики администрации. Однако, как выяснилось, данная система не была доведена до конца. Т.е. там не было сохранения. Здесь же я его написал. Вы сможете полностью контролировать свою администрацию. Думаю, многим пригодится. В статистику входят: 

  • Статистика онлайна по дня недели (автоматически обнуляется в каждое воскресенье) + норма онлайна, а также общий недельный онлайн. 

Это урезанная версия, убрал из нее много лишнего, как например функция последняя причина наказания. 

Давайте начинать!


Для начала нам нужна бд, куда будет сохраняться онлайн администратора. Прикладываю готовую структуру базы данных для данной системы.

  База данных (открыть спойлер)

Далее нам необходимо переместится в мод, и добавляем в OnGameModeInit обнуление онлайна по окончанию недели. 

if(getDayEx()==2) mysql_tquery(dbHandle, "UPDATE `onlineadm` SET `online_monday`='0',`online_tuesday`='0',`online_wednesday`='0',`online_thursday`='0',`online_friday`='0',`online_saturday`='0',`online_sunday`='0'", "", "");

Теперь делаем команду для просмотра статистики администрирования. 

Ко всем командам:
 

CMD:checkadmstats(playerid, params[])
{
    //проверку на админа
    if(sscanf(params, "s[24]", params[0])) return SendClientMessage(playerid, -1, "Используйте: /checkadmstats [nick]");
    mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM `onlineadm` WHERE `nameadm`='%s' LIMIT 1", params[0]);
    mysql_tquery(dbHandle, string, "OnCheckStatsAdmin", "is", playerid, params[0]);
    SendClientMessage(playerid, -1, "В базу данных запрос успешно отправлен, ожидайте ответа.");
  
    return true;
}

Далее добавляем сам обработчик mysql запроса - OnCheckStatsAdmin:

  Code (открыть спойлер)

Теперь самое главное, чего у этой системы, собственно и не было - Сохранение. 

Ко всем new:

new OnlineDay[MAX_PLAYERS];

Далее в секундный таймер суем:

if(/*проверка на АФК*/ < 3)
{
    OnlineDay[playerid]++;
} // если нет проверки на афк удалите ее и эти две скобки тоже.

После этого добавляем в OnPlayerDisconnect:

  Code (открыть спойлер)

Теперь создадим этот паблик сохранения:
 

  Code (открыть спойлер)

Переделал систему: @stibs.

Автор первоначальной системы (автор мода Sunrise RP) - Serega_Travakur

Отредактировано пользователем stibs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость stibs
Новичок

Если ошибка : undefined symbol getDayEx(), то вставляем в конец мода:

stock getDayEx()
{
    new w = gettime(), saturday = 1310155200, day_week;
	while(w - saturday > 60 * 60 * 24)
    {
        w -= 60 * 60 * 24;
        day_week ++;
    }
    while(day_week >= 7) day_week -= 7;
	return day_week;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

автора укажите, кто переделывал есть, а автора нет!

Заметка от Гость , создано

Было вырезано из мода (Sunrise RP), а кто автор мода без понятия. Если знаете, можете указать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
wert1xxx
Новичок

Как исправить? 

  открыть спойлер

 

if(getDayEx()==2) mysql_tquery(dbHandle, "UPDATE `onlineadm` SET `online_monday`='0',`online_tuesday`='0',`online_wednesday`='0',`online_thursday`='0',`online_friday`='0',`online_saturday`='0',`online_sunday`='0'""""");

 

imag1e.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hokageud
Завсегдатый

получено новое достижение: апнуть тему 5-ти летней давности

Заметка от Cawfee , создано

Устно предупредил – не поняли... В следующий раз поставлю на премодерацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • S.S.
      От S.S.
      Здрасвуйте, хочу спросить как делают свои лаунчеры с загрузкой даных от сервера (Свои скины, авто и т.д.). Много искал в интернете и ничего не нашел. Кто что знает? Где можно об этом почитать?
    • Владислав Малиновский
      От Владислав Малиновский
      SWEEK RUSSIA — онлайн игра на телефон с открытым миром, в котором Вы можете создать персонажей вместе со своими друзьями и начать весело проводить время. Вы можете продвигаться по сюжету квестовых миссий или же начать игру с зарабатывания денег в транспортной компании. Создавать организации, подниматься по карьерной лестнице. Заполучив влияние над другими игроками - попробуй себя в роли Президента.
       
      Нам нужны ответственные люди на должность главного администратора. Если вы считаете себя адекватным и ответственным, отпишите в vk.com/devmaksim или t.me/raphmarci.
       
      Официальный сайт проекта - sweekrussia.ru
      Официальный форум проекта - forum.sweekrussia.ru
      Официальное сообщество VK - vk.com/sweekrussia.game
      Официальный TG канал - t.me/sweek_dev
    • bogdan295@gmai
      От bogdan295@gmai
      Здраствуйте, я создавал новую организации когда дело дашло до пикапов они не создаются 
      new lssd1; new lssd2;  else if(pickupid == lssd2)// Вход     {         SetPlayerInteriorEx(playerid,0);         SetPPos(playerid,1567.5510,-1657.9956,5.3859);         SetPlayerFacingAngle(playerid, 500);         return true;     } else if(pickupid == lssd1)// Вsход     {         SetPlayerInteriorEx(playerid,0);         SetPPos(playerid,630.0542,-572.0032,16.3359);         SetPlayerFacingAngle(playerid, 500);         return true;     }     lssd2 = CreatePickupAC(1318,1,626.9653,-571.8394,17.9207, 147); // вход лссд     lssd1 = CreatePickupAC(1318,1,1567.4720,-1660.6494,5.3859, 147); // выход лссд Что я сделал не так?