2 Tore , 1 befehl

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
  • Nabend ^^


    habe eine Frage
    ich habe diesen befehl:


    ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    return 1;
    }
    public torzu(playerid)
    {
    MoveObject(tor, 1592.19, -1638.02, 13.43,10);
    return 1;
    }


    Wie kann ich damit 2 tore bewegen?
    Also ich hab am LSPD 2 Tore, 1 an der Garage und 1 am Eingang zum Parkplatz.
    Nur wie kann ich machen das ich mit diesem 1 befehl auch das öffnen kann?


    MfG HellFire

  • Das hier:
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..


    einfach nochmal für das zweite tor einfügen

  • ocmd:tor(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,DEINEPOS))
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    }
    else if(IsPlayerInRangeOfPoint(playerid,ZWEITEPOS))
    {
    //Hier dann eben das andere Tor....
    }
    return 1;
    }


    Aber mein Tipp:


    Du solltest die Grundfunktionen verstehen. Wer nicht weiß
    wo eine simple If-Abfrage verwendet werden muss, sollte mit
    etwas leichterem anfangen und nicht Sachen einbauen
    die er nicht versteht....


    /e wegen Rechtschreib-Quark :D


    //edit 2:


    Warum SetTimerEx? Du nimmst die Variable "playerid" mit, benutzt sie aber im public "torzu" gar nicht...

  • ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    MoveObject(ID,Koord);
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    return 1;
    }
    public torzu(playerid)
    {
    MoveObject(tor, 1592.19, -1638.02, 13.43,10);
    return 1;
    }

  • ist falsch.



    Hier richtig:



    ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    MoveObject(ID,Koord);
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    return 1;
    }
    public torzu(playerid)
    {
    MoveObject(tor, 1592.19, -1638.02, 13.43,10);
    MoveObject(GateNAME, CORDS,10);


    return 1;
    }

  • Er will ja dass er mit einem Befehl verschiedene Tore aufmachen kann. Siehe meinen Beitrag.

  • Aber es muss Natürlich auch wieder zu gehen was? ;)

  • benutz doch einfach ein


    else if
    so als beispiel


    ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)){
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    }else if(IsPlayerInRangeOfPoint(playerid,10, Koord)){
    MoveObject(ID,Koord);
    SetTimerEx("torzu2", 1000*5, 0, "i", playerid);
    }
    return 1;
    }


    dafür bräuchtest du noch einen neuen Timer
    du kannst es auch professionel machen und das alles mit einem enum machen das auch alle tore mit einem command auf gehen

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43))
    {
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // Hier geht das Tor auf
    SetTimerEx("torzu", 1000*5, 0, "i", playerid); // Hier wird der Timer gestartet um das Tor zu schließen (im Public torzu)
    SendClientMessage(playerid, COLOR_WHITE, "Tor geht auf"); //Eine Textausgabe wenn das Tor auf geht
    }
    else if(IsPlayerInRangeOfPoint(playerid,10, Koord)) //Tor zwei
    {
    MoveObject(ID,Koord);
    SetTimerEx("torzu2", 1000*5, 0, "i", playerid);
    SendClientMessage(playerid, COLOR_WHITE, "Tor geht auf");
    }
    else if(IsPlayerInRangeOfPoint(playerid,10, Koord)) // Tor drei
    {
    MoveObject(ID,Koord);
    SetTimerEx("torzu3", 1000*5, 0, "i", playerid);
    SendClientMessage(playerid, COLOR_WHITE, "Tor geht auf");
    }
    else if(IsPlayerInRangeOfPoint(playerid,10, Koord)) // Tor vier
    {
    MoveObject(ID,Koord);
    SetTimerEx("torzu4", 1000*5, 0, "i", playerid);
    SendClientMessage(playerid, COLOR_WHITE, "Tor geht auf");
    }
    //Dies kannst du wiederholen und wiederholen
    return 1;
    }



    Das ist einfacher und beschrieben.

  • wenn ich das so mache wie du, erhalte ich errors..


    ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,türkis,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    }
    else if(IsPlayerInRangeOfPoint(playerid, 1548.81, -1627.67, 15.00))
    {
    MoveObject(tor2, 1548.81, -1627.67, 15.00-10,10);
    SetTimerEx("torzu2", 1000*5, 0, "i", playerid);
    }
    return 1;
    }


    errors:

    wn(2007) : warning 209: function "ocmd_tor" should return a value
    wn(2008) : error 010: invalid function or declaration
    wn(2013) : error 010: invalid function or declaration

    Einmal editiert, zuletzt von HellFire ()

  • da soll nochmal einer durchblicken hier...


    erkläre mir nochmal bitte genau was du machen möchtest? möchtest du mit einem befehl beide tore gleichzeitig öffnen oder mit einem befehl beide tore unabhänig von einander?

    unabhängig von einander
    http://www.abload.de/image.php?img=unbenanntb4k3k.png
    so sieht das aus.


    am liebsten wäre mir zwar wenn man für jedes tor 2x /tor eingeben müsste (1x aufmachen 1x zu machen)

  • Probier ma so müsste gehen.


    ocmd:tor(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Polizist");
    if(IsPlayerInRangeOfPoint(playerid,10, 1592.19, -1638.02, 13.43)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(tor, 1592.19, -1638.02, 13.43-10,10); // und hier gehts runter..
    SetTimerEx("torzu", 1000*5, 0, "i", playerid);
    {
    MoveObject(tor2, 1548.81, -1627.67, 15.00-10,10);
    SetTimerEx("torzu2", 1000*5, 0, "i", playerid);
    }
    return 1;
    }


  • und wo wird da geprüft ob ich in der nähe von dem anderem tor bin? :D