Skin aus DB auslesen und dem Spieler geben.

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 Abend Breadfish Forum,
    Ich habe ein Problem, ich möchte auf meinem Server einen Anfangs-Skin (Ohne Skinauswahl) also einen automatisch gesetzten Skin beim ersten Einloggen.


    PS: Habe das Register & Login System gerade erst fertig gestellt. Mit Register / Login / Save / Reset etc....


    Damit ich testen konnte, ob es den Skin in die DB speichert, habe ich den Skin 79 ausgewählt bei...
    public OnPlayerSpawn(playerid)


    Habe ich den Befehl / den Code....
    SetPlayerSkin(playerid,79);



    eingebaut. Das System hat den Skin auch in der DB gespeichert. Jedoch wenn ich den Befehl entferne, und wieder auf den Server (nach einem Neustart) draufgehe, dann hab ich wieder der Standart CJ Skin...


    Ich habe auch eine Funktion, wo die Spielerdaten aus der DB ausgelesen werden, dort steht folgendes drin...
    public OnPasswordCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,db_handle);
    if(num_rows==1)
    { //PASSWORT RICHTIG
    pInfo[playerid][eingeloggt] = 1;
    pInfo[playerid][level] = cache_get_field_content_int(0,"Level",db_handle);
    SetPlayerSkin(playerid,pInfo[playerid][skin]);
    SetPlayerScore(playerid,pInfo[playerid][level]);
    pInfo[playerid][id] = cache_get_field_content_int(0,"ID",db_handle);
    SetPlayerMoney(playerid,cache_get_field_content_int(0,"Geld",db_handle));
    SpawnPlayer(playerid);
    }



    Aber der Skin wird beim Spawnen nicht gesetzt. Ich hab schon ein bisschen rumprobiert, dabei hab ich auch noch 2 andere Möglichkeiten versucht (leider erfolglos) Hier die 2 Sachen die ich noch versucht habe...


    pInfo[playerid][skin] = cache_get_field_content_int(0,"Skin",db_handle);
    SetPlayerSkin(playerid,pInfo[playerid][skin]=cache_get_field_content_int(0,"Skin",db_handle));
    SetPlayerSkin(playerid,pInfo[playerid][skin]);



    Ich weis nicht, was ich falsch gemacht habe, bzw was ich noch versuchen könnte. (Bin noch nicht so erfahren im Bereich Scripting)... Könnt ihr mir bitte helfen?
    Wieso der Code in einer Zeile angezeigt wird, weis ich nicht... Ausbesserungsversuch hat auch nicht funktioniert.

    2 Mal editiert, zuletzt von seegras ()

  • Beitrag von Kasakow ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Joni_Parker ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Kasakow ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von AirM4X ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Ich hab das jetzt so geschrieben...


    SetPlayerSkin(playerid,pInfo[playerid][skin]);



    Jetzt liest er den Skin aus der DB aus und setzt ihn auch ein... [Problem gelöst]


    Damit er den neuen Spielern automatisch den Skin "79" gibt, hab ich das darunter geschrieben...



    SetPlayerSkin(playerid,79);


    PS: Alles in OnPlayerSpawn




    Jetzt funktioniert alles.. Aber kann es sein, dass sich das irgendwann beißt, d.h. ob es irgendwann zu Fehlern kommen kann, wenn ich diese 2 Codes so untereinander stehen habe?

    • Offizieller Beitrag

    Das sind doch 2 Verschiende Sachen


    Spielerregistrierung mit Accounterstellung in der Datenbank und auf der anderen Seite dein Spielerlogin wo er die Daten aus der Datenbank ausliest


    Da kommts zu keinen Problemen, natürlich kannst du anstatt den Skin für neue Spieler via Script zu geben den Skin als Default Wert in der Datenbank angeben (find ich eleganter)


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
    • Offizieller Beitrag

    Das kannst du bspw. mit phpMyAdmin machen, einfach in deine Spielertabelle gehen, auf den Button "Struktur" gehen und dann bei "Standard" deine SkinID angeben



    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN