Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- #pragma tabsize 0
- #define MAX_MUSICS 35
- #define MAX_URL 100
- #define PASTA_MUS "/MusicasSys/Mus%d.ini"
- #define DIALOG_ADD_Tit 1+5430
- #define DIALOG_ADD_Art 2+5430
- #define DIALOG_ADD_Gen 3+5430
- #define DIALOG_ADD_Dur 4+5430
- #define DIALOG_ADD_Ano 5+5430
- #define DIALOG_ADD_Url 6+5430
- #define DIALOG_ADD_Fim 7+5430
- #define DIALOG_INF_Lis 8+5430
- #define DIALOG_INF_Inf 9+5430
- #define DIALOG_REM_Mus 10+5430
- #define DIALOG_REM_Con 11+5430
- #define DIALOG_MY_Mus 12+5430
- //---------Cores----------
- #define RED "{FF0000}"
- #define WHI "{FFFFFF}"
- #define YEL "{F5FF00}"
- #define PIK "{FF00EB}"
- #define BLU "{004BFF}"
- forward LoadMusics();
- forward SaveMusics();
- forward LoadMusic(mid);
- forward SaveMusic(mid);
- new addMus[MAX_PLAYERS];
- new midfid[MAX_PLAYERS] = -1;
- new midrem[MAX_PLAYERS] = -1;
- enum mInfo
- {
- mTitulo[32],
- mArtista[32],
- mGenero[32],
- Float: mDuracao,
- mAno,
- mURL[MAX_URL],
- mAdicionou[MAX_PLAYER_NAME],
- bool:mDefinida,
- };
- new MusicInfo[MAX_MUSICS][mInfo];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("-------- MusicSys by andmeida10 --------");
- print("--------------------------------------\n");
- //CarregarMusicas
- LoadMusics();
- //Salvar as musicas
- SetTimer("SaveMusics", 300000, true);//5min
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- addMus[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- addMus[playerid] = 0;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(strcmp(cmdtext, "/mSalvar", true) == 0)
- {
- SaveMusics();
- SendClientMessage(playerid, -1, "Musicas Salvas");
- return 1;
- }
- if(strcmp(cmdtext, "/mCarregar", true) == 0)
- {
- LoadMusics();
- SendClientMessage(playerid, -1, "Musicas Carregadas");
- return 1;
- }
- if(strcmp(cmdtext, "/mAdicionar", true) == 0)
- {
- SendClientMessage(playerid, -1, "Você vai adicionar uma musica á "#PIK"Biblioteca de Musicas");
- ShowPlayerDialog(playerid, DIALOG_ADD_Tit, DIALOG_STYLE_INPUT, "Adicionar Uma Musica", ""#BLU"Digite o Titulo da Musica", "Seguinte", "Cancelar");
- for(new mid; mid < MAX_MUSICS; mid++)
- {
- if(MusicInfo[mid][mDefinida] == false) return addMus[playerid] = mid;
- }
- return 1;
- }
- if(strcmp(cmdtext, "/mRemover", true) == 0)
- {
- SendClientMessage(playerid, -1, "Você vai remover uma musica da biblioteca de Musicas");
- SendClientMessage(playerid, -1, ""#BLU"Para ver os id's das musicas digite /mids");
- ShowPlayerDialog(playerid, DIALOG_REM_Mus, DIALOG_STYLE_INPUT, "Remover Uma Musica", "Digite o "#PIK"ID "#WHI"da Musica", "Confirmar", "Cancelar");
- return 1;
- }
- if(strcmp(cmdtext, "/mPlayMyMusic", true) == 0)
- {
- ShowPlayerDialog(playerid, DIALOG_MY_Mus, DIALOG_STYLE_INPUT, "Insira sua URL", "Insira a URL direta da Musica", "Play", "Cancelar");
- return 1;
- }
- if(strcmp(cmdtext, "/mStop", true) == 0)
- {
- StopAudioStreamForPlayer(playerid);
- SendClientMessage(playerid, -1, "Você parou a musica");
- return 1;
- }
- if(strcmp(cmdtext, "/mids", true) == 0)
- {
- new music[1200];
- new mid = 0;
- //LoadMusics();
- loop_ver:
- while(mid < MAX_MUSICS && (strlen(music) < sizeof(music)))
- {
- if(MusicInfo[mid][mDefinida] == false)
- {
- mid++;
- goto loop_ver;
- }
- LoadMusic(mid);
- new mus1[50];
- format(mus1, sizeof(mus1),""#RED"%d- "#WHI"%s\n", mid, MusicInfo[mid][mTitulo]);
- format(music, sizeof(music), "%s%s", music,mus1);
- mid++;
- }
- //if(strlen(music) == 0) return SendClientMessage(playerid, -1, "Sem Musicas na Biblioteca");
- SendClientMessage(playerid, -1, "Informações da "#RED"Biblioteca de Musicas:");
- ShowPlayerDialog(playerid, DIALOG_INF_Lis, DIALOG_STYLE_LIST, "MusicasId", music, "Informacoes", "Fechar");
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_MY_Mus)
- {
- new musicmy[200];
- format(musicmy, sizeof(musicmy), "%s", inputtext);
- PlayAudioStreamForPlayer(playerid, musicmy);
- return 1;
- }
- if(dialogid == DIALOG_ADD_Tit || dialogid == DIALOG_ADD_Art || dialogid == DIALOG_ADD_Gen || dialogid == DIALOG_ADD_Dur || dialogid == DIALOG_ADD_Ano || dialogid == DIALOG_ADD_Url)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, "Você cancelou a adição de uma nova musica na "#RED"Biblioteca");
- addMus[playerid] = 0;
- return 1;
- }
- }
- //---------------------------------------------------<[TITULO]>------------------------------------------------------------------
- if(dialogid == DIALOG_ADD_Tit)
- {
- strmid(MusicInfo[addMus[playerid]][mTitulo], inputtext, 0, strlen(inputtext), 255);
- SendClientMessage(playerid, -1, "Titulo Salvo");
- ShowPlayerDialog(playerid, DIALOG_ADD_Art, DIALOG_STYLE_INPUT, "Artista", "Insira o nome do "#YEL"Artista da música", "Seguinte", "Cancelar");
- return 1;
- }
- //---------------------------------------------------<[ARTISTA]>------------------------------------------------------------------
- if(dialogid == DIALOG_ADD_Art)
- {
- strmid(MusicInfo[addMus[playerid]][mArtista], inputtext, 0, strlen(inputtext), 255);
- SendClientMessage(playerid, -1, "Artista Salvo");
- ShowPlayerDialog(playerid, DIALOG_ADD_Gen, DIALOG_STYLE_INPUT, "Genero", "Insira o "#YEL"Genero da Música", "Seguinte", "Cancelar");
- return 1;
- }
- //---------------------------------------------------<[GENERO]>------------------------------------------------------------------
- if(dialogid == DIALOG_ADD_Gen)
- {
- strmid(MusicInfo[addMus[playerid]][mGenero], inputtext, 0, strlen(inputtext), 255);
- SendClientMessage(playerid, -1, "Genero Salvo");
- ShowPlayerDialog(playerid, DIALOG_ADD_Dur, DIALOG_STYLE_INPUT, "Duracao", "Insira a "#YEL"Duração da Música", "Seguinte", "Cancelar");
- return 1;
- }
- //---------------------------------------------------<[DURACAO]>------------------------------------------------------------------
- if(dialogid == DIALOG_ADD_Dur)
- {
- if(strfind(inputtext, ",", true) != -1)
- {
- SendClientMessage(playerid, -1, "Insira a duracao com pontos. Exemplo: 2.30");
- ShowPlayerDialog(playerid, DIALOG_ADD_Dur, DIALOG_STYLE_INPUT, "Duracao", "Insira a "#YEL"Duracao da Música", "Seguinte", "Cancelar");
- return 1;
- }
- MusicInfo[addMus[playerid]][mDuracao] = floatstr(inputtext);
- SendClientMessage(playerid, -1, "Duracao Salva");
- ShowPlayerDialog(playerid, DIALOG_ADD_Ano, DIALOG_STYLE_INPUT, "Ano", "Insira o "#YEL"Ano da Música", "Seguinte", "Cancelar");
- return 1;
- }
- //---------------------------------------------------<[ANO]>------------------------------------------------------------------
- if(dialogid == DIALOG_ADD_Ano)
- {
- MusicInfo[addMus[playerid]][mAno] = strval(inputtext);
- SendClientMessage(playerid, -1, "Ano Salvo");
- ShowPlayerDialog(playerid, DIALOG_ADD_Url, DIALOG_STYLE_INPUT, "URL", "Insira a "#YEL"URL Direta da Música", "Seguinte", "Cancelar");
- return 1;
- }
- //---------------------------------------------------<[URL]>------------------------------------------------------------------
- if(dialogid == DIALOG_ADD_Url)
- {
- if(strlen(inputtext) > MAX_URL)
- {
- SendClientMessage(playerid, -1, ""#PIK"URL demasiado longo");
- ShowPlayerDialog(playerid, DIALOG_ADD_Url, DIALOG_STYLE_INPUT, "URL", "Insira a "#YEL"URL Direta da Música", "Seguinte", "Cancelar");
- return 1;
- }
- if(strfind(inputtext, " ", true) != -1)
- {
- SendClientMessage(playerid, -1, "A "#RED"URL "#WHI"não pode conter espaços < >");
- ShowPlayerDialog(playerid, DIALOG_ADD_Url, DIALOG_STYLE_INPUT, "URL", "Insira a "#YEL"URL Direta da Música", "Seguinte", "Cancelar");
- return 1;
- }
- strmid(MusicInfo[addMus[playerid]][mURL], inputtext, 0, strlen(inputtext), 255);
- SendClientMessage(playerid, -1, ""#RED"URL Salvo");
- //Confirmacao Final
- new msgMus[400];
- format(msgMus, sizeof(msgMus), "Informações da Musica:\n"#RED"Titulo: "#WHI"%s \n"#RED"Artista: "#WHI"%s \n"#RED"Genero: "#WHI"%s \n"#RED"Duracao: "#WHI"%f\n"#RED"Ano: "#WHI"%i\n"#RED"URL: "#WHI"%s", MusicInfo[addMus[playerid]][mTitulo],MusicInfo[addMus[playerid]][mArtista],MusicInfo[addMus[playerid]][mGenero],MusicInfo[addMus[playerid]][mDuracao],MusicInfo[addMus[playerid]][mAno],MusicInfo[addMus[playerid]][mURL]);
- ShowPlayerDialog(playerid, DIALOG_ADD_Fim, DIALOG_STYLE_MSGBOX, "Verificações", msgMus, "Adicionar", "Cancelar");
- //Adicionar depois verificar se o URL é válido
- return 1;
- }
- //-------------------------------<[CONFIRMACAO DA ADICAO]>------------------------------------------
- if(dialogid == DIALOG_ADD_Fim)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, "Você cancelou a adicao de uma "#RED"Musica na Biblioteca");
- return 1;
- }
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- strmid(MusicInfo[addMus[playerid]][mAdicionou], pname, 0, strlen(pname), 255);
- MusicInfo[addMus[playerid]][mDefinida] = true;
- SendClientMessage(playerid, -1, "Musica Salva");
- GameTextForPlayer(playerid, "~b~Musica~n~~r~Adicionada", 1000, 1);
- SaveMusic(addMus[playerid]);
- addMus[playerid] = 0;
- return 1;
- }
- {
- //----------------------------------------------<[REMOVER MUSICA]>--------------------------------------------
- if(dialogid == DIALOG_REM_Mus)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, ""#RED"Você optou por "#BLU"não "#RED"eliminar nenhuma musica");
- return 1;
- }
- midrem[playerid] = strval(inputtext);
- if(MusicInfo[midrem[playerid]][mDefinida] == false) return SendClientMessage(playerid, -1, "Musica ID não existe");
- new minfo[500];
- format(minfo, sizeof(minfo), ""#RED"ID: "#WHI"%d\n"#RED"Titulo: "#WHI"%s\n"#RED"Artista: "#WHI"%s\n"#RED"Genero: "#WHI"%s\n"#RED"Duracao: "#WHI"%f\n"#RED"Ano: "#WHI"%i\n"#RED"URL: "#WHI"%s\n"#RED"Adicionada por: "#WHI"%s",
- midrem[playerid], MusicInfo[midrem[playerid]][mTitulo], MusicInfo[midrem[playerid]][mArtista], MusicInfo[midrem[playerid]][mGenero], MusicInfo[midrem[playerid]][mDuracao], MusicInfo[midrem[playerid]][mAno], MusicInfo[midrem[playerid]][mURL], MusicInfo[midrem[playerid]][mAdicionou]);
- printf("%d", midrem[playerid]);
- ShowPlayerDialog(playerid, DIALOG_REM_Con, DIALOG_STYLE_MSGBOX, "Informação", minfo, "Apagar", "Cancelar");
- return 1;
- }
- //----------------------------------------------<[REMOVER CONFIRMAR]>--------------------------------------------
- if(dialogid == DIALOG_REM_Con)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, ""#RED"Você optou por "#BLU"não "#RED"eliminar nenhuma musica");
- midrem[playerid] = -1;
- return 1;
- }
- printf("%d", midrem[playerid]);
- new string[256], ffile[45];
- format(ffile, sizeof(ffile), PASTA_MUS, midrem[playerid]);
- printf("%d", midrem[playerid]);
- if(!dini_Exists(ffile)) return printf("Erro ao procurar o ficheiro de Musica ID %d", midrem[playerid]);
- //Remover o ficheiro da musica id "midrem[playerid]"
- dini_Remove(ffile);
- MusicInfo[midrem[playerid]][mDefinida] = false;
- printf("%d", midrem[playerid]);
- format(string, sizeof(string), "Você eliminou a musica ID "#RED"%d - "#PIK"%s", midrem[playerid], MusicInfo[midrem[playerid]][mTitulo]);
- SendClientMessage(playerid, -1, string);
- GameTextForPlayer(playerid, "~b~Musica~n~~r~Deletada", 1000, 1);
- midrem[playerid] = -1;
- SaveMusics();
- return 1;
- }
- }
- //-----------------------------------<[OUVIR]>------------------------------------------
- //------------------------------------------------<[INFORMACAO]>----------------------------------------------------
- if(dialogid == DIALOG_INF_Lis)
- {
- if(!response)
- {
- return 1;
- }
- LoadMusics();
- new
- nrvaz[MAX_PLAYERS] = 0,
- countnrvaz = 0;
- while(countnrvaz < listitem+1)
- {
- if(MusicInfo[countnrvaz][mDefinida] == false)
- {
- print("Mais um vazio encontrado");
- nrvaz[playerid]++;
- }
- countnrvaz++;
- }
- printf("Encontrados %d vazios", nrvaz[playerid]);
- /*
- new
- nrid = 0;
- while(nrid < MAX_MUSICS)
- {
- if(MusicInfo[nrid][mDefinida] == true)
- {
- if(strcmp(MusicInfo[listitem][mTitulo], MusicInfo[nrid][mTitulo], true) == 0)
- {
- midfid[playerid] = nrid;
- printf("Musica Encontrada: %s || Id: %d || a =: %d || listitem: %d", MusicInfo[nrid][mTitulo], nrid, a, listitem);
- goto playMostrar;
- }
- }
- }*/
- midfid[playerid] = listitem + nrvaz[playerid];
- LoadMusic(midfid[playerid]);
- new mustr[400];
- format(mustr, sizeof(mustr),
- ""#RED"ID: "#WHI"%i\n"#RED"Titulo: "#WHI"%s\n"#RED"Artista: "#WHI"%s\n"#RED"Genero: "#WHI"%s\n"#RED"Duracao: "#WHI"%f\n"#RED"Ano: "#WHI"%i\n"#RED"URL: "#WHI"%s\n"#RED"Adicionada Por: "#WHI"%s",
- midfid[playerid], MusicInfo[midfid[playerid]][mTitulo], MusicInfo[midfid[playerid]][mArtista], MusicInfo[midfid[playerid]][mGenero],
- MusicInfo[midfid[playerid]][mDuracao], MusicInfo[midfid[playerid]][mAno], MusicInfo[midfid[playerid]][mURL], MusicInfo[midfid[playerid]][mAdicionou]);
- ShowPlayerDialog(playerid, DIALOG_INF_Inf, DIALOG_STYLE_MSGBOX, "Informacoes", mustr, "Play", "Fechar");
- return 1;
- }
- if(dialogid == DIALOG_INF_Inf)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, "Você não quis ouvir a musica");
- midfid[playerid] = -1;
- return 1;
- }
- //midfid[playerid] = strval(inputtext);
- LoadMusic(midfid[playerid]);
- new musicplay[MAX_URL+1];
- format(musicplay, sizeof(musicplay), "%s", MusicInfo[midfid[playerid]][mURL]);
- /*
- //Player the music
- new musicplay[MAX_URL+1];
- format(musicplay, sizeof(musicplay), "%s", MusicInfo[midfid[playerid]][mURL]);
- */
- PlayAudioStreamForPlayer(playerid, musicplay);
- printf("%d tocou: %s", playerid, musicplay);
- new string[256];
- format(string, sizeof(string), "Tocando: "#YEL"%s", MusicInfo[midfid[playerid]][mTitulo]);
- SendClientMessage(playerid, -1, string);
- format(string, sizeof(string), "Artista: "#YEL"%s", MusicInfo[midfid[playerid]][mArtista]);
- SendClientMessage(playerid, -1, string);
- SendClientMessage(playerid, -1, "Para parar a musica: "#BLU"/mStop");
- midfid[playerid] = -1;
- return 1;
- }
- return 1;//Fim Public
- }
- public LoadMusics()
- {
- new mid = 0;
- failEncontrar:
- while(mid < MAX_MUSICS)
- {
- new ffile[45];
- format(ffile, sizeof(ffile), PASTA_MUS, mid);
- if(!dini_Exists(ffile))
- {
- MusicInfo[mid][mDefinida] = false;
- printf("Musica de ID %d nao encontrada/nao existe", mid);
- mid++;
- goto failEncontrar;
- }
- //Infos Musica
- strmid(MusicInfo[mid][mTitulo], dini_Get(ffile, "Titulo"), 0, strlen(dini_Get(ffile, "Titulo")),255);
- strmid(MusicInfo[mid][mArtista], dini_Get(ffile, "Artista"), 0, strlen(dini_Get(ffile, "Artista")),255);
- strmid(MusicInfo[mid][mGenero], dini_Get(ffile, "Genero"), 0, strlen(dini_Get(ffile, "Genero")),255);
- MusicInfo[mid][mDuracao] = dini_Float(ffile, "Duracao");
- MusicInfo[mid][mAno] = dini_Int(ffile, "Ano");
- //Infos Servidor
- strmid(MusicInfo[mid][mURL], dini_Get(ffile, "URL"), 0, strlen(dini_Get(ffile, "URL")),255);
- strmid(MusicInfo[mid][mAdicionou], dini_Get(ffile, "Adicionou"), 0, strlen(dini_Get(ffile, "Adicionou")),255);
- //Verifica se está definida
- MusicInfo[mid][mDefinida] = dini_Bool(ffile, "Definida") ? true : false;
- printf("Musica de ID %d carregada", mid);
- mid++;
- }
- return 1;
- }
- public LoadMusic(mid)
- {
- new ffile[45];
- format(ffile, sizeof(ffile), PASTA_MUS, mid);
- if(!dini_Exists(ffile))
- {
- printf("Musica de ID %d nao encontrada/nao existe", mid);
- return 1;
- }
- //Infos Musica
- strmid(MusicInfo[mid][mTitulo], dini_Get(ffile, "Titulo"), 0, strlen(dini_Get(ffile, "Titulo")),255);
- strmid(MusicInfo[mid][mArtista], dini_Get(ffile, "Artista"), 0, strlen(dini_Get(ffile, "Artista")),255);
- strmid(MusicInfo[mid][mGenero], dini_Get(ffile, "Genero"), 0, strlen(dini_Get(ffile, "Genero")),255);
- MusicInfo[mid][mDuracao] = dini_Float(ffile, "Duracao");
- MusicInfo[mid][mAno] = dini_Int(ffile, "Ano");
- //Infos Servidor
- strmid(MusicInfo[mid][mURL], dini_Get(ffile, "URL"), 0, strlen(dini_Get(ffile, "URL")),255);
- strmid(MusicInfo[mid][mAdicionou], dini_Get(ffile, "Adicionou"), 0, strlen(dini_Get(ffile, "Adicionou")),255);
- //Verifica se está definida
- MusicInfo[mid][mDefinida] = dini_Bool(ffile, "Definida") ? true : false;
- printf("Musica de ID %d carregada", mid);
- return 1;
- }
- public SaveMusics()
- {
- new mid = 0;
- failCarregar:
- while(mid < MAX_MUSICS)
- {
- new ffile[45];
- if(MusicInfo[mid][mDefinida] == false)
- {
- printf("Musica %d nao salvada por nao existir", mid);
- mid++;
- goto failCarregar;
- }
- format(ffile, sizeof(ffile), PASTA_MUS, mid);
- if(!dini_Exists(ffile))
- {
- dini_Create(ffile);
- }
- dini_Set(ffile, "Titulo", MusicInfo[mid][mTitulo]);
- dini_Set(ffile, "Artista", MusicInfo[mid][mArtista]);
- dini_Set(ffile, "Genero", MusicInfo[mid][mGenero]);
- dini_FloatSet(ffile, "Duracao", MusicInfo[mid][mDuracao]);
- dini_IntSet(ffile, "Ano", MusicInfo[mid][mAno]);
- dini_Set(ffile, "URL", MusicInfo[mid][mURL]);
- dini_Set(ffile, "Adicionou", MusicInfo[mid][mAdicionou]);
- dini_BoolSet(ffile, "Definida", MusicInfo[mid][mDefinida]);
- mid++;
- }
- print("MusicasSalvas");
- return 1;
- }
- public SaveMusic(mid)
- {
- new ffile[45];
- if(MusicInfo[mid][mDefinida] == false)
- {
- printf("Musica %d nao salvada por nao existir", mid);
- return 1;
- }
- format(ffile, sizeof(ffile), PASTA_MUS, mid);
- if(!dini_Exists(ffile))
- {
- dini_Create(ffile);
- }
- dini_Set(ffile, "Titulo", MusicInfo[mid][mTitulo]);
- dini_Set(ffile, "Artista", MusicInfo[mid][mArtista]);
- dini_Set(ffile, "Genero", MusicInfo[mid][mGenero]);
- dini_FloatSet(ffile, "Duracao", MusicInfo[mid][mDuracao]);
- dini_IntSet(ffile, "Ano", MusicInfo[mid][mAno]);
- dini_Set(ffile, "URL", MusicInfo[mid][mURL]);
- dini_Set(ffile, "Adicionou", MusicInfo[mid][mAdicionou]);
- dini_BoolSet(ffile, "Definida", MusicInfo[mid][mDefinida]);
- printf("Musica ID %d salvada", mid);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement