MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)

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
  • Ich habe Komische Errors obwohl ich alles genauso wie im Tutorial gemacht hab.



    Bitte Helfen,


    Mfg

  • Mir ist gerade aufgefallen das du bei SavePlayer(playerid) das Semikolon vergessen hast :)



    //BTT


    Echt schönes Tutorial, ich hätte mal eine Frage. Kann ich irgendwie beim Registrieren das Alter abfragen, also das der Spieler zbs. 27.11.1994 eingeben muss, und das dann halt das Alter 17 abgespeichert wird. Und auch Automatisch am 27.11.1994 auf 18 Jahre steigt. :?:


    //Edit


    Am besten das beides Gespeichert wird Geburtsdatum und Alter.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Hy Leute,


    hab nach, ka wieviel Monaten mal wieder mein Samp-Script rausgekramt. Natürlich wollt ich den Server aktualisieren. Hatte den damals auf 0.3c geschrieben.


    Hat früher wunderbar funktioniert. Habe aus dem Tutorial den Umgang mit MySql gelernt und wendete es auch so an. Nun hab ich wie gesagt, alles aktualisiert und bekomme seltsamer weise
    folgende Fehlermeldungen:



    also quasi alles, was auf die "Stocks" verweist, scheint undefiniert zu sein.... Hat sich diesbezüglich was geändert, als es im Tut gezeigt wird?

  • Wenn Du dir das Tutorial aufmerksam durchlesen würdest, könntest Du deine Lade- und Speicherfunktion höchstwahrscheinlich einfach umbauen. Zudem, es gibt ein paar Haussysteme, basierend auf MySQL. Dazu brauch die SuFu. Wie Du die konvertierst ist dein Bier, Du kannst dir ja ein kleines Programm schreiben, dass die alten Daten einliest und eine .sql erzeugt oder Du machst es von Hand.


    Tipp: Erweiterte Suche - nur im Showroom oder Tutorials als Suchort auswählen und dann nach Haus(system) suchen

  • Gutes Tutorial :thumbup:
    Jedoch habe ich nun die datei Database nicht :(
    Kann mir villeicht jemand diese Datei geben?
    DANKE :thumbup:

    Dieser Beitrag wurde bereits 763 mal editiert, zuletzt von »Anker.« (Vor einem Moment)


    "eingetragende Stand -Ins"


  • So ich wollt mal fragen da ihr euch alle sogut mit Mysql etc auskennt, was ich gerade Falsch mache.
    Ich versuche die Position des Spielers zu speichern der sich gerade ausloggt damit, wenn dieser sich wieder Einloggt das der auf der zuletzt gewesenden Position wieder gespawnt wird.
    Ich habe all dies nun Fertig gescriptet, aber da kommt auch schon das Problem...
    Der Pawn Compiler spuckt mal wieder ein paar Warnings aus, und ich verstehe nicht warum.. Aus meiner sicht habe ich alles richtig gemacht...
    Ich finde den Fehler einfach nicht deswegen wäre es nett wenn mir jemand schnell helfen könnte ;D
    (Hab gestern erst mit Mysql Scripting angefangen, habe darvor immer nur mit ini/txt gearbeitet)


    Hier mal ein Paar Script Zeilen wo die Codes sind + Warnungen:


    Fehler Code:
    D:\neue samp version d\gamemodes\TestMysql.pwn(512) : warning 213: tag mismatch
    D:\neue samp version d\gamemodes\TestMysql.pwn(513) : warning 213: tag mismatch
    D:\neue samp version d\gamemodes\TestMysql.pwn(514) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Warnings.

    Pawn Quell Codes:

    (Die Zeilen mit der PlayerInfo[playerid][pPosX] etc, sollen angeblich die Quelle der Warnings sein [laut Pawn])
    stock SafePos(playerid)
    {
    new Float:LogX, Float:LogY, Float:LogZ;
    GetPlayerPos(playerid, LogX, LogY, LogZ);
    SpielerInfo[playerid][pPosX] = LogX;
    SpielerInfo[playerid][pPosY] = LogY;
    SpielerInfo[playerid][pPosZ] = LogZ;
    return 1;
    }

    Zusätzliche Pawn Codes:

    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank.
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Wanteds", SpielerInfo[playerid][pWanteds], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Fraktion", SpielerInfo[playerid][pFraktion], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "AdminLevel", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "SupporterLevel", SpielerInfo[playerid][pSupporter], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PositionX", SpielerInfo[playerid][pPosX], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PositionY", SpielerInfo[playerid][pPosY], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PositionZ", SpielerInfo[playerid][pPosZ], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PremiumLevel", SpielerInfo[playerid][pPremium], "Name", SpielerInfo[playerid][pName]);

    }
    }
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
    SafePos(playerid);
    SavePlayer(playerid);
    DeletePVar(playerid,"Eingeloggt");
    return 1;
    }


    Ich hoffe ihr findet das Problem ^^

  • So solte es gehen und mach auch bei LoadPlayer das rein GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank.
    GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Wanteds", SpielerInfo[playerid][pWanteds], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Fraktion", SpielerInfo[playerid][pFraktion], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "AdminLevel", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "SupporterLevel", SpielerInfo[playerid][pSupporter], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PositionX", SpielerInfo[playerid][pPosX], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PositionY", SpielerInfo[playerid][pPosY], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PositionZ", SpielerInfo[playerid][pPosZ], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "PremiumLevel", SpielerInfo[playerid][pPremium], "Name", SpielerInfo[playerid][pName]);

    }
    }
    return 1;
    }

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint: