GetPlayerState Befehl-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
  • Abend, ihr Nachtaktiven unter euch.


    Ich hab gerade ein Problem.
    Entweder aufgetaucht durch Schlafmangel oder Dummheit. Ich hoffe, jemand kann mir behilflich sein.

    if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    return SendErrorMessage(playerid, "Du bist nicht der Fahrer dieses Fahrzeugs.");

    Es kommt dauerhaft die Meldung, dass ich nicht der Fahrer des Fahrzeugs bin. Jedoch bin ich der Fahrer.
    Und sollte ich das != ändern, so wäre es doch demnach falsch, oder nicht?


    Kleine Info am Rande:
    Die obere Abfrage befindet sich im Befehl "/motor". Alle anderen Abfragen klappen, bis auf diese eine, wovon ich gerade überhaupt keine Ahnung hab, wo der Fehler liegen könnte.



    Grüße


    //e Nachtrag: Problem hat sich nach einem Server-Neustart von selbst erledigt. :|

    Einmal editiert, zuletzt von RayJohnson ()

  • Weshalb macht man wohl eine ErrorMessage Funktion? Damit man bei jedem Funktionsaufruf die Farbe neu festlegt?
    Die Farbe wird wohl innerhalb der Funktion festgelegt und somit uniform sein, was Anderes waere ja auch Schwachsinn.


    Apfel Krieger:


    Damit liegst du falsch es gibt ein Error!!!!


    somit währe das nicht richtig aber es verursacht nicht das problem was er hat das habe ich auch nie behaubtet jedoch müsste es ein Warning/Error damit geben
    soviel zu dein wissen
    error 035: argument type mismatch (argument 2)
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,"Du bist nicht der faher");
    und so hatte er es ohne ne farbe angeben also kann es nicht sein das da kein error kommt :pinch:

  • Beitrag von Apfel Krieger ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • error 017: undefined symbol "SendErrorMessage"
    so und das is auch nicht so in script definirt!
    es sei den er hat den stock mit farbe dann is es was anderes aber davon sehe ich auch nix!
    naja dein umganston zufolge bringt es nicht viel dir was klar zu machen vondaher bye!



    versuch ma mein code wen immer nocht net geht sende mir ma ne pn oder
    poste ma den stock vonSendErrorMessage

  • Da merkt man echt, dass Du Null Plan hast. Aber gut, wir testen es:


    Möchtest Du uns vielleicht noch irgendetwas mitteilen?


    wow dad hase jetzt aber toll gemacht! :thumbup:


    mal überlegt oder gefragt wie er es hat ?


    den wen er es nicht so hat was ich schon erlebt habe bei anfänger oder gfs die 0815 wahren sorgt es für bugs
    oder gar errors


    -1 is weiß is jeden klar


    nur ka wie er den stock hat nur das er nicht raus geworfen wird ausn fahrzeug lässt mich nur ein bug von SendErrorMessage vermuten


    den der vor code is so richtig und geht bei mir auch..
    oder er setzt die gnaze if abfrage falsch!




    //tehma
    naja ohne mehr code wird es eh nix hier
    währe super wen du uns mal den ganzen code zukommen lääst auch eimal bitte die naricht oder ob du sie genauso hast..


    ahja und Mr.Reese


    druch
    else if(checkAccount(playerid) == 2{ // und die klammer so an der seite


    sparst du dir swar zeilen aber is nicht so schön fürs script
    es schadet nicht wen man auch so macht
    else if(checkAccount(playerid) == 2
    {
    es frist swar nicht mehr Ressourcen aber es is auch nicht so gut so hab ich es im englischen forum gelernt wende dich an kalcor und frag nach wen du mir nicht glaubst und ich ja immer noch der klugscheißer bin lä****

    2 Mal editiert, zuletzt von Apfel Krieger () aus folgendem Grund: edit

  • Naja, er hat nur diesen Error geschildert, also weshalb sollten wir jetzt davon ausgehen, dass da noch andere Probleme vorhanden sind?
    Selbst wenn der Warning existieren WÜRDE, wovon ich nicht ausgehe, dann wäre das noch lange nicht der Grund für sein Problem, denn das wäre nicht möglich.
    Er macht sich doch keine eigene Errorfunktion, wenn er keine explizite Farbe innerhalb dieser Funktion angibt, das übersteigt einfach die kognitiven Defizite der meisten Typen, die sich hier tummeln.
    Einen anderen Sinn sähe ich für eine solche Funktion einfach nicht.

  • mal überlegt oder gefragt wie er es hat ?


    Reese hat's schon richtig erraten, wie ich es ungefähr habe. Zwar nicht in einem Stock sondern eher als Definierung, oben im Script.

    #define SendErrorMessage(%0,%1) \
    SendClientMessageEx(%0, COLOR_LIGHTRED, "[Fehler]:{FFFFFF} "%1)


    Aber da besteht ja nicht der Fehler.



    if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    return SendErrorMessage(playerid, "Du bist nicht der Fahrer dieses Fahrzeugs.");


    Der Fehler liegt einzig und allein daran, ob es nun != oder == sein sollte - oder ob generell etwas an der gesamten Abfrage falsch ist.
    Daher verstehe ich nicht, weshalb so viel Luft um "SendErrorMessage" gemacht wird. ^^
    Und nein, Warnings bestehen nicht. Fehler auch nicht, nur dieser eine Denkfehler in dieser Abfrage, im /motor - Befehl.

  • Zeig evtl mal deinen ganzen Command :)


    Okay. Bittesehr. :hm:


    //e: Die Kommentare hab ich gerade noch nachträglich hinzugefügt, falls ggf. fragen zur Funktion aufkommen sollten o.ä.



    CMD:motor(playerid, params[])
    {
    new vehicleid = GetPlayerVehicleID(playerid); //Fragt die FahrzeugID des Spielers ab


    if (!IsEngineVehicle(vehicleid)) //Fragt ab, ob das Fahrzeug überhaupt einen Motor hat
    return SendErrorMessage(playerid, "Du bist nicht in einem Fahrzeug mit Motor.");


    if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) //Sollte eigentlich abfragen, ob der Spieler der Fahrer des Fahrzeugs ist
    return SendErrorMessage(playerid, "Du bist nicht der Fahrer dieses Fahrzeugs.");


    if (CoreVehicles[vehicleid][vehFuel] < 1) //Fragt ab, ob der Tank unter 1 / leer ist
    return SendErrorMessage(playerid, "Der Tank ist leer.");


    if (ReturnVehicleHealth(vehicleid) <= 300) //Fragt ab, ob das Fahrzeug unter 300 DL hat (Motorschadensystem)
    return SendErrorMessage(playerid, "Das Fahrzeug hat einen Motorschaden. (Suche ein Abschleppunternehmen auf)");


    switch (GetEngineStatus(vehicleid)) //Fragt den Motorstatus ab (ob aus oder an)
    {
    case false: //Wenn aus
    {
    SetEngineStatus(vehicleid, true);
    ShowPlayerFooter(playerid, "Du hast den Motor ~g~gestartet~w~.");
    SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s steckt den Schlüssel, betätigt die Zündung und startet den Motor.", ReturnName(playerid, 0));
    }
    case true: //Wenn an
    {
    SetEngineStatus(vehicleid, false);
    ShowPlayerFooter(playerid, "Du hast den Motor ~r~gestoppt~w~.");
    SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s dreht den Schlüssel für die Zündung und stoppt den Motor.", ReturnName(playerid, 0));
    }
    }
    return 1;
    }

  • Eigentlich sollte es ganz normal funktionieren. Du hast dich wahrscheinlich wie Mr.Reese schon gesagt hat verguckt. Wenn nicht probier mal, was GetPlayerState(playerid) ausgibt. Vielleicht warst du nicht wirklich der Fahrer. Einfach vor If-Abfrage die folgende Funktion ausführen.
    printf("PlayerState: %d", GetPlayerState(playerid));
    Also insgesamt sollte es so aussehen.
    printf("PlayerState: %d", GetPlayerState(playerid));
    if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) //Sollte eigentlich abfragen, ob der Spieler der Fahrer des Fahrzeugs ist
    return SendErrorMessage(playerid, "Du bist nicht der Fahrer dieses Fahrzeugs.");

    "Everybody in this country should learn to program a computer, because it teaches you how to think."
    Steve Jobs

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