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

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

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

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

System news или динамическая система новостей [ALL]

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

V[a]mPiR

Умник
Всем привет. Нашел у себя в моде систему динамических новостей и решил поделиться ей с вами.
И так начнем:

ко всем new добавим:
PHP:
new NewsSystemTextID[max_line], NewsSystemTextTitle[max_line], NewsSystemText[dialog_line],PlayerLastNews[MAX_PLAYERS];
теперь ко всем форвардам добавляем:
PHP:
forward NewsSystemLoadText();
далее в OnGameModeInit:
PHP:
NewsSystemLoadText(); // Загрузка текста при старте мода*
SetTimer("NewsSystemLoadText",600000,1); // Загрузка текста по таймеру 600сек
ко всем диалогам(OnDialogResponse) добавим:

PHP:
if(dialogid == 23){
 if(response){
  PlayerLastNews[playerid] = strval(NewsSystemTextID);
  Message(playerid," - - - - - - - - - - - - - - - - - - - - - - - - - - - - ",clYellow);
  Message(playerid,"Вы нажали первую кнопку, эту новость вы больше не увидите",clYellow);
  Message(playerid," - - - - - - - - - - - - - - - - - - - - - - - - - - - - ",clYellow);
 }else{
  PlayerLastNews[playerid] = 0;
  Message(playerid," - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ",clYellow);
  Message(playerid,"Вы нажали вторую кнопку, эту новость вы видите при следующем респавне",clYellow);
  Message(playerid," - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ",clYellow);
 }
}
и теперь перед OnGameModeInit добавим следующее:
PHP:
// Загрузка новости из файла
public NewsSystemLoadText(){
 new File: f = fopen("/news.txt",io_read), buff[max_line];
 if(!f){
  print("\n[News System]: Error reading file\n");
  return 0;
 }
  fread(f,NewsSystemTextID); // читается ID новости
  fread(f,NewsSystemTextTitle); // читается заголовок
  NewsSystemText = ""; // очищаем строку
  while(fread(f,buff)) format(NewsSystemText,dialog_line,"%s%s",NewsSystemText,buff); // читается текст
 fclose(f);
 return 1;
}
// Загрузка новости из файла

NewsSystemShowNews(playerid){
 if(PlayerLastNews[playerid]!=strval(NewsSystemTextID) && strval(NewsSystemTextID)){
  ShowPlayerDialog(playerid,23,DIALOG_STYLE_MSGBOX,NewsSystemTextTitle,NewsSystemText,"Понятно","Потом");
 }
 return 1;
}
вызов данной системы: в OnPlayerSpawn добавим
PHP:
NewsSystemShowNews(playerid)
так же не забудьте добавить в папку scripfiles файл news.txt

Использование: новости в файл добавлять необходимо в следующем формате
PHP:
ID
Заголовок
Текст[]
т.е. кто не понял пример:
PHP:
1
Привет
Наш сервер открылся
Автор системы: Fitz_Nick
Автор доработок: V[a]mPiR
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу