Всем привет
Как можно сделать автоудаление аккаунта если игрок не заходит на сервер около 30 дней ?
Всем привет
Как можно сделать автоудаление аккаунта если игрок не заходит на сервер около 30 дней ?
Если есть переменная с датой последнего входа, то используй ее.
Всем привет. Решил сегодня с MapIcon поиграться, хотел сделать иконку видимой на большой карте из любого места, а на мини-карте только при приближении, но после кучи попыток замены стиля иконки, изменения дистанции стрима - так ничего и не получилось.. Точнее получилось сделать так, что иконка становится видимой на большой карте всегда только после того как к ней подъедешь (10000.0 стрим и MAPICON_LOCAL). В одиночной игре есть иконки про которые я говорю, а в сампе разве нет?
p.s. Создавал и через CreateDynamicMapIcon и через SetPlayerMapIcon.
Последний раз редактировалось Nash_Brigers; 18.04.2016 в 15:53.
Опять же, возвращаемся к теме "ЗАЩеМ УЧИТЬ МУСКУЛ, ВЕТЬ ЭТА НИ ЯЗЫК И Я ИТАК ВНЁМ РАЗБИРАЮСЯ!!!"
Реализация полностью на стороне БД:
- Создаём новое поле, указывая ему тип "TIMESTAMP", размер не указывая и указывая лишь "По умолчанию" как "CURRENT_TIMESTAMP". Всё. Теперь все новые строки, которые создаются в таблице, будут автоматически сохраняться с датой и временем создания этих самых строк (время берётся с сервера, на котором установлен MySQL).
- В моде создаём вот такой запрос (если стоит система часов на сервере, то можно отправлять его, например, каждый день в 12 ночи):
И при каждом запросе "UPDATE" добавить обновление нашего столбца таким образом:PHP код:
DELETE FROM `имя_таблицы` WHERE `имя_нашего_столбца` < NOW() - INTERVAL 30 DAY
И всё, вы идеальный программист.PHP код:
`имя_нашего_столбца` = NOW()
P.S. Так же в самой БД может быть настройка событий, куда можно запихать запрос на удаление старых аккаунтов. В phpMyAdmin настройка так и называется: "События". Находится она там же, где у вас все вкладки "Структура", "Обзор" и т.д. (заходить надо именно в БД, а не в таблицу). Настраиваем выполнение события на промежуток в день и всё. В мод останется лишь добавить обновление столбца со временем, как я показал выше и всё
Если реализация нужна для файлов, то тут проще использовать сторонний софт/настройки хостинга, которые будут проверять дату создания/правки файла и удалять "просроченные"
P.S. МУСКУЛ УЧАТ ТОКА СЛАБАКИ! ТОК ПАВН, ТОКА ХАРДКОР!
Последний раз редактировалось DeimoS; 19.04.2016 в 07:29.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
$continue$ (19.04.2016) Donny_Gonzalez (19.04.2016) Sp1ke (23.04.2016) Vasya_Pupkin (20.04.2016)
now() возвращает время с сервера. А если кривые администраторы , то и время на сервере кривое.
А, ещё возможно, что сервер будет не на территории этой страны -> что и время будет другое в запросах.
Последний раз редактировалось $continue$; 19.04.2016 в 16:09.
Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman
Vasya_Pupkin (24.04.2016)
Спс все работает)
Ну вот вопрос при каждом запросе "UPDATE" добавить обновление нашего столбца:
Я его добавляю перед WHERE правильно ? или нет
А еще если не добавлять в каждый "UPDATE"Код:format(MySQL, sizeof(MySQL), "UPDATE house SET hOwner = '%s', `time_vhod` = NOW() WHERE hID = '%d' LIMIT 1",Name(playerid),houseid);
У меня при логине записывается дата входа если только в нее добавить `time_vhod` = NOW() то в другие можно не добавлять ? или все же лучше в каждый запрос ?
Код:format(string, sizeof(string), "UPDATE `accounts` SET `pGetonDate` = '%d/%d/%d', `pGetonIP` = '%s' WHERE `ID` = '%i' LIMIT 1", day, month, year, pTemp[playerid][pIp], PlayerInfo[playerid][MysqlpID]);
Последний раз редактировалось Vasya_Pupkin; 23.04.2016 в 20:25. Причина: Ваське не кто не отвечает: не надо так >_<
Таки я об этом сам сказал, не? И это легко правится либо на стороне запросов, либо простым обращением к хостеру с просьбой подправить время на машине, не? Или не? Не?
- - - Добавлено - - -
Ну если игрок на сервере провисит 30 суток, а после выйдет, его аккаунт будет удалён, ибо сохранение было только при входе Но вообще да, можно, если, например, на сервере каждую ночь происходит рестарт
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Vasya_Pupkin (24.04.2016)
Хостинг, например находиться в Франции ты попросишь сменить время в mysql-server, боюсь, что тебя пошлют куда подальше (хотя я не уверен, что нельзя сделать для конкретной базы свое время)
Хмм я не уверен, что такое вкатит, но можно попробовать:
P.S: Я в этих Ваших СУБД не очень то и силен.PHP код:
SET time_zone = 'MSK'
Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman
Эту тему просматривают: 7 (пользователей: 0 , гостей: 7)