[Ajuda] Sistema registro de BUG
#1

Pessoal, fiz o seguinte sistema para registrar os bugs dos usuarios :

pawn Код:
if (strcmp(cmd,"/bug",true) == 0)
    {
    new tmp[128];
    new fName[128];
    tmp = strtok(cmdtext,idx);
    if (strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "DIGITE: /bug [digite aqui o bug]");
    format(fName,sizeof(fName),"%s_BUG",Jogador[playerid]);
    if (!dini_Exists(fName))
    {
    dini_Create(fName);
    }
    dini_Set(fName,"BUG",tmp);
    SendClientMessage(playerid,COLOR_YELLOW,"Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor.");
    return 1;
    }
Mas ele sу estб armazenando a primeira palavra digitada pelo player, qual o problema? se alguйm conseguir ajudar agradeceria muito...
Reply
#2

Precisa de uma extensгo no arquivo

@edit

Agora eu li direito :B
strtok serve para separar por espaзos

tenta assim
PHP код:
if(!strcmp(cmdtext,"/bug",true))
{
    new 
fName[128];
    
format(fName,sizeof(fName),"%s_BUG",Jogador[playerid]);
    if (!
dini_Exists(fName)) dini_Create(fName);
    
dini_Set(fName,"BUG",cmdtext[5]);
    
SendClientMessage(playerid,COLOR_YELLOW,"Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor.");
    return 
1;

Reply
#3

Quote:
Originally Posted by feliperch
Посмотреть сообщение
Precisa de uma extensгo no arquivo

@edit

Agora eu li direito :B
strtok serve para separar por espaзos

tenta assim
PHP код:
if(!strcmp(cmdtext,"/bug",true))
{
    new 
fName[128];
    
format(fName,sizeof(fName),"%s_BUG",Jogador[playerid]);
    if (!
dini_Exists(fName)) dini_Create(fName);
    
dini_Set(fName,"BUG",cmdtext[5]);
    
SendClientMessage(playerid,COLOR_YELLOW,"Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor.");
    return 
1;

Nгo funciona amigo, ele nem reconhece o comando...
Reply
#4

Tenta assim

PHP код:
if(!strcmp(cmdtext,"/bug",true))
{
    new 
fName[128],pName[MAX_PLAYER_NAME];
    if(!
strlen(cmdtext[6])) return SendClientMessage(playerid,-1,"USE: /bug [bug]");
    
GetPlayerName(playerid,pName,sizeof(pName));
    
format(fName,sizeof(fName),"%s_BUG.txt",pName);
    new 
File:fopen(fName,io_append);
    
fwrite(a,cmdtext[6]);
    
fclose(a);
    
SendClientMessage(playerid,-1,"INFO: Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor.");
    return 
1;

Reply
#5

Quote:
Originally Posted by feliperch
Посмотреть сообщение
Tenta assim

PHP код:
if(!strcmp(cmdtext,"/bug",true))
{
    new 
fName[128],pName[MAX_PLAYER_NAME];
    if(!
strlen(cmdtext[6])) return SendClientMessage(playerid,-1,"USE: /bug [bug]");
    
GetPlayerName(playerid,pName,sizeof(pName));
    
format(fName,sizeof(fName),"%s_BUG.txt",pName);
    new 
File:fopen(fName,io_append);
    
fwrite(a,cmdtext[6]);
    
fclose(a);
    
SendClientMessage(playerid,-1,"INFO: Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor.");
    return 
1;

Nгo funciona velho :/
Ele sу funciona se digitar /bug sozinho, aн ele retorna : use /bug [bug]
e se digitar ex: /bug nao consigo entrar no meu carro, ele retorna como se o comando nгo existisse.
Reply
#6

PHP код:
if(!strcmp(cmdtext,"/bug",true)) 

    new 
fName[128],pName[MAX_PLAYER_NAME]; 
    if(!
strlen(cmdtext[6])) return SendClientMessage(playerid,-1,"USE: /bug [bug]"); 
    
GetPlayerName(playerid,pName,sizeof(pName)); 
    
format(fName,sizeof(fName),"%s_BUG.txt",pName); 
    new 
File:fopen(fName,io_append); 
    
fwrite(a,cmdtext[6]); 
    
fclose(a); 
    return 
SendClientMessage(playerid,-1,"INFO: Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor."); 

Se nгo funcionar vou recomendar usar ZCMD + sscanf, й muito mais fбcil de usar

@EDIT

Fiz agora rapidinho usando Y_INI, ZCMD e SSCANF

PHP код:
CMD:bug(playerid,params[])  
{  
    new 
fName[128],pName[24],str[128];  
    if(
sscanf(params,"s[128]",str)) return SendClientMessage(playerid,-1,"USE: /bug [bug]");
    
GetPlayerName(playerid,pName,sizeof(pName));  
    
format(fName,sizeof(fName),"%s_BUG.txt",pName);  
    new 
INIINI_Open(fName);  
    
INI_WriteString(a,"BUG",str);  
    
INI_Close(a);  
    
SendClientMessage(playerid,-1,"INFO: Seu bug foi armazenado em nosso sistema, obrigado por ajudar o servidor.");  
    return 
true;

Reply
#7

pawn Код:
if(strcmp(cmd, "/bug", true) == 0)
    {
        if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "use: /bug texto");

            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[128];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result)) return SendClientMessage(playerid, -1, "use: /bug [bug]");
            new y,m,d;
            new h,mi,s;
            getdate(y,m,d);
            gettime(h,mi,s);
            new nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, nome, sizeof(nome);
            format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] BUG de %s: %s",d,m,y,h,mi,s,nome, (result));
            BugsLog(string);       
                return 1;
    }


forward BugsLog(string[]);
public BugsLog(string[])
{
    new entry[128];
    format(entry, sizeof(entry), "%s\r\n",string);
    new File:hFile;
    hFile = fopen("bugs.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
}
Reply
#8

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
pawn Код:
if(strcmp(cmd, "/bug", true) == 0)
    {
        if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "use: /bug texto");

            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[128];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result)) return SendClientMessage(playerid, -1, "use: /bug [bug]");
            new y,m,d;
            new h,mi,s;
            getdate(y,m,d);
            gettime(h,mi,s);
            new nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, nome, sizeof(nome);
            format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] BUG de %s: %s",d,m,y,h,mi,s,nome, (result));
            BugsLog(string);       
                return 1;
    }


