;##############################################
;## !21 cards game ############################
;#########################   by cabadak  ######
;##############################################
on *:text:!21:#: {
  if !$timer(21cardgame) { set %chan21game $chan | .timer21cardgame 0 180 puansirala }
  if (%21jog != on) {
    set %21jog on
    set %21player-1 $nick
    msg $chan Oyun 2 kişiliktir ve bir kişi daha kanala !21 yazıp oyuna katılmalıdır, please wait ..
    .timer_21-onlyone 1 30 player-me $chan
    set %21para-jog-1 off
    halt
  }
  if (%21jog == on) && (!%21player-2) && ($nick != %21player-1) {
    .timer_21-onlyone off
    set %21player-2 $nick
    set %21game-starts ok
    .notice %21player-1 " !puan " yazın.. 21 sayıya ulaşan ve en yaklaşan kazanır.  
    .notice %21player-2 21 oyunu blackjack. 21'e en yakın sayısı olan kazanır. 
    msg $chan  1Oyun başlıyor, oyuncular şu kişiler :   4 %21player-1  1- 4 %21player-2 
    msg $chan  4 %21player-1  1 sen başlıyorsun hemen kartını çek ( !card )
    set %21jogada-jog 1
    set %21para-jog-2 off
    .timer_end-21 1 62 encerra-21 $chan
  }
}
on *:text:!puan*:#: {
  if $1 == !puanreset && $nick isop $chan {  unset %wins* | msg # blackjack puan listesi sıfırlandı. ( 4reset 1) | .timer21cardgame off | return }
  if !$2 && $($+(%,wins,$nick)) { msg #  $+(,$nick,) :  2 $($+(%,wins,$nick),2)  1puanınız var ve 2 $calc($($+(%,wins,$nick),2) / 5 )  1kez kazandınız.  } 
  if !$2 && !$($+(%,wins,$nick)) { msg # $+(,$nick,) :  2 0 puanınız var malesef hiç kazanamadınız. }
}
alias puansirala {
  var %i 1
  while $var(%wins*,%i) {
    var %ml $var(%wins*,%i).value 
    var %gl $remove($var(%wins*,%i),%,wins)
    var %kazanan %kazanan $+(%ml,.,%gl)
    inc %i
  }
  var %kaz $sorttok(%kazanan,32,nr) 
  tokenize 32 %kaz
  msg %chan21game  4Blackjack En iyi ilk 5 :   1)   $+( 10,$gettok($1,2,46), ) -> $gettok($1,1,46) $+( 13,$chr(124), )   2)   $+( 10,$gettok($2,2,46), ) -> $gettok($2,1,46) $+( 13,$chr(124), )   3)   $+( 10,$gettok($3,2,46), ) : $gettok($3,1,46) $+( 13,$chr(124), )   4)   $+( 10,$gettok($4,2,46), ) -> $gettok($4,1,46) $+( 13,$chr(124), )   5)   $+( 10,$gettok($$5,2,46), ) -> $gettok($$5,1,46)
}

