[Ajuda] "Warning 225: unreachable code", Ajuda Aqui !!
#1

Pessoal, na seguinte linha:

pawn Код:
if(strval(params) > GetPlayerMoney(playerid)) return SendClientMessage(playerid,ERRO,"[ INFO ] Vocк nгo tem dinheiro suficiente!");
Estб dando o seguinte erro:

pawn Код:
C:\Users\admin\Documents\SERVIDOR BFP\gamemodes\BGL0.2.pwn(2005) : warning 225: unreachable code
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.
Como resolvo isto ?
Reply
#2

a linha nao e essa ae o warning esta em uma chave perto da ae poste o codigo completo que envolve essa parte ae



warning = aviso = compilador compila
erro = e erro = compilador nao compila o gm
Reply
#3

Vlw pela rapidez para me ajuda

Code completo:

pawn Код:
CMD:depositar(playerid, params[])
{
    new msg[128];
    if(!IsPlayerInBanco(playerid)) return SendClientMessage(playerid,ERRO,"Vocк nгo estб em um banco!");
    if(PlayerInfo[playerid][TemConta] < 1) return SendClientMessage(playerid, ERRO,"[ INFO ] Vocк nгo tem uma conta bancбria!");
    return SendClientMessage(playerid,ERRO,"Forma correta: /depositar [quantia]");
    if(strval(params) > GetPlayerMoney(playerid)) return SendClientMessage(playerid,ERRO,"[ INFO ] Vocк nгo tem dinheiro suficiente!");
    PlayerInfo[playerid][Saldo] = PlayerInfo[playerid][Saldo] + strval(params);
    GivePlayerMoney(playerid, -strval(params));
    format(msg,sizeof(msg),"Vocк depositou uma quantia de R$ %d, seu saldo atual й de R$ %d",strval(params),PlayerInfo[playerid][Saldo]);
    SendClientMessage(playerid,VERDEESCURO,msg);
    return true;
}
Reply
#4

Provavelmente deve ter um return em cima.
Unreachable code acontece quando um cуdigo й impossнvel de ser executado, tal como:
pawn Код:
stock qinoob() {
    return 1;
    printf("a");
}
Como pode ver, o printf("a") nunca serб executado, pois a funзгo serб acabada antes disso acontecer.
Se vocк nгo conseguir perceber qualquer semelhanзa entre o exemplo acima mostrado, aconselho a vocк postar o bloco de cуdigo no qual a linha defeituosa estб localizada.

Abraзos.

Editando:

CMD:depositar(playerid, params[])
{
new msg[128];
if(!IsPlayerInBanco(playerid)) return SendClientMessage(playerid,ERRO,"Vocк nгo estб em um banco!");
if(PlayerInfo[playerid][TemConta] < 1) return SendClientMessage(playerid, ERRO,"[ INFO ] Vocк nгo tem uma conta bancбria!");
return SendClientMessage(playerid,ERRO,"Forma correta: /depositar [quantia]");
if(strval(params) > GetPlayerMoney(playerid)) return SendClientMessage(playerid,ERRO,"[ INFO ] Vocк nгo tem dinheiro suficiente!");
PlayerInfo[playerid][Saldo] = PlayerInfo[playerid][Saldo] + strval(params);
GivePlayerMoney(playerid, -strval(params));
format(msg,sizeof(msg),"Vocк depositou uma quantia de R$ %d, seu saldo atual й de R$ %d",strval(params),PlayerInfo[playerid][Saldo]);
SendClientMessage(playerid,VERDEESCURO,msg);
return true;
}

A linha negritada estб sobrando ali. Ela retorna um SendClientMessage sem nenhuma condiзгo, tornando todo o cуdigo abaixo inviбvel.

Uma sugestгo:

pawn Код:
CMD:depositar(playerid, params[])
{
    new msg[128];
    if(!IsPlayerInBanco(playerid))
        return SendClientMessage(playerid,ERRO,"Vocк nгo estб em um banco!");
    if(PlayerInfo[playerid][TemConta] < 1)
        return SendClientMessage(playerid, ERRO,"[ INFO ] Vocк nгo tem uma conta bancбria!");
    if(isnull(params)
        return SendClientMessage(playerid,ERRO,"Forma correta: /depositar [quantia]");
    if(strval(params) > GetPlayerMoney(playerid))
        return SendClientMessage(playerid,ERRO,"[ INFO ] Vocк nгo tem dinheiro suficiente!");
    PlayerInfo[playerid][Saldo] = PlayerInfo[playerid][Saldo] + strval(params);
    GivePlayerMoney(playerid, -strval(params));
    format(msg,sizeof(msg),"Vocк depositou uma quantia de R$ %d, seu saldo atual й de R$ %d",strval(params),PlayerInfo[playerid][Saldo]);
    SendClientMessage(playerid,VERDEESCURO,msg);
    return true;
}
Reply
#5

PHP код:
CMD:depositar(playeridparams[])
{
    new 
msg[128];
    if(!
IsPlayerInBanco(playerid)) return SendClientMessage(playerid,ERRO,"Vocк nгo estб em um banco!");
    
    if(
PlayerInfo[playerid][TemConta] < 1) return SendClientMessage(playeridERRO,"[ INFO ] Vocк nгo tem uma conta bancбria!");
//acho que aqui vai um else//    return SendClientMessage(playerid,ERRO,"Forma correta: /depositar [quantia]");

    
if(strval(params) > GetPlayerMoney(playerid))
    {
        return 
SendClientMessage(playerid,ERRO,"[ INFO ] Vocк nгo tem dinheiro suficiente!");
    }
    
PlayerInfo[playerid][Saldo] = PlayerInfo[playerid][Saldo] + strval(params);
    
GivePlayerMoney(playerid, -strval(params));
    
format(msg,sizeof(msg),"Vocк depositou uma quantia de R$ %d, seu saldo atual й de R$ %d",strval(params),PlayerInfo[playerid][Saldo]);
    
SendClientMessage(playerid,VERDEESCURO,msg);
    return 
true;

nao sei se vai resolve mais tenta voce nao acha melhor usar sscanf ?
Reply
#6

Q.I, mesmo erro novamente, vou tentar o do Stewie e dou EDIT aqui pra responder.
Reply
#7

Deu certo, sу faltou um " ) " no final de uma linha ali, vlw aos dois,
Reply
#8

De nada
Reply
#9

sim meu codigo estava errado eu achava que esse erro ero so quando tinha uma chave amais isso prova vivendo e aprendendo ...
Reply
#10

Quote:
Originally Posted by Q.I
Посмотреть сообщение
sim meu codigo estava errado eu achava que esse erro ero so quando tinha uma chave amais isso prova vivendo e aprendendo ...
Palavras profundas. Isso aн, meu caro.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)