convertir string en color
#1

Buenas, queria pedirles ayuda en este caso para ver como puedo convertir un string a color, lo que estoy tratando de hacer es almacenar un color en una tabla mysql pero al hacerlo de la siguiente manera:

pawn Код:
stock GetGangColor(GangID)
{
    new gColor, Query[150]; format(Query, sizeof(Query), "SELECT ClanColor FROM "TABLA_CLANES" WHERE id = %d", GangID);
    mysql_query(mysql,Query);
    cache_get_field_content(0,"ClanColor",gColor); [COLOR="Red"]<- Linea del error[/COLOR]
    return gColor;
}
me tira el siguiente error:
pawn Код:
argument type mismatch (argument 3)
y si lo intento hacer con:
pawn Код:
cache_get_field_content_int
me tira mal el color en la base de datos, salen letras todas raras.

Nota en la base de datos tengo definida el campo como int y tambien probe con varchar, y ninguna me funciono, o para ser mas especifico: Almacenar el color de un clan en una tabla mysql para luego utilizar el dicho color
Reply
#2

PHP код:
/** BY DRACOBLUE
 *  Return the value of an hex-string
 *  @param string
 */
stock HexToInt(string[]) {
    if (
string[0]==0) return 0;
    new 
i;
    new 
cur=1;
    new 
res=0;
    for (
i=strlen(string);i>0;i--) {
        if (
string[i-1]<58res=res+cur*(string[i-1]-48); else res=res+cur*(string[i-1]-65+10);
        
cur=cur*16;
    }
    return 
res;

Reply
#3

me tira que HexToInt ya esta definido y no tengo otra stock igual
Reply
#4

Eso te sale por que la variable "gColor" debe ser de tipo string, no int.

https://sampwiki.blast.hk/wiki/MySQL/R33..._field_content
Reply
#5

un color hexadecimal lo puedes guardar como un int con %d y despues cargarlo de la misma forma que un int

Код:
gColor = cache_get_field_content_int(0,"ClanColor");
si no te funciona cargandolo asi es porque quiza estas guardando el color mal
Reply
#6

pawn Код:
// ** INCLUDES

#include <a_samp>
#include <sscanf>

// ** DEFINES

// *** GENERAL

#define HEX_VALUE "0xFFFFFFFF"
#define INTEGER_VALUE -1

// *** FUNCTIONS

#define strcpy(%0,%1,%2) strcat((%0[0] = '\0', %0), %1, %2)

// ** MAIN

main()
{
    print("Loaded \"color_hex_int.amx\"");

    printf(""#HEX_VALUE" to integer: %i", HexToInt(HEX_VALUE));
    printf(""#INTEGER_VALUE" to hexadecimal: %s", IntToHex(INTEGER_VALUE));

    new string[11], answer[12];
    strcpy(string, HEX_VALUE, 11);
    answer = (IsHexOrInt(string)) ? ("Hexadecimal") : ("Integer");
    printf("Is %s an integer or a hexadecimal value? %s", string, answer);

    format(string, sizeof(string), "%d", INTEGER_VALUE);
    answer = (IsHexOrInt(string)) ? ("Hexadecimal") : ("Integer");
    printf("Is %s an integer or a hexadecimal value? %s", string, answer);
}

// ** CALLBACKS

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

// ** FUNCTIONS

stock HexToInt(hex[])
{
    new int;
    sscanf(hex, "x", int);
    return int;
}

stock IntToHex(int)
{
    new string[7];
    format(string, sizeof(string), "%06x", int >>> 8);
    return string;
}

stock IsNumeric(const string[])
{
    return !sscanf(string, "{d}");
}

stock IsHexOrInt(hex[])
{
    if(IsNumeric(hex)) return false;
    return true;
}
@_Zume - "an hex"??
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)