[ajuda]comando
#1

Neste comandos a seguir, se eu coloco o numero de caracteres pra 128 a mensagem nгo aparece completa.
Se eu coloco 256 nгo aparece mensagem nenhuma. ajuda aн

Код:
CMD:advertir(playerid, params[])
{
		new string[256], motivo[128], Jogador[MAX_PLAYER_NAME], Outro[MAX_PLAYER_NAME];
		if(Logado[playerid] == false) return SendClientMessage(playerid,-1,"{8000FF}[ERRO] {FFFFFF}Vocк nгo esta logado");
        if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,-1, "{8000FF}» {FFFFFF}Vocк nгo tem acesso a este comando. {8000FF}«");
        if(sscanf(params, "us", id, motivo)) return SendClientMessage(playerid, -1, "{8000FF}[USE] {FFFFFF}/Advertir [ID] [Motivo]");
        if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{8000FF}[ERRO] {FFFFFF}Jogador nгo conectado!");
        GetPlayerName(id, Outro, 23);
        GetPlayerName(playerid, Jogador, 23);
        if(PlayerInfo[id][Advertencias] != 3)
        {
        	format(string, sizeof(string), "{8000FF}[ ADVERTENCIA ] {FFFFFF}» O Admin {8000FF}%s {FFFFFF}Deu uma Advertencia a {8000FF}%s {FFFFFF}Pelo Motivo: {8000FF}%s\r\n", Jogador, Outro, motivo);
        	SendClientMessageToAll( -1, string);
        	format(string, sizeof(string), "{FFFFFF}Vocк foi Advertido pelo Admin {8000FF}%s {FFFFFF}Pelo motivo: {8000FF}%s. {FFFFFF}Se for advertido 3 vezes serб BANIDO Automaticamente", Jogador, motivo);
            SendClientMessage(id, -1, string);
            PlayerInfo[id][Advertencias] += 1;
	 	}
	 	if(PlayerInfo[id][Advertencias] == 3)
	 	{
		    format(string, sizeof(string), "{8000FF}[ ADVERTENCIA ] {FFFFFF}O Admin {8000FF}%s {FFFFFF}Deu a terceira Advertencia a {8000FF}%s {FFFFFF}Pelo Motivo: {8000FF}%s {FFFFFF}por isso ele foi Banido!", Jogador, Outro, motivo);
        	SendClientMessageToAll(-1, string);
 	       	format(string, sizeof(string), "{FFFFFF}Vocк foi Advertido pela terceira vez pelo Admin {8000FF}%s {FFFFFF}Pelo motivo: {8000FF}%s. por isso vocк foi banido!", Jogador, motivo);
            SendClientMessage(id, -1, string);
            Kick(id);
	 	}
	 	return 1;
}
Reply
#2

Bom, use uma string para cada ou aumente o tamanho da string. eu pessoalmente quando o comando й longo, uso vбrias strings para nгo haver este tipo de situaзгo e evitar pequenos erros que sгo bastante comuns.
Reply
#3

Usa dessa forma.
Reveja o tamanho das frases, porque estг ultrapassando o limite I/O do SA:MP

