Das geht einfacher, in Verbindung mit dem Code von Y_Less
stock GetFreeVehicleSeat(vehicleid,&seat) // by BlackAce
{
new seatid,bool:sitzbesetzt[8 char],i;
new seats=GetVehicleSeatCount(GetVehicleModel(vehicleid));
for(;i!=MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i)) continue;
if(!IsPlayerInAnyVehicle(i)) continue;
if(vehicleid==GetPlayerVehicleID(i))
{
seatid = GetPlayerVehicleSeat(i);
if(seatid>seats) break;
switch(seatid) { case 0: sitzbesetzt[seatid] = true; case 1: sitzbesetzt[seatid] = true; case 2: sitzbesetzt[seatid] = true; case 3: sitzbesetzt[seatid] = true;
}
}
seatid=0;
for(;seatid!=seats;seatid++) if(!sitzbesetzt[seatid]) { seat=seatid; failed=false; break; } else failed=true;
if(failed) seat=128;
return true;
}
stock GetVehicleSeatCount(model) //by Y_Less
{
static const
scMaxPassengers[] =
{
0x10331113, 0x11311131, 0x11331313, 0x80133301, 0x1381F110, 0x10311103, 0x10001F10, 0x11113311, 0x13113311,
0x31101100, 0x30001301, 0x11031311, 0x11111331, 0x10013111, 0x01131100, 0x11111110, 0x11100031, 0x11130221,
0x33113311, 0x11111101, 0x33101133, 0x101001F0, 0x03133111, 0xFF11113F, 0x13330111, 0xFF131111, 0x0000FF3F
};
if (400 <= model <= 611)
{
model -= 400;
model = (scMaxPassengers[model >>> 3] >>> ((model & 7) << 2)) & 0xF;
if (model == 15) return -1;
return model;
}
return -1;
}