Beiträge von Jeffry

    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.

    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? ;)

    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!)

    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.

    Das scheint nicht ganz der richtige Code zu sein. Der Anfang scheint das Ende von dem eigentlichen Code zu sein. :huh:


    Zum Edit:
    Es existiert kein Fraktionsfahrzeug, somit wird auch keines gespeichert. Erstelle erst mal eins.

    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.