• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
pawno урок MP3 ауди через MySQL базу (0.3d)
adminДата: Понедельник, 26.12.2011, 00:14:20 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Вам на сервер добавляет ауди в формате "mp3" другие форматы не поддерживаются ..
Команды:
Code
/createsong [ID] [url] [название] (RCON ADMIN) (Для прослушивание песни введите /mp3)
/changesong [ID] [url] [название] (RCON ADMIN) (Для измение песни не удаляя их)
/mp3 [ID] (Показывает список песен.)
/stopmusic (Остановить музыку)
/nowplaying (показывает песню, которую вы играете, если вы играете песню)

Для устоновки этого урока у вас должнен быть обезательно сайт с MySQL базами.
Для добавление своей песни у вас должно быть в конце обезательно .mp3 .
И так начнем уроку:
Верху мода:
Code
#include <a_mysql>

#define MAX_SONGS 100 //Вы можете добавить больше песен.
#define main 0x9ACD32AA

#pragma tabsize 0
#define MYSQL_HOST "hostname"
#define MYSQL_NAME "name"
#define MYSQL_DATABASE "databse"
#define MYSQL_PASS "pass"
new field[128][32],row[128];
new isitplayingrudy[MAX_PLAYERS];

Ищем public OnGameModeInit() и туда вставляем:
Code
    mysql_connect(MYSQL_HOST,MYSQL_NAME,MYSQL_DATABASE,MYSQL_PASS);
    if(mysql_ping() != -1)
   {
    print(" ");
    print("Подключение к базе данных MySQL...");
    print(" ");
   }
   else
   {
       print(" ");
       print("Невозможно подключиться к базе данных MySQL...");
       print("Вы можете иметь проблемы со скриптом...");
       print("Проверьте подключенние MySQL базы..");
    print(" ");
    return 1;
   }
   Loadsongs();

Примерно так должен быть public:
Code
public OnGameModeInit()
{
   mysql_connect(MYSQL_HOST,MYSQL_NAME,MYSQL_DATABASE,MYSQL_PASS);
    if(mysql_ping() != -1)
   {
    print(" ");
    print("Подключение к базе данных MySQL...");
    print(" ");
   }
   else
   {
       print(" ");
       print("Невозможно подключиться к базе данных MySQL...");
       print("Вы можете иметь проблемы со скриптом...");
       print("Проверьте подключенние MySQL базы..");
    print(" ");
    return 1;
   }
   Loadsongs();
   return 1;
}

После этого ищем public OnPlayerDisconnect(playerid) и туда вставляем:
Code

isitplayingrudy[playerid] = -1;

Примерно так должен выглядеть public:
Code
new String[256];
new songname[MAX_SONGS];
new songlink[MAX_SONGS];
public OnPlayerDisconnect(playerid)
{
   isitplayingrudy[playerid] = -1;
   return 1;
}

После этого ищем public OnPlayerConnect и туда вставляем:
Code
isitplayingrudy[playerid] = -1;

Примерно так должен быть public:
Code
public OnPlayerConnect(playerid)
{
   isitplayingrudy[playerid] = -1;
   return 1;
}

