Limite no chat /a
#1

Bem tenho esse comando /a que й um chat para admins, mas a mensagem estб muito limitada e jб tentei alterar tamanhos de strings e isso e nada...
Код:
CMD:a(playerid, params[])
{
        new texto1[128];
        new nome1[MAX_PLAYER_NAME];
        new Str[128];
        if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD2, NOTADMIN);
        if(adminstatus[playerid] == 1) return SendClientMessage(playerid, COR_BORDO, "Vocк nгo estб em modo admin, use /trabalhar.");
        if(sscanf(params, "s",texto1)) return SendClientMessage(playerid,-1,"Uso correto: /a [Texto]");
        for(new i = 0; i < MAX_PLAYERS; i++)
		{
		     new adm[64];
             switch(PlayerInfo[i][pAdmin])
             {
                case 1: adm = "Nнvel 1";
                case 2: adm = "Nнvel 2";
                case 3: adm = "Nнvel 3";
                case 4: adm = "Nнvel 4";
                case 1337: adm = "Master";
                case 99999: adm = "GOD";
             }
             if(PlayerInfo[i][pAdmin] > 0){
	         GetPlayerName(playerid,nome1,sizeof(nome1));
		     format(Str, sizeof(Str), "*[%s] %s: {FFFFFF}%s", adm, nome1, texto1);
			 SendClientMessage(i, 0x33AA33AA, Str);
		     }
		}
		return 1;
}
Agradeзo se me puderem ajudar (:
Reply
#2

Limites:
Entrada de texto: 128 Chars
Saida de Texto: 144 Chars


Vocк pode aumentar o Str[128] para [144],
caso ainda nгo seja o suficiente, utilize o plugin SendLongMessage
Reply
#3

Код:
CMD:a(playerid,params[])
{
    new adminstring[128];
if(adminstatus[playerid] == 1) return SendClientMessage(playerid, COR_BORDO, "Vocк nгo estб em modo admin, use /trabalhar.");
    if(pInfo[playerid][pAdmin] >= 1)
    {
        if(!strlen(params))
        {
            SendClientMessage(playerid, -1, ""chat" /a [message]");
            return 1;
        }
        format(adminstring, sizeof(adminstring), ""COR_BORDO"[Admin Chat] %s[%d]: %s",PlayerName(playerid), playerid, params);
        SendMessageToAllAdmins(adminstring, -1);
    }
    else {
        SendClientMessage(playerid,-1,"*"COR_BORDO" You do not have the right admin permissions for this command!");
    }
    return 1;
}
final

Код:
stock SendMessageToAllAdmins(message[], color)
{
	foreach(Player, i)
	{
		if(pInfo[i][pAdmin] >= 1 || IsPlayerAdmin(i))
		{
	 	    SendClientMessage(i, color, message);
	 	}
 	}
	return 1;
}
Reply
#4

Aumentei as strings para 144, fiz o que o meck falou mas nгo funcionou.

Mas vi esse erro no server.log

Код:
Strings without a length are deprecated, please add a destination size.
Pesquisei no ****** e achei https://sampforum.blast.hk/showthread.php?tid=608813

Ai mudei if(sscanf(params, "s",texto1)) para if(sscanf(params, "s[144]",texto1))

E ta funcionando, obrigado (:
Reply
#5

ja tive problema com isso. й que quando o sscanf verifica se tem algum texto, ele tem que saber se apуs o comando tem uma string, e para funcionar corretamente ele detecta qnts algarismos tem nessa string e manda para o resto do cуdigo: defina(s[144]<numero de algarismos)
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)