Vorm Kofferraum ?

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 wie kann ich abfragen ob man vor dem Kofferaum steht weil so kann man auch bei der motorhaube stehen wie soll ich es machen ?


    if(strcmp(cmd, "/kofferraum", true) == 0)
    {
    for(new v = 0; v < MAX_VEHICLES; v++)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:x,Float:y,Float:z;
    GetVehiclePos(v,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,4.0,x,y,z))
    {

  • Du könntest mit
    stock GetXYZInfrontOfVehicle(vehid,Float:distance,&Float:x,&Float:y,&Float:z)
    {
    new Float:Quaternion[4];
    new Float:transformationmatrix[4][4];


    GetVehicleRotationQuat(vehid, Quaternion[0], Quaternion[1], Quaternion[2], Quaternion[3]);


    new Float:xx = Quaternion[0] * Quaternion[0];
    new Float:xy = Quaternion[0] * Quaternion[1];
    new Float:xz = Quaternion[0] * Quaternion[2];
    new Float:xw = Quaternion[0] * Quaternion[3];
    new Float:yy = Quaternion[1] * Quaternion[1];
    new Float:yz = Quaternion[1] * Quaternion[2];
    new Float:yw = Quaternion[1] * Quaternion[3];
    new Float:zz = Quaternion[2] * Quaternion[2];
    new Float:zw = Quaternion[2] * Quaternion[3];


    transformationmatrix[0][0] = 1 - 2 * ( yy + zz );
    transformationmatrix[0][1] = 2 * ( xy - zw );
    transformationmatrix[0][2] = 2 * ( xz + yw );
    transformationmatrix[0][3] = 0.0;


    transformationmatrix[1][0] = 2 * ( xy + zw );
    transformationmatrix[1][1] = 1 - 2 * ( xx + zz );
    transformationmatrix[1][2] = 2 * ( yz - xw );
    transformationmatrix[1][3] = 0.0;


    transformationmatrix[2][0] = 2 * ( xz - yw );
    transformationmatrix[2][1] = 2 * ( yz + xw );
    transformationmatrix[2][2] = 1 - 2 * ( xx + yy );
    transformationmatrix[2][3] = 0;


    transformationmatrix[3][0] = 0;
    transformationmatrix[3][1] = 0;
    transformationmatrix[3][2] = 0;
    transformationmatrix[3][3] = 1;
    GetVehiclePos(vehid,x,y,z);
    z +=( -1 * transformationmatrix[0][1] + transformationmatrix[0][3])*distance;
    y +=( -1 * transformationmatrix[1][1] + transformationmatrix[1][3])*distance;
    x +=( -(-1 * transformationmatrix[2][1] + transformationmatrix[2][3]))*distance;
    }
    //http://forum.sa-mp.com/showthread.php?t=298215

    und GetVehicleModelInfo die ungefähren Koordinaten des Kofferraums herrausfinden.



    new Float:X, Float:Y, Float:Z;
    GetVehicleModelInfo(GetVehicleModel(vehid), VEHICLE_MODEL_INFO_SIZE, X, Y, Z);
    GetXYZInfrontOfVehicle(vehid,-Y,X,Y,Z);


    Das ganze ist ungetestet, wenn du möchtest helf ich dir gerne, adde mich in ICQ oder schreib mir ne PN :)


    EDIT: Hier mal ein Test-Befehl:

    COMMAND:test(playerid,params[])
    {
    new vehid = GetPlayerVehicleID(playerid);
    new Float:X, Float:Y, Float:Z;
    GetVehicleModelInfo(GetVehicleModel(vehid), VEHICLE_MODEL_INFO_SIZE, X, Y, Z);
    GetXYZInfrontOfVehicle(vehid,-Y/2.0,X,Y,Z);
    CreateObject(345,X,Y,Z,0,0,0,10.0);
    return 1;
    }


    habe es mit einigen Fahrzeugen getestet, das Objekt wird ungefähr am Kofferraum erstellt.

    Einmal editiert, zuletzt von Haxler ()