[Johnny_Smith]
Мастер
Здраствуйте.
Сразу начну с пояснения.
Данная комманда предназначена для загрузки и вывода новостей в диалог (например, у вас на сервере есть окно "Новости", куда вы записываете например, все обновления мода)
но вот беда, к примеру, амх. файл вашего мода занимает 2мб, а вам нужно дописать мелкую новость в инфобокс
весьма проблематично дописать, скомпилировать, залить все это добро
я предлагаю выход проще, заодно немного научимся пользоваться инклудом a_http
для осуществления ниже написанного кода вам нужны:
любой сайт с фтп, куда можно залить файл с новостями
ну и сервер собственно
а теперь к делу.
для начала нам нужно создать огромный массив под текст новостей (это конечно затратно, но приходится)
например, это будет массив:
понимаю, что 2048 яйчеек это перебор, но по мере увеличения информации должен увеличиваться размер под нее
теперь, создайте файл с новостями (например News.txt) и залейте его к себе на хост (пример:
теперь, нам нужно чтобы сервер за n-ный промежуток обновлял нашу стрингу с новостями файлом с хоста
для этого проделываем нехитрую операцию, создаем новый паблик, который будет обновлять наши новости:
сразу разьясню все блоки:
а чтобы код работал, добавьте вот это в OnGameModeInit:
теперь, нужно создать коллбэк, на который будет присылаться ответ от сервера:
теперь, сервер каждые 10 минут будет записывать в массив NewsText текст который находится в файле News.txt на вашем сервере
ну и для вывода (3 версии - strcmp, dcmd, zcmd)
strcmp:
dcmd:
ну и zcmd
думаю, что кто-нибудь, да извлечет из этой темы новое)
Автор: BJIADOKC
Сразу начну с пояснения.
Данная комманда предназначена для загрузки и вывода новостей в диалог (например, у вас на сервере есть окно "Новости", куда вы записываете например, все обновления мода)
но вот беда, к примеру, амх. файл вашего мода занимает 2мб, а вам нужно дописать мелкую новость в инфобокс
весьма проблематично дописать, скомпилировать, залить все это добро
я предлагаю выход проще, заодно немного научимся пользоваться инклудом a_http
для осуществления ниже написанного кода вам нужны:
любой сайт с фтп, куда можно залить файл с новостями
ну и сервер собственно
а теперь к делу.
для начала нам нужно создать огромный массив под текст новостей (это конечно затратно, но приходится)
например, это будет массив:
PHP:
new NewsText[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 м
PHP:
CallLocalFunction("CheckNews","");
PHP:
forward SetNewsString(index, response_code, data[]);
public SetNewsString(index, response_code, data[])
{
format(NewsText,sizeof(NewsText),"{FFFFFF}%s",data);
return;
}
ну и для вывода (3 версии - strcmp, dcmd, zcmd)
strcmp:
PHP:
if(!strcmp(cmdtext,"/news",true)) return ShowPlayerDialog(playerid,1500,"Новости",NewsText,"Ок","Отмена");
PHP:
dcmd_news(playerid,params[])
{
#pragma unused params
return ShowPlayerDialog(playerid,1500,"Новости",NewsText,"Ок","Отмена");
}
PHP:
CMD:news(playerid,params[])
{
#pragma unused params
return ShowPlayerDialog(playerid,1500,"Новости",NewsText,"Ок","Отмена");
}
Автор: BJIADOKC
Последнее редактирование:
