Hm, alternativ kannst du das einfach unter den Queries einfügen, die den Fehler verursachen:
printf("Error-Query: %s",query);
Dann sollte es auf jeden Fall geprintet werden.
Hm, alternativ kannst du das einfach unter den Queries einfügen, die den Fehler verursachen:
printf("Error-Query: %s",query);
Dann sollte es auf jeden Fall geprintet werden.
forward UpdateHealth();
public UpdateHealth()
{
new Float:health, Float:armour, str[10];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
GetPlayerHealth(i, health);
format(str, sizeof(str), "%0.0f", health);
PlayerTextDrawSetString(i, Textdraw0[i], str);
GetPlayerArmour(i, armour);
format(str, sizeof(str), "%0.0f", armour);
PlayerTextDrawSetString(i, Textdraw1[i], str);
}
}
return 1;
}
Oder so
forward UpdateHealth();
public UpdateHealth()
{
new Float:health, Float:armour, str[10];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
GetPlayerHealth(i, health);
format(str, sizeof(str), "%0.0f", health);
PlayerTextDrawSetString(i, Textdraw1[i], str);
GetPlayerArmour(i, armour);
format(str, sizeof(str), "%0.0f", armour);
PlayerTextDrawSetString(i, Textdraw0[i], str);
}
}
return 1;
}
Eines der beiden stimmt dann.
Was nutzt du dann? Strtok?
Steht Textdraw0 oder Textdraw1 für die Health?
Das war der falsche Log. Die Meldung die neu generiert wird steht im server_log.txt ![]()
ocmd:gotoxyz(playerid, params[])
{
new Float:x,Float:y,Float:z;
if(sscanf(params, "fff", x, y, z))return SendClientMessage(playerid, 0xFF0000FF, "Usage: /gotoxyz [X] [Y] [Z]");
SetPlayerPos(playerid, x, y, z);
return 1;
}
Ich denke dazu muss ich nicht viel erklären, oder? ![]()
public OnFilterScriptInit(playerid)
zu:
public OnFilterScriptInit()
Mit einem Timer:
OnGameModeInit:
SetTimer("UpdateHealth", 500, true);
Ganz unten im Gamemode:
forward UpdateHealth();
public UpdateHealth()
{
new Float:health, Float:armour, str[10];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
GetPlayerHealth(i, health);
format(str, sizeof(str), "%0.0f", health);
PlayerTextDrawSetString(i, Textdraw0[i], str);
GetPlayerArmour(i, armour);
format(str, sizeof(str), "%0.0f", armour);
PlayerTextDrawSetString(i, Textdraw1[i], str);
}
}
return 1;
}
Füge das so ein und poste dann was im Server Log steht:
public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
{
if(errorid == ER_SYNTAX_ERROR) printf("Error-Query: %s",query);
return 1;
}
1.) Wie erstellst du momentan die Objekte und wie zählst du hoch, dass ein Spieler ein Objekt abgeliefert hat?
2.) Welche Geschwindikeit? Wenn du nur die Rotation ändern willst, dann musst du die XYZ ein klein wenig (0.1 oder so) ändern, sonst geht es nicht.
Nimm den Code auf Post #5.
Entferne alle
new playerid=spareid;
Drücke STRG+H -> Oben: playerid -> Unten spareid -> Alle ersetzen.
(In einer extra Datei, sonst macht er das im ganzen Code!)
Dann versuche es nochmal. Laut dem Log hat das Fahrzeug keine Tunings.
Die Gesamtsituation verbessert das natürlich nicht, das stimmt. Da wäre es besser den Grund für den Lag zu finden.
Lade den Server mal, nimm das Fahrzeug und tune es. Dann speichere das Fahrzeug und poste was im Log steht.
Das sieht doch schon besser aus.
Jetzt dürfte auch was in der Datei stehen, oder?
Jetzt tune das Fahrzeug mal, und lass es dann wieder speichern. Dann müsste hinten bei den ganzen Nullen das Tuning-Zeug drin stehen.
Also das ist mir noch nie passiert.
Du könntest es mit Timern umgehen, zum Beispiel 10ms Timer setzen, die sich nacheinander aufrufen und die Nachricht in kurzer Verzögerung (10ms merkt ja niemand) ausgeben.
Ändere einfach alle die "playerid"s in dem OnMysqlQuery Callback zu "spareid".
Das scheint nicht ganz der richtige Code zu sein. Der Anfang scheint das Ende von dem eigentlichen Code zu sein. ![]()
Zum Edit:
Es existiert kein Fraktionsfahrzeug, somit wird auch keines gespeichert. Erstelle erst mal eins.
Zitat[17:49:36] '0' Fraktionsfahrzeuge wurden geladen & erstellt.
Dann zeige bitte wo die stehen und wie du sie erstellst.
Dann hast du SaveFactionCars nicht aufgerufen. Der erste Print muss mindestens erscheinen.
Außerdem, wenn deine Datei leer ist, dann wird logischerweise nichts geladen. Du musst die Fahrzeuge erst erstellen und speichern, bevor du sie laden kannst.