aber jetzt sollte alles ohne Probleme funktionieren?
Ohhh du mächtige Kristallkugel🔮
Wat weiß ich, wie dein Code aussieht...probiers aus und Debugge zur Not ![]()
aber jetzt sollte alles ohne Probleme funktionieren?
Ohhh du mächtige Kristallkugel🔮
Wat weiß ich, wie dein Code aussieht...probiers aus und Debugge zur Not ![]()
Da ist der Fehler, wieso hast du db_id im Car-Enum stehen?
Das muss in das PlayerInfo enum.
Wie ist denn db_id im enum definiert?
Alles anzeigenloadPlayerCars(playerid,carid)
{
new query[200];
mysql_format(handle, query, sizeof(query), "SELECT * FROM autos WHERE besitzer=%d, model='%d', x='%f', y='%f', z='%f', r='%f'",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); //966
mysql_tquery(handle, query);
return 1;
}
Fast...
Hab es mehr oder weniger copy&pasted (selbst eingegeben etc.)
Jetzt nichts für ungut oder so, aber du hast das komplett falsch abgetippt und benannt, wtf ![]()
Du kannst doch sogar in der Beschreibung dir den Quellcode downloaden und anschauen/nutzen.
Was bei dir loadPlayerCars heißt (was ein absolut Quatsch-Name für die Funktion ist), sieht bei ihm so aus:
saveCarToDB(playerid,carid)
{
new query[128];
format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
return 1;
}
Fallen dir Unterschiede im Query und im Namen auf? ![]()
//Edit: Jetzt hab ich erstmal den Anfang des Threads gelesen, die Syntax hat Maho vorgegeben. Das ist super verwirrend für Neulinge von der Standard-Syntax abzuweichen, generell ist das bad practice, wenn es keinen krassen Vorteil bietet.
Schau dir nochmal in Ruhe seinen Quellcode an (hier für dich mal der Direktlink https://pastebin.com/wvdygCFN)
Kaliber habe gerade in der Datenbank den besitzer von INT auf VARCHAR geändert und an meinem enum bei besitzer[MAX_PLAYER_NAME] dran gehangen ist das so besser?
Kannst es ruhig so lassen, wie du es hattest, das war schon sauber gelöst.
Wie gesagt, ich dachte du hattest es anders gelöst.
Achso, warte mal, dein besitzer ist ja doch ein int.
Du referenzierst da also auf den Spieler, achso (verwirrende Bezeichnung).
Dann bringst du playerid und carid durcheinander.
Ufff, es ist sehr schwer dir so zu helfen, denn selbst wenn man die Compiler Fehler beseitigt, heißt das ja noch lange nicht, dass das System fehlerfrei funktioniert.
Bei dir wird es das vermutlich nicht tun, da haufenweise Dinge durcheinander gewürfelt werden.
Für so komplexe Systeme solltest du evtl Tutorials folgen oder dir spezifisch helfen lassen.
loadPlayerCars(playerid,carid) //Musst die carid noch mit angeben...oder du machst das in der Funktion...kp wie da dein Code aufgebaut ist
{
new query[200];
mysql_format(handle, query, sizeof(query), "INSERT INTO autos SET besitzer=%d, model='%d', x='%f', y='%f', z='%f', r='%f'",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); //966
mysql_tquery(handle, query);
return 1;
}
public carSavedToDB(carid)
{
cInfo[carid][db_id]= cache_insert_id(); //Einfach ohne handle
return 1;
}
public OnPlayerCarsLoad() //ohne playerid
{
new num_rows;
cache_get_row_count(num_rows);
if(!num_rows) return 1;
for(new i,id; i<num_rows; i++)
{
id=getFreeCarID();
cache_get_value_name_int(i, "model", cInfo[id][model]);
cache_get_value_name_int(i, "besitzer", cInfo[id][besitzer]); //und doch mit int
cache_get_value_name_float(i, "x", cInfo[id][c_x]);
cache_get_value_name_float(i, "y", cInfo[id][c_y]);
cache_get_value_name_float(i, "z", cInfo[id][c_z]);
cache_get_value_name_float(i, "r", cInfo[id][c_r]);
cache_get_value_name_int(i, "id", cInfo[id][db_id]);
CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
}
return 1;
}
Alles anzeigen
//Edit:
Dein Insert INTO Query ist völliger Quatsch, sollte das eventuell ein Update sein?
Achso, ja ich hatte da mich an deinem Code orientiert, muss natürlich c_x, anstatt x heißen:
cache_get_value_name_float(i, "x", cInfo[id][c_x]);
cache_get_value_name_float(i, "y", cInfo[id][c_y]);
cache_get_value_name_float(i, "z", cInfo[id][c_z]);
cache_get_value_name_float(i, "r", cInfo[id][c_r]);
Ansonsten zeig uns mal die Zeilen 966 (hier etwas mehr code so + - 5 Zeilen), 1069 und 1073
Nein, der Besitzer ist natürlich kein Int, sondern ein String.
Es sollte dann ungefähr so aussehen:
public OnPlayerCarsLoad(playerid) //1062
{
new num_rows; //1064
cache_get_row_count(num_rows); //1065
if(!num_rows) return 1;
for(new i,id; i<num_rows; i++) //1067
{
id=getFreeCarID();
cache_get_value_name_int(i, "model", cInfo[id][model]);
cache_get_value_name(i, "besitzer", cInfo[id][besitzer]);
cache_get_value_name_float(i, "x", cInfo[id][x]);
cache_get_value_name_float(i, "y", cInfo[id][y]);
cache_get_value_name_float(i, "z", cInfo[id][z]);
cache_get_value_name_float(i, "r", cInfo[id][r]);
cache_get_value_name_int(i, "id", cInfo[id][db_id]);
CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
}
return 1;
}
Alles anzeigen
Dann war dein Versuch doch schon ganz richtig.
Darfst nur nicht überall cache_get_value_name_int verwenden, sondern, wenn es sich um floats handelt eben cache_get_value_name_float.
Und verwende nicht 0 als index, sondern eben einfach i ![]()
Welche MySQL Version nutzt du denn?
Die cache_get_field_content_int Funktion ist R33, anscheinend nutzt du eine neuere Version (was auch zu empfehlen ist).
Eigener Versuch hier drunter
Ja, das ist ja auch evtl ganz richtig...(Zumindest die Funktion, evtl nicht wie du es anwendest).
https://wiki.sa-mp.com/wiki/ManualVehicleEngineAndLights
Rufst du diese Funktion unter OnGameModeInit auf?
Das ist nämlich notwendig dafür.
Eine Ära geht zu Ende, bist ein Ärenmann ![]()
Denkt ihr, es ist noch Sinnvoll, seine Zeit in einen dieser Server zu investieren?
He?
Das ist doch keine Investition, man spielt das, was einem gefällt und wo man Spaß hat...
Und du vergleichst Birnen mit Äpfeln, denke man kann hier keinen Vergleich starten, jeder hat evtl einzigartige Features und seinen eigenen Charme.
Oder hast du schon ein pragma dynamic in deinem Skript?
Wenn ja, lösche das, compile nochmal (komplett ohne pragma dynamic) und poste die neue Meldung.
Liest du auch, was ich schreibe?
Offensichtlich verwendest du schon einmal pragma dynamic.
Lösch es mal überall raus und poste nochmal die Meldung...
//Edit:
Oder kann es sein, dass du eine pawn.cfg in deinem Pawno Ordner hast?
Wenn ja, lösche diese mal.
Pack mal oben in dein Skript:
#pragma dynamic 5476660
Oder hast du schon ein pragma dynamic in deinem Skript?
Wenn ja, lösche das, compile nochmal (komplett ohne pragma dynamic) und poste die neue Meldung.
Wo liegt der Fehler?
Kann es sein, dass du einen Compiler Warning bekommst?
Bzw unten da so komische Zahlen angezeigt werden?
Ich glaube du reservierst viel zu viel Speicher, aufgrund dessen kommt es zur Stack/Heap Kollision, das hat nichts mit der Funktion an sich zu tun.
Zeig uns mal dein Compiler Fenster nach dem compilen.
Hat nichts mit PHP zu tun.
Hier ein Beispiel ![]()
https://www.w3schools.com/html…ename=tryhtml_links_image
Um SAMP zu öffnen per Link einfach href so abändern: samp://127.0.0.1:1337
der eine problem der ich auch nicht behoben bekomme
Du googelst nach SairaCondensed-Regular.ttf, dann klickst du auf Download und fügst es in diesen Pfad colucp_files/font ein.
- Fertig.