SetPlayerDrunkLevel... Dauerhaft?

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
  • Nabend Com!
    Ich möchte das wenn ein Spieler kein Autoführerschein hat, und in ein Auto einsteigt das er dann ein DrunkLevel von 3000 bekommt.
    Bis dahin hab ichs schon geschafft.
    Nun möchte ich das der Spieler so lange betrunken ist bis er aus dem Auto aussteigt.
    Ist das hinzukriegen?



    mfg

  • is das ne animation zeig doch mal codes ;)

    "Imagine if the government went after corruption as hard as it goes after guys who run filesharing sites. Priorities. " - @Snowden
    "More worrying than FBI temporarily running a server that contained child porn, is hacking computers anywhere in the world with one warrant" - @josephfcox


  • public OnPlayerStateChange(playerid, oldstate, newstate) // Sein Status verändert sich
    {
    if ( newstate == PLAYER_STATE_DRIVER ) // Ist der neue Status: "Fahrer" ?
    {
    if ( GetPlayerDrunkLevel(playerid) ) // Gibt die Funktion nicht 0 zurück? Also 1 oder größer?
    {
    RemovePlayerFromVehicle(playerid); // Schmeiss ihn raus
    }
    }
    }


    Soltle funktionieren.
    Wenn du fragen hast, frag.


    Nächste mal das Wiki benutzen oder googlen ;)

    ik bin der vito c:

  • Nein, aus dem einfachen Grund das du dann einfach C&P machen könntest.
    Und da ich weiß das du gerade selbst an einem Projekt arbeitest wäre es schwer Möglich das du es vielleicht auch tust o.O.


    Naja, Back to Topic:
    Würde das gehen?



    @Dark.Shadow:


    So möchte ich das nicht. Ich meine: Das betrunken sein hört nach ca. 5 Sekunden auf, und genau das möchte ich nicht.
    Ich möchte das das betrunken sein solange bleibt bis der Spieler das Fahrzeug verlässt.

  • Würde das gehen?


    Würde was gehen?
    Hast du meinen Post nicht gelesen und ausprobiert?



    Abgesehen diese Copy und Paste.. Sei mir nicht böse aber das ist lachhaft :DD
    Dir wir dhier schon keiner was klauen



    //e
    Nach seinem Edit:



    So möchte ich das nicht. Ich meine: Das betrunken sein hört nach ca. 5 Sekunden auf, und genau das möchte ich nicht.
    Ich möchte das das betrunken sein solange bleibt bis der Spieler das Fahrzeug verlässt.


    Dann musst du einfach in einem Timer abfragen ob er fahrer ist.
    Dann Drunklevel immer hochstellen.
    Ansonsten bei OnPlayerSTate Change -> if oldstate == PLAYER_STATE_DRIVER
    Dann auf 0 setzen


    Das ist in 10 Sekunden realisiert.

    ik bin der vito c:

  • Du hast nur gezeigt, dass wenn man Betrunken ist einfach wieder rausgeworfen wird.
    Er will aber ein Dauerhaftes "drunk", wenn einer im Auto sitzt und keinen Führerschein hat.
    Das nächste mal bissel lesen :D


    Entweder er hats editiert oder ich bin so müde das ich es anders gelesen habe.


    Habe verstanden, dass er aus dem Fahrzeug rausgeschmissen werden soll ?(


    Naja habs ja über dir nochmal editiert :)

    ik bin der vito c:

  • Dann musst du einfach in einem Timer abfragen ob er fahrer ist.
    Dann Drunklevel immer hochstellen.
    Ansonsten bei OnPlayerSTate Change -> if oldstate == PLAYER_STATE_DRIVER


    Der State Change ist für dieses "Problem" nicht zu empfehlen, einfach aus dem Grund, das sich das Drunklevel je nach FPS verringert.
    Daher sollte man dann doch vielleicht mit OnPlayerUpdate arbeiten, den State kann man dort auch abfragen :thumbup:


    Ab einem Drunklevel von 5000 merkt man eigentlich nicht das die Kamera mehr schwenkt ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • OnPlayerUpdate

    Ein Timer wäre doch viel sinnvoller, oder ?
    Das Callback wird doch aufgerufen sobald Packete vom Client zum Server gesendet wurden, oder ?


    Ich mein, da der Drunklevel nach ca. 20 - 30 sek. (~4500<) wieder normmal ist, reicht ein timer von ca. 15 sek. da setzte den Drunklevel auf bspw. 3,5

  • @BlackAce:
    Das mit dem State Change war auf das auf 0 Stellen bezogen.
    OnPlayerUpdate versuche ich persönlich immer zu vermeiden.
    Wir wissen ja wie oft der aufgerufen wird ;)


    Ist bei mir eigendlich nur für das AC in Verwendung.


    Also man hat eigl. immer einen globalen Spieler Sekundentimer.
    Dort das auf meinetwegen 10.000 stellen oder sonst was (habe die zahlen grade nicht im Kopf)
    Und dann wenn er aussteigt (Oldstate == PLAYER_STATE_DRIVER) dann auf 0 damit es aufhört.
    Da er dann ja nicht mehr im Fahrzeug ist wird der TImer den "Besoffenkeits"-Grad ja auch nicht mehr hochstellen ;)

    ik bin der vito c:

  • Ein Timer wäre doch viel sinnvoller, oder ?
    Das Callback wird doch aufgerufen sobald Packete vom Client zum Server gesendet wurden, oder ?


    Naja, Timer sind jetzt nicht so ressourcenfreundlich gemacht worden :D


    OnPlayerUpdate ist schon eine gute Alternative.
    Mandarf niht vergessen, das es erst dann augerufen wird, wenn der Spieler vom Server geupdatet werden muss,
    so häufig ist das jetzt auch nicht und wenn du dort nur ein paar Aufgaben hast, packt der Server das auch bei 1000 Spielern,
    habt euch nicht so :thumbdown:


    Natürlich kommt es auch darauf an wie hoch der Drunklevel eingestellt un wie hoch die FPS des Spielers sind -> 60 FPS -> 60 Drunkelevel weniger in der Sekunde.
    Es ist NICHT sinnvoll für diese kleine pissaufgabe einen Timer zu erstellen :thumbup:


    @Dark.Shadow:
    Ich glaub dir ist nicht bewusst wie häufig das aufgerufen wird.
    Das sind keine 60 mal in der Sekunde oder solche scherze.


    Nehmen wir mal an der Spieler müsste alle 25 ms geupdatet werden, was höchstens in einem Fahrzeug mit Wasserwerfer der Fall ist,
    wird kann es maximal 40 mal aufgerufen werden.
    Wo sind dort jetzt die 60 mal oder mehr?


    Für wirklich kleine Aufgaben ist das wirklich lachhaft.
    Da wie schon erwähnt Time ohnehin beschissen timen und ressourcenfressend sind wie nichts gutes,
    sollte man abwiegen was man nimmt / vermeidet 8)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski