[Ajuda] Bug no SA-MP
#1

Olб pessoal, estou com um probleminha aqui, meu Servidor de samp te com um problema aqui, quando eu digito um comando ele nгo funcionar.

Tipo assim:

/kickar [ID] [Motivo]

Ai eu Preencho os comandos...

/kickar 1 LALA.

Ai eu recebo a mensagem do modo correto de usar:
/kickar [ID] [Motivo]

Ou seja o comando nгo vai.

Alguns comandos sу que ta assim...

Um deles й :

pawn Код:
CMD:m(playerid,params[])
{
    if(CSMBR[playerid] == ROCAM || CSMBR[playerid] == ROTA)
    {
    new Float:x, Float:y, Float:z;
    new megafone[150], formato[150],PTiD , playername[MAX_PLAYER_NAME];
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid, playername, sizeof(playername));
    if(sscanf(params, "us[128]", PTiD, megafone)) return SendClientMessage(playerid, -1, "Uso: /m(egafone) [ID] [TEXTO]");
    if(!IsPlayerConnected(PTiD)) return SendClientMessage(playerid, -1, "[ERRO]: Jogador Nгo conectado!");
    if(!IsPlayerInRangeOfPoint(PTiD, 30.0,  x,y,z)) return SendClientMessage(playerid, -1, "O mesmo se encontra muito distante de vocк!.");
    format(formato, sizeof(formato), "O policial: %s falou no megafone: [ %s]", playername, megafone);
    SendClientMessage(PTiD, COR_ERRO, formato);
    }
    else
    {
    SendClientMessage(playerid, -1, "Vocк nгo й policial para utilizar esse comando");
    }
    return 1;
}
Reply
#2

Basta organizar um pouco o cуdigo e vocк vai compreender o que estб errado.

pawn Код:
CMD:m ( playerid, params [ ] )
{
    if ( CSMBR [ playerid ] != ROCAM || CSMBR [ playerid ] != ROTA )
        return SendClientMessage(playerid, -1, "Vocк nгo й policial para utilizar esse comando");

    new
        megafone [ 128 ],
        targetid;

    if ( sscanf ( params, "us[128]", targetid, megafone ) )
        return SendClientMessage ( playerid, -1, "Uso: /m(egafone) [ID] [TEXTO]" );

    if ( !IsPlayerConnected ( targetid ) || targetid == INVALID_PLAYER_ID )
        return SendClientMessage ( playerid, -1, "[ERRO]: Jogador Nгo conectado!" );

    new
        Float: flo_player_pos [ 3 ];

    GetPlayerPos ( playerid, flo_player_pos [ 0 ], flo_player_pos [ 1 ], flo_player_pos [ 2 ] );

    if ( !IsPlayerInRangeOfPoint ( targetid, 30.0, flo_player_pos [ 0 ], flo_player_pos [ 1 ], flo_player_pos [ 2 ] ) )
        return SendClientMessage ( playerid, -1, "O mesmo se encontra muito distante de vocк!." );

    new
        formato [ 128 ],
        playername [ MAX_PLAYER_NAME ];

    GetPlayerName ( playerid, playername, MAX_PLAYER_NAME );

    format ( formato, sizeof formato, "O policial: %s falou no megafone: [%s]", playername, megafone );
    SendClientMessage ( targetid, COR_ERRO, formato );

    return 1;
}
Reply
#3

Tente achar o erro no seu cуdigo, olhando oque o Los postou!

Se ainda sim nгo conseguir, aqui estб;

pawn Код:
CMD:m(playerid,params[])
{
    if(CSMBR[playerid] == ROCAM || CSMBR[playerid] == ROTA)
    {
        new Float:x, Float:y, Float:z;
        new megafone[150], formato[150],PTiD , playername[MAX_PLAYER_NAME];
        GetPlayerPos(playerid, x, y, z);
        GetPlayerName(playerid, playername, sizeof(playername));
        if(!sscanf(params, "us", PTiD, megafone)) return SendClientMessage(playerid, -1, "Uso: /m(egafone) [ID] [TEXTO]");
        if(!IsPlayerConnected(PTiD)) return SendClientMessage(playerid, -1, "[ERRO]: Jogador Nгo conectado!");
        if(!IsPlayerInRangeOfPoint(PTiD, 30.0,  x,y,z)) return SendClientMessage(playerid, -1, "O mesmo se encontra muito distante de vocк!.");
        format(formato, sizeof(formato), "O policial: %s falou no megafone: [ %s]", playername, megafone);
        SendClientMessage(PTiD, COR_ERRO, formato);
    }
    else
    {
        SendClientMessage(playerid, -1, "Vocк nгo й policial para utilizar esse comando");
    }
    return 1;
}
Reply
#4

Quote:
Originally Posted by AiaN
Посмотреть сообщение
Tente achar o erro no seu cуdigo, olhando oque o Los postou!

Se ainda sim nгo conseguir, aqui estб;

