AttachObjectToVehicle - Maverick

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
  • Hey Leute.
    Ich möchte an jedes Maverick so Metallstege anhängen.
    Jedoch brauch ich Hilfe..


    Bisjetzt waren meine Ideen so:
    new mavobject;
    mavobject = GetPlayerVehicleID(playerid);
    if(mavobject == 487)
    {
    new Float:mavobX,Float:mavobY,Float:mavobZ;
    GetVehiclePos(mavobject, mavobX, mavobY, mavobZ);
    new mavobject1 = CreateObject(2937, mavobX,mavobY,mavobZ,0.0,0.0,0.0);
    AttachObjectToVehicle(mavobject1, mavobject, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0);
    }


    Aber ich bin mir da nicht so sicher.
    Und wie kriege ich das hin, dass die Metallstege an den Seiten am Maverick ist. Ich hoffe ihr wisst, was ich mit "Seiten" meine...
    Woher kriege ich besser gesagt die Koordinaten her?

  • Für die Koordinaten gibt es das Vehicle Attachments Filterscript im Englischen SAMP Forum. Einfach mal google'n.


    Dein Code ist im Grunde ziemlich falsch.


    zuerst musst du eine Variable für die Objecte am Maverick erstellen, die müssen zu den forwards, am Anfang des Scriptes.
    Am besten new mavobject1[250], mavobjekt2[250];
    Die [250] steht für die Felder des Arrays, dafür suchst du am besten mal nach "multidimensional Arrays pawn" bei Google.
    Jetzt möchtest du überprüfen, ob das Fahrzeug ein Maverick ist.
    public OnVehicleSpawn(...) // Wenn das Fahrzeug spawnt, soll die Reling erstellt werden
    {
    if(GetVehicleModel(vehicleid) == 487) // GetVehicleModel gibt das Modell des Fahrzeuges zurück.
    {
    mavobject1[vehicleid] = CreateObject(...);
    mavobject2[vehicleid] = CreateObject(...);
    AttachObjectToVehicle(mavobject1[vehicleid],...);
    AttachObjectToVehicle(mavobject2[vehicleid],...);
    }
    }


    public OnVehicleDeath(...) // Da wir beim Spawnen das Objekt erstellen, muss es beim "Sterben" des Fz gelöscht werden
    {
    if(mavobject1[vehicleid] != 0) { DestroyObject(...); }
    if(mavobject2[vehicleid] != 0) { DestroyObject(...); }
    }
    Einrücken musst du selber.

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs

  • Ja, bei CreateObject kannst du irgendwelche Koordinaten angeben, am besten 2000, 2000, 2000 oder so, damit die falls die nicht attached werden, nicht im Weg sind.


    Bei AttachObjectToVehicle sind die Koordinaten wichtig.

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs

  • Ich versuchs schon die ganze Zeit, nur die Objekte sind nicht am Maverick. :cursing:
    Zuerst habe ich:
    new objectid1, objectid2, objectid3, objectid4;


    Unter GameModeInit hab' ich das:
    objectid1 = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid2 = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid3 = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid4 = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);


    Unter OnPlayerEnterVehicle
    new Mav = GetVehicleModel(vehicleid);
    if(Mav==487)
    {
    AttachObjectToVehicle(objectid1, Mav, 1.09, 1.88, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid2, Mav, 1.09, -0.60, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid3, Mav, -1.12, 1.88, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid4, Mav, -1.12, -0.60, -1.0, 0.0, 0.0, 0.0);
    }


    Kann mir da einer weiterhelfen?

  • Das ist längst nicht die optimale Lösung, sollte aber funktionieren.
    Edit: Formationsfails gehen nicht raus X(



    new objectid1[MAX_VEHICLES], objectid2
    [MAX_VEHICLES]
    , objectid3
    [MAX_VEHICLES]
    , objectid4
    [MAX_VEHICLES]
    ;


    //OnPlayerEnterVehicle:new Mav = GetVehicleModel(vehicleid);
    if(Mav==487)
    {DestroyObject( objectid1[vehicleid]); DestroyObject( objectid2[vehicleid]); DestroyObject( objectid3[vehicleid]); DestroyObject( objectid4[vehicleid]); objectid1[vehicleid] = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid2
    [vehicleid]
    = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid3
    [vehicleid]
    = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid4
    [vehicleid]
    = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00); AttachObjectToVehicle(objectid1,
    vehicleid
    , 1.09, 1.88, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid2, vehicleid, 1.09, -0.60, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid3,
    vehicleid
    , -1.12, 1.88, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid4,
    vehicleid
    , -1.12, -0.60, -1.0, 0.0, 0.0, 0.0);
    }
    //OnVehicleDeathif(Mav == 487){
    DestroyObject( objectid1[vehicleid]); DestroyObject( objectid2[vehicleid]); DestroyObject( objectid3[vehicleid]); DestroyObject( objectid4[vehicleid]); }

    Berlin - Tel Aviv - Moskau

  • Ich hab den richtigen Code:



    Oben im Script:


    new objectid1[MAX_VEHICLES], objectid2[MAX_VEHICLES], objectid3[MAX_VEHICLES], objectid4[MAX_VEHICLES];



    OnVehicleDeath


    new Mav = GetVehicleModel(vehicleid);
    if(Mav == 469){
    DestroyObject( objectid1[vehicleid]);
    DestroyObject( objectid2[vehicleid]);
    DestroyObject( objectid3[vehicleid]);
    DestroyObject( objectid4[vehicleid]);
    }


    OnPlayerEnterVehicle


    new Mav = GetVehicleModel(vehicleid);
    if(Mav==469)
    {
    DestroyObject(objectid1[vehicleid]);
    DestroyObject(objectid2[vehicleid]);
    DestroyObject(objectid3[vehicleid]);
    DestroyObject(objectid4[vehicleid]);
    objectid1[vehicleid] = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid2[vehicleid] = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid3[vehicleid] = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    objectid4[vehicleid] = CreateObject(2937, 0,0,0, 0.00, 0.00, 0.00);
    AttachObjectToVehicle(objectid1[vehicleid],vehicleid, 1.09, 1.88, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid2[vehicleid],vehicleid, 1.09, -0.60, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid3[vehicleid],vehicleid, -1.12, 1.88, -1.0, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(objectid4[vehicleid],vehicleid, -1.12, -0.60, -1.0, 0.0, 0.0, 0.0);
    }


    Jetzt hab ich aber noch ne Frage:
    Hat einer die Koordinaten wenn ich noch ein Brett neben das andere setzen will ?
    Ich hab mit den Koords gar keine Ahnung. Und wie man die Objekte an alle Fahrzeuge machen lässt beim Serverstart