Suche Countdown

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 Leute,
    ich habe überall rumgewühlt aber kein richtigen Countdown gefunden. Da wollt ich einfach mal Fragen ob keiner nen countdown.pwn hier posten kann.
    Währe sehr nett.


    Mit freundlichen Grüßen


    psp_gangsta

  • new countdown = 0;
    forward checkcountdown();


    dann z.B. ein dcmd command


    dcmd_countdown(playerid,params[])
    {
    new sekunden;


    if(sscanf(params, "d",sekunden))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /countdown [sekunden]");
    }
    countdown = sekunden;
    SetTimer("checkcountdown",1000,0);
    }


    public checkcountdown()
    {
    if(countdown >= 1)
    {
    new string[128];
    format(string,sizeof(string),"~r~%d",countdown);
    GameTextForAll(string,1000,3);
    countdown --;
    SetTimer("checkcountdown",1000,0);
    }
    else
    {
    GameTextForAll("~g~ GO GO GO",1000,3);
    }
    }


    Ich hoffe das funktioniert, bin leider grad etwas müde

  • Ehm sowert funktioniert das bei mir nicht.
    Ich habe dann beim compilieren das:


    warning 203: symbol is never used: "dcmd_countdown"



    Ich hatte das soweit rein kpiert.


    Wie kann ich das definieren im script?


    mfg Dave

  • Hast du Im Callback OnPlayerCommandText


    dcmd(countdown,9,cmdtext);


    und das was ich oben gepostet hab also das

    Spoiler anzeigen
    dcmd_countdown(playerid,params[])
    {
    new sekunden;

    Spoiler anzeigen
    if(sscanf(params, "d",sekunden))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /countdown [sekunden]");
    }
    countdown = sekunden;
    SetTimer("checkcountdown",1000,0);
    }

    außerhalb des callbacks ?


    Und das Makro für dcmd und sscanf im Script ?


    Das Hier am besten nach ganz unten


    Und das unter die anderen defines oder includes ob ins Script

    Spoiler anzeigen
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

  • Also ich hab das nochmal gemacht und das hat irgendwie nix geändert,
    ich glaube ich mache was falsch in der gliederung.
    Kannst du mir vlt. erkläern wie ich es einbauen muss?


    Zur info ich fange gerdae damit ab hab schon ein paar erfahrungen von einem anderem scripter.
    Jetzt versuche ich es durch das Forum zu lernen.
    Lernen tue ich am gammode "lvdm" den man hier oder im Ami sa-mp forum downloaden kann.


    mfg Dave

  • Ganz nach oben unter #include <a_samp>
    kommt new countdown = 0;


    also


    #include <a_samp>
    new countdown = 0;





    Du hast den Callback


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 1;
    }


    Den änderst du in


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(countdown,9,cmdtext);
    return 1;
    }


    Dann außerhalb dieses Callback also praktisch direkt darunter kommt das hier


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(countdown,9,cmdtext);
    return 1;
    }
    // hier drunter *runterschaun*


    dcmd_countdown(playerid,params[])
    {
    new sekunden;


    if(sscanf(params, "d",sekunden))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /countdown [sekunden]");
    }
    countdown = sekunden;
    SetTimer("checkcountdown",1000,0);
    }


    Dann irgentwo im Script, außerhalb eines Callbacks, am besten ganz nach unten



    forward checkcountdown();
    public checkcountdown()
    {
    if(countdown >= 1)
    {
    new string[128];
    format(string,sizeof(string),"~r~%d",countdown);
    GameTextForAll(string,1000,3);
    countdown --;
    SetTimer("checkcountdown",1000,0);
    }
    else
    {
    GameTextForAll("~g~ GO GO GO",1000,3);
    }
    }