Bester Art zum Speichern von ACC und Fahrzeugen..

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 Leute,


    da das mit dem MYSQL nicht geklappt hat und ich den Server Fertigstellen muss, wollte ich fragen was die beste Art ist
    Accounts und Fahrzeuge zu speichern ohne das viele Bugs kommen wie bei dini denn das hat nur Probleme gemacht :/
    Wenns so ein Theard schon gibt möchte ich nicht das ihr das hier schließt, es könnte sich theoretisch viel geändert haben
    oder ich habe es nicht gefunden wenns das aktuellste ist


    mfg Dedi



    Einmal editiert, zuletzt von Tomi93 ()

  • danke Black vll. wird das doch was mit dem MYSQL wenn ich dann mal zeit habe setzt ich mich hin
    sollte ich Probleme haben weiß ich ja wenn ich jetzt evtl. fragen könnte :P
    das MYSQL Lite beinhaltet ja nur das wichtigste oder?

  • Alles was wichtig ist um eine Datenbank zu verwalten, wollte heute eig. nen TuT dazu schreiben aber irgendwie fang ich mit Pawn an krieg gleich wieder das kotzen xD
    war ja heute schon lang genug dran , wenn du fragen hast kannst du fragen , ich AW Morgen oder so , wenn nicht jemand anders vor mir da ist :D

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Wenn ich das richtig gelesen habe benutzt er eine "Datenbank" im Scriptfiles Ordner und nicht über MYSQL also PHPmyAdmin und so


    //edit mit em SQL lite komm ich nicht zurecht sry :(
    aber ich probiere da gerade an was rum und immer nach
    Get Name OK schmiert server ab warum?
    hier Code
    public OnPlayerLogin(playerid,password[]) // by Luk0r v1.0
    {
    MySQLCheckConnection();
    printf("Check OK");
    // new tmp2[256];
    new string2[256];
    printf("String OK");
    new playername2[MAX_PLAYER_NAME];
    printf("new name OK");
    GetPlayerName(playerid, playername2, sizeof(playername2));
    printf("Get Name OK");
    MySQLFetchAcctSingle(PlayerInfo[playerid][pSQLID], "Password", PlayerInfo[playerid][pKey]);
    printf("PW OK");
    if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
    {
    new Data[1024];
    new Field[64];
    new rcnt = 1;
    MySQLFetchAcctRecord(PlayerInfo[playerid][pSQLID], Data);
    samp_mysql_strtok(Field, "|", Data);
    while (samp_mysql_strtok(Field, "|", "")==1)
    {
    // The rcnt values here represent the order of the columns in the characters table, so don't mess with them
    // If you add a column to the table, just add a new line with a +1 rcnt to the block below
    // Start it at 3 to skip the first few records we don't need (id, player name, password)
    if (rcnt == 3) PlayerInfo[playerid][pLevel] = strval(Field);
    rcnt++;
    }
    samp_mysql_free_result();
    printf("Load OK");
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Falsches Passwort");
    //fclose(UserFile);
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
    printf("PW OK");
    return 1;
    }
    // Add an entry to the login log
    /* new ipaddress[16];
    GetPlayerIp(playerid,ipaddress,sizeof(ipaddress));
    MySQLAddLoginRecord(PlayerInfo[playerid][pSQLID], ipaddress);*/


    ClearChatbox(playerid, 8);
    printf("Chat OK");
    format(string2, sizeof(string2), "Willkommen auf [RoA] - Reallife on Air, %s.",playername2);
    SendClientMessage(playerid, COLOR_WHITE, string2);
    SendClientMessage(playerid, COLOR_WHITE, " ");
    printf("%s hat sich eingeloggt.",playername2);
    printf("All OK");
    return 1;
    }


    public MySQLFetchAcctSingle(sqlplayerid, sqlvalname[], sqlresult[])
    {
    new query[128];
    format(query, sizeof(query), "SELECT %s FROM players WHERE id = %d LIMIT 1", sqlvalname, sqlplayerid);
    samp_mysql_query(query);
    samp_mysql_store_result();
    if(samp_mysql_fetch_row(sqlresult)==1)
    {
    return 1;
    }
    return 0;
    }



    2 Mal editiert, zuletzt von Tomi93 ()

  • Hast ja schon gut vorgelegt mit Debug-Notes,mach das doch auch bei MySQLFetchAcctSingle.
    Versteh aber jetzt nicht wirklich was die Funktion bei dir für einen Zweck hat.


    Vielleicht hilft dir das hier ja weiter:
    stock gSQL_GetVar(column[],table[],where[],is[])
    {
    new
    sqlcmd[128+64]="Error (Cant connect to MYSQL Server)";
    if(!samp_mysql_ping()) {
    format(sqlcmd, sizeof(sqlcmd), "SELECT `%s` FROM `%s` WHERE `%s` = '%s' LIMIT 1;",column,table,where,is);
    samp_mysql_query(sqlcmd);
    samp_mysql_store_result();
    if (!samp_mysql_num_rows()) {
    format(sqlcmd,sizeof(sqlcmd),"Unable to find '%s'",where);
    //Log(sqlcmd);
    return sqlcmd;
    }
    samp_mysql_fetch_row(sqlcmd);
    return sqlcmd;
    }
    Log("Unable to find mysql server!");
    return sqlcmd;
    }
    Ist aus meinem MySQL Script und funktioniert.Die format() - Zeile sollte dir vielleicht weiter helfen.

  • gSQL_GetVar("Password","players","id",sqlplayerid);
    ist das so richtig? und wie mache ich das dann mit
    PlayerInfo[playerid][pKey]


    auserdem ist die Funktion aus dem Modern Topia Script und hatte mal funktioniert,
    aber habe dann mit MYSQL aufgegeben,
    aber jetzt will ich es schaffen aber jetzt funktioniert das nichtmehr :(

  • Ich glaube das war keine gute Idee dir die Funktion zu zeigen,da du nicht verstanden hast was du dabei abschauen solltest.


    Zitat

    auserdem ist die Funktion aus dem Modern Topia Script und hatte mal funktioniert,
    aber habe dann mit MYSQL aufgegeben,


    Dann kopier die doch nochmal neu in dein Script 0o.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • hab ich ja xD
    geht eben nicht ich glaube ich hatte was verändert
    und ich habe dein format() angeschaut bin aber nicht recht viel schlauer daraus geworden
    ich schaus mir mal genauer an
    //€ ich werd daraus nicht schlau was meinst du damit? meinst du das ich
    %s statt '%s'
    habe oder was?



    Einmal editiert, zuletzt von Tomi93 ()

  • Hast ja schon gut vorgelegt mit Debug-Notes,mach das doch auch bei MySQLFetchAcctSingle.
    Versteh aber jetzt nicht wirklich was die Funktion bei dir für einen Zweck hat.


    public MySQLFetchAcctSingle(sqlplayerid, sqlvalname[], sqlresult[])
    {
    new query[128];
    print("Debug 1");
    format(query, sizeof(query), "SELECT `%s` FROM `players` WHERE `id` = '%d' LIMIT 1;", sqlvalname, sqlplayerid);
    print("Debug 2");
    samp_mysql_query(query);
    print("Debug 3");
    samp_mysql_store_result();
    print("Debug 4");
    if(samp_mysql_fetch_row(sqlresult)==1)
    {
    return 1;
    }
    return 0;
    }
    //Edit:
    Ich hab selbe nicht mehr wirklich Ahnung, wie mysql genau funktioniert.Habe es mir nur angeschaut als ich für mich die Library gemacht habe :-O.

  • habs jetzt so gemacht
    public MySQLFetchAcctSingle(sqlplayerid, sqlvalname[], sqlresult[])
    {
    new query[128];
    print("Debug 1");
    format(query, sizeof(query), "SELECT `%s` FROM `players` WHERE `id` = '%d' LIMIT 1;", sqlvalname, sqlplayerid);
    print("Debug 2");
    samp_mysql_query(query);
    print("Debug 3");
    samp_mysql_store_result();
    print("Debug 4");
    if(samp_mysql_fetch_row(sqlresult)==1)
    {
    print("Debug 5");
    return 1;
    }
    return 0;
    }


    und das "Debug 5" kommt nicht mehr

  • if(samp_mysql_fetch_row(sqlresult)==1)

    Wieso denn auch sqlresult] ?
    Du müsstest es so machen:
    if(samp_mysql_fetch_row(query)==1)

    Am besten du schaust dir gleich die Dokumentation zum Plugin an.>> Hier


    //Edit:
    Vergiss es,hab es mir gerade im Sourecode von Moderntopia angeguckt.Da ist es ja auch mit sqlresult :\.Verstehe absolut nicht,was die Funktion letztendlich bringen soll.

    Einmal editiert, zuletzt von Goldkiller ()

  • ja ich auch nicht das ist ja das problem :(
    ich muss das aber i-wie hinbekommen X(
    Goldkiller
    wenn du dich mit MYSQL so gut auskennst kannst du mir dann die beste Variante zeigen um Accounts zu speichern?
    wenn ja ist es mit der Variante auch möglich Fahrzeuge, Häuser etc. zu speichern?



    Einmal editiert, zuletzt von Tomi93 ()

  • Zitat

    Ich hab selbe nicht mehr wirklich Ahnung, wie mysql genau funktioniert.Habe es mir nur angeschaut als ich für mich die Library gemacht habe :-O.


    Die beste ist relativ.Ich benutzte kein mysql,SII reicht völlig aus.Benutzt die Forumsuche,da findest du was zu SII.