Was ist hierran falsch?
if(GetPlayerVehicleID(playerid) == 432)
{
if(Player[playerid][rank] < 6)
{
SendClientMessage(playerid, COLOR_RED,"Du brauchst Rank 6 oder höher!");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
Was ist hierran falsch?
if(GetPlayerVehicleID(playerid) == 432)
{
if(Player[playerid][rank] < 6)
{
SendClientMessage(playerid, COLOR_RED,"Du brauchst Rank 6 oder höher!");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
verguckt^^
Lösung steht unten
lol, 2 fehler.
1. Du brauchst die modelid, nit die carid^^
2. du musst aus dem < ein >= machen xD < heißt ja kleiner, nit größer. Also sieht das dann so aus:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432)
{
if(Player[playerid][rank] >= 6)
{
SendClientMessage(playerid, COLOR_RED,"Du brauchst Rank 6 oder höher!");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
Zitat2. du musst aus dem < ein >= machen xD < heißt ja kleiner, nit größer. Also sieht das dann so aus:
Ja, falls der Rang unter 6 ist passiert das.. so war das gemeint.. lol..
lolol
if(Player[playerid][rank] < 6)
Stimmte schon
lolol
if(Player[playerid][rank] < 6)
Stimmte schon
Es geht aber trozdem iwie nit :<
Ich kann damit fahren, obwohl ich Rank 1 bin
ja.. ist kla.. wo runter hast du das gemacht? OnPlayerEnterVehicle?
//hier die lösung:
new auto[1]; //das in den eckigen klammern ist die anzahl der autos... es wird bei 0 angefangen..
OnGameModeInit()
{
auto[0] = AddStaticVehicle(...);// das auto was erst mit dem rank gefahren werden kann..
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
for(new j = 0;j<sizeof auto;j++)
{
if(vehicleid ==auto[j])
{
if(Player[playerid][rank] >= 6)
{
}
else
{
SendClientMessage(playerid,ROT,"Du benötigst rank 6 oder höher um das auto fahren zu können!");
RemovePlayerFromVehicle(playerid);
}
}
}
}
return 1;
}
ja.. ist kla.. wo runter hast du das gemacht? OnPlayerEnterVehicle?
Ja... logisch^^
nein eben nicht! OnPlayerENterVehicle fängt an, wenn du f/g drückst. außerdem wirst du dann auch als beifahrer rausgeworfen. das problem: du drügst g/f und steigst ein. in dem moment soll er dich aus dem auto schmeißen. das tut er auch! nur da du noch garnet im auto sitzt sondern er gerade erst einsteigt, merkt keiner was davon..
die lösung: ein ein post über deinen letzten...
warum so umständlich?
Statt dem Remove mach TogglePlayerControllable(playerid, true);
fertig
wäre auch ne möglichkeit...
also dann aber wieder bei OnPlayerEnterVehicle.. also wenn er einsteigt wird er einfach gefreezed...
aber dann fliegt er halt net aus dem auto und es wird einem auch nocht gesagt welchen rank er braucht...
Kapier deine aussage nicht ganz, aber sie ist teils falsch,der spieler wird nicht gefreezt sondern entfreezt auch wenn er nicht gefreezt war wird sein bewegungsvorgang abgebrochen.
In dem fall halt das einsteigen...
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432)
{
if(Player[playerid][rank] < 6)
{
SendClientMessage(playerid, COLOR_RED,"Du brauchst Rank 6 oder höher!");
TogglePlayerControllable(playerid,true);
}
return 1;
}
Wär eh unsinn, wenn er dann nicht rausgeschmissen würde, denn Panzer und Hydras sind eh 1 sitzer^^
das meinte ich.... also es sieht so aus als würde er gefreezed und gleich wieder entfreezed werden...
er wird halt gestoppt... nur er muss wissen ob man ihn einsteigen lassen soll und dann rauswerfen oder bevor er überhaupt dazu kommt einzusteigen daran gehindert wird..
beides ist möglich..