В теме 1 сообщение

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

Данная команда предназначена для загрузки и вывода новостей в диалог (например, у вас на сервере есть окно "Новости", куда вы записываете например, все обновления мода), но вот беда, к примеру, амх. файл вашего мода занимает 2мб, а вам нужно дописать мелкую новость в инфобокс, весьма проблематично дописать, скомпилировать, залить все это добро. Я предлагаю выход проще, заодно немного научимся пользоваться инклудом a_http для осуществления ниже написанного кода вам нужен: любой сайт с FTP, куда можно залить файл с новостями.

 

Ко всем #include добавляем:

#include <a_http>

Нужно создать огромный массив под текст новостей (это конечно затратно, но приходится)

Ко всем new:

new NewsText[2048 char];

Понимаю, что 2048 яйчеек это перебор, но по мере увеличения информации должен увеличиваться размер под нее.
Теперь, создайте файл с новостями (например News.txt) и залейте его к себе на хост (пример: http://myhost.ru/News.txt)
Теперь, нам нужно чтобы сервер за n-ный промежуток обновлял нашу стрингу с новостями файлом с хоста, для этого проделываем нехитрую операцию, создаем новый паблик, который будет обновлять наши новости:

forward CheckNews();
public CheckNews()
{
     HTTP(0,HTTP_GET,"http://myhost.ru/News.txt","","SetNewsString");
     return SetTimer("CheckNews",600000,false);
}

ПОЯСНЕНИЯ: 
HTTP(индекс = 0,тип запроса (HTTP_GET, HTTP_POST, HTTP_HEAD),адрес (URL),"",паблик ответа (Callback)); - пытаемся взять новости с сервера
SetTimer("CheckNews",600000,false); - через 10 минут делаем то же самое

В public OnGameModeInit добавляем:

CallLocalFunction("CheckNews","");

Теперь, нужно создать коллбэк, на который будет присылаться ответ от сервера:

forward SetNewsString(index, response_code, data[]);
public SetNewsString(index, response_code, data[])
{
    if(!data[0]) return print(!"[HTTP News]: Нет полученных данных!");
    strpack(NewsString,data);
    return 1;
}

В public OnPlayerCommandText

if(!strcmp(cmdtext,"/news",true))
{
    new tmp_news[2048];
    strunpack(tmp_news,NewsString);
    return ShowPlayerDialog(playerid,1500,"Новости",tmp_news,"Ок","Отмена");
}

Теперь, сервер каждые 10 минут будет записывать в массив NewsText текст который находится в файле News.txt на вашем сервере.

 

Автор: Владокс

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • miroki
      От miroki
      Возможно ли как-то в pawno сделать темную тему?
    • Доналдо Фарекелка
      От Доналдо Фарекелка
      Приветствую, этот мод я нашёл на просторах интернета. 
      Скачал мод у автора:  Developer Stravinskiy.
      Доработал мод: Donaldo_Farekelka.
       
      Предупреждаю! Мод сырой, багов стало меньше, но они есть.
      Мод: Баня, Подвал, В некоторых местах маппинг, система коронавируса, 8 лвл админок.
       
      [01.11.2025] ВНИМАНИЕ! Не используйте бесплатные хостинги, если Вы не уверены в их работоспособности. Если запустили мод на бесплатном хостинге и он не работает, то просьба мне не писать! (Вина скорее всего, лежит на хостинге!). Исключение: dragon(Не реклама. Проверено на личном опыте).
      [29.11.2025] Спасибо! За 1000+ скачиваний. 
      [08.12.2025] ВНИМАНИЕ! Мод не рекомендуется к использованию для новичков. Мод признается старым.
      [16.02.2026] ВНИМАНИЕ! Если вы не умеете что-либо делать, то новичкам рекомендуется к изучению pawn роликов... книг(Например, PawnBook)... просмотр форумов на тему уроков. 
       
      Информация:
      1) Dc_Cmd
      2) Mysql, mode, language - Всё настраивается теперь в pawno ( UPDATE: 1.1.0 )
      3) Административные права в данный момент можно выдать через /amakeadmin(Смотреть уроки) или БД ( UPDATE: 1.2.2 ).

      Всё что я делаю сейчас, смотрите в изменениях.
      Что сделал:
       

      Как установить мод на хостинг(Чтобы больше не было вопросов в ЛС):
      RUTUBE: https://rutube.ru/video/private/f74276be05e090652ee46bcbe2b4e27d/?p=6tWFvG_lTFk4sHVaCjheZQ
      YOUTUBE: https://youtu.be/z07sJUAVQpI