Kurzschliessen

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
  • Ist zwar etwas ziemlich einfaches, aber ich finde es ist nicht wirklich Reallife,
    das wen man in ein Auto steigt, wieder automatisch aussteigt, wen man nicht der
    Fraktion zugehört.


    Das könnte man eigentlich für GF und Selfmade verwenden, ich benutze es für
    mein Selfmade Script, naja ich zeigs euch mal.




    OnPlayerEnterVehicle
    Hier setzen wir hin, bei welchen Autos es passieren soll, wie das bei Godfather steht, müsst
    ihr leider selbst herrausfinden, habe momentan kein GF hier. Also, die vehicleids sind beim GF
    vielleicht COP1 || COP2 müsst ihr mal schauen, ich weiß nicht genau.
    Bei einem Selfmade wäre es z.b :



    if(vehicleid == FAHRZEUG1 || vehicleid == FAHRZEUG2)
    {
    if(// Welcher Person soll der Zugriff erlaubt werden ? z.b Cops)
    {
    //Was passieren soll, wen das oben stimmt!
    }
    else
    {
    SetTimer("einsteigen", ZEIT ,0); // Wenn nicht läuft dieser Timer ab.
    }
    }


    Wieso ich dort schon einen Timer hinsetze, anstatt ihn sofort zu Freezen ?
    Da ich das problem hatte, und manche anderen bestimmt auch, wen man
    Einsteigen drückt, wird er sofort ausserhalb gefreezt, und da der Command
    nur in einem Auto geht, konnte ich dan nicht aussteigen oder das Auto nicht
    kurzschliessen! Deshalb läuft eine Zeit ab, die du oben definierst, die Zeit
    sollte nicht mehr als 5000 betragen (5000ms) da der Spieler sonst
    wen die Zahl zu hoch ist, weiterfahren kann, oder wen die Zahl zu niedrig
    ist, wird er wieder ausserhalb gefreezt. 5000 reichen locker, und sind super.


    Bei
    OnPlayerCommandText



    if(!strcmp(cmdtext,"/kurzschliessen"))
    {
    if(IsPlayerConnected(playerid)) //Ist der Spieler mit dem Server verbunden ?
    {
    if(IsPlayerInAnyVehicle(playerid)) // Sitzt der Spieler in einem Auto ?
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du brauchst 15 Sekunden, um das Auto kurzschliessen zu können!"); //Text wird gesendet!
    SetTimer("kurzschliessen", 15000, 0); // Hier wird der Timer ausgeführt, der die Zeit zum kurzschliessen angibt!
    // Die Zeit könnt ihr beliebig ändern, jedoch 15 Sekunden sind eigentlich reichlich ;)
    TogglePlayerControllable(playerid, 0); // Hier wird der Spieler gefreezt beim kurzschliessen
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in keinem Auto!");
    }
    return 1;
    }
    }


    Danach erstellen wir noch das Public das für den Timer die Funktionen wiedergibt.



    public kurzschliessen(playerid)
    {
    if(IsPlayerConnected(playerid)) // Wie oben, ist der Spieler mit dem Server verbunden ?
    {
    if(IsPlayerInAnyVehicle(playerid)) // Ist der Spieler in einem Auto ?
    {
    TogglePlayerControllable(playerid, 1); //Spieler wird entfreezt (bekommt seine Kontrolle wieder)
    SendClientMessage(playerid,COLOR_GREEN,"Du hast das Auto kurzgeschlossen!");
    }
    }
    return 1;
    }


    Edit Ganz vergessen ^^



    public einsteigen(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new pwanted; //Neue Variable
    pwanted = GetPlayerWantedLevel(playerid); //Hier wird in die Variable das momentane Wantedlevel geschrieben
    SendClientMessage(playerid,FARBE,"Du kannst das auto mit /kurzschliessen kurzschliessen!"); //Der Text
    SendClientMessage(playerid,FARBE,"Oder du verlässt das Auto mit /aussteigen");
    SetPlayerWantedLevel(playerid,pwanted +1); //Hier wird dem momentanen Wanted +1 gerechnet
    TogglePlayerControllable(playerid, 0); //Hier wird der Spieler gefreezt
    }
    return 1;
    }


    Noch einen Command, zum aussteigen, wen man keine 15 Sekunden warten kann ;)



    if(!strcmp(cmdtext,"/aussteigen"))
    {
    if(IsPlayerConnected(playerid)) //Ist der spieler mit dem Server verbunden ?
    {
    if(IsPlayerInAnyVehicle(playerid)) //Sitzt der Spieler im auto ?
    {
    RemovePlayerFromVehicle(playerid); //spieler wird aus dem Auto geworfen
    TogglePlayerControllable(playerid, 1);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in keinem Auto!"); //Nachricht wen der Spieler nicht im Auto sitzt!
    }
    }
    return 1;
    }

    2 Mal editiert, zuletzt von xivo ()

  • Schon Gut..
    Besser wäre wen es Random ist.. Spricht:
    Ein Spieler will kurzschließen.. doch es klappt nicht immer...
    Deswegen wen es nicht geklappt hat muss man Vielleicht 30 min Warten bis zum nächsten kurzschließen ?
    Lg



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Naja, durch den CMD "/aussteigen" werden einige GodFather User rumheulen das leute sich aus "/tie" oder "/cuff" befreien können, indem sie "/aussteigen" benutzen. Aber das Tutorial ist eigentlich ganz in Ordnung^^


    MfG Firer

  • Danke, naja wie gesagt, müsste man halt noch eine Abfrage dazu machen,
    ich benutze es für mein Selfmade script, vondaher habe ich nicht
    wirklich an Godfather gedacht. Aber ich dachte mir schon bisschen,
    wieso sollte ich die Leute aus dem Auto schmeissen, wen sie nicht der Fraktion
    angehören ? Ist ja nicht realistisch, wen man einsteigt, und wieder aussteigt.
    Deshalb dachte ich mir, lass ich mir mal was einfallen, und dan kahm dies bei raus ;)

  • Nice Tutorial.
    Werds nicht benutzen da ich das "automatische" Ejecten besser finde, es ist ein Game nicht das Reale Leben nicht alles kann echt sein, soll es ja auch nicht sonst bringt es ja kein Spaß mehr dafür hat man sein Reallife xP.


    Achja zur Bewertung: 9/10
    Der Pfiff fehlt irgendwie, paar coole Textdraws oder so =S

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Naja, willst du ein fahrendes Auto kurzschliessen ?
    Ziemlich schwachsinnig, und das Auto alleine kannst du ja
    nicht freezen. Vondaher keine andere möglichkeit,
    wieso ich OnPlayerStateChange nicht genommen habe ?


    Weil ich dan noch die Schleife für vehicleid und sonstigem kram
    machen müsste, bei OnPlayerEnterVehicle ist der kram schon fertig,
    das einzigste was dan bei OnPlayerStateChange besser wäre, wär
    das ich den Timer rausnehmen könnte, dafür müsste ich wiederrum
    die Schleife hinenbeziehen, und das wiederrum wär auch bisschen mehr
    Arbeit ;)

  • Danke macht sogar spaß ein car kurzzuschließen
    9/10