Nur ein Auto pro Person

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 eben schon mal etwas versucht, dass nicht geklappt hat, wie gesagt möchte ich gerne das wenn ein Spieler sich ein Auto
    spawnt und er schon ein Auto gespawnt hat, dass das ältere gelöscht wird.
    Hier mal mein bishieriger Code:


    ocmd:v(playerid,params[])
    {
    new modelid,Float:X,Float:Y,Float:Z,Float:ZA,car;
    if(GetPVarInt(playerid,"car")==1)
    {
    DestroyVehicle(car);
    SetPVarInt(playerid,"car",0);
    }
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ZA);
    if(sscanf(params,"i",modelid))return SendClientMessage(playerid,0xD70000FF,"Error: /v [modelid]");
    car=CreateVehicle(modelid,X,Y,Z,ZA,0,0,-1);
    PutPlayerInVehicle(playerid,car,0);
    SetPVarInt(playerid,"car",1);
    return 1;
    }

  • ocmd:v(playerid,params[])
    {
    new modelid,Float:X,Float:Y,Float:Z,Float:ZA,car;
    if(GetPVarInt(playerid,"car")==1)
    {
    DestroyVehicle(car);
    SetPVarInt(playerid,"car",0);
    }
    else
    {
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ZA);
    if(sscanf(params,"i",modelid))return SendClientMessage(playerid,0xD70000FF,"Error: /v [modelid]");
    car=CreateVehicle(modelid,X,Y,Z,ZA,0,0,-1);
    PutPlayerInVehicle(playerid,car,0);
    SetPVarInt(playerid,"car",1);
    }
    return 1;
    }

  • Ach das geht -.-
    Nimm dashier und teste. Das wird gehen:


    ocmd:v(playerid,params[])
    {
    new modelid,Float:X,Float:Y,Float:Z,Float:ZA,car;
    if(GetPVarInt(playerid,"car")==1)
    {
    DestroyVehicle(car);
    SetPVarInt(playerid,"car",0);
    return 1;
    }
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ZA);
    if(sscanf(params,"i",modelid))return SendClientMessage(playerid,0xD70000FF,"Error: /v [modelid]");
    car=CreateVehicle(modelid,X,Y,Z,ZA,0,0,-1);
    PutPlayerInVehicle(playerid,car,0);
    SetPVarInt(playerid,"car",1);
    return 1;
    }

  • Wie wärs wenn du die Vehicle-ID für den Spieler in einer Variable speicherst?
    new car = CreateVehicle(...);
    SetPVarInt(playerid,"car_id",car);
    DestroyVehicle(GetPVarInt(playerid,"car_id");


    Um dir mal einen Ansatz zu geben.
    Solltest du aber noch anpassen.

  • Wo ist der Sinn wenn man das Auto mit der ID 0 löscht?


    Man müsste dem PVar den Wert des erstellten Autos geben (Variable car), dann beim erneuten eingeben die ID "getten" über GetPVar und diese dann löschen.


    Sonst wird immer das Auto mit der ID 0 gelöscht und nie das vom User erstellten ;)


    Von meinen Vorpostern bin ich einfach nur schwer enttäuscht.
    Ein return macht dort irgendwie keinen Sinn...

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ok das klappt danke Firefan.
    Hier mal mein Code falls noch jemand das selbe Problem hat:


    ocmd:v(playerid,params[])
    {
    new modelid,Float:X,Float:Y,Float:Z,Float:ZA,car;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ZA);
    if(sscanf(params,"i",modelid))return SendClientMessage(playerid,0xD70000FF,"Error: /v [modelid]");
    DestroyVehicle(GetPVarInt(playerid,"carid"));
    car=CreateVehicle(modelid,X,Y,Z,ZA,0,0,-1);
    PutPlayerInVehicle(playerid,car,0);
    SetPVarInt(playerid,"car",1);
    SetPVarInt(playerid,"carid",GetPlayerVehicleID(playerid));
    return 1;
    }