Dini, GetPlayerColor Speicher und wieder aufrufen? Wie?

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
  • Ja wie es die Titel schon sagt habe es versucht aber er speichert die farbe:

    Code
    farbe=1


    es soll aber als

    Code
    farbe=0xfarbcode


    farbcode gespeichert werden.


    Wie mach ich das?


    if (strcmp("/afk", cmdtext, true, 4) == 0)
    {
    if(istafk[playerid] == 0)
    {
    istafk[playerid] = 1;
    new datei[256];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(datei,sizeof(datei),"%s.farbedatei",name);
    dini_Create(datei);
    pfarbe[playerid][farbe] = dini_IntSet(datei,"farbe",GetPlayerColor(playerid));
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string1, sizeof (string1), " ** %s ist nun AFK ! **", pName);
    TogglePlayerControllable(playerid, 0);
    SetPlayerColor(playerid,COLOR_WHITE);///////////////////////////////////////////////////hier die farbe
    SendClientMessageToAll(COLOR_LIGHTBLUE, string1);
    SendClientMessage(playerid, COLOR_GREEN, "Tippe /re um von AFK zurück zu kommen !");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "ERROR: Du bist schon AFK !");
    }
    return 1;
    }
    ////////////////////////// RE //////////////////////////////////////////////
    if (strcmp("/re", cmdtext, true, 3) == 0)
    {
    if(istafk[playerid] == 1)
    {
    istafk[playerid] = 0;
    new name[MAX_PLAYER_NAME], datei[256];
    GetPlayerName(playerid,name,sizeof(name));
    format(datei,sizeof(datei),"%s.farbedatei",name);
    SetPlayerColor(playerid,pfarbe[playerid][farbe]);
    dini_Remove(datei);
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string2, sizeof (string2), " ** %s ist zurück ! **", pName);
    format(s, sizeof (s), " Willkommen zurueck %s !", pName2);
    TogglePlayerControllable(playerid, 1);
    SendClientMessageToAll(COLOR_LIGHTBLUE, string2);
    GameTextForPlayer(playerid, s, 2500, 3);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "ERROR: Du bist schon von AFK zurück !");
    }
    return 1;
    }

  • Du musst ja folgendes beachten:
    Important note: GetPlayerColor will return nothing unless SetPlayerColor has been used!


    Nun setzt du (iwo im Script) die Farbe...

    // Je nach dem welche Farbe du setzt...
    dini_Set(datei,"COLOR","RED");
    // Und nun bei SetPlayerColor:
    SetPlayerColor(playerid, (!strcmp(dini_Get(datei,"COLOR"),"RED",true)) ? (0xAA3333AA) : (0x21DD00FF));


    Keine Ahnung ob es funktioniert, einfach testen....
    So würde ich es machen, denn man kann soweit ich weiß (und ich weiß es nicht) keinen String in einen hexa code umformen - wenn ja ist es ja einfach :)


    Kannst auch statt den Farben Integerwert verwenden, nur musst halt wissen welche Farbe das war :S