Avatar billede jammerlab Nybegynder
20. november 2003 - 00:09 Der er 17 kommentarer og
1 løsning

While loop

Ok jeg har lidt problemet med en while loop. Sådan det hele skal fungere er at man skriver en commando... så skal den sende en besked med det samme, og så SKAL der gå 10 sek inden man kan få den til at sende beskeden igen. Skriver man commandoen inden de 10 sek så bliver den bare ignoreret. Nogen der kan lave sådan en?
Avatar billede rackbox Nybegynder
20. november 2003 - 00:12 #1
Hvem skriver hvad? Og hvordan skal dit script reagere?
Avatar billede jammerlab Nybegynder
20. november 2003 - 00:13 #2
Det er en PHP bot på irc... så hele muliviten bliver sat igang af en commando.

            if($raw == "!almenviden") {
           
            $query = mysql_query("SELECT * FROM botling_almenviden ORDER BY RAND(NOW())LIMIT 0,1");
                  $row = mysql_fetch_array($query);
           
            $text = $row[text];
           
            $this->channel ($text, $nick, $raw, $params);
           
            }
Avatar billede rackbox Nybegynder
20. november 2003 - 00:15 #3
Jeg giver på forhånd op, så.. Jeg kender ikke til kommunikation mellem php og irc..
Avatar billede emil_ger Nybegynder
20. november 2003 - 00:16 #4
Tsk! Ronnie, jeg har fortalt dig, at du blot skal gøre det der Strtotime noet! Det dur! :) Ellers, skal du prøve at lave en $query, $accept, $access.. Måske du bare burde holde dig fra dette? For det her er for folk, som er bare en smule, klare oven i! JAMMERLAB FOR EEEEEVVVVVEEEEERRRRR! PS. Ronnie er gay!
Avatar billede jammerlab Nybegynder
20. november 2003 - 00:17 #5
Skal du heller ikke kunne hehe!
Skal bruge en while loop...
Den skal sende en command 1 gang...
Den skal så kører i 10 sek...
I de 10 sek skal denne funktion ikke kunne kaldes frem...
Efter de 10 sek skal man kunne kalde den frem igen...

PS: Luk emil :P
Avatar billede emil_ger Nybegynder
20. november 2003 - 00:19 #6
Såre enkelt det er? Du laver bare følgende kommando:

{
send command; 1;
drive for 10 seconds;
in this 10 seconds, this function has to be disabled;
10 seconds later; the function has to drive again;
}

Suk, hvad har jeg dog gjort galt ved dig min ven? Mon Hr. Ex bliver sur? :-\ AMICI I LOVE U!
Avatar billede jammerlab Nybegynder
20. november 2003 - 00:21 #7
hahaha gå nu væk emil dit stive svin :D
Avatar billede jammerlab Nybegynder
20. november 2003 - 00:21 #8
Men du har da forstået hvad det er jeg søger ;)
Avatar billede emil_ger Nybegynder
20. november 2003 - 00:22 #9
{
call $go-away
*fuck mod_perl
call $emil; run $go-away, $emil
emil has quit
}

Sure mokke :\
Avatar billede detox Nybegynder
20. november 2003 - 00:44 #10
Hvis det skal fungere på flere sider, så brug en session variabel:

<?
session_start();
if (!isset($_SESSION['tid'])) $_SESSION['tid'] = time();//Sættes i starten af scriptet

if ((time() - $_SESSION['tid']) > 10) {
    echo "Jo";// eller hvad du vil
    $_SESSION['tid'] = time();
}
?>

Ellers kan du bruge en alm. variabel.
Avatar billede detox Nybegynder
20. november 2003 - 00:49 #11
PS: Hvis du bruger en alm. variabel, så husk at gør den global i funktionen.
Avatar billede jammerlab Nybegynder
20. november 2003 - 14:21 #12
detox... det ser ikke ud til at fungere helt... jeg kan kalde functionen frem hele tiden... se her:

            if($raw == "!info") {
       
        if (!isset($_SESSION['tid'])) $_SESSION['tid'] = time();//Sættes i starten af scriptet

        if ((time() - $_SESSION['tid']) > 10) {
            echo "Jo";// eller hvad du vil
            $_SESSION['tid'] = time();
       
        $query = mysql_query("select * from botling") or die(mysql_error());
        $row = mysql_fetch_array($query);
       
        $uptime = strtotime ("now");
        $calc = $uptime - $row[uptime_time];
   
        $sek    = date($calc);
        $min    = $sek / 60;
        $timer    = $min / 60;
        $dage    = $timer / 24;
        $pro    = $row[uptime_procent] * 100 / 100;

        $min = round($min);
        $timer = round($timer);
        $dage = round($dage);
        $pro = round($pro);
   
            $bot_uptime  = "Uptime:" . chr(2) ." $dage dag(e) $timer time(r) $min minut(ter) (Restart $row[uptime_procent] gange - $pro% uptime)";
           
            $text = ":$row[bot_version]" . chr(10) ."PRIVMSG $params :$row[bot_release]". chr(10) ."PRIVMSG $params :$row[bot_owner]". chr(10) ."PRIVMSG $params :$bot_uptime". chr(10) ."PRIVMSG $params :$row[bot_addon]";
       
        $this->channel ($text, $nick, $raw, $params);
        }
        }

Dette er så helt i toppen: <? session_start(); ?>
Avatar billede jammerlab Nybegynder
20. november 2003 - 14:35 #13
hov... sq da mig der roder rundt i det.
Avatar billede jammerlab Nybegynder
20. november 2003 - 14:56 #14
My bad... det ser ud til at fungere :)
Avatar billede zeiox Nybegynder
20. november 2003 - 17:43 #15
talker må jeg spørge dig om en ting ?
Avatar billede jammerlab Nybegynder
20. november 2003 - 17:47 #16
ja? :)
Avatar billede zeiox Nybegynder
20. november 2003 - 17:52 #17
Har man MSN ? :P
Kunne godt bruge en snak om IRCBot
Avatar billede jammerlab Nybegynder
20. november 2003 - 17:53 #18
Har msn ja... men jeg har nok ikke så meget tid til at hjælpe dig... har nogle kundeaftaler lige for tiden som kræver en del af min tid, men... talker3333@hotmail.com
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester