Lock Problem

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
  • Hallo liebe User,


    nachdem ich gestern von Goldkiller einen sehr hilfreichen Tipp bekommen habe, und dieser soweit bis auf eines auch Funktioniert hat wende ich mich erneut an euch.


    Ich habe den Befehl erneut bearbeitet und nun kann ich das Fahrzeug von außen wieder nicht öffnen. Warum habe ich es geändert ? if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1; hat mir gefehlt da andernfalls ja jeder das Fahrzeug auf und zu schließen kann.


    Wie mache ich am schlausten weiter ?



    2 Mal editiert, zuletzt von TobiSagu ()

  • if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;

    Du musst diese Abfrage machen, wenn der Spieler IM Fahrzeug ist. Aktuell hast du es so, dass die Abfrage kommt wenn er nicht im Fahrzeug ist. Wenn er nicht im Fahrzeug ist, ist er auch niemals der Fahrer. Daher ist die Abfrage immer wahr und die Funktion wird beendet.
    Außerdem hast du die Klammer und das return komisch gesetzt. Das ist zum lesen verwirrent und ich bin mir ziemlich sicher, du möchtest nicht das,was da aktuell passiert.


    Kurz gesagt:
    Die Abfrage muss über die Zeile 12 bzw vor vehicleid=GetPlayerVehicleID(playerid); im Block kommen.

  • Von außen und innen klappt nun nun nur die Frage, wie Frage ich genau ab welches Auto die jeweilige Fraktion öffnen darf ?



    Also ist Player in der Fratkion vom Fraktionsfahrzeug




  • Ich erstelle das Fahrzeug mit folgenden Befehl



  • Dann kannst du es so machen:
    ocmd:fulock(playerid)
    {
    if(!IsPlayerInFrakt(playerid,1)&&!IsPlayerInFrakt(playerid,16)&&!IsPlayerInFrakt(playerid,6)&&!IsPlayerInFrakt(playerid,13)&&!IsPlayerInFrakt(playerid,12))return 1;
    new vehicleid;
    if(!IsPlayerInAnyVehicle(playerid))
    {
    vehicleid=GetNearestVehicle(playerid,6,true);
    }
    else
    {
    vehicleid=GetPlayerVehicleID(playerid);
    }
    for(new i=1; i<sizeof(FraktAuto); i++)
    {
    if(vehicleid == FraktAuto[i][id_x])
    {
    if(!IsPlayerInFrakt(playerid,FraktAuto[i][besitzer]))
    {
    SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht in der Fraktion dieses Fahrzeugs.");
    return 1;
    }
    if(!isVehicleLocked(vehicleid))
    {
    lockVehicle(vehicleid);
    GameTextForPlayer(playerid,"~w~Fahrzeug ~r~abgeschlossen",1500,3);
    }
    else
    {
    unlockVehicle(vehicleid);
    GameTextForPlayer(playerid,"~w~Fahrzeug ~g~aufgeschlossen",1500,3);
    }
    break;
    }
    }
    return 1;
    }