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
  • Hallo Zusammen,


    Ich wollte das auch mal Austesten mit den Mysql nur leider bekomme ich im Script selber 3 Errors.
    Aber sonst ist es eine Super Anleitung.


    Hier einmal der Error:
    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(103) : error 021: symbol already defined: "SetPlayerPos"
    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(106) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(118) : error 001: expected token: ";", but found "-identifier-"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.


    1Error in der Zeile 103:
    public OnPlayerRequestClass(playerid, classid)
    {
    //RegisterSystem
    if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen.
    {
    if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
    }
    else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    }
    return 1;
    }
    //
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);//Zeile 103
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }


    2 Error ist der gleiche Code wie oben.


    3 Error in der Zeile 118



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


    Ich hoffe mir kann da jemand weiter Helfen,weil ich selber finde die Fehler nicht.
    Kann auch sein das ich Blind bin oder so.


    Lieben Gruß


    Lebe dein Leben so wie du bist und nicht wie du sein sollst. Nur dann ist dein Leben lebenswert.
    Ich bin wie ich bin. Die einen kennen mich, die anderen können mich!!!


  • Am besten immer den Code richtig einrücken, dann fällt sowas auch meist direkt auf.
    Zum 1.:
    public OnPlayerRequestClass(playerid, classid)
    {
    //RegisterSystem
    if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen.
    {
    if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
    }
    else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    }
    return 1;
    }
    //
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);//Zeile 103
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }
    SetPlayerPos usw steht ausserhalb des Callbacks, deshalb der Fehler.


    zum 2.:
    Hinter SavePlayer fehtl das Semikolon

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Nein SetPlayerPos steht Richtig.
    Ist es den Richtig das 2 Mal Return dort drinnen ist oder ist es Falsch?!



    Lebe dein Leben so wie du bist und nicht wie du sein sollst. Nur dann ist dein Leben lebenswert.
    Ich bin wie ich bin. Die einen kennen mich, die anderen können mich!!!


  • SetPlayerPos etc kann nicht richtig sein, denn wie Maddin schon sagte, steht es außerhalb des Callbacks.


    YAY 1881. Post :D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • nice tutorial 9/10 aber kriege immer diese errors



    C:\Dokumente und Einstellungen\Celal\Desktop\GTA MTA SAMP\gamemodes\MySQL-Skript.pwn(47) : error 017: undefined symbol "GetPVarInt"
    C:\Dokumente und Einstellungen\Celal\Desktop\GTA MTA SAMP\gamemodes\MySQL-Skript.pwn(73) : error 017: undefined symbol "DeletePVar"
    C:\Dokumente und Einstellungen\Celal\Desktop\GTA MTA SAMP\gamemodes\MySQL-Skript.pwn(253) : error 017: undefined symbol "SetPVarInt"
    C:\Dokumente und Einstellungen\Celal\Desktop\GTA MTA SAMP\gamemodes\MySQL-Skript.pwn(278) : error 017: undefined symbol "SetPVarInt"
    C:\Dokumente und Einstellungen\Celal\Desktop\GTA MTA SAMP\gamemodes\MySQL-Skript.pwn(380) : error 017: undefined symbol "GetPVarInt"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.

  • So jetzt habe ich das mal Richtig gemacht,aber denoch erhalte ich 4 Errors.
    Die Error´s habe ich immer am ende der Zeile Geschrieben.



    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    }
    //RegisterSystem
    if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen. //1Error
    {
    if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren. //2Error
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
    }
    else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen. //3Error
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    }
    return 1;//4Error
    }
    //


    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(89) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(91) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(97) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Sven\Desktop\[TSoL]Server\gamemodes\tsol.pwn(104) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    4 Errors.


    Lebe dein Leben so wie du bist und nicht wie du sein sollst. Nur dann ist dein Leben lebenswert.
    Ich bin wie ich bin. Die einen kennen mich, die anderen können mich!!!


  • Ich habe mir jetzt mal die Zeit genommen mir dein "Tutorial" durchzulesen und muss sagen, es ist echt gut geworden, wobei sich einige schon bei dem "2 Schritt" Fragen stellen, weil sie nicht wissen wozu sie es auf dem Rechner brauchen (XAMPP) ist gemeint ;).


    Nunja, ich finde es auch gut erklärt, wie man es alles macht, abgesehn davon verwende ich es auch so ^^ also zwar nichts neues für mich, dennoch sehr hilfreich, wenn man so eine kleine Einführung über MySQL bekommen.



  • @Tukami_Chan:
    Ich zitiere mich einfach mal selbst.

    Am besten immer den Code richtig einrücken, dann fällt sowas auch meist direkt auf.


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    }//<----
    //Da schliesst du die klammer von OnPlayerRequestClass wieder, weshalb alles nachfolgende ausserhalb des Callbacks liegt.
    if(GetPVarInt(playerid,"Eingeloggt") == 0)
    {
    if(mysql_CheckAccount(playerid) == 0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    }
    return 1;
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Kann es sein das man keinen Werd unter -1 auslesen lassen kann damit ?
    also wenn man Bargeld im Minus hat dann speichert er es. aber kann es nicht auslesen sprich es wird auf -1 Gesetzt.


    z.B. ich Logge mich ein. Werde eingespert und habe dadurch -5000$ auf der hand. loge mich aus und loge mich neu ein und habe nur noch -1$ auf der hand.

  • Hey leute,


    habe ein kleines Problemchen, und zwar crashed mein Compiler wenn ich meinen GameMode mit Mysql kompilieren will , bekomme keinen error wieso oder weshalb. Hab jetzt nicht alle 16 seiten durchgelesen ob jmd schon dieses Problem hatte wenn ja sorry fürs erneute fragen.



    Hoffe jemand kann helfen



    Mfg ExCluSiv3

  • Hey,
    Ich habe eine Frage:
    Ich möchte die Fraktions Autos per mysql laden lassen.
    Jetzt hab ich etwas versucht was aber nicht klappt da die Autos nicht geladen werden.


    enum FrakCars
    {
    Fraktion,
    Model,
    Float:x,
    Float:y,
    Float:z,
    Float:r,
    Color
    }
    new FrakCarInfo[FrakCars];


    public OnGameModeInit()
    {
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1244.2217,-2028.5085,59.6781, 90.000, 0, 0, 0, 0, 0, 0);
    Connect_To_Database();
    LoadFrakcars();
    AddStaticVehicleEx(FrakCarInfo[Model], FrakCarInfo[x], FrakCarInfo[y], FrakCarInfo[z], FrakCarInfo[r], FrakCarInfo[Color], FrakCarInfo[Color], -1);
    return 1;
    }


    public LoadFrakcars()
    {
    FrakCarInfo[Model] = mysql_GetInt("vehicles", "Model", "Fraktion", "1");
    FrakCarInfo[x] = mysql_GetFloat("vehicles", "x", "Fraktion", "1");
    FrakCarInfo[y] = mysql_GetFloat("vehicles", "y", "Fraktion", "1");
    FrakCarInfo[z] = mysql_GetFloat("vehicles", "z", "Fraktion", "1");
    FrakCarInfo[r] = mysql_GetFloat("Vehicles", "r", "Fraktion", "1");
    FrakCarInfo[Color] = mysql_GetInt("vehicles", "Color", "Fraktion", "1");
    return 1;
    }


    Die MySQL Tabelle:

    Pls Help
    Thx im Vorraus!
    MfG Ber912


    //edit Es steht wenn ich den Server starte, dass das Car da ist... Aber es erscheint nicht im game
    //edit2 Enum Hinzugefügt
    //edit3 Fehler berichtigt

    2 Mal editiert, zuletzt von Ber912 ()

  • Hallo !


    Ich bin ganz neu in der Scripting Szene, habe aber auch schon einige Sachen mit Pawn gemacht...


    Wenn ich jetzt die Pastebin von dir nehme... da ich genau die selben Fehler auch habe wenn ich das alles abschreibe,
    würde ich jetzt gerne wissen was ich falsch gemacht habe...


    Was müsste ich verändern ?



    Vielen Dank für die Hilfe schonmal im vorraus


    Asmol

  • @ Asmol: Das heißt die Texteinrückung ist verkehrt, du musst den Text richtig einrücken das die Warnung verschwinden, oder du setzt oben ins Script: #pragma tabsize 0 (NICHT zu empfehlen !)


    @ Anonymous: Die Meldung heißt du hast kein Zugriff auf die Datenbank "datenbank". Aber da ist auch kein Username angegeben, wie verbindest du dich mit Navicat zum Mysql Server :O?


    Gruß Markus