Алексей Мещеряков
Специалист
Доброго времени суток всем пользователям и гостям данного форума. Думаю каждый знает проект GalaxY и какие там системы.
В последнее время стал замечать, что много пользователей интересуются системой /motd и ее ищут. На портале pawno-info не нашел подобной темы, по этому постараюсь донести до вас подобную команду и изложить ее в более правильном виде. Так, давайте приступим.
Сразу хотелось бы отметить, что данная система на MySQL и расписывать как подключить БД, создать для нее таблицы и плагины не буду.
В последнее время стал замечать, что много пользователей интересуются системой /motd и ее ищут. На портале pawno-info не нашел подобной темы, по этому постараюсь донести до вас подобную команду и изложить ее в более правильном виде. Так, давайте приступим.
Сразу хотелось бы отметить, что данная система на MySQL и расписывать как подключить БД, создать для нее таблицы и плагины не буду.
Итак, для начала добавим:
PHP:
enum mo
{
mNews[144],
};
new MOTDINFO[22][mo];
PHP:
mNews[144]
PHP:
new MOTDINFO[22][mo];
Едем дальше, создадим саму команду:
PHP:
if(strcmp(cmd, "/motd", true) == 0)
{
if(IsPlayerConnected(playerid)) return true;
if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid, COLOR_GREY, "Нет прав на использование команды.");
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_GREY, "Используйте: /motd [текст]");
strmid(MOTDINFO[PlayerInfo[playerid][pLeader]][mNews], result, 0, strlen(result), 255);
SendClientMessage(playerid,-1,"Вы установили новость для членов фракции.");
SaveMotd();
}
PHP:
if(PlayerInfo[playerid][pLeader] > 0 && PlayerInfo[playerid][pMember] > 0 && strlen(MOTDINFO[PlayerInfo[playerid][pMember]][mNews]) > 1)
{
new str[145];
format(str,sizeof(str),"Сообщение дня: %s",MOTDINFO[PlayerInfo[playerid][pMember]][mNews]);
SendClientMessage(playerid,COLOR_YELLOW,str);
}
И уже где то в конце мода сам public действий.
PHP:
stock SaveMotd()
{
new str[300];
for(new h = 1; h < sizeof(MOTDINFO); h++)
{
format(str, sizeof(str), "UPDATE `motd` SET `News`='%s' WHERE id = %d",MOTDINFO[h][mNews],h);
mysql_function_query(1, str, false, "", "");
}
return true;
}
Ссылка на скриншот |
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Ну вот и все. Не забудьте создать таблицу в Базе Данных, иначе сохранения и загрузки сообщений не будет.
Система полностью рабочая, проверял сам.
Всем спасибо, автор данного урока я (Алексей).
Если кто будет делать корректирования и улучшения, буду рад.
Последнее редактирование:
