[AJUDA] Banco de Dados
#1

Olб galera... To com um problema aqui no "Banco de dados" da prуxima versгo do meu MusicDialog v1.1

Bom a idйia й que as mъsicas fiquem armazenadas em um arquivo "musicas.reg" no scriptfiles, e obedeзam a seguinte ordem: "Nome,Genero,URL"

Ai eu fiz um sistema aqui para inserir novas linhas ao arquivo "/addmusic" e um "leitor" dos dados que la estгo... ai o cуdigo ta da seguinte forma atй agora:

pawn Код:
#include <a_samp>
#include  <dini>

#pragma unused ret_memcpy

#define MENUMUSICS  800
#define MAX_MUSICS  100

new MusicsAmount;
enum musicinfo              
{
    MusicName[100],
    MusicGenre[100],    
    MusicURL[1800] 
};
new MusicInfo[MAX_MUSICS][musicinfo];

public OnFilterScriptInit()
{
    LoadMusics();
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext,"/addmusic",true) == 0)
    {
        ShowPlayerDialog(playerid, MENUMUSICS, DIALOG_STYLE_MSGBOX , "ADD MUSIC", "Para adicionar uma nova musica ao dialog\npreencha todos os dados pedidos a seguir.", "Continuar", "Cancelar");
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0); return 1;
    }    
    if(strcmp(cmdtext, "/musicas", true) == 0)
    {
        new str[2000];
        for(new musicid; musicid< MusicsAmount; musicid++)
        {
            format(str, 2000, "\"%s\"   Genero: %s  url: %s\n%s", MusicInfo[musicid][MusicName],MusicInfo[musicid][MusicGenre],MusicInfo[musicid][MusicURL],str);
        }
        ShowPlayerDialog(playerid, MENUMUSICS+4, DIALOG_STYLE_LIST, "WarZone - Musicas", str, "Fechar", "");
        return 1;        
    }
       
    return 0;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{      
    static musica[2000], genero[100], nome[100], url[1800];
    if(dialogid == MENUMUSICS)
    {
        if (response)        
        {
            ShowPlayerDialog(playerid, MENUMUSICS+1, DIALOG_STYLE_INPUT, "ADD MUSIC", "Digite o gкnero da mъsica.", "Continuar", "Cancelar");        
        }
    }    
    if(dialogid == MENUMUSICS+1)
    {
        if (response)        
        {
            format(genero, 100, "%s", inputtext);
            ShowPlayerDialog(playerid, MENUMUSICS+2, DIALOG_STYLE_INPUT, "ADD MUSIC", "Digite o nome da mъsica.", "Continuar", "Cancelar");        
        }
    }    
    if(dialogid == MENUMUSICS+2)
    {
        if (response)        
        {
            format(nome, 100, "%s", inputtext);
            ShowPlayerDialog(playerid, MENUMUSICS+3, DIALOG_STYLE_INPUT, "ADD MUSIC", "Digite a URL da musica", "Finalizar", "Cancelar");        
        }
    }    
    if(dialogid == MENUMUSICS+3)
    {
        if (response)        
        {
            format(url, 1800, "%s", inputtext);
            SendClientMessage(playerid, -1, "Mъsica adicionada com sucesso!");
           
            format (musica, sizeof(musica), "%s,%s,%s", nome, genero, url);
            new File:ArqMusica; ArqMusica = fopen("musicas.reg", io_append);
            fwrite(ArqMusica, musica); fwrite(ArqMusica, "\r\n"); fclose(ArqMusica);        
        }
    }
    if(dialogid == MENUMUSICS+4)
    {
        if(response) return 1;
    }
    return 0;
}

stock LoadMusics()
{
    if(fexist("musicas.reg"))
    {
        CountMusics();
        new Argument[3][1800];
        new entry[2000];
        new File: musicfile = fopen("musicas.reg", io_read);
        if (musicfile)
        {
            for(new id; id<MusicsAmount; id++)
            {
                fread(musicfile, entry);
                split(entry, Argument, ',');
                format(MusicInfo[id][MusicName], 100, "%s", Argument[0]);
                format(MusicInfo[id][MusicGenre], 100, "%s", Argument[1]);
                format(MusicInfo[id][MusicURL], 1800, "%s", Argument[2]);                              
            }
            fclose(musicfile);         
        }
    }
}

forward split(const strsrc[], strdest[][], delimiter);
public split(const strsrc[], strdest[][], delimiter)
{
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
        if(strsrc[i]==delimiter || i==strlen(strsrc)){
            len = strmid(strdest[aNum], strsrc, li, i, 1800);
            strdest[aNum][len] = 0;
            li = i+1;
            aNum++;
        }
        i++;
    }
    return 1;
}

stock CountMusics()
{
    new entry[2000];
    new File: musicfile = fopen("musicas.reg", io_read);
    while(fread(musicfile, entry, 2000))
    {
        MusicsAmount++;
    }
    fclose(musicfile);
}
Bom... O problema й que os dados lб contidos nгo estгo sendo lidos por algum motivo... Sendo que por enquanto eu sу to pondo para os dados serem lidos... tudo em itens de um dialog list...

Ai la no musicas.reg ta assim por exemplo:

Код:
Exemplo,Exemplar,http://exemplo.mp3
Ai quando eu uso o /musicas la no servidor os dados nгo tao sendo lidos, fica assim: "" Genero: Url:
Ou seja nб hora de carregar os dados que estгo contidos no arquivo, eles nгo tao sendo carregados... pq

OBS: Ta tudo certinho com o sistema de adicionar novas musicas...
Reply


Messages In This Thread
[AJUDA] Banco de Dados - by Mattos - 12.12.2011, 15:32
Re: [AJUDA] Banco de Dados - by Mattos - 12.12.2011, 19:34
Respuesta: [AJUDA] Banco de Dados - by [NWD]Jim._.Carrey - 12.12.2011, 21:11
Re: [AJUDA] Banco de Dados - by Mattos - 12.12.2011, 21:58
Re: [AJUDA] Banco de Dados - by [S]trong - 12.12.2011, 23:25
Re: [AJUDA] Banco de Dados - by Mattos - 13.12.2011, 00:41
Re: [AJUDA] Banco de Dados - by steki. - 13.12.2011, 10:08

Forum Jump:


Users browsing this thread: 2 Guest(s)