Beiträge von Whice

    Würde an deiner Stelle das Array mit allen Fahrzeugen füllen, so sparst du dir einen zweiten Parameter.


    Dein Ansatz ist ja so schon recht gut, jetzt kannst du prüfen welche ID zu dem Fahrzeug gehört, falls eine gefunden wird das Fahrzeug dann spawnen.

    Habe hier mal etwas Altes von mir rausgekramt.

    Externer Inhalt youtu.be
    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.

    Im MySQL-Log bekomme ich diesen Fehler.

    Na der Fehler ist ja recht selbsterklärend. Du versuchst grade ein name und passwort in die accounts Tabelle zu geben, dabei gibst du nicht an was das Feld ck sein soll, somit weiß die DB auch nicht, was jene einfügen soll und lässt es ganz.

    Somit müsstest du entweder die Abfrage ändern oder die Tabelle ändern und für ck eine Default Value angeben (Je nach Typ (int, varchar, etc.))

    So müsste es gehen wenn ich mich nicht irre :)

    Auch das wird schwierig, da in Zeile 8 Variablen erstellt werden, die allerdings nicht gefüllt werden (_fid, _rang, _fmodel, _color). Diese müssten, so wie es die Nachricht besagt auch in Zeile 5 abgefragt werden.


    Es wird kein Fahrzeug erstellt

    Dann wäre es sinnvoll, wenn du uns mal die Funktion zeigst, die das Fahrzeug erstellt. (createFactionVehicle)

    Weiterhin hast du einige Dopplungen in deinem Code: So liest du beispielsweise in Zeile 5 _varname aus, fragst die in Zeile 6 ab und liest sie nochmals in Zeile 8 aus.

    Zusätzlich würde es beispielsweise beim Löschen auch Sinn ergeben fracveh_VehID zurückzusetzen, da du diese zur Abfrage verwendest und sich ggf. dopplen könnte und so Fehler entstehen (DestroyVehicle auf ein falsches Fahrzeug aufrufen)

    Finde meinen SQL Fehler nicht, hoffe das mich dabei jemand unterstützen kann.


    Ziel der Prozedur:

    • Ausführung: CALL storage_transfer(item_id, amount, from_Storage, into_Storage)
    • amount von der Ausgangs-Storage (from_storage) abziehen
      • Falls dann 0 wäre - Eintrag komplett löschen
      • Falls über 0 wäre - Neuer Amount vom existierenden Amount abziehen
      • Falls amount mehr ist als exisitierender Amount - Prozedur abbrechen
    • amount in den neuen Storage (into_storage) hinzufügen
      • Falls Eintrag nicht exisitiert - Eintrag erstellen
      • Falls Eintrag exisiert - Neuer Amount vom existierenden Amount entfernen
    • Vorher zu Prüfen:
      • Ob übergebener amount < 0 oder > 99 - dann Prozedur abbrechen
      • Wenn nicht weitermachen

    // EDIT Fehler gefunden

    Was könnte das sein?

    Erstmal alles.

    Bei solchen Problemen würde ich anfangen die einzelnen Variablen zu debuggen und zu schauen, ob dies auch die richtigen Werte sind.

    Weiterhin macht es immer Sinn zu schauen, ob irgendwas nicht ausgeführt wird (Beispielsweise die mysql query)

    allerdings setzt in meinem Code er das Adminlevel trozdem obwohl der name nicht übereinstimmt

    Das liegt daran, dass wenn beide Strings übereinstimmen (also die ausgabe von strcmp 0 ist), du die Nachricht "Was glaubst du wer du bist" sendest.

    Es reicht nun also das ganze zu invertieren, also das ! vorne weg und hinten ran != 0



    //EDIT
    Hier dazu mal die Zeile, da die Nachricht etwas unübersichtlich ist

    Code
    // Wenn die Strings nicht übereinstimmen, also Rückgabe von strcmp nicht 0 ist, dann sende Fehlermessage
    if(strcmp(OWNER, name, true, strlen(OWNER)) != 0) return SendClientMessage(playerid,COLOR_RED,"Was glaubst du wer du bist!");