[Ajuda] Erros DOF2
#1

Estou convertendo o sistema de salvamento do meu GM de MySQL para DOF2 (ate agora so usava MySQL) pois parece ser + prбtico e so vou integrar o servidor com um UCP/Ranking no futuro.

Tou tentando consertar isso faz horas, entao preciso muito da vossa ajuda. Darei +REP e ficarei eternamente grato a todos que me ajudarem!

Agora tenho alguns problemas no GM e preciso de ajuda:


Erros:

pawn Код:
1247) : error 029: invalid expression, assumed zero
(1250) : error 017: undefined symbol "SalvarContas"
(1270) : error 029: invalid expression, assumed zero
(1272) : error 017: undefined symbol "Contas"
(1275) : error 017: undefined symbol "Contas"
(1276) : error 017: undefined symbol "Contas"
(1277) : error 017: undefined symbol "Contas"
(1286) : error 036: empty statement
(1303) : error 079: inconsistent return types (array & non-array)
(1330) : error 079: inconsistent return types (array & non-array)
(1337) : error 079: inconsistent return types (array & non-array)
(1340) : error 079: inconsistent return types (array & non-array)
OnDialogResponse/Cуdigo:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 01)
    {
        if(response)
        {
            if(strlen(inputtext) < 4 || strlen(inputtext) > 16)
            {
                new string[123];
                GetPlayerName(playerid, Nome, 32);
                format(string, sizeof(string),
                "{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Para se cadastrar, digite uma senha.\n\n{FFAC17}Obs:{FFFFFF} Ela deve conter no minimo 4 e no maximo 16 caracteres.", Nome);
                ShowPlayerDialog(playerid, 01, DIALOG_STYLE_PASSWORD, "{FFAC17}Registre-se", string, "Confirmar", "Cancelar");
                else
                {
                    PlayerInfo[playerid][Senha] = strval(inputtext);
                    SalvarContas(playerid);  //Linha 1250 [Erro]

                    TextDrawColor(TextInicial[12], Verde);
                    TextDrawShowForPlayer(playerid, TextInicial[12]);

                    ShowPlayerDialog(playerid, 03, DIALOG_STYLE_MSGBOX, "{FFAC17}Sucesso", "{FFFFFF}Conta criada com sucesso. Para entrar, utilize a opзгo {FFAC17}LOGIN.", "OK", "");
                }
            }
        }
    }
    if(dialogid == 02)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                new string[123];
                GetPlayerName(playerid, Nome, 30);
                format(string, sizeof(string), "{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Digite sua senha para entrar no servidor.", Nome);
                ShowPlayerDialog(playerid, 02, DIALOG_STYLE_PASSWORD, "{FFAC17}Login", string, "Confirmar", "Cancelar");
                else //Linha 1270 [Erro]
                {
                    PlayerInfo[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
                    if(strval(inputtext) == PlayerInfo[playerid][Senha])
                    {
                        PlayerInfo[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
                        PlayerInfo[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                        PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                        GivePlayerMoney(playerid, PlayerInfo[playerid][Dinheiro]);
                    }
                    else
                    {
                    if(5 - erros == 0)
                    format(string, sizeof(string), "| ERRO | Senha incorreta. Se errar mais %i vezes serб kickado do servidor.", 5 - erros);
                    ShowPlayerDialog(playerid, 03, DIALOG_STYLE_MSGBOX, "Erro", string, "OK", "");
           
                    if(erros >= 5); //Linha 1286 [Erro]
                        {
                            pMensagem(playerid, Vermelho, "| INFO | Vocк foi expulso do servidor por exceder o limite mбximo de erros.");
                            SetTimerEx("TimerKick", 500, false, "i", playerid);
                        }
                    }
                }
            }
            if(dialogid == 04)
            {
                if(response)
                {

                    new string[123];
                    GetPlayerName(playerid, Nome, 30);
                    format(string, sizeof(string), "{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Digite sua senha para entrar no servidor.", Nome);
                    ShowPlayerDialog(playerid, 02, DIALOG_STYLE_PASSWORD, "{FFAC17}Login", string, "Confirmar", "Cancelar");
                    return 1;
                }
            }

            if(dialogid == 06)
            {
                if(response)
                {
                    new string[123];
                    GetPlayerName(playerid, Nome, 30);
                    format(string, sizeof(string), "| INFO |{FFFFFF} %s, vocк foi desconectado do servidor. Obrigado pela preferкncia.", Nome);
                    pMensagem(playerid, Cinza, string);
                    SetTimerEx("TimerKick", 500, false, "i", playerid);
                }
            }
            if(dialogid == 09)
            {
                if(response == 1)
                {
                    InAutoEscola[playerid] = 1;
                    SetPlayerInterior(playerid, 0);
                    carroauto[playerid] = CreateVehicle(559, 1282.6000000, -1302.3000000, 13.1000000, 180.0000000, 1, 1, -1);
                    PutPlayerInVehicle(playerid, carroauto[playerid], 0);
                    SendClientMessage(playerid, Branco,"| AUTO ESCOLA | Vocк iniciou o teste da Auto-Escola. Siga as setas.");
                    SetPlayerRaceCheckpoint(playerid, 0, AutoPoints[0][0], AutoPoints[0][1], AutoPoints[0][2], AutoPoints[1][0], AutoPoints[1][1], AutoPoints[1][2], 10);
                    point[playerid] = 1;
                    GivePlayerMoney(playerid, -200);
                    return 1;
                }
                if(response == 0)
                {

                    SendClientMessage(playerid, Branco,"| AUTO ESCOLA | Vocк desistiu do teste da Auto-Escola.");
                    GivePlayerMoney(playerid, -200);
                    return 1;
                }
            }
            return 1;
}
Reply
#2

Vocк estб chamando uma funзгo inexistente, SalvarContas. Crie-a.

O erro da linha 1290 й o mal uso da estrutura condicional.

O que vocк fez foi

PHP код:
else
{
    
// Alguma coisa

else signifinica 'se nгo'. Afinal, vocк estб dizendo se nгo para o que?

https://sampwiki.blast.hk/wiki/Controlando_Estruturas

Linha 1286:

Vocк estб fazendo isso:

PHP код:
if(Algumacoisa);
{
    
// Alguma coisa

Uma condiзгo IF nгo й uma funзгo, nгo deve ser fechada. Apenas retire o ponto e vнrgula.
Reply
#3

@arakuta: Primeiramente, muito obrigado por responder.

Nгo percebi muito bem sua explicaзгo, mas penso que consegui resolver isso. No entanto, ainda tem muitos erros...

Eu ficaria eternamente grato se vocк pudesse identar/consertar o cуdigo de modo a que os erros desaparecessem. Sim, eu sei que isso poderia dar muito trabalho, mas por favor... jб estou tentando resolver esse problema faz horas e ainda nгo consegui. Й apenas uma public.

Cуdigo:

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 01)
    {
        if(
response)
        {
            if(
strlen(inputtext) < || strlen(inputtext) > 16)
            {
                new 
string[123];
                
GetPlayerName(playeridNome32);
                
format(stringsizeof(string),
                
"{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Para se cadastrar, digite uma senha.\n\n{FFAC17}Obs:{FFFFFF} Ela deve conter no minimo 4 e no maximo 16 caracteres."Nome);
                
ShowPlayerDialog(playerid01DIALOG_STYLE_PASSWORD"{FFAC17}Registre-se"string"Confirmar""Cancelar");
                   else 
//(1247) : error 029: invalid expression, assumed zero//
                
{
                    
PlayerInfo[playerid][Senha] = strval(inputtext);
                    
SalvarContas(playerid); //(1250) : error 017: undefined symbol "SalvarContas"//
                    
TextDrawColor(TextInicial[12], Verde);
                    
TextDrawShowForPlayer(playeridTextInicial[12]);
                    
ShowPlayerDialog(playerid03DIALOG_STYLE_MSGBOX"{FFAC17}Sucesso""{FFFFFF}Conta criada com sucesso. Para entrar, utilize a opзгo {FFAC17}LOGIN.""OK""");
                }
            }
        }
    }
    if(
dialogid == 02)
    {
        if(
response)
        {
            if(!
strlen(inputtext))
            {
                new 
string[123];
                
GetPlayerName(playeridNome30);
                
format(stringsizeof(string), "{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Digite sua senha para entrar no servidor."Nome);
                
ShowPlayerDialog(playerid02DIALOG_STYLE_PASSWORD"{FFAC17}Login"string"Confirmar""Cancelar");
                    
PlayerInfo[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha"); //(1274) : error 017: undefined symbol "Contas"//
                    
if(strval(inputtext) == PlayerInfo[playerid][Senha])
                    {
                        
PlayerInfo[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou"); //(1275) : error 017: undefined symbol "Contas"//
                        
PlayerInfo[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu"); //(1276) : error 017: undefined symbol "Contas"//
                        
PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                        
GivePlayerMoney(playeridPlayerInfo[playerid][Dinheiro]);
                    }
                    else
                    {
                    if(
erros == 0)
                    
format(stringsizeof(string), "| ERRO | Senha incorreta. Se errar mais %i vezes serб kickado do servidor."erros);
                    
ShowPlayerDialog(playerid03DIALOG_STYLE_MSGBOX"Erro"string"OK""");
           
                    if(
erros >= 5)
                        {
                            
pMensagem(playeridVermelho"| INFO | Vocк foi expulso do servidor por exceder o limite mбximo de erros.");
                            
SetTimerEx("TimerKick"500false"i"playerid);
                        }
                    }
                }
            }
            if(
dialogid == 04)
            {
                if(
response)
                {
                    new 
string[123];
                    
GetPlayerName(playeridNome30);
                    
format(stringsizeof(string), "{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Digite sua senha para entrar no servidor."Nome);
                    
ShowPlayerDialog(playerid02DIALOG_STYLE_PASSWORD"{FFAC17}Login"string"Confirmar""Cancelar");
                    return 
1//(1302) : error 079: inconsistent return types (array & non-array)//
                
}
            }
            if(
dialogid == 06)
            {
                if(
response)
                {
                    new 
string[123];
                    
GetPlayerName(playeridNome30);
                    
format(stringsizeof(string), "| INFO |{FFFFFF} %s, vocк foi desconectado do servidor. Obrigado pela preferкncia."Nome);
                    
pMensagem(playeridCinzastring);
                    
SetTimerEx("TimerKick"500false"i"playerid);
                }
            }
            if(
dialogid == 09)
            {
                if(
response == 1)
                {
                    
InAutoEscola[playerid] = 1;
                    
SetPlayerInterior(playerid0);
                    
carroauto[playerid] = CreateVehicle(5591282.6000000, -1302.300000013.1000000180.000000011, -1);
                    
PutPlayerInVehicle(playeridcarroauto[playerid], 0);
                    
SendClientMessage(playeridBranco,"| AUTO ESCOLA | Vocк iniciou o teste da Auto-Escola. Siga as setas.");
                    
SetPlayerRaceCheckpoint(playerid0AutoPoints[0][0], AutoPoints[0][1], AutoPoints[0][2], AutoPoints[1][0], AutoPoints[1][1], AutoPoints[1][2], 10);
                    
point[playerid] = 1;
                    
GivePlayerMoney(playerid, -200); //(1329) : error 079: inconsistent return types (array & non-array)//
                    
return 1//error 079: inconsistent return types (array & non-array)//
                
}
                if(
response == 0)
                {
                    
SendClientMessage(playeridBranco,"| AUTO ESCOLA | Vocк desistiu do teste da Auto-Escola.");
                    
GivePlayerMoney(playerid, -200);
                    return 
1//(1336) : error 079: inconsistent return types (array & non-array)//
                
}
            }
            return 
1//(1339) : error 079: inconsistent return types (array & non-array)//

Erros:

pawn Код:
(1247) : error 029: invalid expression, assumed zero
(1250) : error 017: undefined symbol "SalvarContas"
(1271) : error 017: undefined symbol "Contas"
(1274) : error 017: undefined symbol "Contas"
(1275) : error 017: undefined symbol "Contas"
(1276) : error 017: undefined symbol "Contas"
(1302) : error 079: inconsistent return types (array & non-array)
(1329) : error 079: inconsistent return types (array & non-array)
(1336) : error 079: inconsistent return types (array & non-array)
(1339) : error 079: inconsistent return types (array & non-array)
(1343) : error 029: invalid expression, assumed zero
As linhas dos erros estгo assinaladas no script.

Sobre as funзхes "SalvarContas" e "Contas", eu tenho isso aqui:

pawn Код:
stock Contas(playerid){
            new arquivo[40], Nome[55];
            GetPlayerName(playerid, Nome, 55);
            format(arquivo, 40, "Contas/%s.ini", Nome);
            return arquivo;
        }

        stock SalvarContas(playerid)
        {
            if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
            else
            {
                new PosX, PosY, PosZ;
                GetPlayerPos(playerid, PosX, PosY, PosZ);
                GetPlayerName(playerid, Nome, 30);
                GetPlayerIp(playerid, PlayerInfo[playerid][Ip], 16);
                PlayerInfo[playerid][Senha] = strlen(inputtext);
                GetPlayerIp(playerid, PlayerInfo[playerid][Ip], 16);
                PlayerInfo[playerid][Procurado] = 0;
                PlayerInfo[playerid][Admin] = 0;
                PlayerInfo[playerid][Profissao] = 0;
                PlayerInfo[playerid][Vip] = 0;
                PlayerInfo[playerid][Casa] = 0;
                PlayerInfo[playerid][Empresa] = 0;
                PlayerInfo[playerid][Veiculo] = 0;
                PlayerInfo[playerid][Carteira] = 0;
                PlayerInfo[playerid][Level] = Level_Inicial;
                PlayerInfo[playerid][Skin] = Skin_Inicial;
                PlayerInfo[playerid][Dinheiro] = Dinheiro_Inicial;
                PlayerInfo[playerid][Pos][0] = PosX;
                PlayerInfo[playerid][Pos][1] = PosY;
                PlayerInfo[playerid][Pos][2] = PosZ;

                DOF2_CreateFile(arquivo);
                DOF2_SetInt(arquivo, "Senha", PlayerInfo[playerid][Senha]);
                DOF2_SetInt(arquivo, "Skin", PlayerInfo[playerid][Skin]);
                DOF2_SetInt(arquivo, "Admin", PlayerInfo[playerid][Admin]);
                DOF2_SetInt(arquivo, "Profissao", PlayerInfo[playerid][Profissao]);
                DOF2_SetInt(arquivo, "Vip", PlayerInfo[playerid][Vip]);
                DOF2_SetInt(arquivo, "Casa", PlayerInfo[playerid][Casa]);
                DOF2_SetInt(arquivo, "Empresa", PlayerInfo[playerid][Empresa]);
                DOF2_SetInt(arquivo, "Veiculo", PlayerInfo[playerid][Veiculo]);
                DOF2_SetInt(arquivo, "Level", PlayerInfo[playerid][Level]);
                DOF2_SetInt(arquivo, "HabTerrestre", PlayerInfo[playerid][HabTerrestre]);
                DOF2_SetInt(arquivo, "HabMarнtima", PlayerInfo[playerid][HabMar]);
                DOF2_SetInt(arquivo, "HabAйrea", PlayerInfo[playerid][HabAйrea]);
                DOF2_SetInt(Contas(playerid), "Matou", PlayerInfo[playerid][Matou]);
                DOF2_SetInt(Contas(playerid), "Morreu", PlayerInfo[playerid][Morreu]);
                DOF2_SetInt(arquivo, "PosX", PlayerInfo[playerid][Pos][0]);
                DOF2_SetInt(arquivo, "PosY", PlayerInfo[playerid][Pos][1]);
                DOF2_SetInt(arquivo, "PosZ", PlayerInfo[playerid][Pos][2]);
                registrado = true;

                DOF2_SaveFile();
            }
            return 1;
        }
Penso que esses erros do Contas, etc. sгo provocados devido а mб identaзгo da public OnDialogResponse, mas nгo sei... nгo sou um expert nessa linguagem de programaзгo, mas sim um aprendiz que estб evoluindo.

Toda a ajuda й bem vinda e recompensada tambйm!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)