Brauche dringend Hilfe

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 Breadfish Com,
    ich brauche dringend hilfe mit Mysql...
    Hier die Errors die ich bekomme

    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(27) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(28) : error 021: symbol already defined: "OnPlayerRequestClass"
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(196) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(197) : error 021: symbol already defined: "mysql_GetInt"
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(197) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(226) : error 001: expected token: ";", but found "-identifier-"
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(277) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(277) : error 021: symbol already defined: "mysql_SetInt"
    C:\Dokumente und Einstellungen\Wayne\Eigene Dateien\Downloads\new.pwn(280) : warning 203: symbol is never used: "mysql_GetString"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    8 Errors.



    Die Zeilen wo ich die Errors bekomme:



    27: public OnPlayerRequestClass(playerid, classid)
    28: {
    196: mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName])
    197: stock mysql_GetString(Table[], Field[], Where[], Is[])
    226: DeletePVar(playerid,"Eingeloggt");
    277: mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    280:


    Bitte dringend um hilfe danke im vorraus ;)

  • // This is a comment


    // uncomment the line below if you want to write a filterscript


    //#define FILTERSCRIPT




    #include <a_samp>


    #include <a_mysql>


    #define SQL_HOST "127.0.0.1"


    #define SQL_USER "root"


    #define SQL_PASS ""


    #define SQL_DATA "samp_db"


    #define DIALOG_REGISTER (1)


    #define DIALOG_LOGIN (2)




    enum SpielerDaten


    {


    pName[MAX_PLAYER_NAME],


    pLevel,


    pGeld,


    pKills,


    pTode,


    Float:pHealth


    }


    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    public OnGameModeInit()


    Connect_To_Database();


    public OnPlayerRequestClass(playerid, classid)


    public OnPlayerRequestClass(playerid, classid)


    {


    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;


    }


    stock mysql_CheckAccount(playerid)


    {


    new Query[128],Name[MAX_PLAYER_NAME];


    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);


    mysql_real_escape_string(Name, Name);


    format(Query, sizeof(Query), "SELECT * FROM accounts WHERE Name = '%s'", Name);


    mysql_query(Query);


    mysql_store_result();


    return mysql_num_rows();


    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])


    {


    switch(dialogid)


    {


    case DIALOG_REGISTER:


    {


    if(response)


    {


    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde


    {


    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das
    angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit
    einem Passwort:","Register","Abbrechen");


    return 1;


    }


    else


    {


    CreateAccount(playerid, inputtext); //Account wird erstellt


    SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt,
    damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem
    Passwort gefragt zu werden.


    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen


    return 1;


    }


    }


    else


    {


    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.


    }


    }


    case DIALOG_LOGIN:


    {


    if(response)


    {


    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde


    {


    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das
    Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen
    Passwort ein:","Login","Abbrechen");


    return 1;


    }


    else


    {


    new SpielerName[MAX_PLAYER_NAME];


    GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);


    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir
    holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem
    angegebenen passwort.


    {


    SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter
    übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin
    auswahl benutzen können.


    LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden
    seine Daten aus der Datenbank geholt und in variablen gespeichert um
    diese im Skript zu verwenden.


    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen


    return 1;


    }


    else


    {


    //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.


    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das
    war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen
    Passwort ein:","Login","Abbrechen");


    return 1;


    }


    }


    }


    else


    {


    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.


    }


    }


    }


    return 1;


    }


    stock Connect_To_Database()


    {


    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS); //Wir versuchen
    mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL
    Server zu verbinden.


    if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.


    {


    //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.


    print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");


    return true;


    }


    else


    {


    //Falls nicht wird erneut versucht eine Verbindung aufzubauen.


    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");


    print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");


    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);


    if(mysql_ping() == 1)


    {


    print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");


    return true;


    }


    else


    {


    //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.


    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");


    print("<-| [MYSQL] Der Server wird nun beendet!");


    SendRconCommand("exit");


    return true;


    }


    }


    }
    stock CreateAccount(playerid, pass[])


    {


    new query[256],Name[MAX_PLAYER_NAME];


    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);


    mysql_real_escape_string(Name,Name);


    mysql_real_escape_string(pass,pass);


    format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', '%s')", Name, pass);


    mysql_query(query);


    return true;


    }


    stock mysql_ReturnPasswort(Name[])


    {


    new query[130], Get[130];


    mysql_real_escape_string(Name, Name);


    format(query, 128, "SELECT passwort FROM accounts WHERE Name = '%s'", Name);


    mysql_query(query);


    mysql_store_result();


    mysql_fetch_row(Get);


    mysql_free_result();


    return Get;


    }


    stock LoadPlayer(playerid)


    {


    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir
    fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist
    (nur zur sicherhheit)


    {


    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable SpielerInfo[playerid][pName]


    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level",
    "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der
    unter "Level" eingetragen ist und Speichern ihn in unserer Variable.


    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name",
    SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld"
    eingetragen ist und Speichern ihn in unserer Variable.


    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills",
    "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der
    unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.


    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name",
    SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode"
    eingetragen ist und Speichern ihn in unserer Variable.


    }


    return 1;


    }


    stock mysql_GetInt(Table[], Field[], Where[], Is[])


    {


    new query[128];


    mysql_real_escape_string(Table, Table);


    mysql_real_escape_string(Field, Field);


    mysql_real_escape_string(Where, Where);


    mysql_real_escape_string(Is, Is);


    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);


    mysql_query(query);


    mysql_store_result();


    new sqlint = mysql_fetch_int();


    mysql_free_result();


    return sqlint;


    }


    mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName])


    stock mysql_GetString(Table[], Field[], Where[], Is[])


    {


    new query[128], Get[128];


    mysql_real_escape_string(Table, Table);


    mysql_real_escape_string(Field, Field);


    mysql_real_escape_string(Where, Where);


    mysql_real_escape_string(Is, Is);


    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);


    mysql_query(query);


    mysql_store_result();


    mysql_fetch_row(Get);


    return Get;


    }


    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])


    {


    new query[128], Float:sqlfloat;


    mysql_real_escape_string(Table, Table);


    mysql_real_escape_string(Field, Field);


    mysql_real_escape_string(Where, Where);


    mysql_real_escape_string(Is, Is);


    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);


    mysql_query(query);


    mysql_store_result();


    mysql_fetch_float(sqlfloat);


    mysql_free_result();


    return sqlfloat;


    }


    public OnPlayerDisconnect(playerid, reason)


    SavePlayer(playerid)


    DeletePVar(playerid,"Eingeloggt");


    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]);


    }


    }


    return 1;


    }


    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])


    {


    new query[128];


    mysql_real_escape_string(Table, Table);


    mysql_real_escape_string(Field, Field);


    mysql_real_escape_string(Where, Where);


    mysql_real_escape_string(Where2, Where2);


    format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);


    mysql_query(query);


    return true;


    }


    stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])


    {


    new query[128];


    mysql_real_escape_string(Table, Table);


    mysql_real_escape_string(Field, Field);


    mysql_real_escape_string(To, To);


    mysql_real_escape_string(Where, Where);


    mysql_real_escape_string(Where2, Where2);


    format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);


    mysql_query(query);


    return true;


    }


    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])


    {


    new query[128];


    mysql_real_escape_string(Table, Table);


    mysql_real_escape_string(Field, Field);


    mysql_real_escape_string(Where, Where);


    mysql_real_escape_string(Where2, Where2);


    format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);


    mysql_query(query);


    return true;


    }


    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);