После этого ищем public OnPlayerCommandText и туда вставляем:
Code
   new cmd[128], idx;
   cmd = strtok(cmdtext, idx);
   if (strcmp("/nowplaying", cmdtext, true, 10) == 0)
   {
   if(isitplayingrudy[playerid] == 0) return SendClientMessage(playerid,main,"Не чего не играет.....");
   format(String,sizeof(String),"Сейчас играет: %s",isitplayingrudy[playerid]);
   SendClientMessage(playerid,main,String);
   return 1;
   }
   if (strcmp("/mp3", cmdtext, true, 10) == 0)
   {
   new count;
   new tmp[128];
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp)){
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
      format(String,128,"%s - ID: %d",songname[i],i);
      SendClientMessage(playerid,main,String);
     }
   }
      SendClientMessage(playerid,main,"Использование: /mp3 [ID]");
      return 1;
   }
   if(count == 0) return SendClientMessage(playerid,main,"Нет песни добавлены в данный момент.");
   if(count > 0)
   {
//    ShowPlayerDialog(playerid, 1912, DIALOG_STYLE_LIST, "MP3 Player",String,"Играть","Выйти");
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
     StopAudioStreamForPlayer(playerid);
     PlayAudioStreamForPlayer(playerid, songlink[i]);
     format(String,sizeof(String),"Сейчас играет: %s",songname[i]);
     SendClientMessage(playerid,main,String);
     isitplayingrudy[playerid] = i;
     }
    }
   }
   return 1;
   }
   if (strcmp("/stopmusic", cmdtext, true, 10) == 0)
   {
      StopAudioStreamForPlayer(playerid);
   return 1;
   }
   if (strcmp("/changesong", cmdtext, true, 10) == 0)
   {
    if(!IsPlayerAdmin(playerid)) return 0;
     new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /changesong [ID] [ссылка] [Название]");
    new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }
      if(!DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }
    if (strcmp("/createsong", cmdtext, true, 10) == 0)
   {
   if(!IsPlayerAdmin(playerid)) return 0;
   new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /createsong [ID] [Ссылка] [Название]");
   new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }

      if(DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }

Примерно так должен быть public:
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
      new cmd[128], idx;
   cmd = strtok(cmdtext, idx);
   if (strcmp("/nowplaying", cmdtext, true, 10) == 0)
   {
   if(isitplayingrudy[playerid] == 0) return SendClientMessage(playerid,main,"Не чего не играет.....");
   format(String,sizeof(String),"Сейчас играет: %s",isitplayingrudy[playerid]);
   SendClientMessage(playerid,main,String);
   return 1;
   }
   if (strcmp("/mp3", cmdtext, true, 10) == 0)
   {
   new count;
   new tmp[128];
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp)){
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
      format(String,128,"%s - ID: %d",songname[i],i);
      SendClientMessage(playerid,main,String);
     }
   }
      SendClientMessage(playerid,main,"Использование: /mp3 [ID]");
      return 1;
   }
   if(count == 0) return SendClientMessage(playerid,main,"Нет песни добавлены в данный момент.");
   if(count > 0)
   {
//    ShowPlayerDialog(playerid, 1912, DIALOG_STYLE_LIST, "MP3 Player",String,"Играть","Выйти");
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
     StopAudioStreamForPlayer(playerid);
     PlayAudioStreamForPlayer(playerid, songlink[i]);
     format(String,sizeof(String),"Сейчас играет: %s",songname[i]);
     SendClientMessage(playerid,main,String);
     isitplayingrudy[playerid] = i;
     }
    }
   }
   return 1;
   }
   if (strcmp("/stopmusic", cmdtext, true, 10) == 0)
   {
      StopAudioStreamForPlayer(playerid);
   return 1;
   }
   if (strcmp("/changesong", cmdtext, true, 10) == 0)
   {
    if(!IsPlayerAdmin(playerid)) return 0;
     new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /changesong [ID] [ссылка] [Название]");
    new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }
      if(!DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }
    if (strcmp("/createsong", cmdtext, true, 10) == 0)
   {
   if(!IsPlayerAdmin(playerid)) return 0;
   new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /createsong [ID] [Ссылка] [Название]");
   new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }

      if(DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }
   return 0;
}

После этого ищем public OnDialogResponse и туда вставляем:
Code
/*      for(new i = 0;i<MAX_SONGS;i++)
     {
         if(DoesSongExist(i))
        {
if(response)
      {
      switch(dialogid)
          {

    case 1:
           {
              switch(listitem)
           {
               case 0-100:
               {
                      StopAudioStreamForPlayer(playerid);
                      PlayAudioStreamForPlayer(playerid, songlink[i]);
               }
               }
               }
           }
           }
   }
      }*/

Примерно так должен быть public:
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
/*      for(new i = 0;i<MAX_SONGS;i++)
     {
         if(DoesSongExist(i))
        {
if(response)
      {
      switch(dialogid)
          {

    case 1:
           {
              switch(listitem)
           {
               case 0-100:
               {
                      StopAudioStreamForPlayer(playerid);
                      PlayAudioStreamForPlayer(playerid, songlink[i]);
               }
               }
               }
           }
           }
   }
      }*/
      return 1;
}

И после этих пабликов добавляем функции в любое место:
Code
stock DoesSongExist(orgid)
{
   format(String,sizeof(String),"SELECT * FROM songs WHERE `ID` = %d LIMIT 0,1",orgid);
   mysql_query(String);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
    mysql_free_result();
    return 1;
   }
   if(mysql_num_rows() == 0)
   {
       mysql_free_result();
    return 0;
   }
   return 1;
}
stock Loadsongs()
{
   new c;
   c =0;
   for(new i = 0;i<MAX_SONGS;i++)
   {
    format(String,48,"SELECT * FROM songs WHERE `ID` = %d LIMIT 0,1",i);
     mysql_query(String);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
     mysql_free_result();
     continue;
    }
    if(mysql_num_rows() != 0)
    {
      mysql_fetch_row_format(row, "|");
       explode(row, field, "|");
     format(songname[i],100,"%s",field[1]);
     format(songlink[i],100,"%s",field[2]);
        mysql_free_result();
        c++;
    }
   }
   return printf("Total Songs: %d",c);
}

strtok(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
    index++;
   }

   new offset = index;
   new result[20];
   while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
   {
    result[index - offset] = string[index];
    index++;
   }
   result[index - offset] = EOS;
   return result;
}
explode(const sSource[], aExplode[][], const sDelimiter[] = " ", iVertices = sizeof aExplode, iLength = sizeof aExplode[]) // Created by Westie
{
   new
    iNode,
    iPointer,
    iPrevious = -1,
    iDelimiter = strlen(sDelimiter);

   while(iNode < iVertices)
   {
    iPointer = strfind(sSource, sDelimiter, false, iPointer);

    if(iPointer == -1)
    {
     strmid(aExplode[iNode], sSource, iPrevious, strlen(sSource), iLength);
     break;
    }
    else
    {
     strmid(aExplode[iNode], sSource, iPrevious, iPointer, iLength);
    }

    iPrevious = (iPointer += iDelimiter);
    ++iNode;
   }
   return iPrevious;
}

И так же добавьте в вашу MySQL базу код:
Code
CREATE TABLE  `yourdatabasename`.`songs` (
`ID` TEXT NOT NULL ,
`Name` TEXT NOT NULL ,
`link` TEXT NOT NULL
) ENGINE = MYISAM

На счет того у кого нет #include <a_mysql> вы можете скачать пройдя по ссылке
Автор урока: 26_RUSSS


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеВам на сервер добавляет ауди в формате "mp3" другие форматы не поддерживаются ..
Команды:
Code
/createsong [ID] [url] [название] (RCON ADMIN) (Для прослушивание песни введите /mp3)
/changesong [ID] [url] [название] (RCON ADMIN) (Для измение песни не удаляя их)
/mp3 [ID] (Показывает список песен.)
/stopmusic (Остановить музыку)
/nowplaying (показывает песню, которую вы играете, если вы играете песню)

Для устоновки этого урока у вас должнен быть обезательно сайт с MySQL базами.
Для добавление своей песни у вас должно быть в конце обезательно .mp3 .
И так начнем уроку:
Верху мода:
Code
#include <a_mysql>

#define MAX_SONGS 100 //Вы можете добавить больше песен.
#define main 0x9ACD32AA

#pragma tabsize 0
#define MYSQL_HOST "hostname"
#define MYSQL_NAME "name"
#define MYSQL_DATABASE "databse"
#define MYSQL_PASS "pass"
new field[128][32],row[128];
new isitplayingrudy[MAX_PLAYERS];

Ищем public OnGameModeInit() и туда вставляем:
Code
    mysql_connect(MYSQL_HOST,MYSQL_NAME,MYSQL_DATABASE,MYSQL_PASS);
    if(mysql_ping() != -1)
   {
    print(" ");
    print("Подключение к базе данных MySQL...");
    print(" ");
   }
   else
   {
       print(" ");
       print("Невозможно подключиться к базе данных MySQL...");
       print("Вы можете иметь проблемы со скриптом...");
       print("Проверьте подключенние MySQL базы..");
    print(" ");
    return 1;
   }
   Loadsongs();

Примерно так должен быть public:
Code
public OnGameModeInit()
{
   mysql_connect(MYSQL_HOST,MYSQL_NAME,MYSQL_DATABASE,MYSQL_PASS);
    if(mysql_ping() != -1)
   {
    print(" ");
    print("Подключение к базе данных MySQL...");
    print(" ");
   }
   else
   {
       print(" ");
       print("Невозможно подключиться к базе данных MySQL...");
       print("Вы можете иметь проблемы со скриптом...");
       print("Проверьте подключенние MySQL базы..");
    print(" ");
    return 1;
   }
   Loadsongs();
   return 1;
}

После этого ищем public OnPlayerDisconnect(playerid) и туда вставляем:
Code

isitplayingrudy[playerid] = -1;

Примерно так должен выглядеть public:
Code
new String[256];
new songname[MAX_SONGS];
new songlink[MAX_SONGS];
public OnPlayerDisconnect(playerid)
{
   isitplayingrudy[playerid] = -1;
   return 1;
}

После этого ищем public OnPlayerConnect и туда вставляем:
Code
isitplayingrudy[playerid] = -1;

Примерно так должен быть public:
Code
public OnPlayerConnect(playerid)
{
   isitplayingrudy[playerid] = -1;
   return 1;
}

После этого ищем public OnPlayerCommandText и туда вставляем:
Code
   new cmd[128], idx;
   cmd = strtok(cmdtext, idx);
   if (strcmp("/nowplaying", cmdtext, true, 10) == 0)
   {
   if(isitplayingrudy[playerid] == 0) return SendClientMessage(playerid,main,"Не чего не играет.....");
   format(String,sizeof(String),"Сейчас играет: %s",isitplayingrudy[playerid]);
   SendClientMessage(playerid,main,String);
   return 1;
   }
   if (strcmp("/mp3", cmdtext, true, 10) == 0)
   {
   new count;
   new tmp[128];
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp)){
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
      format(String,128,"%s - ID: %d",songname[i],i);
      SendClientMessage(playerid,main,String);
     }
   }
      SendClientMessage(playerid,main,"Использование: /mp3 [ID]");
      return 1;
   }
   if(count == 0) return SendClientMessage(playerid,main,"Нет песни добавлены в данный момент.");
   if(count > 0)
   {
//    ShowPlayerDialog(playerid, 1912, DIALOG_STYLE_LIST, "MP3 Player",String,"Играть","Выйти");
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
     StopAudioStreamForPlayer(playerid);
     PlayAudioStreamForPlayer(playerid, songlink[i]);
     format(String,sizeof(String),"Сейчас играет: %s",songname[i]);
     SendClientMessage(playerid,main,String);
     isitplayingrudy[playerid] = i;
     }
    }
   }
   return 1;
   }
   if (strcmp("/stopmusic", cmdtext, true, 10) == 0)
   {
      StopAudioStreamForPlayer(playerid);
   return 1;
   }
   if (strcmp("/changesong", cmdtext, true, 10) == 0)
   {
    if(!IsPlayerAdmin(playerid)) return 0;
     new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /changesong [ID] [ссылка] [Название]");
    new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }
      if(!DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }
    if (strcmp("/createsong", cmdtext, true, 10) == 0)
   {
   if(!IsPlayerAdmin(playerid)) return 0;
   new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /createsong [ID] [Ссылка] [Название]");
   new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }

      if(DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }

Примерно так должен быть public:
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
      new cmd[128], idx;
   cmd = strtok(cmdtext, idx);
   if (strcmp("/nowplaying", cmdtext, true, 10) == 0)
   {
   if(isitplayingrudy[playerid] == 0) return SendClientMessage(playerid,main,"Не чего не играет.....");
   format(String,sizeof(String),"Сейчас играет: %s",isitplayingrudy[playerid]);
   SendClientMessage(playerid,main,String);
   return 1;
   }
   if (strcmp("/mp3", cmdtext, true, 10) == 0)
   {
   new count;
   new tmp[128];
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp)){
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
      format(String,128,"%s - ID: %d",songname[i],i);
      SendClientMessage(playerid,main,String);
     }
   }
      SendClientMessage(playerid,main,"Использование: /mp3 [ID]");
      return 1;
   }
   if(count == 0) return SendClientMessage(playerid,main,"Нет песни добавлены в данный момент.");
   if(count > 0)
   {
//    ShowPlayerDialog(playerid, 1912, DIALOG_STYLE_LIST, "MP3 Player",String,"Играть","Выйти");
   for(new i = 0;i<MAX_SONGS;i++)
   {
       if(DoesSongExist(i))
       {
     StopAudioStreamForPlayer(playerid);
     PlayAudioStreamForPlayer(playerid, songlink[i]);
     format(String,sizeof(String),"Сейчас играет: %s",songname[i]);
     SendClientMessage(playerid,main,String);
     isitplayingrudy[playerid] = i;
     }
    }
   }
   return 1;
   }
   if (strcmp("/stopmusic", cmdtext, true, 10) == 0)
   {
      StopAudioStreamForPlayer(playerid);
   return 1;
   }
   if (strcmp("/changesong", cmdtext, true, 10) == 0)
   {
    if(!IsPlayerAdmin(playerid)) return 0;
     new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /changesong [ID] [ссылка] [Название]");
    new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }
      if(!DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }
    if (strcmp("/createsong", cmdtext, true, 10) == 0)
   {
   if(!IsPlayerAdmin(playerid)) return 0;
   new tmp[128],tmp2[128];
   tmp = strtok(cmdtext, idx);
   tmp2 = strtok(cmdtext, idx);
   if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /createsong [ID] [Ссылка] [Название]");
   new songid = strval(tmp);
    new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= ' '))
   {
   idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
   result[idx - offset] = cmdtext[idx];
   idx++;
   }

      if(DoesSongExist(songid)) return SendClientMessage(playerid, main, "ID песни не существует. Для создания песни введите /createsong [id] [ссылку на песню] [Название]");
   format(String,sizeof(String),"Песня (ID,Название,ссылка) ценности (%d,%s,%s)",songid,result,tmp2);
   mysql_query(String);
   format(String,sizeof(String),"Песня была изменена что-бы проверить введите /mp3 . ID: %d , Название: %s & ссылка: %s",songid,result,tmp2);
   SendClientMessage(playerid,main,String);
   return 1;
   }
   return 0;
}

После этого ищем public OnDialogResponse и туда вставляем:
Code
/*      for(new i = 0;i<MAX_SONGS;i++)
     {
         if(DoesSongExist(i))
        {
if(response)
      {
      switch(dialogid)
          {

    case 1:
           {
              switch(listitem)
           {
               case 0-100:
               {
                      StopAudioStreamForPlayer(playerid);
                      PlayAudioStreamForPlayer(playerid, songlink[i]);
               }
               }
               }
           }
           }
   }
      }*/

Примерно так должен быть public:
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
/*      for(new i = 0;i<MAX_SONGS;i++)
     {
         if(DoesSongExist(i))
        {
if(response)
      {
      switch(dialogid)
          {

    case 1:
           {
              switch(listitem)
           {
               case 0-100:
               {
                      StopAudioStreamForPlayer(playerid);
                      PlayAudioStreamForPlayer(playerid, songlink[i]);
               }
               }
               }
           }
           }
   }
      }*/
      return 1;
}

И после этих пабликов добавляем функции в любое место:
Code
stock DoesSongExist(orgid)
{
   format(String,sizeof(String),"SELECT * FROM songs WHERE `ID` = %d LIMIT 0,1",orgid);
   mysql_query(String);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
    mysql_free_result();
    return 1;
   }
   if(mysql_num_rows() == 0)
   {
       mysql_free_result();
    return 0;
   }
   return 1;
}
stock Loadsongs()
{
   new c;
   c =0;
   for(new i = 0;i<MAX_SONGS;i++)
   {
    format(String,48,"SELECT * FROM songs WHERE `ID` = %d LIMIT 0,1",i);
     mysql_query(String);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
     mysql_free_result();
     continue;
    }
    if(mysql_num_rows() != 0)
    {
      mysql_fetch_row_format(row, "|");
       explode(row, field, "|");
     format(songname[i],100,"%s",field[1]);
     format(songlink[i],100,"%s",field[2]);
        mysql_free_result();
        c++;
    }
   }
   return printf("Total Songs: %d",c);
}

strtok(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
    index++;
   }

   new offset = index;
   new result[20];
   while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
   {
    result[index - offset] = string[index];
    index++;
   }
   result[index - offset] = EOS;
   return result;
}
explode(const sSource[], aExplode[][], const sDelimiter[] = " ", iVertices = sizeof aExplode, iLength = sizeof aExplode[]) // Created by Westie
{
   new
    iNode,
    iPointer,
    iPrevious = -1,
    iDelimiter = strlen(sDelimiter);

   while(iNode < iVertices)
   {
    iPointer = strfind(sSource, sDelimiter, false, iPointer);

    if(iPointer == -1)
    {
     strmid(aExplode[iNode], sSource, iPrevious, strlen(sSource), iLength);
     break;
    }
    else
    {
     strmid(aExplode[iNode], sSource, iPrevious, iPointer, iLength);
    }

    iPrevious = (iPointer += iDelimiter);
    ++iNode;
   }
   return iPrevious;
}

И так же добавьте в вашу MySQL базу код:
Code
CREATE TABLE  `yourdatabasename`.`songs` (
`ID` TEXT NOT NULL ,
`Name` TEXT NOT NULL ,
`link` TEXT NOT NULL
) ENGINE = MYISAM

На счет того у кого нет #include <a_mysql> вы можете скачать пройдя по ссылке
Автор урока: 26_RUSSS

Автор - admin
Дата добавления - 26.12.2011 в 00:14:20
danik_rokДата: Понедельник, 26.12.2011, 02:12:33 | Сообщение # 2

Группа: Проверенные
Сообщений: 317
Прикольно) Думаю применение технологие найти легко

1. Вы сейчас в интернете.
2. Вы на сайте www.forum-pawno.net.ru.
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.
 
СообщениеПрикольно) Думаю применение технологие найти легко

Автор - danik_rok
Дата добавления - 26.12.2011 в 02:12:33
BaksДата: Среда, 25.01.2012, 16:00:22 | Сообщение # 3

Группа: Пользователи
Сообщений: 17
Как я понял, MySQL, это такая ерунда, которая читает файлы с компьютера, а не строчки из мода?

AddPlayerClass(За компьтером);
P.S Люблю набивать посты! =)
 
СообщениеКак я понял, MySQL, это такая ерунда, которая читает файлы с компьютера, а не строчки из мода?

Автор - Baks
Дата добавления - 25.01.2012 в 16:00:22
adminДата: Четверг, 26.01.2012, 22:56:55 | Сообщение # 4

Группа: Администраторы
Сообщений: 3869
Baks, сервера))читает!)


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеBaks, сервера))читает!)

Автор - admin
Дата добавления - 26.01.2012 в 22:56:55
NiKiToS7073Дата: Пятница, 27.01.2012, 21:14:55 | Сообщение # 5

Группа: Пользователи
Сообщений: 1
Прошёл по ссылке скачал но в архиве вот этого <a_mysql> инклуда не оказалось
 
СообщениеПрошёл по ссылке скачал но в архиве вот этого <a_mysql> инклуда не оказалось

Автор - NiKiToS7073
Дата добавления - 27.01.2012 в 21:14:55
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
23:38:14
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: