Versuche es so:
public SaveFactionCars(bool:destroy)
{
if(fexist(FACTION_CAR_FILE)) fremove(FACTION_CAR_FILE);
new File:fFile=fopen(FACTION_CAR_FILE,io_append),Content[1024];
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
{
for(new i=0; i<13; i++) FactionCars[fc][fTuning][i] = GetVehicleComponentInSlot(FactionCars[fc][fCarid], i);
format(Content,sizeof(Content),"%d %.3f %.3f %.3f %.3f %03d %03d %02d %02d %02d %02d %02d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\r\n",
FactionCars[fc][fVehid],
FactionCars[fc][fPos][0],
FactionCars[fc][fPos][1],
FactionCars[fc][fPos][2],
FactionCars[fc][fPos][3],
FactionCars[fc][fCol][0],
FactionCars[fc][fCol][1],
FactionCars[fc][fFaction][0],
FactionCars[fc][fFaction][1],
FactionCars[fc][fFaction][2],
FactionCars[fc][fFaction][3],
FactionCars[fc][fFaction][4],
FactionCars[fc][fTuning][0],
FactionCars[fc][fTuning][1],
FactionCars[fc][fTuning][2],
FactionCars[fc][fTuning][3],
FactionCars[fc][fTuning][4],
FactionCars[fc][fTuning][5],
FactionCars[fc][fTuning][6],
FactionCars[fc][fTuning][7],
FactionCars[fc][fTuning][8],
FactionCars[fc][fTuning][9],
FactionCars[fc][fTuning][10],
FactionCars[fc][fTuning][11],
FactionCars[fc][fTuning][12],
FactionCars[fc][fTuning][13],
FactionCars[fc][fPrice]);
fwrite(fFile,Content);
if(destroy == true)
{
if(DestroyVehicle(FactionCars[fc][fCarid]))
FactionCars[fc][fCarid] = -255;
}
}
}
fclose(fFile);
return true;
}
Beiträge von Jeffry
-
-
Zum Streamer:
Du benötigst die neuste Include sowie das neuste Plugin. Danach musst du mit dem neusten Include den Code kompilieren. Sonst geht die Meldung nicht weg (gleich wie zuvor mit MySQL).Zu den Accounts:
mysql_debug(1);Schreibe das bei OnGameModeInit hin.
Was steht dann im MySQL Log, wenn du ein Account anlegst? Poste das. -
Das wird wohl im Control Panel stehen. Ansonsten wäre es wahrscheinlich sinnvoll, den Support von bplaced anzuschreiben, die werden dir das sagen können.
PS: Das ist eigentlich keine Scripting Frage.
EDIT:
Dog: Ah, perfekt!
-
Steht der Code, der mysql_CheckHaus aufruft, bei OnGameModeInit (oder wird davon aufgerufen)?
Falls ja, dem Log zufolge sieht das so auch als hast du erst die mysql_CheckHaus-Aufrufe und baust danach die MySQL Verbindung auf. Das muss andersherum sein. -
Nur als Hinweis: Das Streamer Plugin solltest du auch aktualisieren und deinen Code mit der neusten Include kompilieren.
http://forum.sa-mp.com/showthread.php?t=102865Zwecks den Accounts:
Was steht denn im MySQL Log, wenn du einen Spieler speicherst? Setzt ggf. mysql_debug wieder auf 1. -
public OnGameModeExit()
{
mysql_close(mysql);
}{
DestroyVehicle(submarine), DestroyObject(submarine_object);
return 1;
}zu:
public OnGameModeExit()
{
mysql_close(mysql);
DestroyVehicle(submarine);
DestroyObject(submarine_object);
return 1;
} -
Das mache ich nur wenn es nicht anders geht. Bis hier hin sind das nur Code-Fehler die wir auch so lösen können und somit anderen, die ähnliche Probleme haben, bereits eine Lösungshilfe hinterlassen.
Poste bitte die Code-Zeilen 13980 bis 14005.
-
Schalte mal den MySQL Debug Modus an und poste was im Log steht, wenn du diese Funktion ausführst.
mysql_debug(1);Möglicherweise ist die Verbindung zur Datenbank abgebrochen.
-
mysql_log zu:
mysql_debug(1);
bzw. 0, falls du es nicht an haben willst.Und
new MySQL:mysql;
zu:
new mysql;Und bei OnGameModeExit:
mysql_close(mysql); -
Kein Problem.
Ändere alle
mysql_fetch_field
zu:
mysql_get_field -
Hm?

Du sollst einfach nur den Code aus der Zeile hier posten.
Die Zeilen 11986, 11989, 11991. -
public OnGameModeInit()
{
mysql_log(LOG_ALL);// Hier bestimmt ihr , dass ihr alles was mit mysql zu tun habt logt
mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASS);Das muss so aussehen.
Zwecks den Beispielen:
Ich meinte jeweils den Code aus einer solchen Fehlerzeile. Davon ein paar. -
Füge nach
cache_get_data(num_rows, num_fields, handle);
das hier ein:
SpielerInfo[playerid][sLogout] = cache_get_field_content_int(0, "Logout", handle);EDIT: (Post unten)
Grapefruit: Da dein Problem behoben ist, wäre es gut, wenn du den Thread auf erledigt setzt. Danke! -
SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Tour erfolgreich abgeschlossen und den Lohn erhalten.");
Nach dieser Nachricht. Schreibe es einfach direkt nach der Nachricht hin.EDIT: (Post unten)
@sunrizez: Da dein Problem behoben ist, wäre es gut, wenn du den Thread auf erledigt setzt. Danke! -
Zeige bitte ein-zwei Beispiele aus den Zeilen mit den Errors. Das dürfte relativ leicht zu beheben sein, das liegt da dran, dass du ein neues Plugin verwendest, und da die Funktionen etwas anders in der Parameter-Reihenfolge sind.
-
Mach das
#include <mysql>
ganz weg. Das ist die Include für das andere Plugin, beide zusammen vertragen sich nicht. -
Versuche es bitte erst mal selbst.
Steht oben bei den Includes bei dir auch
#include <a_mysql>
oder steht da was anderes? Falls was anderes, ändere es.Hast du die Include in /pawno/includes/ gelegt? Wenn ja, öffne im /pawno/ Ordner die pawno.exe und wähle dort den Code aus, dann kompiliere ihn erneut, wenn du sicher bist, dass oben im Code die richtige (a_mysql) Include eingetragen ist.
-
Ok, also lösche das hier auf jeden Fall mal:
new query[100];
format(query, sizeof(query), "SELECT * FROM Accounts WHERE Logout='%s'", SpielerInfo[playerid][sLogout]);
mysql_pquery(handle, query);Dann poste den Code mit dem du LoadPlayer aufrufst, und zeige in welchem Zusammenhang, also wo genau, der Spieler am Login gehindert werden soll (wo steht der Code?).
-
SetPVarInt(playerid,"trash_job",0);
Füge das beim Beenden des Jobs hinzu. -
Du musst die Include des MySQL Plugins auch aktualisieren (bzw. die Include für das R5 Plugin nutzen).
Siehe Anhang.