OnPlayerStateChange Fehler

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, ich habe dieses Autohaus System: [ SCRIPTING ] Autohaus + Autokauf System


    Nun wollte ich es unter OnPlayerStateChange so machen das man aus dem Car geworfen wird wenn man nicht der Besitzer ist, allerdings fliegt man aus jedem Car und kann nur sein eigenes Fahren, also man kann auch nicht die Cars fahren z.B. für Fraktionen etc. man wird immer rauf geworfen :(


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i = 0; i < 1; i++)
    if(GetPlayerVehicleID(playerid) != Spielercar[playerid][i]) return RemovePlayerFromVehicle(playerid);
    return 1;
    }


    Wie mache ich das dass man nur aus dem Car geworfen wird wenn es einem nicht gehört?

  • Die Schleife Anders aufbauen.


    Am leichtesten wäre es so:

    • temporäre Variable anlegen ob in einem Fahrzeug sitzt,welches Spieler gehört. Variable auf etwas ungültiges setzen,z.B. -1
    • Alle Spieler-Fahrzeuge durchgehen ( Schleife )
    • Nur prüfen,ob Spieler in einem Fahrzeug sitzt,welches ihm gehören kann ( temp. Variable nutzen )
    • Schleife nicht durch "return" beenden,break wäre möglich.
    • Nach der Schleife prüfen,ob temp. Variable noch ungültig ( z.B. -1 ) oder nicht. Je nachdem in eigenem Fahrzeuge oder nicht.


    Wenn du es nicht verstehst,beschreib genauer wo es bei dir Probleme gibt. Dein Problem zZt ist,dass du die Schleife beendest sobald er in einem Fahrzeug sitzt,welches nicht ihm gehört. Bei mehr als 1 Fahrzeuge würde es dann auch nicht mehr funktionieren.


    Zitat

    [...] allerdings fliegt man aus jedem Car und kann nur sein eigenes Fahren, also man kann auch nicht die Cars fahren z.B. für Fraktionen etc. man wird immer rauf geworfen :(


    Dann gehört da sicherlich noch mehr Code zu,richtig?!

  • Ne, das ist alles an Code, also wenn es ihm nicht gehört soll er nur rausgeworfen werden, aber nicht aus jedem Car was ingame steht, sondern halt nur bei den Kaufbaren.


    Und es gibt auch nur ein Fahrzeug zu kaufen, also dürfte es etwas einfacher sein :D


    Aber ich glaube ich werde mich schwer tun deine Erklärung in die Praxis umzusetzen :rolleyes:


    Trotztem Danke für die Hilfe :)

  • Dann gibt es halt in der Schleife 2 Abzweigungen für die Variable.
    a) Er sitzt in seinem eigenem Fahrzeug ( 0 )
    b) Er sitzt in einem Fremden Fahrzeug ( 1 )


    ( c) Ungültig -1 , bereits vor der Schleife )


    Am Ende der Schleife kann man dann prüfen.Falls Variable den Wert 0 hat,nichts tun.Falls Variable Wert 1 hat,aus dem Fahrzeug werden. Bei -1 tun wir nichts. Du musst dann aber auch die Spielercar's von ALLEN Spielern durchgehen.


    Man könnte es auch auf 2 Zustände beschränken.

  • Zitat

    Wenn du es nicht verstehst,beschreib genauer wo es bei dir Probleme gibt.


    Du bist schon lang genug im Forum angemeldet, um sowas selbstständig lösen zu können ODER zu beschreiben,wo es Probleme gibt.


    Es ist ganz einfach.
    Ich hab dir bereits beschrieben wie es aufgebaut werden kann. Du brauchst 2 Schleifen ( Für Alle Spieler & Fahrzeuge des Spielers ) und nur prüfen,ob sein aktuelles Fahrzeug denn das Fahrzeug eines Fremden Users ist oder sein eigenes. Ich hoffe auch dir postet keiner einer fertige Lösung,denn so soll das Forum nicht funktionieren.