Problem mit Definierung von playerid bei SendClientMessage- Compiler ERROR

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
  • Hey liebe Community,


    ich bin momentan dabei ein Befehl zu machen, um ein Tor zu bewegen.
    Das erste Tor habe ich lspdgaragentor genannt und das zweite lspdtor.


    Dashier ist der Befehl von dem lspdtor...
    /**/////////////////////////////////////////////////////////////////////////
    /**///////// LSPDTOR ANFANG ////////////////////////////////////////////////
    /**/if(isPlayerAnAdmin(playerid,2) || isPlayerAnCop(playerid,1))
    /**/{
    /**/ if(strcmp(cmdtext,"/lspdtor", true)==0)
    /**/ {
    /**/ MoveObject(lspdtor,1581.7557373047,-1628.4017333984,9,4.0);
    /**/ SetTimer("lspdtortimer",6000,0);
    /**/ SendClientMessage(playerid,GRÜN,"LSPD: Die LSPD-Einfahrt wurde geöffnet");
    /**/ return 1;
    /**/ }
    /**/ SendClientMessage(playerid,ROT,"Du bist kein Polizist oder Supporter/Admin");
    /**/ return 1;
    /**/}
    /**///////// LSPDTOR ENDE /////////////////////////////////////////////////
    /**////////////////////////////////////////////////////////////////////////


    Der Befehl vom anderen Tor ist ja dann klar, also einfach bisschen geändert.



    Hier ist der Timer, den ich mit meinem Befehl starte.
    public lspdtortimer()
    {
    MoveObject(lspdtor,1581.7557373047,-1628.4017333984,14.057502746582,4.0);
    SendClientMessage(playerid,ROT,"LSPD: Die LSPD-Einfahrt wurde automatisch geschlossen");
    return 1;
    }


    So nun kommt das Problem. Wenn ich Compilieren will kommt folgendes...
    (1508) : error 017: undefined symbol "playerid"


    und dieser Fehler weißt auf die Zeile von meinem Timer hin:
    SendClientMessage(playerid,ROT,"LSPD: Die LSPD-Einfahrt wurde automatisch geschlossen");


    Muss ich bei meinem Timer irgendwie playerid definieren?
    Aber das muss man doch sonst auch nicht...


    Ich würde mich sehr freuen, wenn mir jemand helfen könnte.
    Vielen Dank!


    Mit freundlichen Greetings,
    Marc1706

  • Bei deinem Public


    public lspdtor () { } muss die Variable playerid mit übergeben werden, sonst kennt er diese nicht. Sprich:
    public lspdtor (playerid) { }


    und die funktion wäre dann eben lspdtor(playerid); oder lspdtor(0); um es zu verdeutlichen. Diese "0" also die ID des Spielers wird so mit an die Funktion übergeben.
    Allerdings benötigst du dafür SetTimerEx, da SetTimer keine Variablen übergeben kann.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • forward lspdtor(playerid);
    public lspdtor(playerid)
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Deine Nachricht.");
    }


    und dann beispielsweise in deinen OnPlayerCommandText()
    SetTimerEx("lspdtor", 1000, 0, "i", playerid);


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'