alias player-me {
  msg $1  4  %21player-1 $+     1ikimiz oynuyoruz ..
  set %21player-2 $me
  set %21jogada-jog 1
  set %21para-jog-2 off
  msg $1  1Oyun başlıyor, oyuncular şu kişiler : 4 %21player-1  1- 4 %21player-2
  msg $1  4 %21player-1  1sen başlıyorsun, kanala  !card  yazarak kartını çek.
  .timer_end-21 1 62 encerra-21 $1
}
alias me-play {
  if (%21jogada-jog == 2)  && ($me == %21player-2) {
    set %carta-jog-2 $rand(1,13)
    if (!%21cards-value-2) {
      set %21cards-value-2 %carta-jog-2
      set %21cards-player-2 $pass-to-card(%carta-jog-2)
      set %21jogada-jog 1
      msg $1 !card
      calc-next-orstop %21cards-value-2 %21player-2 $1
    }
    else {
      set %21jogada-jog 1
      set %21cards-value-2 $calc(%21cards-value-2 + %carta-jog-2)
      set %21cards-player-2 %21cards-player-2 $pass-to-card(%carta-jog-2)
      var %21me-play = %21cards-value-2
      if (%21me-play isnum 15-18) {
        var %me-play = $rand(1,2)
        if (%me-play == 1) {
          msg $1 !card
          calc-next-orstop %21cards-value-2 %21player-2 $1
          .timer_end-21 1 62 encerra-21 $1
          halt
        }
        if (%me-play == 2) {
          set %21para-jog-2 on
          msg $1 !comp
          if (%21para-jog-1 !== on) {
            calc-next-orstop %21cards-value-2 %21player-2 $1
            .timer_end-21 1 62 encerra-21 $1
            halt
          }
          if (%21para-jog-1 == on) {
            who-winns-21 $1
          }
        }
        halt
      }
      if (%21me-play isnum 1-14) {
        msg $1 !card
        calc-next-orstop %21cards-value-2 %21player-2 $1
        .timer_end-21 1 62 encerra-21 $1
        halt
      }
      if (%21me-play isnum 19-20) {
        set %21para-jog-2 on
        msg $1 !comp
        if (%21para-jog-1 !== on) {
          calc-next-orstop %21cards-value-2 %21player-2 $1
          .timer_end-21 1 62 encerra-21 $1
        }
        if (%21para-jog-1 !== on) {
          calc-next-orstop %21cards-value-2 %21player-2 $1
          .timer_end-21 1 62 encerra-21 $1
          halt
        }
        if (%21para-jog-1 == on) {
          who-winns-21 $1
          halt
        }
        halt
      }
      if (%21me-play == 21) {
        msg $1 !card
        calc-next-orstop %21cards-value-2 %21player-2 $1
      }
      if (%21me-play isnum 22-1000) {
        calc-next-orstop %21cards-value-2 %21player-2 $1
        .timer_end-21 off
        halt
      }
    }
  }
}
on *:text:!card:#: {
  if (%21jogada-jog == 1) && ($nick == %21player-1) && (%21player-2 != $me) {
    set %carta-jog-1 $rand(1,13)
    if (!%21cards-value-1) {
      set %21cards-value-1 %carta-jog-1
      set %21cards-player-1 $pass-to-card(%carta-jog-1)
      set %21jogada-jog 2
      .notice $nick  14kart: 3 %21cards-player-1
      .notice $nick  14sayı: 3 %21cards-value-1
      calc-next-orstop %21cards-value-1 %21player-1 $chan
      .timer_end-21 1 62 encerra-21 $chan
      halt
    }
    else {
      set %21jogada-jog 2
      set %21cards-value-1 $calc(%21cards-value-1 + %carta-jog-1)
      set %21cards-player-1 %21cards-player-1 $pass-to-card(%carta-jog-1)
      .notice $nick  14kart: 3 %21cards-player-1
      .notice $nick  14sayı: 3 %21cards-value-1
      calc-next-orstop %21cards-value-1 %21player-1 $chan
      halt
    }
  }
  if (%21jogada-jog == 1) && ($nick == %21player-1) && (%21player-2 == $me) {
    set %carta-jog-1 $rand(1,13)
    if (!%21cards-value-1) {
      set %21cards-value-1 %carta-jog-1
      set %21cards-player-1 $pass-to-card(%carta-jog-1)
      set %21jogada-jog 2
      .notice $nick  14kart: 3 %21cards-player-1
      .notice $nick  14sayı: 3 %21cards-value-1
      calc-next-orstop %21cards-value-1 %21player-1 $chan
      .timer_end-21 1 62 encerra-21 $chan
      halt
    }
    else {
      set %21jogada-jog 2
      set %21cards-value-1 $calc(%21cards-value-1 + %carta-jog-1)
      set %21cards-player-1 %21cards-player-1 $pass-to-card(%carta-jog-1)
      .notice $nick  14kart: 3 %21cards-player-1
      .notice $nick  14sayı: 3 %21cards-value-1
      calc-next-orstop %21cards-value-1 %21player-1 $chan
      .timer_end-21 1 62 encerra-21 $chan
      halt
    }
  }
  if (%21jogada-jog == 2)  && ($nick == %21player-2) {
    set %carta-jog-2 $rand(1,13)
    if (!%21cards-value-2) {
      set %21cards-value-2 %carta-jog-2
      set %21cards-player-2 $pass-to-card(%carta-jog-2)
      set %21jogada-jog 1
      .notice $nick  14kart: 3 %21cards-player-2
      .notice $nick  14sayı: 3 %21cards-value-2
      calc-next-orstop %21cards-value-2 %21player-2 $chan
      .timer_end-21 1 62 /encerra-21 $chan
      halt
    }
    if (%21cards-value-2) {
      set %21jogada-jog 1
      set %21cards-value-2 $calc(%21cards-value-2 + %carta-jog-2)
      set %21cards-player-2 %21cards-player-2 $pass-to-card(%carta-jog-2)
      .notice $nick  14kart: 3 %21cards-player-2
      .notice $nick  14sayı: 3 %21cards-value-2
      calc-next-orstop %21cards-value-2 %21player-2 $chan
      .timer_end-21 1 62 encerra-21 $chan
      halt
    }
  }
}
alias encerra-21 {
  if (%21jog == on) {
    who-winns-21 $1
  }
  else {
    acaba-21
  }
}
alias calc-next-orstop {
  if (%21player-2 != $me) {
    if ($1 > 21) && ($2 == %21player-1)  { msg $3  1BOOOOOOOOOOMMMM!!    4  $2   1çektiğin kart ile 21'i geçtin, oyunu kaybettin.  %21cards-player-1   1Toplam  %21cards-value-1 |  .timer_end-21 off | msg $3  KAZANAN 4 %21player-2   1çektiği kartlar->  %21cards-player-2    1Kartların toplamı->  %21cards-value-2 | inc $+(%,wins,%21player-2) 5 ( kanala !puan yaz ) | acaba-21 | halt }
    if ($1 == 21) && ($2 == %21player-1)  { msg $3  4KAZANAN 4  %21player-1   1çektiği kartlar,  %21cards-player-1  toplam,  %21cards-value-1 | inc $+(%,wins,%21player-1) 5 ( kanala !puan yaz ) |  .timer_end-21 off | acaba-21 | halt }
    if ($1 < 21) && ($2 == %21player-1) {
      if (%21para-jog-2 !== on) { msg $3  4  %21player-2  1sıra sende. Kartını çekmek için !card yazmalısın. Eğer elindeki sayılar yeterli ise !comp yazmalısın. }
      if (%21para-jog-2 == on) { set %21jogada-jog 1 | msg $3  4 %21player-1  4sıra sende. Kanala !card yaz ve kartını çek. Eğer kart istemiyorsan !comp yaz.  |  .timer_end-21 1 62 encerra-21 $3 | halt }
    }
    if ($1 > 21) && ($2 == %21player-2) { msg $3   1BOOOOOOOOOOMMMM! ! 4  $2  1çektiğin kart ile oyunu kaybettin. ->  %21cards-player-2  1 toplam->   %21cards-value-2  1  | msg $3   1KAZANAN -> 4 %21player-1  1çektiği kartlar->   %21cards-player-1  1 Elinin toplamı->  %21cards-value-1   | inc $+(%,wins,%21player-1) 5 ( kanala !puan yaz ) |  .timer_end-21 off | acaba-21 | halt }
    if ($1 == 21) && ($2 == %21player-2) { msg $3  1KAZANAN  4 %21player-2  1kartlar->   %21cards-player-2  1 toplamı->  %21cards-value-2   | inc $+(%,wins,%21player-2) 5 |  .timer_end-21 off | acaba-21 | halt | inc $+(%,wins,%21player-2) 5 ( kanala !puan yaz ) }
    if ($1 < 21) && ($2 == %21player-2) {
      if (%21para-jog-1 !== on) { msg $3  4 %21player-1  1sıra sende. Kartını çekmek için !card yazmalısın. Eğer elindeki sayılar yeterli ise !comp yazmalısın dostum acele et..   | halt }
      if (%21para-jog-1 == on)  { set %21jogada-jog 2 | msg $3  4 %21player-2  1sıra sende dostum. Kanala !card yaz ve kartını çek, elindeki kartlar yeterliyse !comp yaz ve rakibini bekle..  |  .timer_end-21 1 62 /encerra-21 $3 | halt }
    }
  }
  if (%21player-2 == $me) {
    if ($1 > 21) && ($2 == %21player-1)  { msg $3   1B O O O O O O O O O O M M M M ! ! ! ! 4 $2  1kaybettin. Kartların ->   %21cards-player-1   1 toplamda ->  %21cards-value-1  sayı. |  .timer_end-21 off | msg $3   1KAZANAN OYUNCU ->  4 %21player-2  1elindeki kartlar->  %21cards-player-2  1 toplamda ise->  %21cards-value-2   1sayı. | inc $+(%,wins,%21player-2) 5 ( kanala !puan yaz ) | acaba-21 | halt }
    if ($1 == 21) && ($2 == %21player-1)  { msg $3  1KAZANAN 4 %21player-1  1Ç E K T İ Ğ İ T Ü M K A R T L A R ->   %21cards-player-1  1Ç E K T İ Ğ İ T Ü M  K A R T L A R İ N T O P L A M  S A Y I S I ->  4 %21cards-value-1 ( kanala !puan yaz ) |  .timer_end-21 off | acaba-21 | halt }
    if ($1 < 21) && ($2 == %21player-1) {
      if (%21para-jog-2 !== on) { msg $3  SIRA BENDE ! | me-play $3 }
      if (%21para-jog-2 == on) { set %21jogada-jog 1 | msg $3  4 %21player-1  1oyna aslan parçası.. Kartını çekmek için !card yaz. Eğer elindeki sayılar yeterli ise !comp yaz ama acele et..  |  .timer_end-21 1 62 encerra-21 $3 | halt }
    }
    if ($1 > 21) && ($2 == %21player-2) { /msg $3  1BOOOOOOOOOOMMMM   4 $2  1oyunu kaybettin. Senin kartların ->   %21cards-player-2  1 kartlarin toplamı ->   %21cards-value-2   | inc $+(%,wins,%21player-1) 5 | msg $3 KAZANAN 4 %21player-1   1İŞTE ŞU KARTLARI ÇEKTİ ->   %21cards-player-1   1 VE ÇEKTİĞİ KARTLARIN TOPLAMI ->   %21cards-value-1   ( kanala !puan yaz ) |  .timer_end-21 off | acaba-21 | halt }
    if ($1 == 21) && ($2 == %21player-2) { msg $3  1KAZANAN  4 %21player-2  1 KARTLARI->   %21cards-player-2  1 TOPLAMI->   %21cards-value-2   | inc $+(%,wins,%21player-2) 5 ( kanala !puan yaz ) |   .timer_end-21 off | acaba-21 | halt }
    if ($1 < 21) && ($2 == %21player-2) {
      if (%21para-jog-1 !== on) { msg $3  4 %21player-1  1sıra sende gençoğlan. Kanala !card yaz ve  çek. kart istemiyore !comp yaziyore.. | halt }
      if (%21para-jog-1 == on)  { set %21jogada-jog 2 | msg $3  1şimdi ise ben çekiyorum ve çektimm..  ! | .timer_end-21  off | .timer_only-me-play 1 2 me-play $3 |  halt }
    }
  }
}
alias acaba-21 {
  set %21jog off
  unset %21player-1 %21player-2 %21cards-value-1 %21cards-player-1 %21cards-value-2 %21cards-player-2 %21game-starts
}
on *:text:!comp:#: {
  if (%21jog == on) && (%21player-2) {
    if ($var(%21cards-player*,0) > 1) {
      if (%21player-2 != $me) {
        if (%21jogada-jog == 1) {
          if ($nick == %21player-1) && (%21para-jog-2 !== on) { set %21para-jog-1 on | set %21jogada-jog 2 | msg $chan  4 %21player-2  1kart çekmek için !card yazmalısın , kart çekmemek ve rakibi beklemek için ise !comp yazmalısın canım.  |  .timer_end-21 1 62 encerra-21 $chan | halt }
          if ($nick == %21player-1) && (%21para-jog-2 == on) { who-winns-21 $chan |  .timer_end-21 off }
        }
        if (%21jogada-jog == 2) {
          if ($nick == %21player-2) && (%21para-jog-1 !== on) { set %21para-jog-2 on | set %21jogada-jog 1 | msg $chan  4 %21player-1  1oyna koçum! Yapacağın şey basit? Kart istiyorsan !card yazıyorsun, kart istemiyorsan !comp yazıyorsun.. understand me?   |  .timer_end-21 1 62 encerra-21 $chan  | halt }
          if ($nick == %21player-2) && (%21para-jog-1 == on) { who-winns-21 $chan |  .timer_end-21 off }
        }
      }
      if (%21player-2 == $me) {
        if (%21jogada-jog == 1) {
          if ($nick == %21player-1) && (%21para-jog-2 !== on) { set %21para-jog-1 on | set %21jogada-jog 2 | msg $chan Ş İ M D İ D E B E N Ç E K İ Y O R U M, A L L A H Ç E K T İ R M E S İ N H O P P A.. R u l e ! | .timer_end-21 off | .timer_only-me-play 1 2 me-play $chan | halt }
          if ($nick == %21player-1) && (%21para-jog-2 == on) { who-winns-21 $chan |  .timer_end-21 off }
        }
        if (%21jogada-jog == 2) {
          if ($nick == %21player-2) && (%21para-jog-1 !== on) { set %21para-jog-2 on | set %21jogada-jog 1 | msg $chan  4 %21player-1  1sıra sende. Kartını çekmek için !card yazmalısın. Eğer elindeki sayılar yeterli ise !comp yazmalısın dostum acele et..   |  .timer_end-21 1 62 encerra-21 $chan  | halt }
          if ($nick == %21player-2) && (%21para-jog-1 == on) { who-winns-21 $chan |  .timer_end-21 off }
        }
      }
    }
    else { msg $chan  1ilk önce bi kart çek ondan sonra compla uyanıkmısın nesin ak  : 4 !card }
  }
}
alias who-winns-21 {
  if ($var(%21cards-player*,0) > 1) {
    set %21total-jog-1 $calc(21 - %21cards-value-1)
    set %21total-jog-2 $calc(21 - %21cards-value-2)
    if (%21total-jog-1 < %21total-jog-2) {  .timer_end-21 off | msg $1   1KAZANAN 4 %21player-1  1 kart's-> %21cards-player-1 tötal's->  %21cards-value-1  | inc $+(%,wins,%21player-1) 5 ( kanala !puan yaz ) | msg $1   1KAYBEDEN 4 %21player-2  1kart's -> %21cards-player-2  1tötal's-> %21cards-value-2  | acaba-21 | halt }
    if (%21total-jog-1 > %21total-jog-2) {  .timer_end-21 off | msg $1   1KAZANAN 4 %21player-2  1elindeki kartlar-> %21cards-player-2  1Toplamı-> %21cards-value-2 | inc $+(%,wins,%21player-2) 5 ( kanala !puan yaz ) | msg $1  1KAYBEDEN  4 %21player-1  1elindeki kartları-> %21cards-player-1  1toplamı-> %21cards-value-1  | acaba-21 | halt }
    if (%21total-jog-1 == %21total-jog-2) && ($var(%cartas-jog*,0) = 2) {  .timer_end-21 off | msg $1 Oyun Bitti..  !   | msg $1    %21player-1  KARTLAR->  %21cards-player-1  TOPLAM->  %21cards-value-1 | msg $1   %21player-2    1kart's->  %21cards-player-2  1 toplam->  %21cards-value-2  | acaba-21 | halt } 
  }
  else { msg $1 oyun bitti ve kazanan yok. !  | acaba-21 }
}
alias pass-to-card {
  set %21cor  $rand(1,2)
  if (%21cor == 1) { set %21cort 1 }
  if (%21cor == 2) { set %21cort 4 }
  if ($1 == 1) { return   $+ %21cort $+ ,0 $+ [A]   }
  if ($1 == 2) { return   $+ %21cort $+ ,0 $+ [2]   }
  if ($1 == 3) { return   $+ %21cort $+ ,0 $+ [3]   }
  if ($1 == 4) { return   $+ %21cort $+ ,0 $+ [4]   }
  if ($1 == 5) { return   $+ %21cort $+ ,0 $+ [5]   }
  if ($1 == 6) { return   $+ %21cort $+ ,0 $+ [6]   }
  if ($1 == 7) { return   $+ %21cort $+ ,0 $+ [7]   }
  if ($1 == 8) { return   $+ %21cort $+ ,0 $+ [8]   }
  if ($1 == 9) { return   $+ %21cort $+ ,0 $+ [9]   }
  if ($1 == 10) { return   $+ %21cort $+ ,0 $+ [10]   }
  if ($1 == 11) { return   $+ %21cort $+ ,0 $+ [J]   }
  if ($1 == 12) { return   $+ %21cort $+ ,0 $+ [Q]   }
  if ($1 == 13) { return   $+ %21cort $+ ,0 $+ [K]   }
  if ($1 == 21) { return   $+ %21cort $+ ,0 $+ [G]   }


-Blackjack oyunu 2 kişi ile oynanır.
-Oyuna katılmak için kanala !21 yazmalısınız.
-Aynen diğer kişide !21 yazmalıdır.
-Kart istemek için !card
-Kart istemiyorum !comp
-Puan için !puan
-Beraberlik halinde !comp kullanamazsınız kart cekmelisiniz.