AttachObjectToVehicle

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 moechte einen Befehl machen mit dem an vorher erstellte Objekte an einem Fahrzeug befestigen kann.


    Wenn ich es allerdings ausprobiere, wird das Object an einer falschen Stelle ans Fahrzeug geheftet.


    ocmd:vehicleobject(playerid, params[])
    {
    new objectid;
    if (sscanf(params, "i", objectid)) return SendClientMessage(playerid, COLOR_GREY, " ** [Fehler]{FFFFFF} /vehicleobject [objectid]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, " ** [Fehler]{FFFFFF} Du befindest dich in keinem Fahrzeug.");
    if(IsValidObject(objectid) || IsValidDynamicObject(objectid))
    {
    if(IsValidObject(objectid))
    {
    new Float:ObjPos[3], Float:VehiclePos[3], Float:NewPos[3], Float:Rot[3];

    GetObjectPos(objectid, ObjPos[0], ObjPos[1], ObjPos[2]);
    GetObjectRot(objectid, Rot[0], Rot[1], Rot[2]);
    GetVehiclePos(GetPlayerVehicleID(playerid), VehiclePos[0], VehiclePos[1], VehiclePos[2]);


    NewPos[0] = ((floatsqroot(floatpower(ObjPos[0], 2))) - (floatsqroot(floatpower(VehiclePos[0], 2))));
    NewPos[1] = ((floatsqroot(floatpower(ObjPos[1], 2))) - (floatsqroot(floatpower(VehiclePos[1], 2))));
    NewPos[2] = ((floatsqroot(floatpower(ObjPos[2], 2))) - (floatsqroot(floatpower(VehiclePos[2], 2))));


    AttachObjectToVehicle(objectid, GetPlayerVehicleID(playerid), NewPos[0], NewPos[1], NewPos[2], Rot[0], Rot[1], Rot[2]);
    }
    }


    xXSeXyBreaDXx -> BREAD. -> [LoG]Bread -> Bread

  • Ja, die Position musst du ja aber nur einmal herausfinden.


    ocmd:vehicleobject(playerid, params[])
    {
    new objectid;
    if (sscanf(params, "i", objectid)) return SendClientMessage(playerid, COLOR_GREY, " ** [Fehler]{FFFFFF} /vehicleobject [objectid]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, " ** [Fehler]{FFFFFF} Du befindest dich in keinem Fahrzeug.");
    if(IsValidObject(objectid) || IsValidDynamicObject(objectid))
    {
    if(IsValidObject(objectid))
    {
    AttachObjectToVehicle(objectid, GetPlayerVehicleID(playerid), 1.0, 0.0, 0.0, 0.0, 0.0, 0.0);
    }
    }
    return 1;
    }


    Zum Beispiel.
    Oder was genau willst du mit der Berechnung bezwecken?

  • Das Objekt ist ein beliebiges vorher Ingameerstelltest Objekt, welches ich beliebig an irgeneinde Stelle am Fahrzeug vorher ingame verschieben (EditObject();) und dann an das Fahrzeug anheften moechte


    xXSeXyBreaDXx -> BREAD. -> [LoG]Bread -> Bread

  • Heißt du erstellst das Objekt an der Position des Fahrzeugs und verschiebst es von dort an?
    Versuche es dann mal so:
    ocmd:vehicleobject(playerid, params[])
    {
    new objectid;
    if (sscanf(params, "i", objectid)) return SendClientMessage(playerid, COLOR_GREY, " ** [Fehler]{FFFFFF} /vehicleobject [objectid]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, " ** [Fehler]{FFFFFF} Du befindest dich in keinem Fahrzeug.");
    if(IsValidObject(objectid) || IsValidDynamicObject(objectid))
    {
    if(IsValidObject(objectid))
    {
    new Float:ObjPos[3], Float:VehiclePos[3], Float:NewPos[3], Float:Rot[3];

    GetObjectPos(objectid, ObjPos[0], ObjPos[1], ObjPos[2]);
    GetObjectRot(objectid, Rot[0], Rot[1], Rot[2]);
    GetVehiclePos(GetPlayerVehicleID(playerid), VehiclePos[0], VehiclePos[1], VehiclePos[2]);

    NewPos[0] = ObjPos[0] - VehiclePos[0];
    NewPos[1] = ObjPos[1] - VehiclePos[1];
    NewPos[2] = ObjPos[2] - VehiclePos[2];

    AttachObjectToVehicle(objectid, GetPlayerVehicleID(playerid), NewPos[0], NewPos[1], NewPos[2], Rot[0], Rot[1], Rot[2]);
    }
    }

  • @[LoG]Bread:
    Könntest du dann nochmal bitte den gewünschten Effekt ganz genau erklären? Vielleicht mit einem Bild wie es momentan ist, und dann ein Bild wie es sein soll.
    Ich weiß nämlich nicht, wie du es wirklich haben willst. :S