/vehicle Befehl per ID und Name

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 möchte gerne ein /vehicle Befehl der fahrzeuge spawnt. Man könnte entweder die ID vom Fahrzeug (411(infernus)) eingeben oder direkt infernus.


    Ich bin schon soweit gekommen, per ID klappt alles wunderbar. Hat einer eine Idee wie man den Befehl für beides hinbekommt?



    ocmd@2:veh,v(playerid,params[])
    {
    if (Spieler[playerid][Adminlevel] < 2)return SendClientMessage(playerid, COLOR_GRAD1, "* Du hast nicht die benötigten Rechte.");
    new car,color1,color2;
    if(sscanf(params, "iii", car,color1,color2))return SendClientMessage(playerid, COLOR_GRAD2, "** FEHLER: /(v)eh [carid/carname] [farbe1] [farbe2]");
    //car = GetVehicleModelIDFromName(vehicleid);

    if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "* Die Fahrzeug-ID kann nicht unter 400 und über 611 sein oder du hast ein falschen Namen eingegeben."); return 1; }
    if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
    if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein"); return 1; }
    if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
    new string[128];
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid,A);
    GetXYInFrontOfPlayer(playerid, X, Y, 5.0);
    new carid = AddStaticVehicleEx(car, X,Y + 2.0,Z, A + 90.0, color1, color2, 360);
    LinkVehicleToInterior(carid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));
    CreatedCars[CreatedCar] = carid;
    CreatedCar ++;
    format(string, sizeof(string), "* Fahrzeug %d (%s) [Model: %d CarId: %d] wurde gespawned.", CreatedCar,aVehicleNames[car - 400],car,carid);
    SendClientMessage(playerid, COLOR_GREY, string);
    return 1;
    }



    stock GetVehicleModelIDFromName(vname[])
    {
    for(new i = 0; i < 211; i++)
    {
    if ( strfind(aVehicleNames[i]/*zieht sich ausm new den namen vom auto raus*/, vname, true) != -1 )
    return i + 400;
    }
    return -1;
    }


    Danke im Voraus :)

    Mit freundlichen Grüßen,


    Keslo

  • Danke an beide, hat jetzt endlich geklappt!


    Hier der komplette, funktionierende Befehl:




    ocmd@2:veh,v(playerid,params[])
    {
    if (Spieler[playerid][Adminlevel] < 2)return SendClientMessage(playerid, COLOR_GRAD1, "* Du hast nicht die benötigten Rechte.");
    new car,color1,color2,vehicle[32];
    if(sscanf(params, "s[32]ii", vehicle,color1,color2))return SendClientMessage(playerid, COLOR_GRAD2, "** FEHLER: /(v)eh [carid/carname] [farbe1] [farbe2]");
    if(IsNumericString(vehicle)) car = strval(vehicle);
    else car = GetVehicleModelIDFromName(vehicle);

    if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "* Die Fahrzeug-ID kann nicht unter 400 und über 611 sein oder du hast ein falschen Namen eingegeben."); return 1; }
    if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
    if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
    new string[128];
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid,A);
    GetXYInFrontOfPlayer(playerid, X, Y, 5.0);
    new carid = AddStaticVehicleEx(car, X,Y + 2.0,Z, A + 90.0, color1, color2, 360);
    LinkVehicleToInterior(carid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));
    CreatedCars[CreatedCar] = carid;
    CreatedCar ++;
    format(string, sizeof(string), "* Fahrzeug %d (%s) [Model: %d CarId: %d] wurde gespawned.", CreatedCar,aVehicleNames[car - 400],car,carid);
    SendClientMessage(playerid, COLOR_GREY, string);
    return 1;
    }


    MfG
    Kevin :)

    Mit freundlichen Grüßen,


    Keslo