Du hast den Tag Text: bei der Variablendeklaration vergessen
Beiträge von Douq
-
-
SetTimerEx() kann global nicht verwendet werden, sondern nur innerhalb einer Funktion. textid existiert nirgends, sprich wurde nicht definiert. Das musst du eben mit dem Namen der Variable ändern, in welcher die textdrawID enthalten ist.
-
Wie lasse ich die Fahrzeuge jetzt laden?
public OnPlayerDisconnect(playerid, reason){ for(new i=0; i<sizeof(cInfo); i++) { if(cInfo[i][id_x]==0)continue; if(cInfo[i][besitzer]!=PlayerInfo[playerid][p_id])continue; new query[128]; format(query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]); } if(IsPlayerNPC(playerid)) return 1; aduty[playerid]=false; KillTimer(Payday[playerid]); SaveUserStats(playerid); return 1;}
Bin ziemlich neu im Gebiet MySQL und ich weiß nicht wie ich die Query ausführen soll
Das Tutorial von Jeffry kann dir da sicherlich behilflich sein:
[jTuT] Fraktions-Fahrzeug-System mit MySQL R39-5 -
Möchtest du es speichern oder in die Datenbank einpflegen? Weil durch den Query wird kein Datensatz aktualisiert, sondern ein neuer erstellt. Sonst nutze einfach mal den debug Modus und schau, welche Fehlermeldung dir zurückgegeben wird. Zusätzlich kannst du dir mal den Query per printf() ausgeben lassen und diesen manuell ausführen (bspw per phpMyAdmin).
-
Du hast ja auch noch nicht Punkt 1 berücksichtigt. Da fehlt im Query immer noch ein Hochkomma (').
-
Vergiss sämtliche Änderungen, die dir vorgeschlagen worden, folgendes ist dein Problem:
1.
Siehst du den Fehler? Du hast ein Hochkomma vergessen (habe es durch die Klammer ersetzt) Das muss hinzugefügt werden.2.
Codeformat(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f,'%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
Du möchtest 6 Spalten einem Wert zu weisen beim neuen Datensatz, übergibst aber nur 5 Werte? Innerhalb der Klammer VALUES() befinden sich nämlich nur 5 Werte statt 6.
Auch würde ich die Länge von 127+1 vom Query erhöhen, da kannst du schnell an dein Limit kommen.
-
Dein PlugIn und deine Include sind nicht kongruent. Öffne deine mySQL Include und schaue, welche Version das ist. Als nächsten Schritt musst du dann diese Version downloaden und das PlugIn ersetzen
-
Nutze nativechecker oder crashdetect, dann siehst du, welche Funktion(en) dir fehlt / fehlen
-
Ausgeben Würde ich es dann wie ich es oben beschrieben habe? fInfo[2][f_name]?
Beispielsweise, Ja.
-
cache_get_value_name* gibt bei Erfolg 1 und bei einem Fehler 0 zurück. Dadurch ergibt sich dein Fehler -> entferne die Zuweisung.
So wäre es richtig. Der Inhalt der Spalte wird per Referenz an die jeweilige Variable übergeben.
-
Ich bin mir nicht sicher, aber ich glaube das ist die Animation: "FAT","IDLE_tired"
-
Hallo,
probier mal als host 127.0.0.1, da localhost bei BlueGs PlugIn scheinbar Probleme bereitet. Ansonsten musst du Max Theorie überprüfen.
-
-
Scheinbar hast du dann eine andere Tabellenstruktur, als auf deinem PC. Der Fehler ist (wahrscheinlich) dadurch begründet, dass du die genannten Spalten als 'NOT NULL' definiert hast, sprich sie müssen einen Wert beinhalten. Da du aber scheinbar bei deinem Query bei diesen Spalten keinen Wert zu weist, erscheint dieser Fehler und der Query kann nicht erfolgreich ausgeführt bzw. der Datensatz nicht erstellt werden.
Du hast nun zwei Möglichkeiten:
- Erlauben, dass die genannten Spalten (siehe Fehler) NULL enthalten dürfen ODER
- du gibst einen default Wert an. Ein Default Wert ist ein Wert einer Spalte, den er automatisch erhält, wenn ein neuer Datensatz erstellt wird und kein anderer Wert durch den Query angegeben wird (um es einfach zu erklären).
-
Wenn du jetzt nur von Variablen ausgehst, kannst du diese per SetPVar* und GetPVar() untereinander austauschen. Ob es sinnig ist, ist eine andere Frage.
E: Und, falls das die nächste Frage sein sollte: Funktionen kannst du per CallRemoteFunction() aufrufen.
-
Was ist denn jetzt genau dein Problem? Ein Haus auszuwählen, deren ID zwischen 489-600 liegt? Dann kannst du es folgend machen:
random() gibt dir eine Zahl zwischen 0 - MAX-1 zurück, sprich in diesem Fall eine Zahl zwischen 0 - 111. Da durch die Addition immer mindestens der Wert 489 gegeben ist, und zusätzlich maximal 111 dazuaddiert werden, ergibt sich der ID Bereich 489 - 600.
-
Das PlugIn wird immer noch nicht geladen. Sicher, dass es im plugin Ordner liegt und genauso heißt?
-
Ich weiss der Post ist etwas veraltet aber hat wer noch die pwn? weil ich gerne so ein fs haben wollt
aber ich muss es noch etwas verbessern damit man es an und aus schalten kann und das es nur 1 fraktion die neons anbringen kann o_o
Hier ist der Quellcode: http://pastebin.com/Q1a33B04
-
Unter OnPlayerConnect
payday_timer[playerid] = SetTimerEx("PayDayZeit", 60000, true, "d", playerid);
Im Grunde.
Die Variable zuvor als Array deklarierenAber nicht vergessen, den Timer unter OnPlayerDisconnect() wieder zu killen, sonst reduziert sich der Intervall bis zum PayDay immer um 50%. Außerdem empfehle ich den Timer erst zu starten, wenn der Spieler eingeloggt ist -> sonst kann der Spieler während des LogIns einen PayDay kriegen o.ä.
-
Also wenn er scheinbar die Seitenteile erfolgreich ran setzen kann, aber du sie nicht siehst, scheint es ja so als würden sie wieder entfernt werden.
Wird das Fahrzeug zwischenzeitlich respawnt?
Oder hast du eventuell ein Anti-Tuning drin, dass eventuell AddVehicleComponent nicht berücksichtigt?