Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias masknick {
var %n = $1, %m = $left(%n,1), %i = 2
while (%i < $len(%n)) {
%m = %m $+ *
inc %i
}
return %m $+ $right(%n,1)
}
alias harfac {
var %chan = $1
var %nick = $hget(secim, $+($chan,.dogru))
if (!%nick) return
var %mask = $hget(secim, $+($chan,.mask)), %len = $len(%nick), %tries = 0
:retry
inc %tries
if (%tries > 10) return
var %pos = $rand(2, $calc(%len - 1))
if ($mid(%mask, %pos, 1) == *) {
var %newmask = $left(%mask, %pos - 1) $+ $mid(%nick, %pos, 1) $+ $mid(%mask, %pos + 1)
hadd -m secim $+($chan,.mask) %newmask
msg %chan 12 Harf açıldı: %newmask
return
}
goto retry
}
alias zamandoldu {
var %chan = $1
if ($hget(secim, $+($chan,.dogru))) {
msg %chan 04 Süre doldu! Doğru cevap: 06 $hget(secim, $+($chan,.dogru))
var %nick = $hget(secim, $+($chan,.dogru))
hadd -m puanlar %nick $calc($hget(puanlar, %nick) - 5)
msg %chan 14- 04 %nick 14 puanı: $hget(puanlar,%nick)
; Oyun bitince temizle
.timerharf_$+[%chan] off
.timersure_$+[%chan] off
hdel secim $+($chan,.dogru)
hdel secim $+($chan,.mask)
hdel secim $+($chan,.wrong)
hdel secim $+($chan,.aktif)
}
}
on *:start:{
if (!$hget(puanlar)) hmake puanlar 100
if (!$hget(secim)) hmake secim 50
hload -i puanlar puanlar.dat
}
on *:exit:{
hsave -i puanlar puanlar.dat
}
on *:text:*:#:{
var %msg = $lower($strip($1-)), %nick = $nick, %chan = $chan
if ($regex(%msg, /^[&:.!]se[cç]$/)) {
if ($hget(secim, $+($chan,.aktif))) {
msg %chan 14 Zaten aktif bir oyun var. Lütfen bitmesini bekleyin.
return
}
var %list, %i = 1
while ($nick(%chan, %i)) {
var %n = $nick(%chan, %i)
if (!$istok(%muaflist, %n, 44)) && (%n != $me) {
%list = $addtok(%list, %n, 44)
}
inc %i
}
if (!%list) {
msg %chan 14 Muaf olmayan kullanıcı bulunamadı. Tüm nickler oyuna dahil.
return
}
var %target = $gettok(%list, $rand(1, $numtok(%list,44)), 44)
hadd -m secim $+($chan,.dogru) %target
hadd -m secim $+($chan,.mask) $masknick(%target)
hadd -m secim $+($chan,.wrong) 0
hadd -m secim $+($chan,.aktif) 1
msg %chan 06 Oyun başladı! Tahmin etmeye çalışın: 12 $hget(secim, $+($chan,.mask))
.timerharf_$+[%chan] 0 3 harfac %chan
.timersure_$+[%chan] 1 15 zamandoldu %chan
return
}
if ($regex(%msg, /^[&:.!]bu[Il]\s+(.+)/)) {
if (!$hget(secim, $+($chan,.dogru))) {
msg %chan 14 Şu an aktif bir oyun yok. Önce 12!seç14 komutunu kullanın.
return
}
var %tahmin = $lower($remove($regml(1), $chr(32)))
var %dogru = $lower($remove($hget(secim, $+($chan,.dogru)), $chr(32)))
if (%tahmin == %dogru) {
hadd -m puanlar %nick $calc($hget(puanlar, %nick) + 10)
msg %chan 03 Tebrikler %nick! Doğru tahmin ettin. (+10 puan)
msg %chan 14 Güncel puanın: 03 $hget(puanlar,%nick)
if ($hget(puanlar,%nick) >= 100) {
mode %chan +v %nick
msg %chan 08 Tebrikler %nick! 100 puana ulaştın. Voice verildi.
hadd -m puanlar %nick 0
}
; Oyun bittiğinde temizle
.timerharf_$+[%chan] off
.timersure_$+[%chan] off
hdel secim $+($chan,.dogru)
hdel secim $+($chan,.mask)
hdel secim $+($chan,.wrong)
hdel secim $+($chan,.aktif)
}
else {
hadd -m puanlar %nick $calc($hget(puanlar, %nick) - 5)
var %yanlis = $calc($hget(secim, $+($chan,.wrong)) + 1)
hadd -m secim $+($chan,.wrong) %yanlis
var %kalan = $calc(3 - %yanlis)
msg %chan 04 Yanlış tahmin %nick! Kalan hakkın: 07 %kalan
if (%kalan <= 0) {
msg %chan 04 %nick hakkını doldurdu. Doğru cevap: 06 $hget(secim, $+($chan,.dogru))
msg %chan 14- Puanın: $hget(puanlar, %nick)
.timerharf_$+[%chan] off
.timersure_$+[%chan] off
hdel secim $+($chan,.dogru)
hdel secim $+($chan,.mask)
hdel secim $+($chan,.wrong)
hdel secim $+($chan,.aktif)
}
}
return
}
if ($regex(%msg, /^[:&.!]pa[şs]$/)) {
if (!$hget(secim, $+($chan,.dogru))) {
msg %chan 14 Pas geçilecek aktif bir oyun yok.
return
}
if ($nick != $hget(secim, $+($chan,.dogru))) {
msg %chan 14 Bu oyunda pas hakkın yok.
return
}
hadd -m puanlar %nick $calc($hget(puanlar,%nick) - 2)
msg %chan 07 %nick oyunu pas geçti. Korkup kaçtı! (-2 puan)
msg %chan 14- Yeni puanın: 07 $hget(puanlar,%nick)
.timerharf_$+[%chan] off
.timersure_$+[%chan] off
hdel secim $+($chan,.dogru)
hdel secim $+($chan,.mask)
hdel secim $+($chan,.wrong)
hdel secim $+($chan,.aktif)
return
}
if ($regex(%msg, /^[:&.!]muaf(?:\s+(\S+))?/)) {
var %muafnick = $iif($regml(1), $regml(1), %nick)
if ($istok(%muaflist, %muafnick, 44)) {
set %muaflist $remtok(%muaflist, %muafnick, 1, 44)
msg %chan 07 %muafnick 14 artık muaf değil. Oyuna dahil edilecek.
}
else {
set %muaflist $addtok(%muaflist, %muafnick, 44)
msg %chan 07 %muafnick 14 muaf listesine eklendi. Oyundan hariç tutulacak.
}
return
}
if ($regex(%msg, /^[:&.!]muaflist$/)) {
msg %chan 14 Muaf Listesi: 06 $iif(%muaflist, %muaflist, (boş))
return
}
if ($regex(%msg, /^[:&.!]reset$/)) {
if ($nick isop %chan) {
.timerharf_$+[%chan] off
.timersure_$+[%chan] off
hdel secim $+($chan,.dogru)
hdel secim $+($chan,.mask)
hdel secim $+($chan,.wrong)
hdel secim $+($chan,.aktif)
msg %chan 12 Oyun sıfırlandı. Yeni seçim yapılabilir.
}
else {
msg %chan 04 Bu komutu yalnızca op'lar kullanabilir.
}
return
}
}