Spieler-Skin wird nicht gespeichert

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
  • Guten Tag,


    mit dem Befehl /setskin kann man den Skin eines Spielers ändern.
    Jedoch wird der Skin nicht abgespeichert, das heißt, dass Ich beim Einloggen immernoch meinen alten Skin habe.
    Könnt ihr mir sagen, wo das Problem liegt?
    Vielen Dank



    ocmd:setskin(playerid, params[])
    {
    if(!IsPlayerAnAdmin(playerid, 2))return 0;
    new pID, string[128], skinID;
    if(sscanf(params, "ui", pID, skinID))return SendClientMessage(playerid, COLOR_GRAY, "Tippe: /setskin [Spieler-ID] [Skin-ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "FEHLER:"HTML_WHITE" Dieser Spieler ist Offline.");
    if(skinID < 0 || skinID > 311)return SendClientMessage(playerid, COLOR_RED2, "Die Skin-ID ist ungültig (verfügbare ID's: 0-311).");
    format(string, sizeof(string), "%s %s hat deinen Skin geändert.", GetAdminRang(playerid), GetSpielerName(playerid));
    SendClientMessage(pID, COLOR_WHITE, string);
    format(string, sizeof(string), "Du hast den Skin von %s geändert.", GetSpielerName(pID));
    SendClientMessage(playerid, COLOR_WHITE, string);
    SetPlayerSkin(pID, skinID);
    pInfo[pID][pSkin] = GetPlayerSkin(pID);
    return 1;
    }


    public SavePlayer(playerid)
    {
    if(IsPlayerLoggedIn(playerid))return 1;
    new query[256];
    format(query, sizeof(query), "UPDATE user SET Level='%i', Skin='%i' WHERE id='%i'",
    pInfo[playerid][pLevel], pInfo[playerid][pSkin], pInfo[playerid][pDatenBankID]);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }


    stock IsPlayerLoggedIn(playerid)
    {
    if(pInfo[playerid][pLogin] == 1)return 1;
    return 0;
    }

  • Ist der Spieler wirklich eingeloggt ?
    Also der bool auf true gesetzt ?


    Sonst speicher den Spieler mal nach der Abfrage



    ocmd:setskin(playerid, params[])
    {
    if(!IsPlayerAnAdmin(playerid, 2))return 0;
    new pID, string[128], skinID;
    if(sscanf(params, "ui", pID, skinID))return SendClientMessage(playerid, COLOR_GRAY, "Tippe: /setskin [Spieler-ID] [Skin-ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "FEHLER:"HTML_WHITE" Dieser Spieler ist Offline.");
    if(skinID < 0 || skinID > 311)return SendClientMessage(playerid, COLOR_RED2, "Die Skin-ID ist ungültig (verfügbare ID's: 0-311).");
    format(string, sizeof(string), "%s %s hat deinen Skin geändert.", GetAdminRang(playerid), GetSpielerName(playerid));
    SendClientMessage(pID, COLOR_WHITE, string);
    format(string, sizeof(string), "Du hast den Skin von %s geändert.", GetSpielerName(pID));
    SendClientMessage(playerid, COLOR_WHITE, string);
    SetPlayerSkin(pID, skinID);
    pInfo[pID][pSkin] = GetPlayerSkin(pID);
    SavePlayer(playerid);
    return 1;
    }