Problem mit /park

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
  • Was mache ich denn bitte falsch?:(


    if(strcmp(cmd, "/park", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(c_PlayerHaveCar[playerid][x])
    {
    new string3[128];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), "/cars/%s%d.car", playername3,x);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][x][CarPos_x]);fwrite(hFile, var);
    format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][x][CarPos_y]);fwrite(hFile, var);
    format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][x][CarPos_z]);fwrite(hFile, var);
    format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][x][CarRotate]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    }
    }
    }


    Keinerlei Errors oder Warnings!

  • Ja?:D
    Sonst würd ich mein Auto wohl nicht sehen ;)

  • if(strcmp(cmd, "/park", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(c_PlayerHaveCar[playerid][x])
    {
    new string3[128];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), "/cars/%s%d.car", playername3,x);
    new File: hFile = fopen(string3, io_write);
    new var[50];
    format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][x][CarPos_x]);fwrite(hFile, var);
    format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][x][CarPos_y]);fwrite(hFile, var);
    format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][x][CarPos_z]);fwrite(hFile, var);
    format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][x][CarRotate]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    }
    }


    versuchs mal so ...

  • Ich habs schon. Trotzdem danke!
    Der Fehler war , dass ich die Position überhaupt nicht angefordert habe!

  • das car system kommt mir sehr stark bekannt vor wenn ich das c_PlayerHaveCar[playerid][x] sehe und den rest des aufbau des commands erinnert mich dass an mein filterscript...


    *Kurz Such*


    if (strcmp("/parken", cmdtext, true, 10) == 0) // park command
    {
    if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    new newcar = GetPlayerVehicleID(playerid);
    if (newcar == PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarId])
    {
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetPlayerPos(playerid, X,Y,Z);
    GetVehicleZAngle(newcar, z_rot);
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_x] = X;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_y] = Y;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_z] = Z;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarRotate] = z_rot;
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast dein Fahrzeug hier geparkt, ab nun kannst du dein Fahrzeug hier finden!");
    }
    else if (newcar == Dtc_ParkRights[playerid])
    {
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetPlayerPos(playerid, X,Y,Z);
    GetVehicleZAngle(newcar, z_rot);
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_x] = X;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_y] = Y;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_z] = Z;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarRotate] = z_rot;
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast dieses Fahrzeug hier geparkt, ab nun kannst du dieses Fahrzeug hier finden!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist nicht in deinem Fahrzeug/Du hast nicht den Schlüssel zu diesem Fahrzeug ausgewählt!");
    return 1;
    }
    }
    else if (Dtc_ParkRights[playerid] != 0)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if (newcar == Dtc_ParkRights[playerid])
    {
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetPlayerPos(playerid, X,Y,Z);
    GetVehicleZAngle(newcar, z_rot);
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_x] = X;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_y] = Y;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_z] = Z;
    PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarRotate] = z_rot;
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast dieses Fahrzeug hier geparkt, ab nun kannst du dieses Fahrzeug hier finden!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du besitzt Kein Fahrzeug für deinen Ausgewählten Schlüssel!");
    return 1;
    }
    return 1;
    }


    //abfrage aller autos einer person:
    for(new x = 0; x < MaxVeh; x++)
    {
    if(IsPlayerConnected(playerid) && Dtc_PlayerHaveCar[playerid][x])
    {


    Nur dass dieses Script so erstellt worden ist dass jedes Auto welches mann Besitzt auf der Position des jetzigen Autos gespeichert wird. Also wenn mann mehr als 1 Auto haben kann und auch mehr hatt wird es zu Problemmen kommen.
    edit: ich hatte das vorher mit Carkeys gemacht naja wenn du den momentanen code postet mit dem es "funktioniert", würde ich den möglichen Fehler ausbessern.