News system или новости сервера...
#1

Всем доброго времени суток.

Возникла идея сделать новостную систему для сервера. Немного о идеи:

Все админы знают, что заставить пользователя зайти на сайт и почитать изменение сервера, новые команды и прочее, очень сложно. Как следствие - появляются глупые вопросы в игре, отвлекая админов от других дел. Решение этой проблемы, это вывод последних новостей при заходе в игру: т.е. когда человек залогинился, идёт проверка, читал-ли он эту новость, если нет, то у него появляется диалог с текстом, и 2 кнопками: "Закрыть и больше не показывать" и "Закрыть но показать при след.заходе". При нажатии первой кнопки в аккаунте отмечается что данная новость прочитана, при нажатии второй ничего не отмечается.

Всё хорошо, всё сделал(пока в голове), но возникла проблема: как определить что именно данная новость была прочитана, и в случае изменения файла, текст вновь начинает показывать у всех?

Единственное что придумал, это сделать в начале файла переменную data и присвоить ей значение актуальности даты, т.е. например: "data=07.01.2011" и далее сам текст. Таким образом, при нажатии первой кнопки, в профиль игрока запишется дата последней новости, и если дата из файла отличается от даты в профиле, новость отображается вновь.
Один минус: при изменении самого файла с текстом, придётся переписывать и дату=(


Какие будут идеи
Reply
#2

Ты знаешь как реализованы система новых сообщения на данном форуме?
Reply
#3

Так так так,я не множко не понял,новость будет выводиться прямо с форума или из папки с сервером в scriptfiles?...если второе то очень легко сделать)
Reply
#4

Stepashka, а Вы знаете? ПРАВИЛА ФОРУМА "...не запрещают создавать любые новые темы".

Johnny_Xayc, Ну загрузка через HTTP это уже следующая версия, для начала просто файл(ы), из папки "scriptfiles".
Reply
#5

аккаунты на MySQL? or File?
Reply
#6

От мускула отказался, всё на файлах...
Reply
#7

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Stepashka, а Вы знаете? ПРАВИЛА ФОРУМА "...не запрещают создавать любые новые темы".

Johnny_Xayc, Ну загрузка через HTTP это уже следующая версия, для начала просто файл(ы), из папки "scriptfiles".
вообще-то это было сообщение по теме.
Я хотел узнать знаешь ди ты принцип как узнать прочиталь человек новость или нет!

Вижу что не знаешь. К томуже если система на файлах, то ты не реализуешь задуманное.
Reply
#8

Stepashka, почему не реализую, я в первом посте уже написал как думаю сделать, и суть вопроса в том, если-ли более рациональный способ...

ps> И да, Вы уже не раз пытаетесь "проверить меня на знания", а вот у меня к Вам такой-же вопрос, А Вы сами-то знаете как это работает? если знаете, распишите пожалуйста, нам очень интересно...
Reply
#9

Каждый раз когда вы открываете форум происходит проверка типа, есть ли запись в таблице типа "ваш ИД - ИД сообщения", если нет собщение помечается как непрочитанное, если запись есть то сообщение прочитано.
Заходя в тему с непрочитанными сообщениями, создаются такие записи.
Каждый раз тыкая в кнопку пометить все сообщения как прочитанные создается запись в другой таблице типа: ваш ИД - ИД последнего сообщения. Все сообщения после этого ИД идут как новые, до него прочитанные.
Не имея идентификатора пользователя, а на файлах его нет, ты не реализуешь систему новых-старых новостей. Писать инфу о прочитанных непрочитанных новостях в файлах юзверей тоже не выйдет. Во-первых, даже я с ходу не могу представить что ты туда будешь писать. Во-вторых, самп не умеет перебирать файлы, поэтому писать в аккаунты тех кого нет на сервере у тебя не выйдет.
Reply
#10

-Stranger-,если на файлах то лови идею.

Если у тебя гф то.

B enum playerinfo
news[82],

пишешь при сохранении аккаунта 1/0|Unix время.

и читаешь при загрузке данных игрока их файла этот параметр,если 1 до палки"|" то не показываем новость,при заходе,если 0 то показываем,и к тому же сверяем Unix время с временем последнего объявления,если не сходится,то показываем новость всем,эм трудно объяснить,но реализовать можно.

и ещё юзай split для деления параметра отвечающего за новости.

p.s. с каждой новой новостью,меняй время последней новости в Unix формате,а игрок если будет давить кнопку ок и больше не показывать,пиши ему в аккаунт дату последней новости.
p.s.s. Можно посчитать всё это как бред,но легко реализуется.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)