[mod_sa] Радио в s0beit

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

im0rg

Известный
Автор темы
Друг
587
216
Всем привет, это урок по добавлению 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​
P9in8wKVJ80vII1meWKvBmllIoms0fZyE5-IeE3bovlDYW4WFLCOqMrpWNg8o8iqOteySWHpsMlPya8vFQIH9Q%3D%3D
ВНИМАНИЕ: У КОГО WINDOWS 8 И VS 2012 И ВЫЛАЗИЕТ ОШИБКА SAFESEH
Делаем следующее
Откройте диалоговое окно "Страницы свойств проекта".
Выберите папку Компоновщик.
Выберите страницу свойств Командная строка.
Введите параметр в поле Дополнительные параметры.
/SAFESEH:NO
 

Вложения

  • src.7z
    14.1 KB · Просмотры: 104
  • Нравится
Реакции: Skel и BaHeK

BaHeK

Известный
84
6
Да но зачем оно ?

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

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

fondamentolok

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

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

BaHeK

Известный
84
6
если да то вот он

void cmd_pickup ( char *params )
{
if ( !strlen( params ) )
{
addMessageToChatWindow( "USAGE: /m0d_pickup <pickup id>" );
return;
}

g_RakClient->SendPickUp( atoi( params ) );
}
 

Skel

Потрачен
92
3
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ищи подобие
 

fondamentolok

Новичок
101
0
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.CppBuild.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.CppBuild.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_source\src\\obj\Release\mod_sa_proxy.lib и объект C:\Users\Desktop\mod_sa_vmod_sa_v4.4.3.4__gm_fix_source\src\\obj\Release\mod_sa_proxy.exp
1>../bin/d3d9.dll : fatal error LNK1281: Не удается создать образ SAFESEH.
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
 
Статус
В этой теме нельзя размещать новые ответы.