GetVehicleSeat schleife?

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
  • Man kann leider nicht getVehicleSeat abfargen mann kann aber GetPlayerVicleSeat abfragen?


    Dann machst du zwei for Schleifen eine für MAX_PLAYERS und eine für MAX_VEHICLES wenn jemand im Car auf der Sitzid 0 sitz brichst du ab und returnst 1 oder 0 halt


    Edit: Bsp:stock GetVeicleFreeSeat(vid)
    {
    for(new player = 0; player < MAX_PLAYERS; player++)
    {
    if(IsPlayerConnected(player))
    {
    if(IsPlayerInAnyVehicle
    {
    if(GetPlayerVehicleSeat(playerid,vid)) return 0;
    else return 1;
    }
    }
    }
    }

  • Man kann leider nicht getVehicleSeat abfargen mann kann aber GetPlayerVicleSeat abfragen?


    Dann machst du zwei for Schleifen eine für MAX_PLAYERS und eine für MAX_VEHICLES wenn jemand im Car auf der Sitzid 0 sitz brichst du ab und returnst 1 oder 0 halt


    Also wenn er wissen will, ob das Vehicle mit einem Fahrer besetzt ist, präsentiere Ich ihm das:
    stock IsVehicleOccupied(vehicleid)
    {
    for(new i=0;i<=GetMaxPlayers();i++)
    {
    if((IsPlayerInVehicle(i, vehicleid)) && (GetPlayerState(i)==PLAYER_STATE_DRIVER))
    {
    return 1;
    }
    }
    return 0;
    }


  • Ich möchte wissen welcher Platz im Auto frei ist und dann jemanden auf diesen Freien Platz packen hab alles bis jetzt so : ocmd:giv(playerid,params[])
    {
    new pID,string[128],Float:x,Float:y,Float:z;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"/giv [ID]");
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerState(pID) == PLAYER_STATE_ONFOOT)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    GetPlayerPos(playerid,x,y,z);
    if(!IsPlayerInRangeOfPoint(pID,10,x,y,z))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht in deiner Nähe!");
    PutPlayerInVehicle(pID, vehicleid, 3);
    format(string,sizeof(string),"Du hast %s in dein Auto gezogen!Vergesse nicht ihn zu fesseln!(/cuff)",SpielerName(pID));
    SendClientMessage(playerid,BLAU,string);
    format(string,sizeof(string),"Du wurdest von %s in sein Auto gezogen!",SpielerName(playerid));
    for(new i=0;i <MAX_PLAYERS;i++)
    {
    for(new v=0,v <MAX_VEHICLES;v++)
    {
    if(GetPlayerVehicleSeat(i)==0)return 0;
    if(GetPlayerVehicleSeat(i)==1)return 0;
    }
    return 1;
    }
    SendClientMessage(pID,ROT,string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht am Laufen!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht der Fahrer!");
    return 1;
    }
    }Weiß aber nicht ganz wie ich das mit der For schleife richtig machen soll...

  • Ja dann nimm mein stock und mach so


    if(GetVehicleFreeSeat(deine Vehicleid) == 0)
    {


    }
    else //besetzt


    Oder er benutzt diesen:
    stock IsVehicleSeatOccupied(vehicleid,seatid)
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInVehicle(i,vehicleid) && GetPlayerVehicleSeat(playerid) == seatid)
    {
    return 1;
    }
    }
    return 0:
    }


    Achtung: ungetestet, Erfolgschance liegt bei 50%!


    /e:
    Im Script sollte das dann so laufen:
    if(IsVehicleSeatOccupied(vehicleid,3))
    {
    SendClientMessage(playerid,-1,"Dieser Sitzplatz im Auto ist belegt!");
    }
    else
    {
    PutPlayerInVehicle(pID,vehicleid,3);
    }



  • Ich habe meinen gerade getestet geht bei mir

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen