hab ein problem mit SetTimer

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
  • http://www.abload.de/img/unbenanntnwbx.jpg


    was isn hir das problem?


    kann mir jemand das fertig schreiben?


    Code
    if(strcmp(cmd, "/yopen1", true) == 0)
    	{
    	    if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
    	    {
    	        MoveObject(yakuzator1,358.18548583984,-1474.9178466797,32.182922363281,4);
    				SetTimer(yakuzator1,5000,1);
                MoveObject(yakuzator1,363.9782409668,-1470.4066162109,32.064594268799,4);
    		}
    		return 1;
    	}


    das soll ein befehl werden damit das tor mit einem befehl auf geht und nach 5 sec zu geht


    mfg wetze789

  • die "1" am ende war der Bool (?) der true return d.h., es soll sich wiederhohlen soll...


    0 = false
    1 = true

    GreetZ

    Zitat

    Joda21:47
    Joda = mein spritzname
    xD


    Ice21:47
    zeig mir dein lichtschwert !


    Joda21:47 spitzname* xDD

    Ich bin ein Vogel (Joda)


  • also das stimmt gar nicht, und so würdest du warscheinlich alles bisschen kompliziert für dich selber machen, versuchs doch so:


    ganz oben in deinem Script wo alle Forwards sind, machst du folgendes:
    forward CloseGate();


    Danach gehste zu deinem Befehl (OnPlayerCommandText):
    if(!strcmp("/yopen1",cmdtext,true))
    {
    if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
    {
    MoveObject(yakuzator1,358.18548583984,-1474.9178466797,32.182922363281,4);
    SetTimer("CloseGate",5000,0);
    SendClientMessage(playerid,0x33CCFFAA,"Das Tor schliesst sich automatisch in 5 Sekunden.");
    }
    else
    {
    return SendClientMessage(playerid,0xAFAFAFAA,"Du bist nicht in der Fraktion 6");
    }
    }


    Hier die Erklärung für den Timer:
    SetTimer("CloseGate",5000,0);
    //SetTimer => Funktion: ruft einen Puplic in einer bestimmten Zeit auf
    //"CloseGate" => Funktion: Name des Publics das aufgerufen werden soll in ""
    //5000 => Die Zeit nach dem der Public aufgerufen werden soll(in Millisekunden)
    //0 => Der Timer soll sich nicht wiederholen | 1 würde heissen, sobald das Tor einmal aufmacht würde es die ganze Zeit alle 5 Sekunden das Tor öffnen bzw. schliessen.


    Nun gehst du ganz runter in dein Script und machst einen neuen Public:
    public CloseGate()
    {
    MoveObject(yakuzator1,363.9782409668,-1470.4066162109,32.064594268799,4);
    return 1;
    }


    Erklärung:
    //public CloseGate() => Wenn der Public aufgerufen wird
    // MoveObject(..); => Das soll passieren, wenn der Public aufgerufen wird. Also das Object sollte sich zu den Koordinaten bewegen, wo es dann zu ist.
    // return 1; => es returnt, gibt nicht mehr dazu zu sagen


    Das wars, zusammen sollte das so aussehen:
    // das kommt zu den andern forwards im script rein ;)
    forward CloseGate();


    // das unter "OnPlayerCommandText"
    if(!strcmp("/yopen1",cmdtext,true))
    {
    if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
    {
    MoveObject(yakuzator1,358.18548583984,-1474.9178466797,32.182922363281,4);
    SetTimer("CloseGate",5000,0);
    SendClientMessage(playerid,0x33CCFFAA,"Das Tor schliesst sich automatisch in 5 Sekunden.");
    }
    else
    {
    return SendClientMessage(playerid,0xAFAFAFAA,"Du bist nicht in der Fraktion 6");
    }
    }



    // das ganz unten im Script
    public CloseGate()
    {
    MoveObject(yakuzator1,363.9782409668,-1470.4066162109,32.064594268799,4);
    return 1;
    }


    Hoffe konnte helfen.


    MFG luckyguy

  • Es war nur im Timer der Error...
    Und den habe ich erklärt bzw versucht!


    Und deine Methode ist zwar richtig nur woraus kopiert????
    Und es gibt bessere Methoden!

    GreetZ

    Zitat

    Joda21:47
    Joda = mein spritzname
    xD


    Ice21:47
    zeig mir dein lichtschwert !


    Joda21:47 spitzname* xDD

    Ich bin ein Vogel (Joda)



  • wie definier ich das mit dem tor richtig?
    ich hab das bis jetzt so:

    Zitat


    new yakuzator1;//Das ist weiter oben


    yakuzator1 == CreateStreamObject(980,363.980,-1470.311,32.122,0.0000,0.0000,218.350,500);//Tor


    aber wenn ich das mache dann kommt ein warning das es kein efekt hat


    wie mach ich das richtig?