Ogłoszenie

Zwiń
No announcement yet.

Prosty skrypt czatu

Zwiń
X
 
  • Filtr
  • Czas
  • Pokaż
Wyczyść wszystko
new posts

    Prosty skrypt czatu

    Siemka, ponieważ Ruloo mnie zmotywował, postanowiłem dla Was zrobić prosty czat

    CZAT v.1.0.5

    Dostępne funkcje:
    -Dołączenie do rozmowy
    -Opuszczanie rozmowy
    -Tworzenie konta
    -Zmiana nicku
    -Gra w butelkę
    -Gra w kostkę(autor: Majcon)


    Kod:
    Kod php:
    <?
    error_reporting(0);
    include("MessageBuilder.php");
    $ApiNr = '';
    $ApiMail = '';
    $ApiPass = '';
    $BaseHost = '';
    $BaseUser = '';
    $BasePass = '';
    $BaseName = '';
    PushConnection::$BOTAPI_LOGIN=$ApiMail;
    PushConnection::$BOTAPI_PASSWORD=$ApiPass;
    $m = new MessageBuilder();
    $p = new PushConnection($ApiNr);
    $db = new mysqli($BaseHost, $BaseUser, $BasePass, $BaseName);
    $from = $_GET['from'];
    $msg = addslashes($HTTP_RAW_POST_DATA);
    $wyraz = explode(" ", $msg);
    $cmd = strtolower(str_replace(array("!", ".", "/", "&"), "", $wyraz[0]));
    $UserInfo = $db->query("SELECT * FROM `chat` WHERE `nr` = {$from}");
    $onlines = $db->query("SELECT * FROM `chat` WHERE `online` = 1");
    while($onliness = $onlines->fetch_assoc())
    $online[] = $onliness['nr'];
    if($UserInfo->num_rows == 0){
    if($cmd != "start"){
    die("Wpisz !start aby się zarejestrować");
    }
    }
    else{
    $user = $UserInfo->fetch_assoc();
    }
    if($user['online'] == 0){
    if($cmd != "start"){
    die("Wpisz !start aby się zalogować");
    }
    }
    if($msg{0} != "!" and $msg{0} != "/" and $msg{0} != "." and $msg{0} != "&"){
    $m->addBBCode("[b]{$user['nick']}[/b]: {$msg}")->setRecipients($online);
    $p->push($m);
    $m->clear();
    }
    else{
    if($cmd == "start"){
    if($user['online'] == 1)
    die("Już się zalogowałeś");
    if($UserInfo->num_rows == 0){
    $db->query("INSERT INTO `chat` (`nr`, `nick`, `online`) VALUES ({$from}, 'GG_{$from}', 1)");
    $online[] = $from;
    $m->addBBCode("[u]{$from}[/u] zarejestrował się na czacie")->setRecipients($online);
    $p->push($m);
    $m->clear();
    echo "Zarejestrowałeś się";
    }
    else{
    $db->query("UPDATE `chat` SET `online` = 1 WHERE `nr` = {$from}");
    $m->addBBCode("[b]{$user['nick']}[/b] zalogował się na czat")->setRecipients($online);
    $p->push($m);
    $m->clear();
    echo "Zalogowałeś się";
    }
    }
    elseif($cmd == "stop"){
    $m->addBBCode("[b]{$user['nick']}[/b] wylogował się z czatu")->setRecipients($online);
    $p->push($m);
    $m->clear();
    $db->query("UPDATE `chat` SET `online` = 0 WHERE `nr` = {$from}");
    }
    elseif($cmd == "nick"){
    if(!$wyraz[1])
    die("Nie podałeś nowego nicku");
    $db->query("UPDATE `chat` SET `nick` = '{$wyraz[1]}' WHERE `nr` = {$from}");
    $m->addBBCode("[b]{$user['nick']}[/b] jest od teraz znany jako [b]{$wyraz[1]}[/b]")->setRecipients($online);
    $p->push($m);
    $m->clear();
    }elseif($cmd == "kostka"){ 
    $kostka = rand(1,6); 
    $m->addBBCode("[b]{$user['nick']}[/b] Ciepie kostką.")->setRecipients($online); 
    $p->push($m); 
    $m->clear(); 
    sleep(2);
    $m->addBBCode("Kostka {$user['nick']} która zatrzymuje się na:  [b]{$kostka}[/b]")->setRecipients($online);
    $p->push($m);
    $m->clear();
    }
    elseif($cmd == "butelka"){
    $numerki = $db->query("SELECT * FROM `chat` WHERE `nr` != {$from} AND `online` = 1");
    $nicki = '';
    while($key = $numerki->fetch_assoc()){
    $nicki[] = $key['nick'];
    }
    $nickk = array_rand($nicki);
    $m->addBBCode("[b]{$user['nick']}[/b] kręci butelką.")->setRecipients($online);
    $p->push($m);
    $m->clear();
    sleep(2);
    $m->addBBCode("Butelka {$user['nick']} zatrzymuje się na [b]{$nickk}[/b]")->setRecipients($online);
    $p->push($m);
    $m->clear();
    }
    else{
    die("Komenda nie istnieje");
    }
    }
    ?>
    Struktura bazy:
    Kod:
    CREATE TABLE IF NOT EXISTS `chat` (
      `nr` int(255) NOT NULL,
      `nick` varchar(25) NOT NULL,
      `online` tinyint(2) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Potrzebujesz nowej funkcji? Pisz tu, wprowadzę ją wraz z nową wersją czatu
    Nie rozumiesz czegoś? Też pisz tu.
    Ostatnio edytowany przez Beniooo; [ARG:4 UNDEFINED]. Powód: Ewentualne błędy zgłaszaj w odpowiedzi!
    Już niedługo...

    #2
    Niczego sobie. Czepiając się szczegółów napisałeś, że napiszesz poGGawędkę w 15 min, a temu skryptowi do poGGawędki jeszcze sporo brakuje. Ale jest ok

    Jak mi się uda to może dziś wstawię mój skrypt czatu głównego, trochę bardziej rozwiniętego i bez MySQL.

    Komentarz


      #3
      ekhem, napisałem, że skrypt poggawędki to 15-20 minut
      Już niedługo...

      Komentarz


        #4
        Przydalo by sie dodac temat rozmowy, oraz dodac wiadomosc na wejscie. Np.
        Ja:
        /join
        CHAT:
        Witaj na chacie! Nasz temat rozmowy: .......

        Wysyłane z mojego GT-S5830 za pomocą Tapatalk 2

        Komentarz


          #5
          Po co? Trudno nie jest to napisać, a jeżeli nawet tyle nie potrafisz to po co się za to bierzesz?
          Może zamiast szukać gotowca zajmij się na razie zwykłymi botami. Gdy nauczysz się obsługiwać BotAPI i jego biblioteki to wtedy weźmiesz się za coś trudniejszego

          Komentarz


            #6
            Nowa wersja, poprawiony tekst przy wchodzeniu oraz dodana możliwość zmiany nicku
            Ostatnio edytowany przez Beniooo; [ARG:4 UNDEFINED].
            Już niedługo...

            Komentarz


              #7
              @Beniooo prosze Cię o stworzenie komendy /butelka ktora dziala na zasadzie losowania urzytkownika do odpowiedzi na butelke.

              Komentarz


                #8
                jeszcze jak byś mogl to cmd /akcje w ktorej bedzie np /action kop. i da odpowiedz (nick) kopie (nick2)

                Komentarz


                  #9
                  To są naprawde banalne komendy, pomyśl i sam zrób. Benioo nie ma czasu przenieść plików (musimy serwer przeinstalować na inny system i panel) a co dopiero tracicić czas na takie pierdoły

                  Komentarz


                    #10
                    jak powiesz mi jaka zmienna odpowiada za urzytkownika ktory wysyla wiadomosc np /akcja zabij nick. i zmienna na nick to sobie stworze
                    hm a butelke...
                    nwm szczerze to nie lubie gotowcow to moge sam a to co na gorze pisalem.

                    Komentarz


                      #11
                      Tu masz przykładowy kod na napicie się z kimś piwa:
                      Kod php:
                      <?php if(!$parts[1]) 
                      {die(
                      "Wpisz /piwo nick1 ;) ");} $q $db->query(" select numer from nicki where online ='1' " );
                      while (
                      $n $q->fetch_assoc())
                      $odb[] = $n ['numer'];
                      $mb->addBBCode"No i uzbieral kase! :D ".$main->nick($user['nick'], $user['staff'])." zaprasza uzytkownika $parts[1] na zimne piwo! ;) " FORMAT_ITALIC_TEXT ) -> setRecipients($odb) ;
                      $p->push ($mb); ?>

                      Komentarz


                        #12
                        dzięki

                        Komentarz


                          #13
                          Butelka zapytanie:

                          SELECT nick FROM chat WHERE online='1' ORDER BY RAND()

                          Akcje robisz na schemacie

                          if(!isset($wyraz[2]))
                          {
                          wysłanie dostępnych akcji i składni
                          }
                          else if($wyraz[1] == 'kopie')
                          {
                          wyslanie txt($user[nick].' kopie w dupe '.$wyraz[2]);
                          }
                          else
                          {
                          wyslanie txt('Podana akcja nie istnieje.');
                          }

                          Komentarz


                            #14
                            Ruloo, niech trochę się pobawią. nie dawaj gotowca

                            Komentarz


                              #15
                              Kevas to co daje jest jedynie schematem. Tworzenia tego nauczy się z czasem. ;P

                              Tak ps. do Kevasa: coś mi ten kod wygląda na zrobiony na odpier....

                              Komentarz

                              Pracuję...
                              X