IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi  
 sohbet
seviyeli sohbet


Eggdrop, NeoStats, BNC Sunucu botları, kurulumları ve ayalarına bu başlık altından ulaşabilirsiniz.

🎙️ LAFZONA Sesli ve görüntülü konuşma • İnteraktif yayıncılık • Müzik ve sohbet bir arada Katıl →
2Beğeni(ler)
  • 1 Gönderen KivanC
  • 1 Gönderen KivanC


 
 
Seçenekler Stil
Alt 15 Ağustos 2026, 15:40   #1
W r i t e r
KivanC - ait Kullanıcı Resmi (Avatar)

Standart Idda Botu (Mackolik Sitesinden Canlı (2026)

[Script / Modül] WhyBot - Kapsamlı İddaa, Bülten ve Canlı Gol Bildirim Modülü (Mackolik Entegreli)

Selamlar IRCRehberi ailesi!

KivamC tarafından tasarlanmıştır.

Sunucunuzda üyelerin aktifliğini artırmak, eğlenceli vakit geçirmelerini sağlamak ve özellikle futbol/iddaa severleri tek bir çatı altında toplamak için geliştirdiğim WhyBot İddaa & Canlı Takip Modülünü sizlerle paylaşıyorum.

Bu modül sayesinde üyeleriniz bülten takibi yapabilir, kendi kişisel kupon listelerini oluşturabilir ve en önemlisi maçlardaki canlı gol bildirimlerini doğrudan kanaldan anlık olarak takip edebilirler.

📌 Öne Çıkan Özellikler:
• Günün Bülteni (!bulten): Güncel maç programını, oranları ve saatleri listeler. Lig veya takıma göre filtreleme yapılabilir.
• Canlı Skorlar (!canliskor): O an oynanan tüm maçları ve dakikalarını anlık olarak gösterir.
• Otomatik Canlı Gol Bildirimi (!canli on/off): Yetkililerin açabildiği bu mod sayesinde, canlı maçlardaki skor değiştiğinde kanalımıza anında ⚽ GOOOOL! bildirimi düşer.
• Kişisel Kupon Takibi (!kupon ekle / !kupon): Kullanıcıların kendi favori maç kodlarını ekleyerek sanal bir kupon listesi tutmasını sağlar.
• Takım & Maç Arama (!mac & !favori): İstediğiniz takımı favorilerinize ekleyebilir veya bültende maçını hızlıca aratabilirsiniz.

📋 Komut Listesi (!iddaa):
!bulten - Günün bültenini gösterir (İlk 15 maç)
!bulten <lig/takım> - Filtreli bülten araması yapar
!kod <kod> - Belirtilen maçın oran ve canlı skor detayını gösterir
!canliskor - O an oynanan canlı skorları listeler
!canliskor <takım> - Takıma göre canlı skor araması yapar
!mac <takım> - Aradığınız takımın bültendeki maç kodunu bulur
!favori <takım> - Favori takımınızı kaydeder
!favorimaclarim - Favori takımınızın güncel maçını gösterir
!kupon ekle <kod> - Seçtiğiniz maçı kişisel kupon listenize ekler
!kupon - Kaydettiğiniz kupon listenizi gösterir
!kuponsil - Kupon listenizi tamamen temizler
!canli on / off - Canlı maç gol bildirimlerini açar / kapatır (YETKİLİ)

⚙️ Kurulum Notları:
1. Paylaşılan mIRC kodlarını .mrc dosyası olarak botunuza ekleyin.
2. WhyIddaaAyarlarKur alias kısmından API adreslerinizi (veya kullandığınız servis sağlayıcıyı) güncellemeyi unutmayın.
3. 18 yaş altı kullanıcılar için uyarı metinleri ve güvenlik kontrolleri modüle dahildir.

İyi eğlenceler dilerim, bol şans!



HTML-Kodu

; ============================================================
; WHY BOT - İDDAA & CANLI TAKİP MODÜLÜ (Mackolik)
; sunucu: deneme.com | oper: Mackolik / deneme123 | nickserv şifresi: deneme123
; ============================================================

alias -l WhyIddaaAyarlarKur {
  ; ⚠️ ÖRNEK DEĞERLER — gerçek API ile değiştirin
  hadd -m WhyIddaaDurum bultenHost api.mackolik.com
  hadd -m WhyIddaaDurum bultenPath /iddaa/bulten
  hadd -m WhyIddaaDurum canliHost api.mackolik.com
  hadd -m WhyIddaaDurum canliPath /iddaa/canliskor
}

; ============================================================
; BÜLTEN ÇEKME
; ============================================================
alias -l WhyIddaaBultenCek {
  if ($sock(WhyIddaaBultenSock)) { sockclose WhyIddaaBultenSock }
  hdel WhyIddaaBuffer WhyIddaaBultenSock
  sockopen -e WhyIddaaBultenSock $hget(WhyIddaaDurum,bultenHost) 443
}

on *:SOCKOPEN:WhyIddaaBultenSock: {
  if ($sockerr) { return }
  var %host = $hget(WhyIddaaDurum,bultenHost)
  var %path = $hget(WhyIddaaDurum,bultenPath)
  sockwrite -n $sockname GET %path HTTP/1.1
  sockwrite -n $sockname Host: %host
  sockwrite -n $sockname User-Agent: Mozilla/5.0 (WhyBot Iddaa Modulu)
  sockwrite -n $sockname Accept: application/json
  sockwrite -n $sockname Connection: close
  sockwrite -n $sockname $crlf
}

on *:SOCKREAD:WhyIddaaBultenSock: {
  if ($sockerr) { return }
  var %s
  sockread %s
  hadd -m WhyIddaaBuffer WhyIddaaBultenSock $hget(WhyIddaaBuffer,WhyIddaaBultenSock) $+ %s $+ $chr(10)
}

on *:SOCKCLOSE:WhyIddaaBultenSock: {
  WhyIddaaBultenIsle
}

alias -l WhyIddaaBultenIsle {
  var %ham = $hget(WhyIddaaBuffer,WhyIddaaBultenSock)
  if (!%ham) { return }
  var %dummy
  var %icerik = $regsub(%ham,/^.*?\r?\n\r?\n/s,,%dummy)

  var %sayi = $regex(mac,%icerik,/"code"\s*:\s*"([^"]+)".*?"home"\s*:\s*"([^"]+)".*?"away"\s*:\s*"([^"]+)".*?"time"\s*:\s*"([^"]+)".*?"league"\s*:\s*"([^"]+)".*?"odds1"\s*:\s*"?([\d.]+)"?.*?"oddsX"\s*:\s*"?([\d.]+)"?.*?"odds2"\s*:\s*"?([\d.]+)"?/gs)

  hfree WhyIddaaBulten
  hmake WhyIddaaBulten 300

  if (!%sayi) { return }

  var %grupSayisi = 8
  var %toplam = $regml(mac,0)
  var %i = 1
  while (%i <= %toplam) {
    var %kod = $regml(mac,%i)
    var %ev = $regml(mac,$calc(%i + 1))
    var %dep = $regml(mac,$calc(%i + 2))
    var %saat = $regml(mac,$calc(%i + 3))
    var %lig = $regml(mac,$calc(%i + 4))
    var %ms1 = $regml(mac,$calc(%i + 5))
    var %msx = $regml(mac,$calc(%i + 6))
    var %ms2 = $regml(mac,$calc(%i + 7))
    hadd WhyIddaaBulten %kod %ev $+ $chr(124) $+ %dep $+ $chr(124) $+ %saat $+ $chr(124) $+ %lig $+ $chr(124) $+ %ms1 $+ $chr(124) $+ %msx $+ $chr(124) $+ %ms2
    inc %i %grupSayisi
  }
}

; ============================================================
; CANLI SKOR ÇEKME VE GOL BİLDİRİM SİSTEMİ
; ============================================================
alias -l WhyIddaaCanliCek {
  if ($sock(WhyIddaaCanliSock)) { sockclose WhyIddaaCanliSock }
  hdel WhyIddaaBuffer WhyIddaaCanliSock
  sockopen -e WhyIddaaCanliSock $hget(WhyIddaaDurum,canliHost) 443
}

on *:SOCKOPEN:WhyIddaaCanliSock: {
  if ($sockerr) { return }
  var %host = $hget(WhyIddaaDurum,canliHost)
  var %path = $hget(WhyIddaaDurum,canliPath)
  sockwrite -n $sockname GET %path HTTP/1.1
  sockwrite -n $sockname Host: %host
  sockwrite -n $sockname User-Agent: Mozilla/5.0 (WhyBot Iddaa Modulu)
  sockwrite -n $sockname Accept: application/json
  sockwrite -n $sockname Connection: close
  sockwrite -n $sockname $crlf
}

on *:SOCKREAD:WhyIddaaCanliSock: {
  if ($sockerr) { return }
  var %s
  sockread %s
  hadd -m WhyIddaaBuffer WhyIddaaCanliSock $hget(WhyIddaaBuffer,WhyIddaaCanliSock) $+ %s $+ $chr(10)
}

on *:SOCKCLOSE:WhyIddaaCanliSock: {
  WhyIddaaCanliIsle
}

alias -l WhyIddaaCanliIsle {
  var %ham = $hget(WhyIddaaBuffer,WhyIddaaCanliSock)
  if (!%ham) { return }
  var %dummy, %icerik = $regsub(%ham,/^.*?\r?\n\r?\n/s,,%dummy)
  var %sayi = $regex(canli,%icerik,/"code"\s*:\s*"([^"]+)".*?"home"\s*:\s*"([^"]+)".*?"away"\s*:\s*"([^"]+)".*?"homeScore"\s*:\s*"?(\d+)"?.*?"awayScore"\s*:\s*"?(\d+)"?.*?"minute"\s*:\s*"?(\d+)"?/gs)

  if (!%sayi) { return }
  hfree WhyIddaaCanliSkor | hmake WhyIddaaCanliSkor 200

  var %i = 1, %toplam = $regml(canli,0)
  while (%i <= %toplam) {
    var %kod = $regml(canli,%i), %ev = $regml(canli,$calc(%i + 1)), %dep = $regml(canli,$calc(%i + 2))
    var %evSkor = $regml(canli,$calc(%i + 3)), %depSkor = $regml(canli,$calc(%i + 4)), %dk = $regml(canli,$calc(%i + 5))
    
    ; Yeni skorları hafızaya al
    hadd WhyIddaaCanliSkor %kod %ev $+ $chr(124) $+ %dep $+ $chr(124) $+ %evSkor $+ $chr(124) $+ %depSkor $+ $chr(124) $+ %dk
    inc %i 6
  }
  
  ; GOL/SKOR DEĞİŞİM KONTROLÜNÜ ÇAĞIR
  WhyIddaaCanliFarkKontrol
}

alias -l WhyIddaaCanliFarkKontrol {
  var %i = 1
  while (%i <= $hget(WhyIddaaCanliSkor,0).item) {
    var %kod = $hget(WhyIddaaCanliSkor,%i).item
    var %yeniVeri = $hget(WhyIddaaCanliSkor,%i).data
    var %eskiVeri = $hget(WhyIddaaCanliEski,%kod)

    if (%eskiVeri) {
      var %yEv = $gettok(%yeniVeri,3,124), %yDep = $gettok(%yeniVeri,4,124)
      var %eEv = $gettok(%eskiVeri,3,124), %eDep = $gettok(%eskiVeri,4,124)

      if (%yEv != %eEv || %yDep != %eDep) {
        var %ev = $gettok(%yeniVeri,1,124), %dep = $gettok(%yeniVeri,2,124), %dk = $gettok(%yeniVeri,5,124)
        .msg #iddaa $chr(3) $+ 04⚽ GOOOOL! $chr(3) $+ 12 %ev $chr(3) $+ 03 %yEv - %yDep $chr(3) $+ 12 %dep $chr(3) $+ 08(Dakika: %dk $+ ')
      }
    }
    hadd -m WhyIddaaCanliEski %kod %yeniVeri
    inc %i
  }
}

; ============================================================
; !canli ON/OFF Komutu (Yetkili Kontrollü)
; ============================================================
on 1:TEXT:!canli *:#iddaa:{
  if ($nick(#iddaa,$nick).isop || $nick(#iddaa,$nick).ishelp || $nick(#iddaa,$nick).isowner) {
    if ($2 == on) {
      if ($timer(WhyCanliTimer)) { .msg #iddaa $chr(3) $+ 03🔴 Canlı yansıtma zaten açık durumda. }
      else {
        .timerWhyCanliTimer 0 60 WhyIddaaCanliCek
        .msg #iddaa $chr(3) $+ 09🔴 [CANLI] Canlı maç yansıtma modu AÇILDI. (Goller anlık bildirilecek)
      }
    }
    elseif ($2 == off) {
      if ($timer(WhyCanliTimer)) {
        .timerWhyCanliTimer off
        .msg #iddaa $chr(3) $+ 03🟢 [CANLI] Canlı maç yansıtma modu KAPATILDI.
      }
      else { .msg #iddaa $chr(3) $+ 03🟢 Canlı yansıtma zaten kapalı. }
    }
  }
  else { .msg #iddaa $chr(3) $+ 04⚠️ Bu komutu sadece yetkililer kullanabilir. }
}

; ============================================================
; BÜLTEN VE KULLANICI KOMUTLARI
; ============================================================

on 1:TEXT:/^!bulten\s*$/i:?: { WhyIddaaBultenGoster $nick }
on 1:TEXT:/^!bulten\s*$/i:#: { WhyIddaaBultenGoster $nick }
on 1:TEXT:/^!bulten\s+(.+)$/i:?: { WhyIddaaBultenGoster $nick $regml(1) }
on 1:TEXT:/^!bulten\s+(.+)$/i:#: { WhyIddaaBultenGoster $nick $regml(1) }

alias -l WhyIddaaBultenGoster {
  var %nick = $1, %filtre = $2-

  var %key = BultenCD_ $+ %nick
  if ($hget(WhyOpCmdCD,%key)) {
    .msg %nick $chr(3) $+ 04[BÜLTEN] $chr(3) $+ 03Lütfen 5 saniye bekleyin.
    return
  }
  hadd -u5 WhyOpCmdCD %key 1

  if (!$hget(WhyIddaaBulten,0).item) {
    .msg %nick $chr(3) $+ 04[BÜLTEN] $chr(3) $+ 03Henüz bülten çekilmedi, birazdan tekrar deneyin.
    return
  }

  .msg %nick $chr(3) $+ 04⚽ [MACKOLİK BÜLTEN %iif(%filtre,- $+ %filtre)]
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  var %i = 1, %gosterilen = 0
  while (%i <= $hget(WhyIddaaBulten,0).item) && (%gosterilen < 15) {
    var %kod = $hget(WhyIddaaBulten,%i).item
    var %veri = $hget(WhyIddaaBulten,%i).data
    var %ev = $gettok(%veri,1,124)
    var %dep = $gettok(%veri,2,124)
    var %saat = $gettok(%veri,3,124)
    var %lig = $gettok(%veri,4,124)
    var %ms1 = $gettok(%veri,5,124)
    var %msx = $gettok(%veri,6,124)
    var %ms2 = $gettok(%veri,7,124)

    if (!%filtre) || ($regex(%lig,$+(/,$replace(%filtre, ,\s+),/i))) || ($regex(%ev $+  $+ %dep,$+(/,$replace(%filtre, ,\s+),/i))) {
      .msg %nick $chr(3) $+ 12 %kod $chr(3) $+ 03| %ev - %dep $chr(3) $+ 08( %lig $+ , %saat $+ )
      .msg %nick $chr(3) $+ 07   1: $chr(3) $+ 12 %ms1 $chr(3) $+ 07 X: $chr(3) $+ 12 %msx $chr(3) $+ 07 2: $chr(3) $+ 12 %ms2
      inc %gosterilen
    }
    inc %i
  }

  if (!%gosterilen) { .msg %nick $chr(3) $+ 03Eşleşen maç bulunamadı. }
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  .msg %nick $chr(3) $+ 07Detay için: $chr(3) $+ 14!kod <kod>
  .msg %nick $chr(3) $+ 0818 yaş altına yasaktır. Sorumlu oyna.
}

on 1:TEXT:/^!kod\s+(\S+)\s*$/i:?: { WhyIddaaKodGoster $nick $regml(1) }
on 1:TEXT:/^!kod\s+(\S+)\s*$/i:#: { WhyIddaaKodGoster $nick $regml(1) }

alias -l WhyIddaaKodGoster {
  var %nick = $1, %kod = $2

  if (!$hget(WhyIddaaBulten,%kod)) {
    .msg %nick $chr(3) $+ 04[KOD] $chr(3) $+ 03 %kod $chr(3) $+ 03koduna ait maç bulunamadı.
    return
  }

  var %veri = $hget(WhyIddaaBulten,%kod)
  var %ev = $gettok(%veri,1,124)
  var %dep = $gettok(%veri,2,124)
  var %saat = $gettok(%veri,3,124)
  var %lig = $gettok(%veri,4,124)
  var %ms1 = $gettok(%veri,5,124)
  var %msx = $gettok(%veri,6,124)
  var %ms2 = $gettok(%veri,7,124)

  .msg %nick $chr(3) $+ 04⚽ [MAÇ KODU: %kod ]
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  .msg %nick $chr(3) $+ 03🏟️ %ev $chr(3) $+ 03- $chr(3) $+ 03 %dep
  .msg %nick $chr(3) $+ 03🏆 Lig: $chr(3) $+ 12 %lig
  .msg %nick $chr(3) $+ 03🕐 Saat: $chr(3) $+ 12 %saat
  .msg %nick $chr(3) $+ 03📊 MS 1: $chr(3) $+ 12 %ms1 $chr(3) $+ 03| X: $chr(3) $+ 12 %msx $chr(3) $+ 03| 2: $chr(3) $+ 12 %ms2

  if ($hget(WhyIddaaCanliSkor,%kod)) {
    var %canli = $hget(WhyIddaaCanliSkor,%kod)
    var %evSkor = $gettok(%canli,3,124)
    var %depSkor = $gettok(%canli,4,124)
    var %dakika = $gettok(%canli,5,124)
    .msg %nick $chr(3) $+ 09🔴 CANLI: $chr(3) $+ 12 %evSkor $+ - $+ %depSkor $chr(3) $+ 03( %dakika $+ ')
  }
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
}

on 1:TEXT:/^!canliskor\s*$/i:?: { WhyIddaaCanliGoster $nick }
on 1:TEXT:/^!canliskor\s*$/i:#: { WhyIddaaCanliGoster $nick }
on 1:TEXT:/^!canliskor\s+(.+)$/i:?: { WhyIddaaCanliGoster $nick $regml(1) }
on 1:TEXT:/^!canliskor\s+(.+)$/i:#: { WhyIddaaCanliGoster $nick $regml(1) }

alias -l WhyIddaaCanliGoster {
  var %nick = $1, %filtre = $2-

  var %key = CanliCD_ $+ %nick
  if ($hget(WhyOpCmdCD,%key)) {
    .msg %nick $chr(3) $+ 04[CANLI SKOR] $chr(3) $+ 03Lütfen 5 saniye bekleyin.
    return
  }
  hadd -u5 WhyOpCmdCD %key 1

  if (!$hget(WhyIddaaCanliSkor,0).item) {
    .msg %nick $chr(3) $+ 04[CANLI SKOR] $chr(3) $+ 03Şu an oynanan maç yok.
    return
  }

  .msg %nick $chr(3) $+ 09🔴 [CANLI SKORLAR]
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  var %i = 1, %gosterilen = 0
  while (%i <= $hget(WhyIddaaCanliSkor,0).item) {
    var %veri = $hget(WhyIddaaCanliSkor,%i).data
    var %ev = $gettok(%veri,1,124)
    var %dep = $gettok(%veri,2,124)
    var %evSkor = $gettok(%veri,3,124)
    var %depSkor = $gettok(%veri,4,124)
    var %dakika = $gettok(%veri,5,124)

    if (!%filtre) || ($regex(%ev $+  $+ %dep,$+(/,$replace(%filtre, ,\s+),/i))) {
      .msg %nick $chr(3) $+ 12 %ev $chr(3) $+ 03 %evSkor $+ - $+ %depSkor $chr(3) $+ 12 %dep $chr(3) $+ 08( %dakika $+ ')
      inc %gosterilen
    }
    inc %i
  }

  if (!%gosterilen) { .msg %nick $chr(3) $+ 03Eşleşen canlı maç bulunamadı. }
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
}

on 1:TEXT:/^!mac\s+(.+)$/i:?: { WhyIddaaMacAra $nick $regml(1) }
on 1:TEXT:/^!mac\s+(.+)$/i:#: { WhyIddaaMacAra $nick $regml(1) }

alias -l WhyIddaaMacAra {
  var %nick = $1, %takim = $2-

  if (!$hget(WhyIddaaBulten,0).item) {
    .msg %nick $chr(3) $+ 04[MAÇ ARA] $chr(3) $+ 03Henüz bülten çekilmedi.
    return
  }

  var %i = 1, %bulundu = 0
  while (%i <= $hget(WhyIddaaBulten,0).item) {
    var %kod = $hget(WhyIddaaBulten,%i).item
    var %veri = $hget(WhyIddaaBulten,%i).data
    var %ev = $gettok(%veri,1,124)
    var %dep = $gettok(%veri,2,124)
    var %saat = $gettok(%veri,3,124)

    if ($regex(%ev $+  $+ %dep,$+(/,$replace(%takim, ,\s+),/i))) {
      .msg %nick $chr(3) $+ 12 %kod $chr(3) $+ 03| %ev - %dep $chr(3) $+ 08( %saat $+ )
      inc %bulundu
    }
    inc %i
  }

  if (!%bulundu) { .msg %nick $chr(3) $+ 04[MAÇ ARA] $chr(3) $+ 03 %takim $chr(3) $+ 03adlı takımın bültende maçı bulunamadı. }
}

on 1:TEXT:/^!favori\s+(.+)$/i:?: { WhyIddaaFavoriEkle $nick $regml(1) }
on 1:TEXT:/^!favori\s+(.+)$/i:#: { WhyIddaaFavoriEkle $nick $regml(1) }

alias -l WhyIddaaFavoriEkle {
  var %nick = $1, %takim = $2-
  hadd WhyIddaaFavori %nick %takim
  .msg %nick $chr(3) $+ 09[FAVORİ] $chr(3) $+ 12 %takim $chr(3) $+ 03favori takımınız olarak kaydedildi. $chr(3) $+ 14!favorimaclarim $chr(3) $+ 03ile maçlarını görebilirsiniz.
}

on 1:TEXT:/^!favorimaclarim\s*$/i:?: { WhyIddaaFavoriMaclar $nick }
on 1:TEXT:/^!favorimaclarim\s*$/i:#: { WhyIddaaFavoriMaclar $nick }

alias -l WhyIddaaFavoriMaclar {
  var %nick = $1

  if (!$hget(WhyIddaaFavori,%nick)) {
    .msg %nick $chr(3) $+ 04[FAVORİ] $chr(3) $+ 03Favori takımınız yok. Eklemek için: $chr(3) $+ 14!favori <takım>
    return
  }

  WhyIddaaMacAra %nick $hget(WhyIddaaFavori,%nick)
}

on 1:TEXT:/^!kupon\s+ekle\s+(\S+)\s*$/i:?: { WhyIddaaKuponEkle $nick $regml(1) }
on 1:TEXT:/^!kupon\s+ekle\s+(\S+)\s*$/i:#: { WhyIddaaKuponEkle $nick $regml(1) }

alias -l WhyIddaaKuponEkle {
  var %nick = $1, %kod = $2

  if (!$hget(WhyIddaaBulten,%kod)) {
    .msg %nick $chr(3) $+ 04[KUPON] $chr(3) $+ 03 %kod $chr(3) $+ 03koduna ait maç bulunamadı.
    return
  }

  if ($hget(WhyIddaaKupon,%nick)) {
    if ($istok($hget(WhyIddaaKupon,%nick),%kod,44)) {
      .msg %nick $chr(3) $+ 04[KUPON] $chr(3) $+ 03Bu maç zaten kuponunuzda.
      return
    }
    hadd WhyIddaaKupon %nick $hget(WhyIddaaKupon,%nick) $+ , $+ %kod
  }
  else {
    hadd WhyIddaaKupon %nick %kod
  }

  .msg %nick $chr(3) $+ 09[KUPON] $chr(3) $+ 12 %kod $chr(3) $+ 03kuponunuza eklendi. Görmek için: $chr(3) $+ 14!kupon
}

on 1:TEXT:/^!kupon\s*$/i:?: { WhyIddaaKuponGoster $nick }
on 1:TEXT:/^!kupon\s*$/i:#: { WhyIddaaKuponGoster $nick }

alias -l WhyIddaaKuponGoster {
  var %nick = $1

  if (!$hget(WhyIddaaKupon,%nick)) {
    .msg %nick $chr(3) $+ 04[KUPON] $chr(3) $+ 03Kuponunuz boş. Eklemek için: $chr(3) $+ 14!kupon ekle <kod>
    return
  }

  .msg %nick $chr(3) $+ 04🎫 [KUPONUNUZ]
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  var %liste = $hget(WhyIddaaKupon,%nick)
  var %i = 1
  while (%i <= $numtok(%liste,44)) {
    var %kod = $gettok(%liste,%i,44)
    if ($hget(WhyIddaaBulten,%kod)) {
      var %veri = $hget(WhyIddaaBulten,%kod)
      var %ev = $gettok(%veri,1,124)
      var %dep = $gettok(%veri,2,124)
      var %ms1 = $gettok(%veri,5,124)
      var %msx = $gettok(%veri,6,124)
      var %ms2 = $gettok(%veri,7,124)
      .msg %nick $chr(3) $+ 12 %kod $chr(3) $+ 03| %ev - %dep $chr(3) $+ 07(1: %ms1 X: %msx 2: %ms2 $+ )
    }
    inc %i
  }
  .msg %nick $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  .msg %nick $chr(3) $+ 07Not: Bu bir bahis kuponu OLUŞTURMAZ, sadece kişisel not listenizdir.
  .msg %nick $chr(3) $+ 0718 yaş altına yasaktır. Sorumlu oyna.
}

on 1:TEXT:/^!kuponsil\s*$/i:?: { hdel WhyIddaaKupon $nick | .msg $nick $chr(3) $+ 04[KUPON] $chr(3) $+ 03Kuponunuz temizlendi. }
on 1:TEXT:/^!kuponsil\s*$/i:#: { hdel WhyIddaaKupon $nick | .msg $nick $chr(3) $+ 04[KUPON] $chr(3) $+ 03Kuponunuz temizlendi. }

; ============================================================
; KOMUT LİSTESİ
; ============================================================
on 1:TEXT:/^!iddaa\s*$/i:?: { WhyIddaaKomutlari $nick }
on 1:TEXT:/^!iddaa\s*$/i:#: { WhyIddaaKomutlari $nick }

alias -l WhyIddaaKomutlari {
  var %n = $1
  .msg %n $chr(3) $+ 08[İDDAA / MACKOLİK KOMUTLARI]
  .msg %n $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  .msg %n $chr(3) $+ 12!bulten $chr(3) $+ 03- Günün bültenini göster
  .msg %n $chr(3) $+ 12!bulten <lig/takım> $chr(3) $+ 03- Filtreli bülten
  .msg %n $chr(3) $+ 12!kod <kod> $chr(3) $+ 03- Maç kodunun detayı (oran + varsa canlı skor)
  .msg %n $chr(3) $+ 12!canliskor $chr(3) $+ 03- Tüm canlı skorlar
  .msg %n $chr(3) $+ 12!canliskor <takım> $chr(3) $+ 03- Takıma göre canlı skor
  .msg %n $chr(3) $+ 12!mac <takım> $chr(3) $+ 03- Takımın maç kodunu bul
  .msg %n $chr(3) $+ 12!favori <takım> $chr(3) $+ 03- Favori takım kaydet
  .msg %n $chr(3) $+ 12!favorimaclarim $chr(3) $+ 03- Favori takımının maçları
  .msg %n $chr(3) $+ 12!kupon ekle <kod> $chr(3) $+ 03- Kişisel kupon listenize ekle
  .msg %n $chr(3) $+ 12!kupon $chr(3) $+ 03- Kupon listenizi göster
  .msg %n $chr(3) $+ 12!kuponsil $chr(3) $+ 03- Kupon listenizi temizle
  .msg %n $chr(3) $+ 12!canli on/off $chr(3) $+ 03- Canlı gol bildirimlerini açar/kapatır (YETKİLİ)
  .msg %n $chr(3) $+ 08━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  .msg %n $chr(3) $+ 0818 yaş altına yasaktır. Sorumlu oyna.
}
👍 1
________________

"Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın"
 
Alt 15 Ağustos 2026, 16:48   #2
Standart

Basarili :)

________________

Hersey icin fazla sanalsiniz.
 
Alt 15 Ağustos 2026, 16:57   #3
Standart

Emeğinize sağlık.

________________

🍒
𝑯𝒆𝒓 𝒉𝒊𝒌𝒂𝒚𝒆𝒏𝒊𝒏 𝒊𝒌𝒊 𝒕𝒂𝒓𝒂𝒇𝒊 𝒗𝒂𝒓𝒅𝒊𝒓.
: ( :
 
Alt 15 Ağustos 2026, 23:59   #4
W r i t e r
KivanC - ait Kullanıcı Resmi (Avatar)

Standart

Yenilenmiştir.

HTML-Kodu

; ============================================================
; WHY BOT - İDDAA MODÜLÜ EKİ: !botdurum, !yenile, !canli on/off
; Bu dosya, önceki why_iddaa_mackolik.mrc dosyasının ÜZERİNE
; ek olarak uygulanır. WhyIddaaCanliIsle burada YENİDEN yazıldı
; (gol tespiti eklendiği için) — eski tanımın YERİNE geçer.
;
; KURULUM:
; %tables listesine ekleyin: WhyIddaaAyarlar WhyIddaaOncekiSkor
;
; "böyle bir kanal bulunamadı" hatasının kaynağı: muhtemelen
; # işaretsiz bir kanal adı ya da botun üye olmadığı bir kanala
; mesaj atma denemesiydi. Aşağıdaki !canlikanal komutu artık
; hem # kontrolü hem "bot gerçekten o kanalda mı" kontrolü yapıyor,
; bu yüzden ayar kaydedilmeden hatalı kanal asla kullanılamaz.
; Hatanın tam olarak hangi komuttan geldiğini net biliyorsanız
; (örn. birebir yazdığınız komut) söyleyin, kesin teşhis edeyim.
; ============================================================

; ------------------------------------------------------------
; !botdurum
; ------------------------------------------------------------
on 1:TEXT:/^!botdurum\s*$/i:?: { WhyIddaaBotDurum $nick }
on 1:TEXT:/^!botdurum\s*$/i:#: { WhyIddaaBotDurum $nick }

alias -l WhyIddaaBotDurum {
  var %n = $1
  var %bulten = $hget(WhyIddaaBulten,0).item
  var %canli = $hget(WhyIddaaCanliSkor,0).item
  var %yansitma = $iif($hget(WhyIddaaAyarlar,canliYansitma) == 1,ACIK,KAPALI)
  var %kanal = $iif($hget(WhyIddaaAyarlar,canliKanal),$hget(WhyIddaaAyarlar,canliKanal),ayarlanmadı)
  .msg %n $chr(3) $+ 08[BOT DURUM] $chr(3) $+ 03Bültende $chr(3) $+ 12 %bulten $chr(3) $+ 03maç, canlıda $chr(3) $+ 12 %canli $chr(3) $+ 03maç var.
  .msg %n $chr(3) $+ 03Canlı yansıtma: $chr(3) $+ 12 %yansitma $chr(3) $+ 03| Kanal: $chr(3) $+ 12 %kanal
}

; ------------------------------------------------------------
; !yenile — manuel yenileme, spam önleme için global 30 sn CD
; ------------------------------------------------------------
on 1:TEXT:/^!yenile\s*$/i:?: { WhyIddaaYenile $nick }
on 1:TEXT:/^!yenile\s*$/i:#: { WhyIddaaYenile $nick }

alias -l WhyIddaaYenile {
  var %n = $1
  if ($hget(WhyOpCmdCD,YenileGlobal)) {
    .msg %n $chr(3) $+ 04[YENİLE] $chr(3) $+ 03Az önce yenilendi, birkaç saniye sonra tekrar deneyin.
    return
  }
  hadd -u30 WhyOpCmdCD YenileGlobal 1
  .msg %n Bulten ve canlı skorlar yenileniyor...
  WhyIddaaBultenCek
  WhyIddaaCanliCek
}

; ------------------------------------------------------------
; !canlikanal #kanal — gol bildirimlerinin gideceği kanalı ayarla
; (admin+identify gerektirir, kanal geçerliliğini KONTROL EDER)
; ------------------------------------------------------------
on 1:TEXT:/^!canlikanal\s+(\S+)\s*$/i:?: { WhyIddaaKanalAyarla $nick $regml(1) }
on 1:TEXT:/^!canlikanal\s+(\S+)\s*$/i:#: { WhyIddaaKanalAyarla $nick $regml(1) }

alias -l WhyIddaaKanalAyarla {
  var %nick = $1, %kanal = $2
  if (!$WhyRequireAdminAndIdentify) { return }

  if ($left(%kanal,1) != #) {
    .notice %nick $chr(3) $+ 04[CANLI] $chr(3) $+ 03Kanal adı $chr(3) $+ 14# $chr(3) $+ 03ile başlamalı, örn: $chr(3) $+ 14!canlikanal #sohbet
    return
  }

  if (!$chan(%kanal)) {
    .notice %nick $chr(3) $+ 04[CANLI] $chr(3) $+ 03Bot $chr(3) $+ 12 %kanal $chr(3) $+ 03kanalında değil, önce botu o kanala join ettirin.
    return
  }

  hadd WhyIddaaAyarlar canliKanal %kanal
  .notice %nick $chr(3) $+ 09[CANLI] $chr(3) $+ 03Canlı gol bildirim kanalı: $chr(3) $+ 12 %kanal $chr(3) $+ 03olarak ayarlandı.
  WhyLogAdmin "Canli Kanal Ayarladi" %kanal
}

; ------------------------------------------------------------
; !canli on / !canli off — yansıtma modu (admin+identify gerektirir)
; Kanal ayarlanmadan AÇILAMAZ — "kanal bulunamadı" hatasını önler.
; ------------------------------------------------------------
on 1:TEXT:/^!canli\s+on\s*$/i:?: { WhyIddaaCanliYansitma $nick 1 }
on 1:TEXT:/^!canli\s+on\s*$/i:#: { WhyIddaaCanliYansitma $nick 1 }
on 1:TEXT:/^!canli\s+off\s*$/i:?: { WhyIddaaCanliYansitma $nick 0 }
on 1:TEXT:/^!canli\s+off\s*$/i:#: { WhyIddaaCanliYansitma $nick 0 }

alias -l WhyIddaaCanliYansitma {
  var %nick = $1, %durum = $2
  if (!$WhyRequireAdminAndIdentify) { return }

  if (%durum == 1) {
    var %kanal = $hget(WhyIddaaAyarlar,canliKanal)
    if (!%kanal) {
      .notice %nick $chr(3) $+ 04[CANLI] $chr(3) $+ 03Önce yayın kanalını ayarlayın: $chr(3) $+ 14!canlikanal #kanaladi
      return
    }
    if (!$chan(%kanal)) {
      .notice %nick $chr(3) $+ 04[CANLI] $chr(3) $+ 03Bot artık $chr(3) $+ 12 %kanal $chr(3) $+ 03kanalında değil, yeniden ayarlayın: $chr(3) $+ 14!canlikanal #kanaladi
      return
    }
    hadd WhyIddaaAyarlar canliYansitma 1
    .notice %nick $chr(3) $+ 09[CANLI] $chr(3) $+ 03Canlı maç yansıtma modu AÇILDI. (Goller anlık bildirilecek - Her 60 sn)
  }
  else {
    hadd WhyIddaaAyarlar canliYansitma 0
    .notice %nick $chr(3) $+ 04[CANLI] $chr(3) $+ 03Canlı maç yansıtma modu KAPATILDI.
  }

  WhyLogAdmin $iif(%durum == 1,"Canli Yansitma Actı","Canli Yansitma Kapattı") %nick
}

; ------------------------------------------------------------
; DÜZELTİLMİŞ: WhyIddaaCanliIsle — artık gol tespiti de yapıyor.
; Önceki yamadaki WhyIddaaCanliIsle alias'ının YERİNE geçer.
; ------------------------------------------------------------
alias -l WhyIddaaCanliIsle {
  ; Önceki skorları gol tespiti için sakla
  hfree WhyIddaaOncekiSkor
  hmake WhyIddaaOncekiSkor 200
  if ($hget(WhyIddaaCanliSkor,0).item) {
    var %k = 1
    while (%k <= $hget(WhyIddaaCanliSkor,0).item) {
      hadd WhyIddaaOncekiSkor $hget(WhyIddaaCanliSkor,%k).item $hget(WhyIddaaCanliSkor,%k).data
      inc %k
    }
  }

  var %ham = $hget(WhyIddaaBuffer,WhyIddaaCanliSock)
  hfree WhyIddaaCanliSkor
  hmake WhyIddaaCanliSkor 200

  if (!%ham) { return }
  var %dummy
  var %icerik = $regsub(%ham,/^.*?\r?\n\r?\n/s,,%dummy)

  ; ÖRNEK JSON alan adları — gerçek API'ye göre güncelleyin
  var %sayi = $regex(canli,%icerik,/"code"\s*:\s*"([^"]+)".*?"home"\s*:\s*"([^"]+)".*?"away"\s*:\s*"([^"]+)".*?"homeScore"\s*:\s*"?(\d+)"?.*?"awayScore"\s*:\s*"?(\d+)"?.*?"minute"\s*:\s*"?(\d+)"?/gs)

  if (!%sayi) { return }

  var %grupSayisi = 6
  var %toplam = $regml(canli,0)
  var %i = 1
  while (%i <= %toplam) {
    var %kod = $regml(canli,%i)
    var %ev = $regml(canli,$calc(%i + 1))
    var %dep = $regml(canli,$calc(%i + 2))
    var %evSkor = $regml(canli,$calc(%i + 3))
    var %depSkor = $regml(canli,$calc(%i + 4))
    var %dakika = $regml(canli,$calc(%i + 5))
    hadd WhyIddaaCanliSkor %kod %ev $+ $chr(124) $+ %dep $+ $chr(124) $+ %evSkor $+ $chr(124) $+ %depSkor $+ $chr(124) $+ %dakika
    inc %i %grupSayisi
  }

  WhyIddaaGolKontrolYap
}

; ------------------------------------------------------------
; YENİ: gol kontrolü — skoru artan maç varsa yansıtma açıksa duyur
; ------------------------------------------------------------
alias -l WhyIddaaGolKontrolYap {
  if ($hget(WhyIddaaAyarlar,canliYansitma) != 1) { return }
  var %kanal = $hget(WhyIddaaAyarlar,canliKanal)
  if (!%kanal) { return }
  if (!$chan(%kanal)) { return }

  var %i = 1
  while (%i <= $hget(WhyIddaaCanliSkor,0).item) {
    var %kod = $hget(WhyIddaaCanliSkor,%i).item
    var %veri = $hget(WhyIddaaCanliSkor,%i).data
    var %ev = $gettok(%veri,1,124)
    var %dep = $gettok(%veri,2,124)
    var %evSkor = $gettok(%veri,3,124)
    var %depSkor = $gettok(%veri,4,124)
    var %dakika = $gettok(%veri,5,124)

    if ($hget(WhyIddaaOncekiSkor,%kod)) {
      var %eskiVeri = $hget(WhyIddaaOncekiSkor,%kod)
      var %eskiEvSkor = $gettok(%eskiVeri,3,124)
      var %eskiDepSkor = $gettok(%eskiVeri,4,124)

      if (%evSkor > %eskiEvSkor) || (%depSkor > %eskiDepSkor) {
        .msg %kanal $chr(3) $+ 09⚽ GOL! $chr(3) $+ 12 %ev $chr(3) $+ 03 %evSkor $+ - $+ %depSkor $chr(3) $+ 12 %dep $chr(3) $+ 08( %dakika $+ ')
      }
    }
    inc %i
  }
}

; ------------------------------------------------------------
; !iddaa komut listesine yeni komutları ekleyin (WhyIddaaKomutlari
; alias'ının içine, "!kuponsil" satırından sonra):
;   .msg %n $chr(3) $+ 12!botdurum $chr(3) $+ 03- Bot/veri durumunu göster
;   .msg %n $chr(3) $+ 12!yenile $chr(3) $+ 03- Bülten/canlı skoru elle yenile
;   .msg %n $chr(3) $+ 12!canlikanal #kanal $chr(3) $+ 03- Gol bildirim kanalı ayarla (admin)
;   .msg %n $chr(3) $+ 12!canli on/off $chr(3) $+ 03- Canlı gol yansıtmayı aç/kapa (admin)
; ------------------------------------------------------------

________________

"Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın"
 
Alt 16 Ağustos 2026, 00:02   #5
Standart

Ne işimize yarayacak bu? Destek olursanız sevinirim

________________

En sevdiğim kitap ayracım gibi
okuduklarım değişse de
hep yanımda ol
 
Alt 16 Ağustos 2026, 00:34   #6
W r i t e r
KivanC - ait Kullanıcı Resmi (Avatar)

Standart

Alıntı:
Cedric Nickli Üyeden Alıntı Mesajı göster
Ne işimize yarayacak bu? Destek olursanız sevinirim
Sunucunuz var ise, Iddaa seven de kullanıcılarınız var ise sunucunuz da Idda takip etmenizi sağlayacak bir sistem.

👍 1
________________

"Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın"
 
Alt 30 Ağustos 2026, 14:33   #7
Standart

@[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] dan esinlenildi sanırım .

 
Alt 05 Eylül 2026, 13:40   #8
W r i t e r
KivanC - ait Kullanıcı Resmi (Avatar)

Standart

Alıntı:
Magician Nickli Üyeden Alıntı Mesajı göster
@[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] dan esinlenildi sanırım .
@[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] esinlenmek tabiki güzel şey ama hayır Medcezir belki de WingmaN :)

________________

"Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın"
 


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı





Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 06:06.