forward BugsLog(string[]);
public BugsLog(string[])
{
    new entry[128];
    format(entry, sizeof(entry), "%s\r\n",string);
    new File:hFile;
    hFile = fopen("bugs.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
}
Cara, funcionou perfeito, sу que tive de fazer alguns ajustes, tal como criar a variбvel string que vocк esqueceu, e tambйm colocar um parenteses, ta ae o cуdigo arrumado pra quem precisar

pawn Код:
if(strcmp(cmd, "/bug", true) == 0)
    {
        if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "use: /bug texto");

            new length = strlen(cmdtext);
            new string[256];
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[128];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result)) return SendClientMessage(playerid, -1, "use: /bug [bug]");
            new y,m,d;
            new h,mi,s;
            getdate(y,m,d);
            gettime(h,mi,s);
            new nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, nome, sizeof(nome));
            format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] BUG de %s: %s",d,m,y,h,mi,s,nome, (result));
            BugsLog(string);
                return 1;
    }
Reply
#9

pawn Код:
if(strcmp(cmd, "/bug", true) == 0)
    {
        if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "USE: /bug texto");
        new offset = idx, result[128], string[0x3C*3], length = strlen(cmdtext), nome[MAX_PLAYER_NAME];
        while ((idx < length) && (cmdtext[idx] <= ' ')) {
            idx++;
        }
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result)) return SendClientMessage(playerid, -1, "USE: /bug [bug]");
        new y,m,d, h,mi,s;
        getdate(y,m,d); gettime(h,mi,s); GetPlayerName(playerid, nome, sizeof(nome));
        format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] BUG de %s: %s",d,m,y,h,mi,s,nome, (result));
        BugsLog(string);
        return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)