Wie kann man herausfinden, ob ein user in einem bestimmten auto sitzt

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 wollte euch fragen, wie man abfragen kann, ob ein bestimmter spieler in einem bestimmten auto sitzt.
    Nehmen wir mal an es gibt 3 dateien für ein Auto. Dann möchte ich abfragen in welchem der 3 Autos dieser Spieler sitzt, damit ich in dieser datei, in welchem auto der Spieler sitzt etwas abspeichern kann.
    Kann mir einer zeigen wie das geht?
    Hier ein bisschen code
    if(strcmp("/parken",cmdtext,true,10)==0)
    {
    for(new v = 0; v < maxPVehicles; v++)
    {
    if(IsPlayerInVehicle(playerid,playerVehicles[playerid][v][sCar]))
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetVehiclePos(playerVehicles[playerid][v][sCar],X,Y,Z);
    playerVehicles[playerid][v][cX] = X;
    playerVehicles[playerid][v][cY] = Y;
    playerVehicles[playerid][v][cZ] = Z;
    GetVehicleZAngle(playerVehicles[playerid][v][sCar],A);
    playerVehicles[playerid][v][cA] = A;
    SendClientMessage(playerid,COLOR_LIGHTGREEN,"Du hast dein Fahrzeug geparkt.");
    return 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Du kannst nur deine eigenen Autos parken.");
    }
    }
    return 1;
    }
    onplayerconnect
    for(new v = 0; v != maxPVehicles; v++)
    {
    format(fileName, sizeof(fileName), "/Autos/%s%d.ini", SpielerName(playerid), v);
    if(fexist(fileName))
    {
    playerVehicles[playerid][v][sCar]=AddStaticVehicleEx(playerVehicles[playerid][v][CarID],playerVehicles[playerid][v][cX],playerVehicles[playerid][v][cY],playerVehicles[playerid][v][cZ],playerVehicles[playerid][v][cA],playerVehicles[playerid][v][CarColor],random(126),-1);
    }
    }


    enum
    enum pVehicles {
    sCar,
    CarID,
    CarColor,
    Float:cX,
    Float:cY,
    Float:cZ,
    Float:cA
    };


    new playerVehicles[MAX_PLAYERS][maxPVehicles][pVehicles];

  • stock saveVehicles(playerid)
    {
    new fileName[128];
    for(new v = 0; v != maxPVehicles; v++)
    {
    format(fileName,sizeof(fileName),"/Autos/%s%d.ini",SpielerName(playerid),v);
    if(fexist(fileName))
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetVehiclePos(playerVehicles[playerid][v][sCar],X,Y,Z);
    GetVehicleZAngle(playerVehicles[playerid][v][sCar],A);
    //saves
    dini_IntSet(fileName,"CarID",playerVehicles[playerid][v][CarID]);
    dini_IntSet(fileName,"CarColor",playerVehicles[playerid][v][CarColor]);
    dini_FloatSet(fileName,"cX",X);
    dini_FloatSet(fileName,"cY",Y);
    dini_FloatSet(fileName,"cZ",Z);
    dini_FloatSet(fileName,"cA",A);
    DestroyVehicle(playerVehicles[playerid][v][sCar]);
    }
    }
    return 1;
    }


    Da kommt aber wenn ich /parken mache der error: return SendClientMessage(playerid,COLOR_RED,"Du kannst nur deine eigenen Autos parken.");

  • Ich würde dir empfehlen einen neuen stock zu erstellen mit dem du die fahrzeug nummer herausbekommst, oder -1 wenn er in keinem Fahrzeug von sich drine ist.


    stock GetPCar(playerid)
    {
    for(new v = 0; v < maxPVehicles; v++)
    {
    if(IsPlayerInVehicle(playerid,playerVehicles[playerid][v][sCar]))
    {
    return v;
    }
    }
    return -1;
    }


    if(strcmp("/parken",cmdtext,true,10)==0)
    {
    new v=GetPCar(playerid);
    if(v!=-1)
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetVehiclePos(playerVehicles[playerid][v][sCar],X,Y,Z);
    playerVehicles[playerid][v][cX] = X;
    playerVehicles[playerid][v][cY] = Y;
    playerVehicles[playerid][v][cZ] = Z;
    GetVehicleZAngle(playerVehicles[playerid][v][sCar],A);
    playerVehicles[playerid][v][cA] = A;
    SendClientMessage(playerid,COLOR_LIGHTGREEN,"Du hast dein Fahrzeug geparkt.");
    return 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Du kannst nur deine eigenen Autos parken.");
    }
    }
    return 1;
    }