HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 27.05.2013, 14:13
im0rg
Постоянный
Регистрация: 19.03.2013
Сообщений: 586
С нами: 6920791

Репутация: 113


По умолчанию

Всем привет, это урок по добавлению Shoutcast isecast потоковых радио в s0beit
Для начала качаем архив приложенный к теме.
Все из этого архива кидаем в папку src
Далее заходим в main.h
И ко всем include добавим

Код:





Код:
#include "bass.h"
#pragma comment(lib, "bass.lib")


Далее идем в cheat.h
Там найдем

Код:





Код:
struct cheat_state_generic


И после этого добавим

Код:





Код:
int play;


Теперь идем в samp.cpp

Найдем

Код:





Код:
// start chatbox logging


И перед ним добавим

Код:





Код:
if (cheat_state->_generic.play == 1)
    {
        HSTREAM chan;
        BASS_StreamFree(chan);
        DWORD r;
        chan=BASS_StreamCreateURL("http://online.radiorecord.ru:8102/club_64",0,BASS_STREAM_BLOCK|BASS_STREAM_STATUS|BASS_STREAM_AUTOFREE,StatusProc,(void*)r); // open URL
        BASS_ChannelPlay(chan,FALSE);
        cheat_state->_generic.play = 0;
    }


"http://online.radiorecord.ru:8102/club_64" вот это можно сделать через setting
Далее там же найдем

Код:





Код:
void cmd_pickup ( char *params )


И перед ним добавим

Код:





Код:
void CALLBACK StatusProc(const void *buffer, DWORD length, void *user)
{
    if (buffer && !length && (DWORD)user==0) // got HTTP/ICY tags, and this is still the current request
    addMessageToChatWindow( "loading.." );
}


Далее идем в new_menu.cpp

Ко всем меню добавим

Код:





Код:
TwAddButton(twBar_SPCheats, "Play", play, NULL, "");


И еще там же найдем

Код:





Код:
// MENU FUNCTIONS


И после добавим

Код:





Код:
void TW_CALL play(void *)
{
  cheat_state->_generic.play ^= 1;
}


Вот и все. Мне было лень придумать как выключать. Можно еще вывести на худ название радио станции. Битрейт, название трека, год выпуска. Но мне было лень это делать.

Вот выкладываю свой полный код

Код:





Код:
if (KEY_DOWN('R') && KEY_PRESSED('Y'))
    {
        BASS_Start();
        HSTREAM chan;
        BASS_StreamFree(chan);
        DWORD r;
        chan = BASS_StreamCreateURL("http://online.radiorecord.ru:8102/club_64", NULL, BASS_STREAM_BLOCK|BASS_STREAM_STATUS|BASS_STREAM_AUTOFREE,StatusProc,(void*)r);
        BASS_ChannelPlay(chan,FALSE);
        addMessageToChatWindow( "Radio started" );
    }
    if (KEY_DOWN('R') && KEY_PRESSED('U'))
    {
      BASS_Stop();
    }
    if (KEY_DOWN('R') && KEY_PRESSED('N'))
    {
          HSTREAM chan;
          BASS_StreamFree(chan);
          DWORD r;
          chan = BASS_StreamCreateURL("http://online.radiorecord.ru:8102/club_64", NULL, BASS_STREAM_BLOCK|BASS_STREAM_STATUS|BASS_STREAM_AUTOFREE,StatusProc,(void*)r);
          const char *meta=BASS_ChannelGetTags(chan,BASS_TAG_META);
          if (meta)
          {
              const char *p=strstr(meta,"StreamTitle='");
                if (p)
                {
                  const char *p2=strstr(p,"';");
                  if (p2)
                  {
                          char *t=strdup(p+13);
                            t[p2-(p+13)]=0;
                            addMessageToChatWindow( "%s",t);
                  }
                }
          }
          else
          {
              meta=BASS_ChannelGetTags(chan,BASS_TAG_OGG);
              if (meta)
              {
                  const char *artist=NULL,*title=NULL,*p=meta;
                  for (;*p;p+=strlen(p)+1)
                  {
                      if (!strnicmp(p,"artist=",7))
                          artist=p+7;
                      if (!strnicmp(p,"title=",6))
                          title=p+6;
                  }
                  if (title)
                  {
                      if (artist)
                      {
                          char text[100];
                          _snprintf(text,sizeof(text),"%s - %s",artist,title);
                          addMessageToChatWindow( "%s",text);
                      }
                      else
                      {
                          addMessageToChatWindow( "%s",title);
                      }
                  }
              }
          }
    }




С вами былJesusСпециально для сайта BlastHack.NetПри копировании указывать источникBlastHack.Net

Screen​


ВНИМАНИЕ: У КОГО WINDOWS 8 И VS 2012 И ВЫЛАЗИЕТ ОШИБКА SAFESEH
Делаем следующее

Цитата:

Откройте диалоговое окно "Страницы свойств проекта".
Выберите папку Компоновщик.
Выберите страницу свойств Командная строка.
Введите параметр в поле Дополнительные параметры.
/SAFESEH:NO
 
Ответить с цитированием

  #2  
Старый 27.05.2013, 14:15
web
Новичок
Регистрация: 11.11.2004
Сообщений: 0
С нами: 11312514

Репутация: 0
По умолчанию

Спасибо за полезный урок
 
Ответить с цитированием

  #3  
Старый 27.05.2013, 14:21
Norma_Cheater
Участник форума
Регистрация: 29.04.2013
Сообщений: 141
С нами: 6861401

Репутация: 0
По умолчанию

Классный урок !!!
 
Ответить с цитированием

  #4  
Старый 27.05.2013, 14:26
BaHeK
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами: 6903092

Репутация: 58
По умолчанию

Вот ето афигено радио в собе
 
Ответить с цитированием

  #5  
Старый 27.05.2013, 14:31
fondamentolok
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами: 6920791

Репутация: 113
По умолчанию

Цитата:
Сообщение от BaHeK  

Вот ето афигено радио в собе

Да но зачем оно ?

Далее там же найдем

Код:

void cmd_pickup ( char *params )

я это не нашел
 
Ответить с цитированием

  #6  
Старый 27.05.2013, 14:34
BaHeK
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами: 6903092

Репутация: 58
По умолчанию

Цитата:
Сообщение от fondamentolok  

Да но зачем оно ?

Далее там же найдем
Код:
void cmd_pickup ( char *params )
я это не нашел

ну во 1 есть сервера на которих нету радио а 2 рих ты ставиш свою радио врлну которая тибе нравитса и слушаеш ето афигено а Лёха молорик
 
Ответить с цитированием

  #7  
Старый 27.05.2013, 14:35
fondamentolok
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами: 6920791

Репутация: 113
По умолчанию

Цитата:
Сообщение от BaHeK  

ну во 1 есть сервера на которих нету радио а 2 рих ты ставиш свою радио врлну которая тибе нравитса и слушаеш ето афигено а Лёха молорик

О да ты прав + можно в меню соба вшить и будет ЗБС )

Не подскажешь как найти void cmd_pickup ( char *params ) у меня не находит
 
Ответить с цитированием

  #8  
Старый 27.05.2013, 14:41
BaHeK
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами: 6903092

Репутация: 58
По умолчанию

Цитата:
Сообщение от fondamentolok  

О да ты прав + можно в меню соба вшить и будет ЗБС )
Не подскажешь как найти void cmd_pickup ( char *params ) у меня не находит

собейт у тибя FYP'a??????
 
Ответить с цитированием

  #9  
Старый 27.05.2013, 14:43
BaHeK
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами: 6903092

Репутация: 58
По умолчанию

если да то вот он

void cmd_pickup ( char *params )

{

if ( !strlen( params ) )

{

addMessageToChatWindow( "USAGE: /m0d_pickup " );

return;

}

g_RakClient->SendPickUp( atoi( params ) );

}
 
Ответить с цитированием

  #10  
Старый 27.05.2013, 14:43
fondamentolok
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами: 6920791

Репутация: 113
По умолчанию

Цитата:
Сообщение от BaHeK  

собейт у тибя FYP'a??????

Голубя
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.