Wie kann ich abfragen welcher Platz im Vehicle frei ist?Kriege es mit ner for schleife nit hin bin irgendwie zu dumm dafür T_T Könnte mir einer da helfen?
GetVehicleSeat schleife?
- Jason27993
- Geschlossen
- Erledigt
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;
} -
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... -
-
im
Ja dann nimm mein stock und mach so
if(GetVehicleFreeSeat(deine Vehicleid) == 0)
{}
else //besetzt -
Jap da ich darauf keine Antwort bekam und es jetzt schon wieder auf den hinteren Seiten ist.
-
Ja dann nimm mein stock und mach so
if(GetVehicleFreeSeat(deine Vehicleid) == 0)
{}
else //besetztOder 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);
} -
Probiere mal beide aus editiere den beitrag hier wen einer geklappt hat :3
-
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
-
-
breadfish.de
Hat das Thema geschlossen.