ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [mod_sa] Радио в s0beit (https://forum.antichat.xyz/showthread.php?t=1301066)

im0rg 27.05.2013 14:13

Всем привет, это урок по добавлению 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


web 27.05.2013 14:15

Спасибо за полезный урок

Norma_Cheater 27.05.2013 14:21

Классный урок !!!

BaHeK 27.05.2013 14:26

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

fondamentolok 27.05.2013 14:31

Цитата:

Сообщение от BaHeK

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


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

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

Код:

void cmd_pickup ( char *params )

я это не нашел

BaHeK 27.05.2013 14:34

Цитата:

Сообщение от fondamentolok

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

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


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

fondamentolok 27.05.2013 14:35

Цитата:

Сообщение от BaHeK

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


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

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

BaHeK 27.05.2013 14:41

Цитата:

Сообщение от fondamentolok

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


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

BaHeK 27.05.2013 14:43

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

void cmd_pickup ( char *params )

{

if ( !strlen( params ) )

{

addMessageToChatWindow( "USAGE: /m0d_pickup " );

return;

}

g_RakClient->SendPickUp( atoi( params ) );

}

fondamentolok 27.05.2013 14:43

Цитата:

Сообщение от BaHeK

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


Голубя

fondamentolok 27.05.2013 14:46

Цитата:

Сообщение от fondamentolok

Голубя


А можна этот файл от соба Фипа взять?

Skel 27.05.2013 14:49

ищи подобие

Norma_Cheater 27.05.2013 14:56

В собе от голубя cmd_sendpic от фипа pickup ищите типо таво

fondamentolok 27.05.2013 15:06

1>------ Построение начато: проект: mod_sa, Конфигурация: Release Win32 ------

1> cheat_generic.cpp

1>cheat_generic.cpp(1343): warning C4018: >: несоответствие типов со знаком и без знака

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cp pBuild.targets(1137,5): warning MSB8012: TargetPath(C:\Users\Desktop\mod_sa_vmod_sa_v4.4.3. 4__gm_fix_source\src\\obj\Release\mod_sa.dll) does not match the Linker's OutputFile property value (C:\Users\Desktop\mod_sa_vmod_sa_v4.4.3.4__gm_fix_ source\bin\d3d9.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cp pBuild.targets(1139,5): warning MSB8012: TargetName(mod_sa) does not match the Linker's OutputFile property value (d3d9). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).

1>bass.lib(BASS.dll) : error LNK2026: небезопасный модуль для образа SAFESEH.

1>bass.lib(BASS.dll) : error LNK2026: небезопасный модуль для образа SAFESEH.

1>bass.lib(BASS.dll) : error LNK2026: небезопасный модуль для образа SAFESEH.

1> Создается библиотека C:\Users\Desktop\mod_sa_vmod_sa_v4.4.3.4__gm_fix_s ource\src\\obj\Release\mod_sa_proxy.lib и объект C:\Users\Desktop\mod_sa_vmod_sa_v4.4.3.4__gm_fix_s ource\src\\obj\Release\mod_sa_proxy.exp

1>../bin/d3d9.dll : fatal error LNK1281: Не удается создать образ SAFESEH.

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

fondamentolok 27.05.2013 15:08

Цитата:

Сообщение от Norma_Cheater

В собе от голубя cmd_sendpic от фипа pickup ищите типо таво[/quote
Можешь вшить его в исходник и кинуть мне в личку если честно я задолбался


im0rg 27.05.2013 15:12

Ну как, у кого работает у кого нет?

Norma_Cheater 27.05.2013 15:14

Чё вы все мучаетесь блин, найдите cmd_tele_loc и после него или до вставьте код который нужен...

BaHeK 27.05.2013 15:17

так там ещо надо в исходнике собейта bass.h и bass.lib обявить

Skel 27.05.2013 15:21

Опиши подробнее,у меня нехуя не пашет :D

im0rg 27.05.2013 15:25

Цитата:

Сообщение от Skel

Опиши подробнее,у меня нехуя не пашет :D

В чем именно проблема

fondamentolok 27.05.2013 15:43

Цитата:

Сообщение от Jesus

В чем именно проблема


Нифига не работает :shout:

im0rg 27.05.2013 15:45

Цитата:

Сообщение от fondamentolok

Нифига не работает :shout:

Вот я не понимаю почему у меня все работает а вы даже тупо вставить правильно не можете

BaHeK 27.05.2013 16:09

Цитата:

Сообщение от Jesus

Вот я не понимаю почему у меня все работает а вы даже тупо вставить правильно не можете


ну видь надо обявить bass.h в mod_sa_VS2010.vcxproj.filters и mod_sa_VS2010.vcxproj ??

fondamentolok 27.05.2013 16:11

Цитата:

Сообщение от BaHeK

у надо обявить bass.h в mod_sa_VS2010.vcxproj.filters и mod_sa_VS2010.vcxproj ??

не пойму че за \src\main.h(221): fatal error C1083: Не удается открыть файл включение: bass.h:

BaHeK 27.05.2013 16:13

Цитата:

Сообщение от fondamentolok

не пойму че за \src\main.h(221): fatal error C1083: Не удается открыть файл включение: bass.h:


ну у тибя ево же нету в папке с иходником

im0rg 27.05.2013 16:17

Для начала качаем архив приложенный к теме.

Все из этого архива кидаем в папку src

это видать я только для себя писал

im0rg 27.05.2013 16:17

Цитата:

Сообщение от BaHeK

ну видь надо обявить bass.h в mod_sa_VS2010.vcxproj.filters и mod_sa_VS2010.vcxproj ??

нет

fondamentolok 27.05.2013 16:43

1>c:\users\desktop\mod_sa_v4.3.3.1_source\src\samp .cpp(656): warning C4700: использована неинициализированная локальная переменная "chan"

1>c:\users\desktop\mod_sa_v4.3.3.1_source\src\samp .cpp(658): warning C4700: использована неинициализированная локальная переменная "r"

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cp pBuild.targets(1137,5): warning MSB8012: TargetPath(C:\Users\Desktop\mod_sa_v4.3.3.1_source \src\\obj\Release\mod_sa.dll) does not match the Linker's OutputFile property value (C:\Users\Desktop\mod_sa_v4.3.3.1_source\bin\d3d9. dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cp pBuild.targets(1139,5): warning MSB8012: TargetName(mod_sa) does not match the Linker's OutputFile property value (d3d9). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).

1>bass.lib(BASS.dll) : error LNK2026: небезопасный модуль для образа SAFESEH.

1>bass.lib(BASS.dll) : error LNK2026: небезопасный модуль для образа SAFESEH.

1>bass.lib(BASS.dll) : error LNK2026: небезопасный модуль для образа SAFESEH.

1> Создается библиотека C:\Users\Desktop\mod_sa_v4.3.3.1_source\src\\obj\R elease\mod_sa_proxy.lib и объект C:\Users\Desktop\mod_sa_v4.3.3.1_source\src\\obj\R elease\mod_sa_proxy.exp

1>../bin/d3d9.dll : fatal error LNK1281: Не удается создать образ SAFESEH.

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

1>c:\users\desktop\mod_sa_v4.3.3.1_source\src\samp .cpp(656): warning C4700: использована неинициализированная локальная переменная "chan"

1>c:\users\desktop\mod_sa_v4.3.3.1_source\src\samp .cpp(658): warning C4700: использована неинициализированная локальная переменная "r"

BaHeK 27.05.2013 19:04

У меня всьо работает Лёха спс за урок

im0rg 27.05.2013 19:08

Цитата:

Сообщение от BaHeK

У меня всьо работает Лёха спс за урок

Вот хоть 1 сделал, а то я уже начал подозревать то что не правильно что-то написал.

BaHeK 27.05.2013 19:25

Цитата:

Сообщение от Jesus

Вот хоть 1 сделал, а то я уже начал подозревать то что не правильно что-то написал.


Да не всьо правельно

NarutoUA 27.05.2013 22:07

StatusProc: необъявленный идентификатор. Выдает вот такую ошибку

im0rg 27.05.2013 22:15

Цитата:

Сообщение от NarutoUA

StatusProc: необъявленный идентификатор. Выдает вот такую ошибку

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

Код:

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.." );

}

NarutoUA 27.05.2013 22:36

Все, разобрался. Как я вижу, радио для соба написано на основе интернет клиента из примера исходника bass библиотеки. Вот только один вопрос: как остановить музыку?

im0rg 27.05.2013 22:41

Цитата:

Сообщение от NarutoUA

Все, разобрался. Как я вижу, радио для соба написано на основе интернет клиента из примера исходника bass библиотеки. Вот только один вопрос: как остановить музыку?

Просто вырубай так, отруби Bass

NarutoUA 27.05.2013 22:50

Цитата:

Сообщение от Jesus

Просто вырубай так, отруби Bass

BASS_StreamFree(chan); // close old stream - вроде останавливает текущий стрим, но если вставляю в свой проект, выдает ошибку chan: необъявленный идентификатор

im0rg 27.05.2013 22:52

Цитата:

Сообщение от NarutoUA

BASS_StreamFree(chan); // close old stream - вроде останавливает текущий стрим, но если вставляю в свой проект, выдает ошибку chan: необъявленный идентификатор

Не правильно

NarutoUA 27.05.2013 23:12

Кстате есть еще библиотека BASSDSHOW, которая
Цитата:


позволяет воспроизведение



Цитата:


видеофайлов в BASS, используя для этогоDirectShowкодек.

Думаю, как-нибуть возможно это соеденить с гта и воспроизводить видео в игре.

im0rg 27.05.2013 23:24

Цитата:

Сообщение от NarutoUA

Кстате есть еще библиотека BASSDSHOW, котораяДумаю, как-нибуть возможно это соеденить с гта и воспроизводить видео в игре.

Конечно можно

BaHeK 27.05.2013 23:31

Цитата:

Сообщение от Jesus

Конечно можно


а ещо туда браузер засунуть и некто отуда небудет вылазить :trollface:


Время: 16:59