Главная Форум Файлы Статьи СОСТАВ ZH&ZHS О НАС GITHUB КАНАЛ YouTube BlackList WhiteList
Добро пожаловать на уникальный игровой портал ZETA-HACK TEAM! Здесь Вы сможете найти самые интересные новости из мира игровой индустрии, найти самые свежие сотфины для различных онлайн игр, общаясь на форуме получать мнения специалистов и помогать тем кто не смог получить нужный ответ в той или иной сфере!
Авторизация Регистрация
Последние обсуждаемые темы на форуме
Последние комментарии к новостям
Топ-10 форумчан
QUERY flooder AdCKuY_DpO4uLa 0
Заявочка G1TLER 3
Делаем лаунчер SA-MP или инжек... [FBI]@PUNISHER@ 0
[PYTHON] Ftp Brute Force =AlexDrift= 0
[PHP] Skype BruteForce =AlexDrift= 0
[PHP] Facebook Email Checker =AlexDrift= 0
[PYTHON] Gmail Bruteforce XMPP =AlexDrift= 0
vBulletin 5.1.x - PreAuth 0day... =AlexDrift= 0
[PHP] Mysql File Bypass =AlexDrift= 0
[PHP] Configs Grabber =AlexDrift= 0
Microsoft назвала дату смерти Windows 7 10.09.2019
x-gaming dm 0.3e 23.05.2019
x-gaming dm 0.3e 12.05.2019
x-gaming dm 0.3e 12.05.2019
Microsoft назвала дату смерти Windows 7 25.04.2019
[0.3е]Русский ДМ сервер 18.04.2019
[0.3.7]Forward-Evolution DM by [KrYpToDe... 18.04.2019
[DM] UNIVERSAL SERVER 18.04.2019
[GTA SAMP] Закрытие игры при вылете 27.02.2019
Microsoft назвала дату смерти Windows 7 26.02.2019
1. =AlexDrift= 582
2. Pahanch1kkk 46
3. AdCKuY_DpO4uLa 36
4. InFerNo 35
5. R4DUGA 32
6. d1amondl1on 31
7. [NACIONAL]IST_BERZ 23
8. Julia 21
9. Lil_Jonson 17
10. Effect 15
Витрина ссылок Купить ссылку (4 р.) » | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка

  • Страница 1 из 1
  • 1
Форум » Pawno программирование » Мануалы/Уроки » Готовые решения » Слет аккаунтов на mySQL R-39
Слет аккаунтов на mySQL R-39
14.01.2019 в 01:10
#1
=AlexDrift=
Не важны козыри если игра не на счет...
Статус: Offline
Регистрация: 24.11.2012
Сообщения: 582
Репутация: 84
Что бы добавить медаль "Легенда портала" добавляем в ?if "or 1='ID пользователя'"
Что бы добавить медаль "Золотой страж" добавляем в ?if "or 1='ID пользователя'"
Суть системы та  же: она будет удалять неактивные аккаунты, т.е. те аккаунты, владельцы которых не заходили на сервер более N-дней (указывается в макросе - define).
Настройки:
Настраивается система просто, на дефайнах. Там можно указать кол-во дней, за который аккаунт считается неактивным. Также на в дефайне нужно прописать таблицу с аккаунтами и поле с последней датой захода.
Требования:
  • Стандартный инклуд a_samp и прилагающиеся к нему библиотеки.
  • Инклуд и плагин MySQL версии R-39. Можно легко перевести на более высокую версию.
  • Немного мозгов и прямых рук.

Переходим к самой системе:
Ко всем дефайнам:
Код
#define N_DAYS      30 // кол-во дней, через которое аккаунт будет считаться неактивным
#define   N_TABLE      "accounts" // таблица с аккаунтами
#define N_FIELD      "lastlogin" // поле с последним заходом игрока
#define N_NAME      "name" // поле с ником игрока

ВНИМАНИЕ! Поле с последним заходом должно быть уже создано в вашей базу данных, иначе система работать не будет.
Код
Имя: lastlogin
Тип: int
Длина: 32
По умолчанию: нет
Остальное не трогаем.

Идем в OnPlayerConnect и добавляем следующий код:
Код
new query[150], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(dbHandle, query, sizeof(query), "UPDATE "N_TABLE" SET "N_FIELD" = '%d' WHERE "T_NAME" = '%s'", gettime(), name);mysql_function_query(dbHandle, query, false, "", "");

Далее добавим в OnGameModeInit
Код
public OnGameModeInit()
{
    mysql_function_query(dbHandle, "SELECT * FROM "N_TABLE"", true, "CheckAccountDelete", "");
    return true;
}

Создаем паблик в конце мода:
Код
forward CheckAccountDelete();
public CheckAccountDelete()
{
    new rows, fields;
    cache_get_data(rows, fields);
    if(!rows) return print("В указанной таблице не обнаружено строк!");
    new count, tick = GetTickCount(), lastlogin;
    for(new r; r<rows; r++)
    {
        lastlogin = cache_get_field_content_int(r, ""N_FIELD"");
        if(gettime()-lastlogin > N_DAYS*86400)
        {
            new name[MAX_PLAYER_NAME];
            cache_get_field_content(r, ""N_NAME"", name, dbHandle, 24);
            mysql_format(dbHandle, query, sizeof(query), "DELETE FROM "N_TABLE" WHERE "N_NAME" = '%s'", name);            mysql_function_query(dbHandle, query, false, "", ""); // удаляем аккаунт
            printf("Аккаунт с ником %s был удален из базы, так как прошло более %d дней с момента регистрации!", name, N_DAYS);            count++;
        }
    }
    printf("ОБЩАЯ СТАТИСТИКА ОЧИСТКИ АККАУНТОВ: %d аккаунтов удалено, %d - время, за которое они очищены (мс)", %d - всего выполнений цикла (аккаунтов)", count, GetTickCount()-tick, rows);
    return true;
}

ВНИМАНИЕ! Данная система может вызвать незапланированную нагрузку на сервер. Поэтому, рекомендуется применять данную систему ночью, когда игроков практически нет. 
Среднее время выполнения цикла for в 10 000 итераций (допустим, что у нас 10 000 аккаунтов) - 2 с.

Автор: @DEST и @stibs.

В ЛС не отвечу даже не старайтесь. Все вопросы на форум, создавайте тему там ответим.

Форум » Pawno программирование » Мануалы/Уроки » Готовые решения » Слет аккаунтов на mySQL R-39
  • Страница 1 из 1
  • 1
Поиск:

условия предоставления
Авторские права и контакты
счетчики
счетчики
счетчики
Файлы, статьи, публикации на форуме предоставлены исключительно в ознакомительных целях. Все материалы принадлежат исключительно их владельцам! Администрация портала не несет ответственности за последствия использования вами сторонних материалов, опубликованных на форуме, каталоге файлов, каталоге статей, но гарантирует отсутствие вредоносного кода в новостях и публикациях на главной. Напоминаем:Весь материал публикуется только для ознакомительных целей! Администрация не несёт ответственности за размещённые материалы. Все материалы предоставлены в ознакомительных целях и администрация предлагает удалить их после ознакомления.
  • Основатель портала - AlexDrift
  • Автор дизайна, разработчик - Lil Jonson
  • По возникшим вопросам дизайна - liljonson682@gmail.com
  • По всем возникшим вопросам - vk.com/alexdrift1137
  • Уникальный игровой портал ZETA-HACK.RU ® 2011 - 2019
  • Сайт создан в системе uCoz

  • Яндекс.Метрика
    Рейтинг@Mail.ru