Tutorial

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
  • Hi Comunnity,
    Bräuchte ma hilfe:
    habe mir ein turorial zusammengebastelt mit SetTimerEx... habe von SetTimerEx nicht wirklich viel erfahrung und das ist auch rausgekommen ^^
    ich habe das so gemacht:

    forward 1(playerid);
    forward 2(playerid);
    forward 3(playerid);



    public 1(playerid)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0,0,0);
    SetTimerEx("2", 10000, false, "is", 1337, "");
    return 1;
    }
    public 2(playerid)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0,0,0);
    SetTimerEx("3", 10000, false, "is", 1337, "");
    return 1;
    }
    public 3(playerid)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0,0,0);
    return 1;
    }



    jedoch kackt der server ab, sobald das tut startet...
    woran kann das liegen?


    Mfg. manumeyer

    MFG.:
    manumeyer


    if (strcmp("/Hatschi", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0xAA3333,"Gesundheit!");
    return 1;
    }

  • wow thx für schnelle antwort...
    Leider brachte das nichts :(


    aber trzd. thy

    MFG.:
    manumeyer


    if (strcmp("/Hatschi", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0xAA3333,"Gesundheit!");
    return 1;
    }

  • public tut(playerid)
    {
    if(Bla[playerid] == 0)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0,0,0);
    Bla[playerid] +1;
    SetTimerEx("tut", 10000, false, "is", 1337, "");
    return 1;
    }
    if(Bla[playerid] == 1)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0,0,0);
    Bla[playerid] +1;
    SetTimerEx("tut", 10000, false, "is", 1337, "");
    return 1;
    }
    return 1;
    }


    so?


    /edit:
    Fehler drinne :P

    MFG.:
    manumeyer


    if (strcmp("/Hatschi", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0xAA3333,"Gesundheit!");
    return 1;
    }

  • @nes
    es ist doch richtig.
    Bis auf eine sache:


    SetTimerEx("tut", 10000, false, "is", 1337, "");


    Wieso wird hier ein leerer String reingemacht? Ausserdem wird der string hier:


    public tut(playerid)


    nicht benutzt^^


    EDIT:


    Wenn die Zeiten gleich sein sollen mach lieber einen Timer der sich immer wiederholt ;). Dann muss der Timer nicht immer erneut aufgerufen werden.


    EDIT2:


    Doch fehler XD:


    SetPlayerPos(playerid,0,0,0);
    Bla[playerid] +1;


    muss so heissen:
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] += 1;

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • new TutorialTime[MAX_PLAYERS];


    SetTimer("Tutorial", 1001, 1);


    public Tutorial()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(TutorialTime[i] >= 1)
    {
    TutorialTime[i] += 1;
    if(TutorialTime[i] == 2){
    SendClientMessageToAll(0x00FF00FF,"Step 1");}
    if(TutorialTime[i] == 20){
    SendClientMessageToAll(0x00FF00FF,"Step 2");}
    if(TutorialTime[i] == 40){
    SendClientMessageToAll(0x00FF00FF,"Step 3");}
    if(TutorialTime[i] == 60){
    SendClientMessageToAll(0x00FF00FF,"Step 4");}
    if(TutorialTime[i] == 80){
    TutorialTime[i] = 0;
    }
    }
    }
    }


    Wenn der Spieler ins Tutorial soll setzt du ihm einfach diese Variable
    TutorialTime[playerid] = 1;

  • Schlecht gewählt.. Weil das nur unnötig ressourcen verbraucht. Der Timer wird jede Sekunde alle Spielerslots d.h. die Anzahl an slots die der Server hat. Kleine Rechnung:


    500 Slot Server * 60 (Für minute) so und jetzt kann man sich sicher denken das es bei einem vServer mit vllt. 2-3GB ram zu laggst oder abstürtzen kommt. Nimm lieber deine Variante manumeyer.


    EDIT:


    Deine wird nur aufgerufen wenn der Spieler im Tutorial ist :). D.h. es wird bei einem guten Server zu keinen laggs etc. kommen (Ich denke auch bei schlechteren nicht)

  • also jetzt:
    public tut(playerid)
    {
    if(Bla[playerid] == 0)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] +=1;
    SetTimerEx("tut", 10000, false, "is", 1337, "tut");
    return 1;
    }
    if(Bla[playerid] == 1)
    {
    SendClientMessage(playerid,0xff00ff,"...");
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] += 1;
    SetTimerEx("tut", 10000, false, "is", 1337, "tut");
    return 1;
    }
    return 1;
    }

    MFG.:
    manumeyer


    if (strcmp("/Hatschi", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0xAA3333,"Gesundheit!");
    return 1;
    }

  • public tut(playerid)
    {
    if(Bla[playerid] == 0)
    {
    SendClientMessage(playerid,0xff00ff,"ERSTE.");
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] +=1;
    SetTimerEx("tut", 10000, false, "d", playerid);
    return 1;
    }elseif(Bla[playerid] == 1)
    {
    SendClientMessage(playerid,0xff00ff,"ZWEITE.");
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] += 1;
    SetTimerEx("tut", 10000, false, "d",playerid);
    return 1;
    }
    return 1;
    }


    In den Command:


    SetTimerEx("tut", 10000, false, "d", playerid);


    Oder wenn die Zeiten gleich sein Sollen:


    public tut(playerid)
    {
    if(Bla[playerid] == 0)
    {
    SendClientMessage(playerid,0xff00ff,"ERSTE.");
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] +=1;
    return 1;
    }elseif(Bla[playerid] == 1)
    {
    SendClientMessage(playerid,0xff00ff,"ZWEITE.");
    SetPlayerPos(playerid,0.0,0.0,0.0);
    Bla[playerid] += 1;
    return 1;
    }
    return 1;
    }


    In den Command:


    SetTimerEx("tut", 10000, true, "d", playerid);

  • hab jetzt als letztes:

    if(Bla[playerid] == 6)
    {
    SetPlayerPos(playerid,100.6365,-1000.6306,24.0325);
    Bla[playerid] = 7;


    return 1;
    }


    damit der normal gespawnt wird.
    jedoch fliege ich inne luft(nicht explosion)

    MFG.:
    manumeyer


    if (strcmp("/Hatschi", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0xAA3333,"Gesundheit!");
    return 1;
    }