GetPlayerCameraTargetVehicle Fehler

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
  • Egal ob ich zum Fahrzeug gedreht bin oder nicht, er sagt immer "Du musst zu deinem Fahrzeug gedreht sein".

  • Daran kanns nicht liegen, sonst würde ich die Nachricht "Du bist nicht in der nähe eines Fahrzeuges" bekommen

  • wenn nicht mach mal den string rein und schreib malw as kommt



    new string[250];
    format(string,sizeof(string),"%d == %d",GetPlayerCameraTargetVehicle(playerid) ,veh);
    if(GetPlayerCameraTargetVehicle(playerid) == veh)
    {
    EnablePlayerCameraTarget(playerid, false);
    SetTimerEx("RepairkitT",30000,0,"ii",playerid,veh);
    SendClientMessage(playerid,F_Lightblue,"Repariere Fahrzeug..");
    }
    else
    {
    EnablePlayerCameraTarget(playerid, false);
    SendClientMessage(playerid,F_Gray,"Du musst zu deinem Fahrzeug gedreht sein!");
    }
    SendClientMessage(playerid,-1,string);

  • oaky die einzigste antwort auch von meinen tests ist...
    das du anscheinend
    nicht
    EnablePlayerCameraTarget(playerid, true);
    unter onplayerconenct hast
    oder evt. weil du es irgendwann immer wieder aus machst
    aber schau mal anch das du es wirklich an amchst im script

  • Ich habs jetzt nochmal bisschen ausgetestet.. Wenn das CameraTarget vorher nicht an war, funktionierts nicht. Es reicht auch nicht es zu aktivieren wenn er den Befehl ausführt. Also theoretisch müsste es immer an sein. Ist zwar ganz cool das ich mich mit der Funktion jetzt bisschen vertraut gemacht hab, aber das ist nicht ganz das was ich suche, denn der Spieler muss das Fahrzeug ja nur ansehen, ich möchte aber das er zu dem Fahrzeug gedreht ist, damit z.B. wenn eine Animation ausgeführt wird, er sie auch zum Fahrzeug hin ausführt.


    //Edit: Hat hier jemand eine Lösung für mich?

    Einmal editiert, zuletzt von Jadeclon ()

  • //Edit: Hat hier jemand eine Lösung für mich?

    Sorry, ich bin nicht früher dazu gekommen das zu basteln.


    Du kannst dazu folgende Funktion nutzen:
    stock GetPlayerLookAtVehicle(playerid, distance, Float:range) //©Jeffry
    {
    new Float:x, Float:y, Float:z, Float:a, Float:nx, Float:ny, vehicleid = INVALID_VEHICLE_ID;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
    if(!GetVehicleModel(i)) continue;
    if(GetVehicleDistanceFromPoint(i, x, y, z) <= distance)
    {
    for(new j = floatround(range); j <= distance; j++)
    {
    nx = x + (j * floatsin(-a, degrees));
    ny = y + (j * floatcos(-a, degrees));
    if(GetVehicleDistanceFromPoint(i, nx, ny, z) <= range)
    {
    vehicleid = i;
    distance = floatround(GetVehicleDistanceFromPoint(i, x, y, z));
    break;
    }
    }
    }
    }
    return vehicleid;
    }



    Nutzung:
    new vehicleid = GetPlayerLookAtVehicle(playerid, 30, 2.0);
    if(vehicleid == INVALID_VEHICLE_ID) printf("Kein Fahrzeug wird angeschaut.");
    else printf("Fahrzeug %d wird angeschaut.", vehicleid);
    Die 30 steht für die Distanz vom Spieler aus nach vorne, bis zu der hin überprüft werden soll, ob ein Fahrzeug angeschaut werden soll.
    Die 2.0 steht für den Umkreis um das eventuell gefundene Fahrzeug.