Tor Befehl geht nicht so ganz

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 Community ich habe da einmal eine frage und dann noch einen Fehler ich habe mir ein Tor gemacht das eigentlich mit dem Befehl /pg auf gehen soll aber da kommt dann der Fehler
    das der Server den Befehl nicht kennt.


    Hier mal die dazugehörigen Zeilen :

    new GateA;
    new GateB;
    new bool:IsGateOpen[32];


    //Gate
    GateA = CreateObject(980, 1548.0999755859, -1628.0999755859, 15.199999809265, 0, 0, 88);
    GateB = CreateObject(969, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);


    if (strcmp("/pg",cmdtext,true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1548.0999755859,-1628.0999755859,11.199999809265))
    {
    if(IsGateOpen[1] == false)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 11.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    }
    else if(IsGateOpen[1] == true)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 15.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,10.0,1584.6999511719,-1638.1999511719,12.39999961853))
    {
    if(IsGateOpen[2] == false)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    }
    else if(IsGateOpen[2] == true)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    }
    }
    return 1;
    }
    }
    return 0;
    }



    nun die Frage was habe ich falsch gemacht wäre echt nett wenn mir das jemand sagen könnte
    Mit Freundlichen Grüßen,
    XDFanta


    Jeder hat hier nen geilen Text stehen außer mir ._. <3

  • Du musst die MoveObject Koordinaten ändern. Du verschiebst es genau auf die gleiche Position, wo es bereits steht. Das macht keinen Sinn und bewegt das Tor auch nicht. Setze die Z Koordinate z.B. runter, je nach der Größe des Tores. Kannst du ja dann testen.


    /e: Wenn du es öffnest, Koordinaten wechseln. Wenn du es schließen lässt, die normalen Koordinaten nehmen, an denen es erstellt wurde.
    /e: Du musst ebenfalls
    new bool:IsGateOpen[32];


    für die erstellen Objekte auf 'false' setzen, und wenn du es öffnest, auf true, wenn du schließst wieder auf false
    aber ersteinmal, wenn du die Objekte erstellst unter OnGameModeInit denke ich es auf false setzen

    VIVA LA REVOLUCIÓN

  • Du musst die MoveObject Koordinaten ändern. Du verschiebst es genau auf die gleiche Position, wo es bereits steht. Das macht keinen Sinn und bewegt das Tor auch nicht. Setze die Z Koordinate z.B. runter, je nach der Größe des Tores. Kannst du ja dann testen.


    /e: Wenn du es öffnest, Koordinaten wechseln. Wenn du es schließen lässt, die normalen Koordinaten nehmen, an denen es erstellt wurde.
    /e: Du musst ebenfalls
    new bool:IsGateOpen[32];


    für die erstellen Objekte auf 'false' setzen, und wenn du es öffnest, auf true, wenn du schließst wieder auf false
    aber ersteinmal, wenn du die Objekte erstellst unter OnGameModeInit denke ich es auf false setzen

    Koordinaten hatte ich geändert wurde aber nicht gespeichert also mein Fehler.
    /e: Du musst ebenfalls
    new bool:IsGateOpen[32];
    was du damit meintest war mir leider nicht so klar das tut mir leid.


    //Edit danke *GHOSTRIDER* ich werde diese Lösung mal versuchen bzw. ich schau nochmal ob alle Klammern richtig gesetzt sind.


    Jeder hat hier nen geilen Text stehen außer mir ._. <3

  • Dann würde die Funktion nicht funktionieren, hier folgt aber die Aussage "Unknown Command" und ich denke mal das ne Klammer oder nen Return falsch ist.

    oh, gar nicht gesehen, dass solch ein Fehler geschehen ist. Hatte mir nur den Code angeguckt und direkt gesehen, dass es so nicht funktionieren würde.


    XDFanta:
    Du musst unter OnGameModeInit erst einmal sagen, dass für den Array Index, wie du es hier verwendest IsGateOpen[1] und IsGateOpen[2] 'false' gilt.


    Das heißt unter OnGameModeInit:
    IsGateOpen[1] = false;
    IsGateOpen[2] = false;


    Du kannst aber auch als einfachere Alternative
    new bool:IsGateOpen[32]=false;


    das verwenden... Warum der Fehler SERVER: Unknown command. auftritt weiß ich jetzt nicht genau, ich gucke mir
    deinen Code nochmal an und werde es ggf. reineditieren

    VIVA LA REVOLUCIÓN

  • new TorAbfrage2;
    new TorAbfrage;
    if (strcmp("/pg",cmdtext,true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1548.0999755859,-1628.0999755859,11.199999809265))
    {
    if(TorAbfrage == 0)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 11.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorAbfrage = 1;
    }
    else if(TorAbfrage == 1)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 15.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorAbfrage 0;
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid,10.0,1584.6999511719,-1638.1999511719,12.39999961853))
    {
    if(TorAbfrage2 == 0)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorAbfrage2 = 1;
    }
    else if(TorAbfrage2 == 1)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorAbfrage2 = 0;
    }
    }
    return 1; //Returnt die Funktion
    }
    return 1; //Returnt OnPlayerCommandText
    }


    /e1

    KleineHilfe 2.0

  • Zitat

    das '!' muss vorhanden sein! ;)


    Schwachsinn!!!


    Funktioniert denn die Verschiebung? Ode rkommt einfach die Errormeldung?


    Hier.. Ausgebessert..
    if (strcmp("/pg",cmdtext,true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1548.0999755859,-1628.0999755859,11.199999809265))
    {
    if(IsGateOpen[1] == false)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 11.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    }
    else if(IsGateOpen[1] == true)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 15.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,10.0,1584.6999511719,-1638.1999511719,12.39999961853))
    {
    if(IsGateOpen[2] == false)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    }
    else if(IsGateOpen[2] == true)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    }
    }
    //Warum?! -->return 1;
    }
    return 1; // Das return war an der falschen Stelle.
    }
    return 0;
    }

    Liebe Grüße


    Marcel

  • // Das return war an der falschen Stelle.

    so ein schwachsinn ?!
    Das return 1; kommt innerhalb des Befehls, nicht außerhalb..
    /e: Jedoch weiß ich warum SunRise auf diese Annahme kommt..


    if (strcmp("/pg",cmdtext,true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1548.0999755859,-1628.0999755859,11.199999809265))
    {
    if(IsGateOpen[1] == false)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 11.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    }
    else if(IsGateOpen[1] == true)
    {
    MoveObject(GateA, 1548.0999755859, -1628.0999755859, 15.199999809265, 0, 0, 88);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,10.0,1584.6999511719,-1638.1999511719,12.39999961853))
    {
    if(IsGateOpen[2] == false)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    }
    else if(IsGateOpen[2] == true)
    {
    MoveObject(GateB, 1584.6999511719, -1638.1999511719, 12.39999961853, 0, 0, 0);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    }
    }
    return 1;
    }
    } //<----------------- Diese Klammer zu steht dort aus welchem Grund ?
    return 0;
    }

    VIVA LA REVOLUCIÓN

    Einmal editiert, zuletzt von Juan_Corleone ()

  • Dann würde die Funktion nicht funktionieren, hier folgt aber die Aussage "Unknown Command" und ich denke mal das ne Klammer oder nen Return falsch ist.

    also es kommt sofort der Error das Tor verschiebt sich leider nicht.


    //Edit habe es jetzt so wie SunRise gemacht und dann nochmal wie Juan Corleone leider war beides ohne Erfolg


    Jeder hat hier nen geilen Text stehen außer mir ._. <3

    Einmal editiert, zuletzt von XDFanta () aus folgendem Grund: //Edit