[HELP] VEH-Wer ist so nett?

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hallo, ich habe ein Problem mit meinem Veh-Befehl.


    Hier mein Veh-Befehl:

    ocmd:veh(playerid,params[])
    {
    {
    new farbe1, farbe2, string[128];
    new car = GetPlayerVehicleID(car);
    new HatAuto[MAX_PLAYERS];
    if(sscanf(params,"ddd",car,farbe1,farbe2))return SendClientMessage(playerid,ROT,"Benutzung: /veh [CarID] [Farbe1] [Farbe2]");
    if(car < 400 || car > 611)return SendClientMessage(playerid,ROT,"Diese CarID gibt es nicht.");
    if(farbe1 < 0 || farbe1 > 252)return SendClientMessage(playerid,ROT,"Diese Farbe gibt es nicht.");
    if(farbe2 < 0 || farbe2 > 252)return SendClientMessage(playerid,ROT,"Diese Farbe gibt es nicht.");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    new carid = CreateVehicle(car,X,Y,Z,0.0,farbe1,farbe2,60000);
    CreatedCars[CreatedCar] = carid;
    CreatedCar++;
    HatAuto[playerid] = 1;
    format(string,sizeof(string),"Du hast ein Fahrzeug gespawnt. Es hat die ID %d.",carid);
    if(HatAuto[playerid] != 1)return SendClientMessage(playerid,ROT,"Du hast bereits ein Car.");
    SendClientMessage(playerid,ROT,string);
    }
    return 1;
    }


    Ich will, dass es so wird:
    Man soll sich nur ein Auto spawnen können, dies geht leider nicht.
    Zu dem möchte ich noch, wenn der Player sein Auto zerstört dass er dann wieder ein neues Spawnen kann.
    Momentan ist es so geht ein Auto kaputt spawnt es an der erstellten Stelle wieder.


    Da ich das nicht kann, bitte ich um Eure Hilfe, danke!

  • ocmd:veh(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(!GetPVarInt(playerid, "hasOneCar"))
    {
    new farbe1, farbe2, string[128];
    new car = GetPlayerVehicleID(car);
    new HatAuto[MAX_PLAYERS];
    if(sscanf(params,"ddd",car,farbe1,farbe2))return SendClientMessage(playerid,ROT,"Benutzung: /veh [CarID] [Farbe1] [Farbe2]");
    if(car < 400 || car > 611)return SendClientMessage(playerid,ROT,"Diese CarID gibt es nicht.");
    if(farbe1 < 0 || farbe1 > 252)return SendClientMessage(playerid,ROT,"Diese Farbe gibt es nicht.");
    if(farbe2 < 0 || farbe2 > 252)return SendClientMessage(playerid,ROT,"Diese Farbe gibt es nicht.");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    new carid = CreateVehicle(car,X,Y,Z,0.0,farbe1,farbe2,60000);
    CreatedCars[CreatedCar] = carid;
    CreatedCar++;
    format(string,sizeof(string),"Du hast ein Fahrzeug gespawnt. Es hat die ID %d.",carid);
    SendClientMessage(playerid,ROT,string);

    SetPVarInt(playerid, "hasOneCar", 1);
    SetPVarInt(playerid, "hasOneCarID", carid);
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du besitzt bereits ein Fahrzeug.");
    return 1;
    }
    }
    return 1;
    }


    // SetTimer("isOwnCarDestroyed", 1000, true);


    forward isOwnCarDestroyed();
    public isOwnCarDestroyed()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInAnyVehicle(i) && GetPlayerState(i) == 2)
    {
    if(GetPlayerVehicleID(i) == GetPVarInt(i, "hasOneCarID"))
    {
    new Float:vehHealth;
    GetVehicleHealth(GetPlayerVehicleID(i), vehHealth);
    if(vehHealth < 50)
    {
    DestroyVehicle(GetPlayerVehicleID(i));
    CreatedCar--;
    DeletePVar(i, "hasOneCar");
    DeletePVar(i, "hasOneCarID");
    }
    }
    }
    }
    }
    return 1;
    }

  • Danke Dir, das geht soweit.


    Doch das Problem ist, wenn das Auto zerstört wird sollte es NICHT neu spawnen.
    Man soll sich dann ein neues erstellen können.

  • Den Timer habe ich schon eingefügt gehabt, es geht nicht.
    Ich denke das liegt an 'if(vehHealth < 50)' oder?