Tor 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
  • Ich habe ein Problem mit meinem move Command um Tore zu öffnen.
    Und zwar habe ich diesen Command:
    ocmd:move(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5, 1587.0999755859, -1638.4000244141, 14.0))
    {
    if(Spieler[playerid][Torstatus] == 0)
    {
    Spieler[playerid][Torstatus] = 1;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 9.0, 5);
    return 1;
    }
    if(Spieler[playerid][Torstatus] == 1)
    {
    Spieler[playerid][Torstatus] = 0;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 14.0, 5);
    return 1;
    }
    }
    return 1;
    }
    Das Problem ist wenn ich jetzt ein zweites Tor einfüge und auch wieder mit Torstatus arbeite könnte es passieren wenn bei gleichzeitig auf machen oder ein Tor ist offen und das andere zu kommt es zu Fehlern. Meine Frage wie kann ich es am besten Lösen das keine Fehler kommen?

  • Das macht man am besten mit else if:


    ocmd:move(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5, 1587.0999755859, -1638.4000244141, 14.0))
    {
    if(Spieler[playerid][Torstatus] == 0)
    {
    Spieler[playerid][Torstatus] = 1;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 9.0, 5);
    }
    else if(Spieler[playerid][Torstatus] == 1)
    {
    Spieler[playerid][Torstatus] = 0;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 14.0, 5);
    }
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Wenn ich es jetzt aber so habe:


    ocmd:move(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5, 1587.0999755859, -1638.4000244141, 14.0))
    {
    if(Spieler[playerid][Torstatus] == 0)
    {
    Spieler[playerid][Torstatus] = 1;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 9.0, 5);
    return 1;
    }
    else if(Spieler[playerid][Torstatus] == 1)
    {
    Spieler[playerid][Torstatus] = 0;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 14.0, 5);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,5, x, y, z))
    {
    if(Spieler[playerid][Torstatus] == 0)
    {
    Spieler[playerid][Torstatus] = 1;
    MoveObject(pdtor1,x, y, z, 5);
    return 1;
    }
    if(Spieler[playerid][Torstatus] == 1)
    {
    Spieler[playerid][Torstatus] = 0;
    MoveObject(pdtor1,x, y, z, 5);
    return 1;
    }
    }
    }
    return 1;
    }
    und die Tore werden das eine Aufgemacht und das andere dann auch dan gibt es Probleme mit dem Torstatus.



    Goldkiller ich habe Torstatus beim enum Spieler definiert. ist doch egal oder?


    edit://cords geändert

  • Schreibe es so, ich beziehe mal Goldkillers Post mit ein:


    //oben in dein Script
    new m, m1;


    ocmd:move(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5, 1587.0999755859, -1638.4000244141, 14.0))
    {
    if(!m)
    {
    m = 1;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 9.0, 5);
    }
    else if(m)
    {
    m = 0;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 14.0, 5);
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid,5, 1587.0999755859, -1638.4000244141, 14.0))
    {
    if(!m1)
    {
    m1 = 1;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 9.0, 5);//hier musste die objectid noch ändern !
    }
    else if(m1)
    {
    m1 = 0;
    MoveObject(pdtor1,1587.0999755859, -1638.4000244141, 14.0, 5);//hier musste die objectid noch ändern !
    }
    }
    return 1;
    }


    mfg. :thumbup:


    //edit:
    ups ja, habe das eine else vergessen gehabt

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S