pawn Код:
CMD:m(playerid,params[])
{
    if(CSMBR[playerid] == ROCAM || CSMBR[playerid] == ROTA)
    {
        new Float:x, Float:y, Float:z;
        new megafone[150], formato[150],PTiD , playername[MAX_PLAYER_NAME];
        GetPlayerPos(playerid, x, y, z);
        GetPlayerName(playerid, playername, sizeof(playername));
        if(!sscanf(params, "us", PTiD, megafone)) return SendClientMessage(playerid, -1, "Uso: /m(egafone) [ID] [TEXTO]");
        if(!IsPlayerConnected(PTiD)) return SendClientMessage(playerid, -1, "[ERRO]: Jogador Nгo conectado!");
        if(!IsPlayerInRangeOfPoint(PTiD, 30.0,  x,y,z)) return SendClientMessage(playerid, -1, "O mesmo se encontra muito distante de vocк!.");
        format(formato, sizeof(formato), "O policial: %s falou no megafone: [ %s]", playername, megafone);
        SendClientMessage(PTiD, COR_ERRO, formato);
    }
    else
    {
        SendClientMessage(playerid, -1, "Vocк nгo й policial para utilizar esse comando");
    }
    return 1;
}
O que vocк fez estб errado, e vai retornar erros.

Recomendo dar uma lida no tуpico do sscanf.
Reply
#5

Procure nгo usar variбveis globais em comandos com sscanf.
Reply
#6

Quote:
Originally Posted by Delete_
Посмотреть сообщение
Procure nгo usar variбveis globais em comandos com sscanf.
Pois que?
Reply
#7

pawn Код:
CMD:m(playerid,params[])
{

    if(CSMBR[playerid] == ROCAM || CSMBR[playerid] == ROTA) return SendClientMesssage(playerid,-1,"VocК nгo й policial");
    {
        if(sscanf(params, "us[128]", PTiD, megafone)) return SendClientMessage(playerid, -1, "Uso: /m(egafone) [ID] [TEXTO]");
        if(!IsPlayerConnected(PTiD)) return SendClientMessage(playerid, -1, "[ERRO]: Jogador Nгo conectado!");
        if(!IsPlayerInRangeOfPoint(PTiD, 30.0,  x,y,z)) return SendClientMessage(playerid, -1, "O mesmo se encontra muito distante de vocк!.");
        new Float:x, Float:y, Float:z;
        new megafone[150], formato[150],PTiD , playername[MAX_PLAYER_NAME];
        GetPlayerPos(playerid, x, y, z);
        GetPlayerName(playerid, playername, sizeof(playername));
        format(formato, sizeof(formato), "O policial: %s falou no megafone: [ %s]", playername, megafone);
        SendClientMessage(PTiD, COR_ERRO, formato);
    }
    return 1;
}

Nгo sei se vai funfar... Por que fiz por aqui mesmol.
Reply
#8

Quote:
Originally Posted by Pedro Pawno
Посмотреть сообщение
Nгo sei se vai funfar... Por que fiz por aqui mesmol.
Eu na maioria das vezes faзo meus cуdigos de respostas a tуpicos pelo quick reply, й a coisa do que o Pawno, a diferenзa й que nгo tem syntax highlight e nem tab para fazer a identaзгo.

Se vocк tenta colocar uma desculpa de que seu cуdigo nгo vai funcionar por nгo fazer ele em um mйtodo comum (IDE, compiladores e etc...) й falta de auto-confianзa.

Confie no seu cуdigo, se estiver errado, edite e conserte, se nгo sabe, procure aprender e aprimorar seus conhecimentos cada vez mais, e assim, chegar cada vez mais longe...
Reply
#9

Quote:
Originally Posted by davi54723
Посмотреть сообщение
Tб... deram o cуdigo pronto e naum dizeram onde eu errei .-.'
Quote:
Originally Posted by Lуs
Посмотреть сообщение
Basta organizar um pouco o cуdigo e vocк vai compreender o que estб errado.
Leia.
Reply
#10

Quote:
Originally Posted by Pedro Pawno
Посмотреть сообщение
pawn Код:
CMD:m(playerid,params[])
{

    if(CSMBR[playerid] == ROCAM || CSMBR[playerid] == ROTA) return SendClientMesssage(playerid,-1,"VocК nгo й policial");
    {
        if(sscanf(params, "us[128]", PTiD, megafone)) return SendClientMessage(playerid, -1, "Uso: /m(egafone) [ID] [TEXTO]");
        if(!IsPlayerConnected(PTiD)) return SendClientMessage(playerid, -1, "[ERRO]: Jogador Nгo conectado!");
        if(!IsPlayerInRangeOfPoint(PTiD, 30.0,  x,y,z)) return SendClientMessage(playerid, -1, "O mesmo se encontra muito distante de vocк!.");
        new Float:x, Float:y, Float:z;
        new megafone[150], formato[150],PTiD , playername[MAX_PLAYER_NAME];
        GetPlayerPos(playerid, x, y, z);
        GetPlayerName(playerid, playername, sizeof(playername));
        format(formato, sizeof(formato), "O policial: %s falou no megafone: [ %s]", playername, megafone);
        SendClientMessage(PTiD, COR_ERRO, formato);
    }
    return 1;
}

Nгo sei se vai funfar... Por que fiz por aqui mesmol.
Nгo precisa abrir o comando se jб estб condicionado para der um return na if .-.'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)