Befehl nur in vordefinierten Fahrzeug

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
  • Guten Abend,
    ich habe wieder mal ein Problem'chen und zwar folgendes:
    Ich möchte nur in einem Bus den Befehl "/linie" verfügbar machen.
    Dies funktioniert, bis ich auf eine andere Abfrage Version gestiegen bin.
    Das ausgeklammerte ist meine alte Version, aber diese ist nicht so gut, da es dann ja für jedes Fahrzeug mit dieser ID gilt, aber ich möchte es nur das man den Befehl in den zuvor definierten Bussen eingeben kann.
    ocmd:linie(playerid,params[]){
    //new bus = GetPlayerVehicleID(playerid);
    if(GetPVarInt(playerid,"Eingeloggt") != 1)return SendClientMessage(playerid,Rot,"Du musst eingeloggt sein, um diesen Befehl zu nutzen!");
    if(SpielerInfo[playerid][pJob]!=4)return SendClientMessage(playerid,Rot,"Du bist kein Busfahrer!");
    //if(GetVehicleModel(bus) != 437 && GetVehicleModel(bus) != 431)return SendClientMessage(playerid,Rot,"Du bist in keinem Bus");
    if(GetPlayerVehicleID(playerid) != Busveh[0]||GetPlayerVehicleID(playerid) != Busveh[1]||GetPlayerVehicleID(playerid) != Busveh[2]||GetPlayerVehicleID(playerid) != Busveh[3]||GetPlayerVehicleID(playerid) != Busveh[4]||GetPlayerVehicleID(playerid) != Busveh[5]||GetPlayerVehicleID(playerid) != Busveh[6]||GetPlayerVehicleID(playerid) != Busveh[7]||GetPlayerVehicleID(playerid) != Busveh[8]||GetPlayerVehicleID(playerid) != Busveh[9]||GetPlayerVehicleID(playerid) != Busveh[10]||
    GetPlayerVehicleID(playerid) != Busveh[11]||GetPlayerVehicleID(playerid) != Busveh[12]||GetPlayerVehicleID(playerid) != Busveh[13]||GetPlayerVehicleID(playerid) != Busveh[14]||GetPlayerVehicleID(playerid) != Busveh[15]||GetPlayerVehicleID(playerid) != Busveh[16]||GetPlayerVehicleID(playerid) != Busveh[17]||GetPlayerVehicleID(playerid) != Busveh[18]||GetPlayerVehicleID(playerid) != Busveh[19])return SendClientMessage(playerid,Rot,"Du bist in keinem Bus");
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,Rot,"Du bist nicht der Fahrer");
    ShowPlayerDialog(playerid, DIALOG_BUSLINIEN, DIALOG_STYLE_LIST,"Linien","Linie 1\nLinie 2","Auswählen","Verlassen");
    return 1;
    }
    Jetzt steht dort immer, wenn man IN einem Bus ist, das man in keinem Bus wäre.
    Wollte die IF abfrage auch schon in einen Zeile machen, aber diese ist zum compilen zu lang..
    Bitte um schnelle Hilfe


    MfG
    AndyWalker

  • Ich weiß nich warum dein befehl so komisch ist aber hier mal meiner vllt hilft der hier



    for(new i=0; i!=sizeof(busveh); i++)
    {
    if(GetPlayerVehicleID(playerid) ==busveh[i])
    {
    if(newstate == PLAYER_STATE_DRIVER)
    if(GetPVarInt(playerid,"Job")==1)
    {
    ShowPlayerDialog(playerid,21,DIALOG_STYLE_LIST,"Wähle die linie die du fahren möchtest","Linie 1","Auswählen","Abbrechen");
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du bist kein Busfahrer");
    return 1;
    }
    }
    }
    return 1;
    }