Vehiclecoordinaten updaten, wie?

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
  • Guten Morgen Breadfish,


    Ich habe ein Kofferraumsystem gescriptet und dort wird so abgefragt, ob er am Auto steht:

    if(IsPlayerInRangeOfPoint(playerid,7.0,PlayerAuto[a][v_x],PlayerAuto[a][v_y],PlayerAuto[a][v_z]))


    Aber diese Coordinaten, werden ja nicht gesaved/geupdatet, wie kann ich das tun?
    Oder einfach mit einer for-schleife alle Spielerautos durchgehen, mit GetVehiclePos die Pos herrausfinden und dann abfragen ob und an welchem Auto er ist?
    Würde das so funktonieren, oder wie könnte ich das lösen.
    Danke


    Mit freundlichen Grüßen,


    #BLackYoda_

  • stock GetNearestCar(playerid,Float:max = 3.0)
    {
    new Float:pos[3], id = -1, Float:temp;
    for(new v = 0; v <= MAX_VEHICLES; v++)
    {
    GetVehiclePos(v,pos[0],pos[1],pos[2]);
    temp = GetPlayerDistanceFromPoint(playerid,pos[0],pos[1],pos[2]);
    if(temp < max)
    {
    max = temp;
    id = v;
    }
    }
    return id;
    }


    Damit abfragen ob der Spieler in der Nähe seines Autos ist.

    Back to the roots!

  • Returnt das die Vehicleid oder was?


    //EDIT:
    hatte es gerade so gemacht, probiere nun aus!

    if(PRESSED(KEY_SUBMISSION))
    {
    for(new a; a < MAX_AUTOS; a++)
    {
    new Float: X, Float: Y, Float: Z,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetVehiclePos(PlayerAuto[a][id_x],X,Y,Z);
    if(IsPlayerInRangeOfPoint(playerid,7.0,X,Y,Z))
    {
    if(strcmp(PlayerAuto[a][vkey],name,false))
    {
    SendClientMessage(playerid,COLOR_RED,"Das ist nicht dein Auto");
    return 0;
    }
    else
    {
    ShowPlayerDialog(playerid,Dialog_Kofferraum,DIALOG_STYLE_LIST,"Kofferraum","Reinlegen\nRausnehmen\nInhalt","Weiter","Abbrechen");
    new vid = PlayerAuto[a][id_x],engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,1,objective);
    PlayerAuto[a][kState] = 1;
    return 1;
    }
    }
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht in der Nähe eines deiner Autos!");
    }
    }