[Ayuda] Como evitar que puedan hablar con Colores
#1

Hola tengo un problema Alguien sabe como puedo Evitar que hablen en colores en el chat? por ejemplo asi: {{FFFFFF}FF0000}Hola, Yo quiero que no salgan los colores al hablar una foto de prueba: Alguien sabe como puedo hacer para que no puedan hacer eso?
Reply
#2

en OnPlayerText:

pawn Код:
if(strfind(text, "{{FFFFFF}", true) == 0)
    {
    SendClientMessage(playerid, 0xE60000FF, "Nose permite hablar en Color!");
    return 0;
    }
y me dices si te funca.
Reply
#3

Sigue Igual xD
Reply
#4

Proba con esta:

pawn Код:
text[strfind(text,"{{FFFFFF}")] = ' ';
Reply
#5

pawn Код:
C:\Users\****\Documents\****\****\gamemodes\****.pwn(2632) : warning 225: unreachable code
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.
Tira un Warning!

PD: Ahora no puedo hablar en el chat de Equipo y No puedo hablar en el Chat Normal
Reply
#6

Che ahora que me doy cuenta nose puede quitar esto ya q es normal de SAMP :S...
Reply
#7

No creo porque en otro servidor no se puede hacer eso Solo aparece un espacio pero no sale el color
Reply
#8

Con macro
#define ROJO "{Color}"
#define AZUL "{Color}"

pawn Код:
public OnPlayerText(playerid, text[])
{

  new str[256], name[MAX_PLAYER_NAME];
  GetPlayerName(playerid, name, sizeof(name));
  format(str, sizeof(str), ""ROJO"%s: "AZUL"%s", name, text);
  SendClientMessageToAll(playerid, -1, str);
return 0;
}

O


pawn Код:
public OnPlayerText(playerid, text[])
{

  new str[256], name[MAX_PLAYER_NAME];
  GetPlayerName(playerid, name, sizeof(name));
  format(str, sizeof(str), "{Color}%s: {Color}%s", name, text);
  SendClientMessageToAll(playerid, -1, str);
return 0;
}
Saludos.
Reply
#9

Intenta con esto... Es parecido a lo que usaba en mi server antes de pasar a 0.3d

pawn Код:
#define strcpy(%0,%1,%2) \
    strcat((%0[0] = '\0', %0), %1, %2)

public OnPlayerText(playerid, text[])
{
    new color, msg[128];
    strcpy(msg, text, sizeof(msg)); //Copia el texto a otra variable
    color = FindColourInStr(msg, sizeof(msg)) //Busca un color :P
    while(color != -1)
    {
        strdel(msg, color, color+7); //Quita el color
        color = FindColourInStr(msg, sizeof(msg)); //Busca otro color
    }
    //Ahora "msg" tiene el mensaje sin codigos de color
    #define text msg //Asi te evitas cambiar todos los "text" a "msg" :P
    //Lo que ya tenias en OnPlayerText aqui
    #undef text
    SendPlayerMessageToAll(playerid, msg); //Envia el mensaje con los colores removidos
    return 0; //Recuerda esto... Asн no se envia el mensaje que tiene los colores
}

stock FindColourInStr(string[], len)
{
    for(new i; i < len; i++)
    {
        if(string[i] == EOS) break;
        if(string[i] == 0x7B && i+7 < len)
        {
            new hex[7];
            strmid(hex, string, i+1, i+7);
            if(IsHex(hex) && strlen(hex) == 6 && string[i+7] == 0x7D)
            {
                return i;
            }
        }
    }
    return -1;
}

stock IsHex(str[]) //By ******
{
        new
                i,
                cur;
        if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X')) i = 2;
        while (str[i])
        {
                cur = str[i++];
                if ((cur < '0') || (cur > '9' && cur < 'A') || (cur > 'F' && cur < 'a') || (cur > 'f')) return 0;
        }
        return 1;
}
Reply
#10

Como lo puse es mas facil, y rapido.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)