Privatfahrzeuge parken

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE db_id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);


    Es gibt nur ein WHERE bei dir im Command.
    Bei deiner query.


  • ich frage mich nur wieso der da ein fehler anzeigt

  • auszug aus der MYSQL.log datei:



    und das stimmt nicht mit 368.143 der cordinate weil ich habe ja auto wo anders geparkt aber das wird nicht gemacht

  • ocmd:autoparken(playerid, params[])
    {
    new Float:x, Float:y, Float:z, Float:r;
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(!strcmp(AutoInfo[i] [Besitzer], SpielerName(playerid)))
    {
    //Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    GetVehiclePos(AutoInfo[i][Fahrzeugid], AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(AutoInfo[i] [Fahrzeugid],AutoInfo[i][c_r]);
    new vID = GetPlayerVehicleID(playerid);
    if(vID == AutoInfo[i] [Fahrzeugid])

    {
    new query[128];
    AutoInfo[i][c_x] = x;
    AutoInfo[i][c_y] = y;
    AutoInfo[i][c_z] = z;
    AutoInfo[i][c_r] = r;
    format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    return 1;
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    }


    der will einfach das auto nicht parken

  • ocmd:autoparken(playerid, params[])
    {
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    //Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    new vID = GetPlayerVehicleID(playerid);
    if(vID == AutoInfo[i] [Fahrzeugid])
    {
    new query[128];
    GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(vID,AutoInfo[i][c_r]);
    format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
    printf("query: %s", query);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    return 1;
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    }


    Falls es nicht klappt, poste was im Server Log steht wenn du den Befehl ausgeführt hast.

  • Was für Errors?
    Hast du den gesamten Befehl ersetzt? Wenn ja, dann ist es klar, da ja unten eine Klammer fehlt. Ich habe diese mit Absicht weg gelassen, da ich nicht weiß ob da noch etwas folgt.
    Falls nicht, so:
    ocmd:autoparken(playerid, params[])
    {
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    //Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    new vID = GetPlayerVehicleID(playerid);
    if(vID == AutoInfo[i] [Fahrzeugid])
    {
    new query[128];
    GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(vID,AutoInfo[i][c_r]);
    format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
    printf("query: %s", query);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    return 1;
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    }
    return 1;
    }

  • Es kommt einfach kein Error Jeffry. Das Auto wird einfach nicht geparkt und somit funktoniert:



    Autosparken:


    cmd:autoparken(playerid, params[])
    {
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    //Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    new vID = GetPlayerVehicleID(playerid);
    if(vID == AutoInfo[i] [Fahrzeugid])
    {
    new query[128];
    GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(vID,AutoInfo[i][c_r]);
    format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
    printf("query: %s", query);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    return 1;
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    }
    return 1;
    }

  • Versuche es so:
    cmd:autoparken(playerid, params[])
    {
    printf("InVeh: %d", IsPlayerInAnyVehicle(playerid));
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    new vID = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof(AutoInfo); i++)
    {
    printf("i: %d / vID: %d / Fahrzeugid: %d", i, vID, AutoInfo[i][Fahrzeugid]);
    if(vID == AutoInfo[i][Fahrzeugid])
    {
    printf("Besitzer: %s / Name: %s", AutoInfo[i][Besitzer], SpielerName(playerid));
    //Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    new query[128];
    GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(vID,AutoInfo[i][c_r]);
    format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z],AutoInfo[i][c_r],AutoInfo[i][db_id]);
    printf("query: %s", query);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    printf("Auto %d wurde geparkt.", i);
    return 1;
    }
    }
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    Wenn es nicht geht, poste was im Server Log steht, wenn du den Befehl ausführst.

  • ocmd:autoparken(playerid, params[])
    {
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    //Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    new vID = GetPlayerVehicleID(playerid);
    if(vID == AutoInfo[i] [Fahrzeugid])
    {
    new query[128];
    GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(vID,AutoInfo[i][c_r]);
    format(query, sizeof(query), "UPDATE Autos SET c_x='%f',c_y='%f',c_z='%f',c_r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    return 1;
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    }
    return 1;
    }


    so geht mein befehl nun

  • Das solltest du aber aus Performance-Gründen so schreiben:
    ocmd:autoparken(playerid, params[])
    {
    new vID = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
    for (new i = 0; i < sizeof(AutoInfo); i++)
    {
    if(vID == AutoInfo[i] [Fahrzeugid])
    {
    if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
    {
    new query[128];
    GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
    GetVehicleZAngle(vID,AutoInfo[i][c_r]);
    format(query, sizeof(query), "UPDATE Autos SET c_x='%f',c_y='%f',c_z='%f',c_r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
    mysql_function_query(dbhandle,query,false," "," ");
    SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
    return 1;
    }
    break;
    }
    }
    return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
    }
    Sonst machst du einige Abfragen mehrmals und das macht keinen Sinn.