Fraktionsautos HILFE

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
  • Moin Leute,
    ich habe beim Scripten folgendes Problem:
    public OnPlayerStateChange(playerid, newstate, oldstate){ if(newstate == PLAYER_STATE_DRIVER) //ist der Spieler Fahrer? { for(new i = 0; i<sizeof(fdc); i++) { if(GetPlayerVehicleID(playerid) == fdc[i]) //ist er in einem Fraktionsauto? { if(isPlayerInFrakt(playerid, 5)) //ist er in dieser Fraktion? { } else { SendClientMessage(playerid, ROT, "Du hast für dieses Fahrzeug keinen Schlüssel!"); RemovePlayerFromVehicle(playerid); } } else SendClientMessage(playerid, ROT, "Fehler"); } } return 1;}



    Wenn ihr euch fragt, wofür die Zeile "else SendClientMessage(playerid, ROT, "Fehler");" ist.
    Die ist nur dazu da, um ingame zu sehen wo das Problem liegt und genau da liegt es.
    Der Chat wurde sobald ich ins Fraktionsauto stieg, mit der Meldung "Fehler" zugespammt.
    Danke im Vorraus

  • Ich versuche das gerade mal zu verstehen..........Du hast "SendClientMessage" reingepackt um zu sehen wo das problem ist, um dann festzustellen das die Meldung selbst das problem ist ? Das eigentliche problem ist also das die else anweisung grundsätzlich immer ausgeführt wird (bzw mehrfach)wenn du in ein ein Fahrzeug steigst oder das der Chat zugespammt wird ? Oder beides ?

  • was ein return 1; in einer schleife macht, ist dir aber bewusst?
    Söllte dir helfen ;)

    Um ehrlich zu sein, nein :D
    Bin aber auch ein Anfänger, das ist mein erster Versuch ein Script zu machen.
    Aber ich vermute mal, dass man durch ein return 1; wieder zum Anfang springt?
    Hab kp xD


    Traxter
    Wenn ich in einem Fraktionsauto sitze, sollte er ja in die if-Abfrage springen, was er nicht tut, um sicher zu gehen, dass es am "if(GetPlayerVehicleID(playerid) == fdc[i])" liegt, habe ich das else eingebaut, denn eig. wäre das else nicht nötig

  • ein return 1; in der schleife beendet sie, benutze es, und es kommt kein spam mehr.

    Achso, das löst schon mal das Problem, allerdings habe ich immer noch das, das er in die if-Abfrage nicht hineinspringen will mit dem "GetPlayerVehicleID".
    Ich setze mich in ein Fraktionsauto, doch trotzdem, springt er ins else, wodurch die Fehlernachricht wiederkommt

  • Okay, das dachte ich mir schon.Die Lösung ist vermutlich ganz einfach aber sag doch mal wozu die Schleife überhaupt gut ist ? Sehe da garkeinen nutzen,zudem solltest du den Code mal eingerückt hier posten damit jeder sofort sehen kann was sache ist und nicht erst hin und her schieben muss^^ Ist etwas mühselig da den Fehler zu finden........

    Einmal editiert, zuletzt von Traxter ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen