Beiträge von Jeffry

    Hast du es so genutzt wie ich es dir geschickt habe ?

    1:1 genau so wie du es mir geschickt hast. Habe nur die Login-Daten für MySQL auf meine Daten angepasst. Ich habe den Ordner "Neues Script" verwendet.
    Deshalb würde ich behaupten, dass es eigentlich nicht am Code liegen kann.
    Und es ist ja auch nicht so, dass in der Datenbank 10000000 Einträge sind, sondern lediglich einer bzw. jetzt zwei.
    Ist schon komisch, dass es bei dir so langsam ist.


    Welche xampp Version hast du genommen ?

    v3.2.2


    Betriebssystem ist Windows 10 Home (10586.318) 64 Bit.

    Ich habe es nun ausprobiert, das Problem kann ich allerdings nicht nachvollziehen.
    Hier das Video, wie es bei mir ist:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Das ist meiner Meinung nach so, wie es sein soll, nicht?


    Ging es denn bei dir mit diesem Code, bevor du deinen Rechner neu aufgesetzt hast?

    Sehr interessant.
    Ich habe es so ausprobiert:
    format(speed_string,sizeof(speed_string),"~B~Fahrzeug: ~W~VehicleName[GetVehicleModel(vehicleid)-400]~n~~B~Km/h: ~W~final_speed_int km/h~n~~B~Treibstoff: ~W~Gas[vehicleid]l/GetGasMax(GetVehicleModel(vehicleid))l~n~~B~Tankart: ~W~str5~n~~B~GPS: ~W~LocationZone");
    Der Fehler war der gleiche wie bei dir (nicht verwirren lassen warum die Variablen IM String stehen, das habe ich nur gemacht, dass da was steht).


    Dann habe ich Stück für Stück den String kleiner gemacht (Text entfernt), bis es plötzlich ging.
    Dann habe ich Stück für Stück wieder alles eingefügt (nicht komplett, sondern Teil für Teil), dann ging es immernoch, und zwar komplett.
    Hier der Code der funktioniert:
    format(speed_string,sizeof(speed_string),"~B~Fahrzeug: ~W~VehicleName[GetVehicleModel(vehicleid)-400]~n~~B~Km/h: ~W~final_speed_int km/h~n~~B~Treibstoff: ~W~Gas[vehicleid]l/GetGasMax(GetVehicleModel(vehicleid))l~n~~B~Tankart: ~W~str5~n~~B~GPS: ~W~LocationZone");
    Ich kann da keinen Unterschied erkennen, aber er funktioniert. :wacko:


    Möglicherweise ist in dem ersten Code ein fehlerhaftes unsichtbares Zeichen (wird nicht dargestellt) drin.


    Versuche es daher mal so:
    format(speed_string,sizeof(speed_string),"~B~Fahrzeug: ~W~%s~n~~B~Km/h: ~W~%d km/h~n~~B~Treibstoff: ~W~%dl/%dl~n~~B~Tankart: ~W~%s~n~~B~GPS: ~W~%s", VehicleName[GetVehicleModel(vehicleid)-400],final_speed_int,Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),str5,LocationZone);



    Beweis, dass es funktioniert hat:

    Dann kannst du es so machen:


    stock GetVehicleRights(vehicleid)
    {
    switch(vehicleid)
    {
    //Hier kommt die Abfrage herein, welche Personen den
    //Kofferraum welcher Fahrzeuge benutzen dürfen.
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    case 1 .. 10: return 1; //Der Kofferraum von VehicleID 1 - 10 ist jetzt nur noch für Fraktion 1 verfügbar. //
    case 11 .. 24: return 2; //Der Kofferraum von VehicleID 11 - 24 ist jetzt nur noch für Fraktion 2 verfügbar. //
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }
    return -1;
    }


    Und die Abfrage:
    if(PlayerInfo[playerid][pTeam] != GetVehicleRights(GetClosestVehicle(playerid)))
    {
    return SendClientMessage(playerid,0xFF9900AA," Du hast keinen Schlüssel für dieses Fahrzeug.");
    }


    EDIT:
    @#Jugoslawija Sorry, da hatte sich ein "G" zu viel eingeschlichen.

    Ändere
    format(str,sizeof(str),"Hanfid: %i\nReif: %i g\nReifeprozess: %i % \nWasservorrat: %i %",hid,HanfInfo[hid][h_reif],HanfInfo[hid][h_reife],HanfInfo[hid][h_wasser]);
    zu
    format(str,sizeof(str),"Hanfid: %i\nReif: %i g\nReifeprozess: %i % \nWasservorrat: %i %",HanfInfo[i][h_ID], HanfInfo[i][h_reif],HanfInfo[i][h_reife],HanfInfo[i][h_wasser]);


    Und ändere
    new hid=HanfInfo[i][h_ID];
    zu
    new hid=i;


    Oder ändere alle
    [hid]
    zu
    [i]

    Ändere
    format(query,sizeof(query),"INSERT INTO hanf (drogenx,drogeny,drogenz,reife,ernte) VALUES ('%f','%f','%f','0','1') ",X,Y,Z);
    zu
    format(query,sizeof(query),"INSERT INTO hanf (id, drogenx,drogeny,drogenz,reife,ernte) VALUES (%d, '%f','%f','%f','0','1') ",oldID+1,X,Y,Z);


    Ändere dann, da danach nichts mehr folgt, das
    break;in einreturn 1;


    und füge nach der Schleife, also direkt vor dem zweiten return 1 das ein:
    format(query,sizeof(query),"INSERT INTO hanf (id, drogenx,drogeny,drogenz,reife,ernte) VALUES (%d, '%f','%f','%f','0','1') ",oldID+1,X,Y,Z);
    mysql_function_query(dbhandle,query,false,"","");
    Damit auch ein Eintrag erstellt wird, wenn keine leere Zwischenzeile gefunden wurde.

    Das Query kann genau so aussehen, da hier id als Angabe für die zu selektierende Spalte steht.
    Heißt genau dieses Query musst du ausführen, nichts daran ändern.

    Genau, so wie bei deinen anderen SELECT Queries im Code auch.


    Die Anzahl der Rows musst du wie gewohnt mit cache_get_data auslesen.

    1. Query:
    SELECT id FROM hanf;
    => mysql_function_query -> Dort eine Schleife durch die Anzahl der zurückgegebenen Rows machen und den Cache auslesen.


    new oldID, newID;
    for(new i = 0; i < rows; i++)
    {
    newID = cache_get_row_int(i, 0);
    if(newID > oldID + 1)
    {
    //2. Query: INSERT INTO hanf (id, etc...) VALUES (%d, etc...);
    break;
    }
    oldID = newID;
    }

    Nein, das geht so nicht.
    Du müsstest erst eine SELECT Abfrage machen, die die Tabelle ausliest, dann durchläufst du die Indizes und prüfst, wann ein Sprung kommt (von 2 auf 4 z.B.), sprich wann die momentane ID größer als die vorherige ID+1 ist.


    Dann machst du einen INSERT auf die vorherige ID+1.