MySQL |Spielerdaten anders laden

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
  • Hallo Freunde,
    ich hätte ne Frage und zwar wie könnte man meinen stock zum laden vom Spieler Ressourcenschonender machen ?
    Zurzeit sieht das so aus und ich glaube nicht das dass gut ist.


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]));
    SetPlayerScore(playerid,mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]));
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdminlevel] = mysql_GetInt("accounts", "Adminlevel", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Perso] = mysql_GetInt("accounts", "Perso", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Autoschein] = mysql_GetInt("accounts", "Autoschein", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Waffenschein] = mysql_GetInt("accounts", "Waffenschein", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Motorradschein] = mysql_GetInt("accounts", "Motorradschein", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Angelschein] = mysql_GetInt("accounts", "Angelschein", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Reisepass] = mysql_GetInt("accounts", "Reisepass", "Name", SpielerInfo[playerid][pName]);
    // SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
    SetPlayerSkin(playerid,mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]));
    if(SpielerInfo[playerid][pBanned] == 1)
    {
    Kick(playerid);
    }
    }
    return 1;
    }

  • Du kannst im Endeffekt alles in einen Query packen, das würde die Sache ein wenig verbessern.
    mysql_query("SELECT * FROM `users` WHERE Name = '$s', SpielerInfo[playerid][pName]);


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Du kannst im Endeffekt alles in einen Query packen, das würde die Sache ein wenig verbessern.


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new AllInOne[1000],Query[400];
    strcat(AllInOne, "UPDATE `accounts` SET ");
    format(Query, sizeof(Query),"Adminlevel = '%i', Kills = '%i', Tode = '%i', Banned = '%i', Skin = '%i', Level = '%i', Geld = '%i',", SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pBanned], GetPlayerSkin(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid));
    strcat(AllInOne,Query);
    format(Query, sizeof(Query),"Perso = '%i', Autoschein = '%i', Waffenschein = '%i', Motorradschein = '%i', Angelschein = '%i'", SpielerInfo[playerid][Perso], SpielerInfo[playerid][Autoschein], SpielerInfo[playerid][Waffenschein], SpielerInfo[playerid][Motorradschein], SpielerInfo[playerid][Angelschein]);
    strcat(AllInOne,Query);
    format(Query, sizeof(Query),"WHERE Name = '%s'", SpielerInfo[playerid][pName]);
    strcat(AllInOne,Query);
    mysql_query(AllInOne);
    }
    }
    return 1;
    }


    So ca. `?