Autos nach Art definieren

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
  • Moin,
    wollte Fragen, wie ich Autos nach der Art definiere wie Lkw, Limousine, Motorrad.
    Möchte das dann ungefähr soo haben :

    if(Auto = Limousine)
    {
    do something
    }
    if(Auto = Lkw)
    {
    do something
    }


    Hatte das mal so in der Art gesehen :

    enum Lkw
    {
    232}
    231}
    }


    Anfangen würde man ja so :

    new Autos[MAX_VEHICLES][Auto];
    enum Auto
    {
    614
    }


    meine Frage ist eig wie ich das dann mache mit den enum´s und den Id´s

  • new Model = GetVehicleModel(GetPlayerVehicleID(playerid));
    switch(model)
    {
    case 522: // Wenns ein Motorrad wäre usw..


    }// Schließt den Switch


    Genaue Erklärung siehe hier

  • Sinnvoll ist mit den Variablen zu arbeiten, nicht mit möglichen ModelIDs.


    Bsp:

    new v0=CreateVehicle(Blabla)
    new v1=CreateVehicle(Blabla)
    new v2=CreateVehicle(Blabla)
    new v3=CreateVehicle(Blabla)
    new v4=CreateVehicle(Blabla)


    Danach kannst du mit einer Funktion ermitteln, um was es sich handelt.
    Bspw:


    GetVehicleType(myvehicleid)
    {
    switch(GetVehicleModelID(myvehicle)
    {
    case 123,125,77:7 //Gehen wir einfach mal davon aus, dass ModelID 123/125/777 ein Boot ist (später halt durch die echten ModelIDs ersetzen)
    return 0; //Wir geben den internen Wert 0 aus und merken uns irgendwo, dass 0 für ModelID123, also ein Boot steht (Vorzugsweise unten irgendwo auskommentiert im Script)
    case 555,556
    return 1; //Denken wir uns einfach mal dass 555 und 556 LKWs sind, die RückgabeID1 merken wir uns also für LKW


    //Das machst du dann einfach weiter mit allen Typen die du haben willst, gib einfach immer eine andere Zahl zurück
    default: //Das wird ausgelöst, wenn es keiner der anderen Fälle ist. Denk dran, es als letztes in dieses Caseteil zu packen
    return -1; //Merken wir uns, dass -1 immer zurückgibt, wenn das Fahrzeug kein in dieser Funktion zugewiesener Typ ist
    }
    }


    Und dann kannst du das im Script ganz einfach abfragen, beispielsweise wollen wir nun irgendwo im Script wissen, ob das erstellte Fahrzeug v1 ein Boot ist:


    if(GetVehicleType(veh1)==0) //In der Funktion geben die ModelIDs für "Boot" 0 zurück, würden wir nach einem LKW suchen würde die Abfrage ..==1 heißen
    {
    print("Juhu, wir haben ein Boot gefunden");
    }


    Es ist ungetestet, sollte es aber tun. Denk dran, dass die von mir geschriebenen ModelIDs ausgedacht sind, die richtigen findest du in der SA-MP Wiki.



    EDIT1: @ hp: Das bringt nichts, da er scheinbar die Fahrzeuge im Script testen will. Daher macht GetPlayerVehicleID keinen Sinn. ;) Wenn ich mich irre vergesst meinen Post.

  • new Model = GetVehicleModel(GetPlayerVehicleID(playerid));
    switch(model)
    {
    case 522: // Wenns ein Motorrad wäre usw..


    }// Schließt den Switch


    Genaue Erklärung siehe hier


    Wenn ich schon new model .. einfüge schmiert pawno ab 8|


    Wollte das so haben, dass ich die Id´s definiere und dann später mit
    if(GetVehicleModel(vehicleid) == 411
    rausfinden kann was es für ein Fahrzeug ist z.B. if(GetVehicleModel(vehicleid) == Motorrad