IntToHex

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    habe im Moment etwas Probleme mit dem Laden von Farben. Mit Hilfe der Funktion HexToInt Speicher ich einen Hexcolorcode als Integer in meiner Datenbank ab, nur wie lade ich es wieder und erstelle damit eine Gangzone ? Ich wollte es genau andersrum mit der Funktion IntToHex nur bekomme ich immer Fehler:
    GangZoneShowForAll(gangzoneL,IntToHex(zInfo[zoneID][Color]));
    error 035: argument type mismatch (argument 2)
    Hier die Funktion IntToHex:
    stock IntToHex( number )
    {
    new
    m = 1,
    depth = 0
    ;


    while ( number >= m )
    {
    m = m*16;
    depth++;
    }
    depth--;


    new
    str[ 125 ]
    ;
    for ( new i = depth; i >= 0; i-- )
    {
    str[i] = ( number & 0x0F) + 0x30; // + (tmp > 9 ? 0x07 : 0x00)
    str[i] += (str[i] > '9') ? 0x07 : 0x00;
    number >>= 4;
    }
    str[ 8 ] = '\0';
    return str;
    }

  • Warum willst es denn umwandeln ?
    Die Zahl ist letztendlich die gleiche, egal ob in Dezimal oder Hexadezimal.
    Die Funktion IntToHex gibt dir sowieso den Hex-Wert als String aus. Damit kann die Funktion ( GangZoneShowForAll ) aber nichts anfangen. Mach die Funktion IntToHex weg.

  • Hättest du meinen Link ausprobiert wüsstest du, dass 0x000000FF die Zahl 255 in Dezimal ist. Das passt also schon mal.
    Es müsste jetzt aber ein Schwarze Zone sein. Wenn du die nicht siehst, muss es noch einen weiteren Fehler geben.
    Eventuell mal zeigen wie du Zonen erstellst und anzeigen möchtest.


    Probier trotzdem noch zusätzlich mal eine buntere Farbe aus:
    http://gucky.uni-muenster.de/cgi-bin/rgbtab


    In Bezug auf SA:MP ist das hier auch ganz nützlich:
    http://wiki.sa-mp.com/wiki/Colors_List

  • Ich habe ja nicht gesagt, dass 255 falsch ist, ich wollte damit nur sagen, dass wenigstens das Speichern geht :D
    Habe jetzt extra mal ein print beim Laden reingemacht aber die Konsole gibt nichts aus.
    mysql_function_query(dbhandle, "SELECT `hID`, `hPreis`,`hValue`,`hBesitzer`, `hInterior`, `hX`, `hY`, `hZ`,`Slots`,`forsale`,`locked`,`password` FROM `houses`", true, "OnGameModeLoadHouses", "", "");
    enum ZoneInfo
    {
    ID,
    Float: minX,
    Float: maxX,
    Float: minY,
    Float: maxY,
    Color
    }
    new zInfo[MAX_ZONES][ZoneInfo];
    public OnGameModeLoadZones() {
    new rows,fields;
    cache_get_data(rows, fields);
    new Float: minXL,Float: maxXL,Float: minYL,Float: maxYL, colorL;
    for( new i = 0; i != rows; i++) {
    minXL = cache_get_field_content_float(i,"minX",dbhandle);
    zInfo[i][minX] = minXL;
    maxXL = cache_get_field_content_float(i,"maxX",dbhandle);
    zInfo[i][maxX] = maxXL;
    minYL = cache_get_field_content_float(i,"minY",dbhandle);
    zInfo[i][minY] = minYL;
    maxYL = cache_get_field_content_float(i,"maxY",dbhandle);
    zInfo[i][maxY] = maxYL;
    colorL = cache_get_field_content_int(i,"Color",dbhandle);
    zInfo[i][Color] = colorL;
    CreateZoneOnMap(i);
    }
    printf("Loaded %i zones",rows);
    return 1;
    }
    stock CreateZoneOnMap(zoneID){
    new gangzoneL;
    gangzoneL = GangZoneCreate(zInfo[zoneID][minX],zInfo[zoneID][minY],zInfo[zoneID][maxX],zInfo[zoneID][maxY]);
    GangZoneShowForAll(gangzoneL,zInfo[zoneID][Color]);
    print("Zone created");
    return 1;
    }
    Und oben halt noch das forward ^^

  • Dann schalte MySQL Debug an oder schau direkt in die mysql log.


    SQL
    `hID`, `hPreis`,`hValue`,`hBesitzer`, `hInterior`, `hX`, `hY`, `hZ`,`Slots`,`forsale`,`locked`,`password`


    Spätestens bei password macht das SQL Kommando keinen Sinn mehr. Hast du überhaupt die o.g. spalten in der Tabelle `houses` ?
    Was hat OnGameModeLoadHouses mit OnGameModeLoadZones zu tun ? Wahrscheinlich gar nichts. :S

  • mysql_function_query(dbhandle,"SELECT `ID`,`mixX`,`maxX`,`minY`,`maxY`,`Color` FROM `Zones`",true,"OnGameModeLoadZones","","");
    zu:


    mysql_function_query(dbhandle,"SELECT `ID`,`minX`,`maxX`,`minY`,`maxY`,`Color` FROM `Zones`",true,"OnGameModeLoadZones","","");


    mixX gibt es nicht.