pawn Код:
CMD:advertir(playerid, params[])
{
    if(Logado[playerid] == false) return SendClientMessage(playerid,-1,"{8000FF}[ERRO] {FFFFFF}Vocк nгo esta logado");
    if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,-1, "{8000FF}» {FFFFFF}Vocк nгo tem acesso a este comando. {8000FF}«");

    new id, motivo[32];
    if(sscanf(params, "rs", id, motivo)) return SendClientMessage(playerid, -1, "{8000FF}[USE] {FFFFFF}/Advertir [ID] [Motivo]");

    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{8000FF}[ERRO] {FFFFFF}Jogador nгo conectado!");

    new Outro[MAX_PLAYER_NAME], Jogador[MAX_PLAYER_NAME];
    GetPlayerName(id, Outro, MAX_PLAYER_NAME);
    GetPlayerName(playerid, Jogador, MAX_PLAYER_NAME);

    if(PlayerInfo[id][Advertencias] == 3)
    {
        format(string, sizeof(string), "{8000FF}[ ADVERTENCIA ] {FFFFFF}O Admin {8000FF}%s {FFFFFF}Deu a terceira Advertencia a {8000FF}%s {FFFFFF}Pelo Motivo: {8000FF}%s {FFFFFF}por isso ele foi Banido!", Jogador, Outro, motivo);
        SendClientMessageToAll(-1, string);
        format(string, sizeof(string), "{FFFFFF}Vocк foi Advertido pela terceira vez pelo Admin {8000FF}%s {FFFFFF}Pelo motivo: {8000FF}%s. Por isso vocк foi banido!", Jogador, motivo);
        SendClientMessage(id, -1, string);
        Kick(id);
    }
    else
    {
        format(string, sizeof(string), "{8000FF}[ ADVERTENCIA ] {FFFFFF}» O Admin {8000FF}%s {FFFFFF}Deu uma Advertencia a {8000FF}%s {FFFFFF}Pelo Motivo: {8000FF}%s\r\n", Jogador, Outro, motivo);
        SendClientMessageToAll( -1, string);
        format(string, sizeof(string), "{FFFFFF}Vocк foi Advertido pelo Admin {8000FF}%s {FFFFFF}Pelo motivo: {8000FF}%s. {FFFFFF}Se for advertido 3 vezes serб BANIDO Automaticamente", Jogador, motivo);
        SendClientMessage(id, -1, string);
        PlayerInfo[id][Advertencias]++;
    }
    return 1;
}
Reply
#4

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Usa dessa forma.
Reveja o tamanho das frases, porque estг ultrapassando o limite I/O do SA:MP

pawn Код:
CMD:advertir(playerid, params[])
{
    if(Logado[playerid] == false) return SendClientMessage(playerid,-1,"{8000FF}[ERRO] {FFFFFF}Vocк nгo esta logado");
    if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,-1, "{8000FF}» {FFFFFF}Vocк nгo tem acesso a este comando. {8000FF}«");

    new id, motivo[32];
    if(sscanf(params, "rs", id, motivo)) return SendClientMessage(playerid, -1, "{8000FF}[USE] {FFFFFF}/Advertir [ID] [Motivo]");

    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{8000FF}[ERRO] {FFFFFF}Jogador nгo conectado!");

    new Outro[MAX_PLAYER_NAME], Jogador[MAX_PLAYER_NAME];
    GetPlayerName(id, Outro, MAX_PLAYER_NAME);
    GetPlayerName(playerid, Jogador, MAX_PLAYER_NAME);

    if(PlayerInfo[id][Advertencias] == 3)
    {
        format(string, sizeof(string), "{8000FF}[ ADVERTENCIA ] {FFFFFF}O Admin {8000FF}%s {FFFFFF}Deu a terceira Advertencia a {8000FF}%s {FFFFFF}Pelo Motivo: {8000FF}%s {FFFFFF}por isso ele foi Banido!", Jogador, Outro, motivo);
        SendClientMessageToAll(-1, string);
        format(string, sizeof(string), "{FFFFFF}Vocк foi Advertido pela terceira vez pelo Admin {8000FF}%s {FFFFFF}Pelo motivo: {8000FF}%s. Por isso vocк foi banido!", Jogador, motivo);
        SendClientMessage(id, -1, string);
        Kick(id);
    }
    else
    {
        format(string, sizeof(string), "{8000FF}[ ADVERTENCIA ] {FFFFFF}» O Admin {8000FF}%s {FFFFFF}Deu uma Advertencia a {8000FF}%s {FFFFFF}Pelo Motivo: {8000FF}%s\r\n", Jogador, Outro, motivo);
        SendClientMessageToAll( -1, string);
        format(string, sizeof(string), "{FFFFFF}Vocк foi Advertido pelo Admin {8000FF}%s {FFFFFF}Pelo motivo: {8000FF}%s. {FFFFFF}Se for advertido 3 vezes serб BANIDO Automaticamente", Jogador, motivo);
        SendClientMessage(id, -1, string);
        PlayerInfo[id][Advertencias]++;
    }
    return 1;
}
Pode me dizer qual й este limite?
Reply


Forum Jump:


Users browsing this thread: