Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Динамичные новости

Статус
В этой теме нельзя размещать новые ответы.

[Johnny_Smith]

Мастер
Здраствуйте.
Сразу начну с пояснения.
Данная комманда предназначена для загрузки и вывода новостей в диалог (например, у вас на сервере есть окно "Новости", куда вы записываете например, все обновления мода)
но вот беда, к примеру, амх. файл вашего мода занимает 2мб, а вам нужно дописать мелкую новость в инфобокс
весьма проблематично дописать, скомпилировать, залить все это добро
я предлагаю выход проще, заодно немного научимся пользоваться инклудом a_http
для осуществления ниже написанного кода вам нужны:
любой сайт с фтп, куда можно залить файл с новостями
ну и сервер собственно
а теперь к делу.
для начала нам нужно создать огромный массив под текст новостей (это конечно затратно, но приходится)
например, это будет массив:
PHP:
new NewsText[2048];
понимаю, что 2048 яйчеек это перебор, но по мере увеличения информации должен увеличиваться размер под нее
теперь, создайте файл с новостями (например News.txt) и залейте его к себе на хост (пример: )
теперь, нам нужно чтобы сервер за n-ный промежуток обновлял нашу стрингу с новостями файлом с хоста
для этого проделываем нехитрую операцию, создаем новый паблик, который будет обновлять наши новости:
PHP:
forward CheckNews();
public CheckNews()
{
     HTTP(0,HTTP_GET,"http://myhost.govnoucoz.ru/News.txt","","SetNewsString");
     SetTimer("CheckNews",(1000 * 60) * 10,false);
     return;
}
сразу разьясню все блоки:
PHP:
HTTP(индекс = 0,тип запроса (HTTP_GET, HTTP_POST, HTTP_HEAD),адрес (URL),"",паблик ответа (Callback)); - пытаемся взять новости с сервера
SetTimer("CheckNews",(1000 * 60) * 10,false); - через 10 м
а чтобы код работал, добавьте вот это в OnGameModeInit:
PHP:
CallLocalFunction("CheckNews","");
теперь, нужно создать коллбэк, на который будет присылаться ответ от сервера:
PHP:
forward SetNewsString(index, response_code, data[]);
public SetNewsString(index, response_code, data[])
{
    format(NewsText,sizeof(NewsText),"{FFFFFF}%s",data);
    return;
}
теперь, сервер каждые 10 минут будет записывать в массив NewsText текст который находится в файле News.txt на вашем сервере
ну и для вывода (3 версии - strcmp, dcmd, zcmd)
strcmp:
PHP:
if(!strcmp(cmdtext,"/news",true)) return ShowPlayerDialog(playerid,1500,"Новости",NewsText,"Ок","Отмена");
dcmd:
PHP:
dcmd_news(playerid,params[])
{
    #pragma unused params
    return ShowPlayerDialog(playerid,1500,"Новости",NewsText,"Ок","Отмена");
}
ну и zcmd
PHP:
CMD:news(playerid,params[])
{
    #pragma unused params
    return ShowPlayerDialog(playerid,1500,"Новости",NewsText,"Ок","Отмена");
}
думаю, что кто-нибудь, да извлечет из этой темы новое)

Автор: BJIADOKC
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу