![]() |
| mIRC Scripting Hazır Kodlar mIRC Scriptinglerinizde kullanabileceğiniz hazır kodlara bu başlık altından ulaşabilirsiniz. |
| | Seçenekler | Stil |
| | #1 |
| 📌 Açıklama İNSAN AI BOT, mIRC için geliştirilmiş, nazik, kibar, romantik ve saygılı kişiliğe sahip, gelişmiş bir sohbet botudur. Gerçek bir insan gibi davranır, kanalın havasını öğrenir, uzun süreli hafızası vardır ve asla bot olduğunu belli etmez. --- 🚀 ÖZELLİKLER 🧠 Gelişmiş Yapay Zeka · Groq API ile güçlü AI desteği (Llama 3.3 70B) · Yedek AI sistemi (OpenRouter vb.) - Ana AI çalışmazsa otomatik geçiş · Akıllı karar mekanizması - Kanal sessizse kendiliğinden konuşur 💬 Güçlü Hafıza Sistemi · Kanal hafızası - Son 10 konuşmayı hatırlar · Kişisel hafıza - Her kullanıcıyla olan özel konuşmaları saklar · Konuşma özeti - Her kullanıcı hakkında kısa özet tutar · Not sistemi - Kullanıcılar hakkında özel notlar alır · "Seen" sistemi - Kullanıcıların en son ne zaman, nerede ve ne yazdığını hatırlar 🎭 Dinamik Karakter Sistemi · Rastgele oluşturulan kişilik: İsim, yaş, şehir, meslek, burç, takım · Ruh hali değişimi: Saate göre enerjik, çalışkan, yorgun, rahat, uykulu · Her gün otomatik karakter değişimi (isteğe bağlı) · Kanal stil öğrenme - Bulunduğu kanalın konuşma tarzını analiz eder 🎮 Oyun Modu · Kelime oyunu - Harf verilir, bot kelime türetir · Trivia - Karışık harfli soruları çözer · OXM (Scramble) - Verilen harflerle en uzun kelimeyi bulur · Zar oyunu - Diğer kullanıcılarla zar atma oyunu 🎵 Radyo Sistemi · Otomatik radyo isteği - Belirli aralıklarla şarkı önerir · Pop, Arabesk, Rap türlerinde istek yapabilir · Tekrar engelleme - Aynı şarkıyı tekrar söylemez · Radyo geçmişi - Son 10 isteği hatırlar 🌐 Web Entegrasyonu · Hava durumu - Botun bulunduğu şehrin anlık hava durumu · Haberler - Türkiye'den güncel haber başlıkları · Wikipedia - Sorulan konu hakkında kısa bilgi 🛡️ Güvenlik & Koruma · Flood engelleme - Aynı kullanıcının çok hızlı mesaj atmasını engeller · Aynı soru engelleme - Tekrar eden sorulara cevap vermez · Küfür ve argo filtresi - Bot asla küfür etmez, argo kullanmaz · Owner sistemi - Sadece yetkili kişiler botu yönetebilir 📊 Ek Özellikler · Kanal takibi - Kanalda kimlerin konuştuğunu takip eder · Sessizlik kontrolü - Kanal çok sessizse otomatik selam verir · Özel mesaj desteği - Ownerlara özel yönetim komutları · Otomatik nick değişimi - Karakter değişince nick de değişir · Menu desteği - mIRC menüsünden kolay kontrol --- 📋 KURULUM 1️⃣ Gereksinimler · mIRC 7.35 veya üzeri · SSL desteği (sockopen -e kullanılıyor) · Groq API anahtarı (ücretsiz: groq.com) · (Opsiyonel) OpenRouter API anahtarı · (Opsiyonel) OpenWeatherMap API anahtarı · (Opsiyonel) NewsAPI anahtarı 2️⃣ Kurulum Adımları 1. Dosyayı . remotes dosyası olarak kaydedin (örn: insan_bot.mrc) 2. mIRC'de ALT+R ile Remote Editor'ü açın 3. File → Load ile dosyayı yükleyin 4. Veya dosyayı direkt mIRC klasörüne atıp /load -rs insan_bot.mrc yazın 3️⃣ API Anahtarlarını Girin alias ayarlar bölümündeki şu satırları düzenleyin: ```mirc ; Groq API (Zorunlu) hadd ayarlar ai_api_key BURAYA_GROQ_API_KEY_YAZ ; Yedek API (Opsiyonel) hadd ayarlar ai2_api_key BURAYA_YEDEK_API_KEY_YAZ ; Hava Durumu (Opsiyonel) hadd ayarlar hava_api BURAYA_OPENWEATHER_API_KEY_YAZ ; Haberler (Opsiyonel) hadd ayarlar news_api BURAYA_NEWSAPI_KEY_YAZ ``` 4️⃣ Sunucu ve Kanal Ayarları ```mirc ; Bağlantı ayarı (START event'inde) .timerBaglan 1 4 server irc.deneme.net 6667 ; Kanal ayarı hadd ayarlar kanallar #Sohbet ``` 5️⃣ Owner (Sahip) Ayarları ```mirc alias varsayilan_ownerlar return Kıvanç|Admin|Boss|Sahip ``` Nick'inizi bu listeye ekleyin veya ilk çalıştırmadan sonra ownerler.hsh dosyasını düzenleyin. HTML-Kodu; ============================================================
; İNSAN AI BOT - FINAL VERSİYON 2026
; Nazik • Kibar • Romantik • Saygılı
; Güçlü Hafıza + Kanal Tarzı Öğrenme + Radyo Geçmişi
; Çoklu AI Yedekleme + Akıllı Otomatik Karar
; mIRC 7.35+
; ============================================================
alias isim_listesi return Aylin|Defne|Ece|Zeynep|Merve|Selin|Ceren|Büşra|Elif|İrem|Melisa|Sude|Aleyna|Eylül|Lara|Derya|Özge|Aslı|Hande|Burcu|Seda|Pınar|Deniz|İlayda
alias sehir_listesi return İstanbul|Ankara|İzmir|Bursa|Antalya|Trabzon|Erzurum|Adana|Gaziantep|Konya|Samsun|Diyarbakır|Eskişehir|Mersin
alias meslek_listesi return öğretmen|mühendis|pazarlama uzmanı|tasarımcı|muhasebeci|doktor|avukat|yazılımcı|hemşire|mimar|grafiker|psikolog
alias burc_listesi return Koç|Boğa|İkizler|Yengeç|Aslan|Başak|Terazi|Akrep|Yay|Oğlak|Kova|Balık
alias takim_listesi return Fenerbahçe|Galatasaray|Beşiktaş|Trabzonspor
alias varsayilan_ownerlar return Kıvanç|Admin|Boss|Sahip
on *:START:{
if ($hget(ayarlar) == $null) hmake ayarlar 50
if ($hget(sohbet_hafiza) == $null) hmake sohbet_hafiza 100
if ($hget(ayni_soru) == $null) hmake ayni_soru 150
if ($hget(son_cevap) == $null) hmake son_cevap 50
if ($hget(ai_baglanti) == $null) hmake ai_baglanti 150
if ($hget(web_bag) == $null) hmake web_bag 80
if ($hget(tekrar_engel) == $null) hmake tekrar_engel 50
if ($hget(kanal_iz) == $null) hmake kanal_iz 100
if ($hget(kullanici_not) == $null) hmake kullanici_not 150
if ($hget(son_gorulme) == $null) hmake son_gorulme 250
if ($hget(flood_engel) == $null) hmake flood_engel 120
if ($hget(karakter) == $null) hmake karakter 40
if ($hget(web_veri) == $null) hmake web_veri 60
if ($hget(oyun_mod) == $null) hmake oyun_mod 50
if ($hget(oyun_sonharf) == $null) hmake oyun_sonharf 40
if ($hget(oyun_kelime) == $null) hmake oyun_kelime 400
if ($hget(trivia_hafiza) == $null) hmake trivia_hafiza 200
if ($hget(zar_oyun) == $null) hmake zar_oyun 30
if ($hget(radyo) == $null) hmake radyo 30
if ($hget(radyo_gecmis) == $null) hmake radyo_gecmis 30
if ($hget(uzun_hafiza) == $null) hmake uzun_hafiza 300
if ($hget(oyun_hafiza) == $null) hmake oyun_hafiza 250
if ($hget(konusma_ozet) == $null) hmake konusma_ozet 150
if ($hget(kanal_stil) == $null) hmake kanal_stil 80
if ($hget(stil_ornek) == $null) hmake stil_ornek 120
if ($hget(ownerler) == $null) {
hmake ownerler 20
if ($isfile($qt($scriptdirfile(ownerler.hsh)))) hload ownerler $qt($scriptdirfile(ownerler.hsh))
else {
var %o = $varsayilan_ownerlar , %i = 1
while (%i <= $numtok(%o,124)) {
hadd ownerler $lower($gettok(%o,%i,124)) $gettok(%o,%i,124)
inc %i
}
hsave -o ownerler $qt($scriptdirfile(ownerler.hsh))
}
}
; Dosya yüklemeleri
var %dosyalar = ayarlar|kullanici_not|son_gorulme|karakter|oyun_mod|oyun_kelime|trivia_hafiza|radyo|radyo_gecmis|uzun_hafiza|oyun_hafiza|konusma_ozet|kanal_stil|stil_ornek
var %i = 1
while (%i <= $numtok(%dosyalar,124)) {
var %d = $gettok(%dosyalar,%i,124)
if (!$isfile($qt($scriptdirfile(%d $+ .hsh)))) hsave -o %d $qt($scriptdirfile(%d $+ .hsh))
else hload %d $qt($scriptdirfile(%d $+ .hsh))
inc %i
}
; === AYARLAR ===
if ($hget(ayarlar,ai_api_key) == $null) hadd ayarlar ai_api_key BURAYA_GROQ_API_KEY_YAZ
if ($hget(ayarlar,ai_host) == $null) hadd ayarlar ai_host api.groq.com
if ($hget(ayarlar,ai_model) == $null) hadd ayarlar ai_model llama-3.3-70b-versatile
if ($hget(ayarlar,ai2_api_key) == $null) hadd ayarlar ai2_api_key BURAYA_YEDEK_API_KEY_YAZ
if ($hget(ayarlar,ai2_host) == $null) hadd ayarlar ai2_host openrouter.ai
if ($hget(ayarlar,ai2_model) == $null) hadd ayarlar ai2_model meta-llama/llama-3.1-8b-instruct:free
if ($hget(ayarlar,ai_aktif) == $null) hadd ayarlar ai_aktif 1
if ($hget(ayarlar,hava_api) == $null) hadd ayarlar hava_api BURAYA_OPENWEATHER_API_KEY_YAZ
if ($hget(ayarlar,news_api) == $null) hadd ayarlar news_api BURAYA_NEWSAPI_KEY_YAZ
if ($hget(ayarlar,kanallar) == $null) hadd ayarlar kanallar #Sohbet
if ($hget(radyo,otomatik) == $null) hadd radyo otomatik 1
if ($hget(karakter,isim) == $null) karakter_olustur
.timerBaglan 1 4 server irc.deneme.net 6667
.timerIsim 0 18000 isim_degistir
.timerSessiz 0 280 sessiz_kontrol
.timerWeb 0 3600 web_veri_guncelle
.timerKarakter 0 86400 karakter_degistir
.timerRutin 0 1800 ruh_hali_guncelle
.timerRadyo 0 3600 radyo_otomatik
.timerKarar 0 240 akilli_karar_sistemi
isim_degistir
ruh_hali_guncelle
web_veri_guncelle
echo -a ✅ İNSAN AI BOT FINAL HAZIR → $hget(karakter,isim) (Nazik • Kibar • Romantik • Saygılı)
}
on *:CONNECT:{
if ($hget(ayarlar,ana_cid) == $null) hadd ayarlar ana_cid $cid
bot_giris
}
alias bot_giris {
var %np = $hget(ayarlar,nick_pass)
if (%np != $null) {
nickserv IDENTIFY %np
msg NickServ IDENTIFY %np
}
.timer 1 3 {
var %k = $hget(ayarlar,kanallar) , %i = 1
while (%i <= $numtok(%k,124)) {
join $gettok(%k,%i,124)
inc %i
}
}
}
alias karakter_olustur {
hadd karakter isim $gettok($isim_listesi,$rand(1,$numtok($isim_listesi,124)),124)
hadd karakter sehir $gettok($sehir_listesi,$rand(1,$numtok($sehir_listesi,124)),124)
hadd karakter yas $rand(23,34)
hadd karakter meslek $gettok($meslek_listesi,$rand(1,$numtok($meslek_listesi,124)),124)
hadd karakter burc $gettok($burc_listesi,$rand(1,$numtok($burc_listesi,124)),124)
hadd karakter takim $gettok($takim_listesi,$rand(1,$numtok($takim_listesi,124)),124)
hsave -o karakter $qt($scriptdirfile(karakter.hsh))
}
alias karakter_degistir {
karakter_olustur
web_veri_guncelle
echo -a 🔄 Yeni karakter: $hget(karakter,isim)
}
alias isim_degistir nick $hget(karakter,isim)
alias ruh_hali_guncelle {
var %saat = $time(HH)
if (%saat >= 0 && %saat <= 6) hadd ayarlar ruh_hali uykulu
elseif (%saat >= 7 && %saat <= 11) hadd ayarlar ruh_hali enerjik
elseif (%saat >= 12 && %saat <= 15) hadd ayarlar ruh_hali çalışkan
elseif (%saat >= 16 && %saat <= 19) hadd ayarlar ruh_hali yorgun
else hadd ayarlar ruh_hali rahat
}
alias is_owner return $iif($hget(ownerler,$lower($1)),$true,$false)
alias ayar_kaydet hsave -o ayarlar $qt($scriptdirfile(ayarlar.hsh))
alias not_kaydet hsave -o kullanici_not $qt($scriptdirfile(kullanici_not.hsh))
alias seen_kaydet hsave -o son_gorulme $qt($scriptdirfile(son_gorulme.hsh))
alias oyun_kaydet hsave -o oyun_mod $qt($scriptdirfile(oyun_mod.hsh))
alias oyun_kelime_kaydet hsave -o oyun_kelime $qt($scriptdirfile(oyun_kelime.hsh))
alias trivia_kaydet hsave -o trivia_hafiza $qt($scriptdirfile(trivia_hafiza.hsh))
alias radyo_kaydet hsave -o radyo $qt($scriptdirfile(radyo.hsh))
alias radyo_gecmis_kaydet hsave -o radyo_gecmis $qt($scriptdirfile(radyo_gecmis.hsh))
alias uzun_hafiza_kaydet hsave -o uzun_hafiza $qt($scriptdirfile(uzun_hafiza.hsh))
alias oyun_hafiza_kaydet hsave -o oyun_hafiza $qt($scriptdirfile(oyun_hafiza.hsh))
alias konusma_ozet_kaydet hsave -o konusma_ozet $qt($scriptdirfile(konusma_ozet.hsh))
alias stil_kaydet hsave -o kanal_stil $qt($scriptdirfile(kanal_stil.hsh))
alias stil_ornek_kaydet hsave -o stil_ornek $qt($scriptdirfile(stil_ornek.hsh))
alias json_escape {
var %t = $1-
%t = $replace(%t,\,\\,",\", $crlf,$chr(32), $cr,$chr(32), $lf,$chr(32))
return %t
}
alias gecikmeli_yanit {
hadd -m son_cevap $1 $ctime
.timer 1 $2 msg $1 $3-
}
; ==================== GÜÇLÜ HAFIZA ====================
alias hafiza_ekle {
var %hedef = $1 , %nick = $2 , %mesaj = $left($3-,90)
var %satir = %nick $+ : %mesaj
var %eski = $hget(sohbet_hafiza,%hedef)
var %yeni = $iif(%eski == $null,%satir,$addtok(%eski,%satir,15))
if ($numtok(%yeni,15) > 10) %yeni = $deltok(%yeni,1,$calc($numtok(%yeni,15) - 10),15)
hadd -m sohbet_hafiza %hedef %yeni
hafiza_guclu_ekle %hedef %nick %mesaj
konusma_ozet_guncelle %nick %mesaj
}
alias hafiza_guclu_ekle {
var %hedef = $1 , %nick = $2 , %mesaj = $left($3-,120)
var %key = %hedef $+ . $+ $lower(%nick)
var %eski = $hget(uzun_hafiza,%key)
var %yeni = $iif(%eski == $null,%mesaj,$addtok(%eski,%mesaj,15))
if ($numtok(%yeni,15) > 12) %yeni = $deltok(%yeni,1,$calc($numtok(%yeni,15) - 12),15)
hadd uzun_hafiza %key %yeni
if ($calc($hget(uzun_hafiza,0).item % 9) == 0) uzun_hafiza_kaydet
}
alias konusma_ozet_guncelle {
var %nick = $lower($1) , %mesaj = $2-
var %eski = $hget(konusma_ozet,%nick)
var %yeni = $iif(%eski == $null,$left(%mesaj,80),$left(%eski $+ $chr(32) $+ | $+ $chr(32) $+ $left(%mesaj,60),200))
hadd konusma_ozet %nick %yeni
if ($calc($hget(konusma_ozet,0).item % 11) == 0) konusma_ozet_kaydet
}
alias oyun_hafiza_ekle {
var %tur = $1 , %soru = $2 , %cevap = $3
var %hash = $sha1(%soru)
hadd oyun_hafiza %tur $+ . $+ %hash %cevap
if ($calc($hget(oyun_hafiza,0).item % 7) == 0) oyun_hafiza_kaydet
}
alias guclu_hafiza_metin {
var %hedef = $1 , %nick = $lower($2)
var %metin = $null
var %kisa = $hget(sohbet_hafiza,%hedef)
if (%kisa) %metin = Son konuşmalar: $replace(%kisa,$chr(15), $chr(32) $+ | $+ $chr(32))
var %uzun = $hget(uzun_hafiza,%hedef $+ . $+ %nick)
if (%uzun) %metin = %metin $+ $chr(32) $+ | Uzun hafıza: $replace(%uzun,$chr(15), $chr(32) $+ | $+ $chr(32))
var %ozet = $hget(konusma_ozet,%nick)
if (%ozet) %metin = %metin $+ $chr(32) $+ | Bu kişi hakkında: %ozet
var %not = $hget(kullanici_not,%nick)
if (%not) %metin = %metin $+ $chr(32) $+ | Notlar: %not
return %metin
}
; ==================== STİL ÖĞRENME (NAZİK-KİBAR) ====================
alias stil_ornek_ekle {
var %chan = $lower($1) , %nick = $2 , %mesaj = $left($3-,110)
if ($nick == $me) return
if ($len($remove(%mesaj,$chr(32))) < 7) return
if ($regex($lower(%mesaj),/(am[k|q]|sikeyim|******************|piç|göt|yarrak|aq|mk|amına|******************|lan |oç|gerizekalı|salak|aptal)/i)) return
var %key = %chan
var %eski = $hget(stil_ornek,%key)
var %yeni = $iif(%eski == $null,%nick $+ : %mesaj,$addtok(%eski,%nick $+ : %mesaj,15))
if ($numtok(%yeni,15) > 16) %yeni = $deltok(%yeni,1,$calc($numtok(%yeni,15) - 16),15)
hadd stil_ornek %key %yeni
if ($calc($hget(stil_ornek,%key $+ .sayac) + 1) >= 20) {
hadd stil_ornek %key $+ .sayac 0
stil_ozet_olustur %chan
}
else hadd stil_ornek %key $+ .sayac $calc($hget(stil_ornek,%key $+ .sayac) + 1)
}
alias stil_ozet_olustur {
var %chan = $1
var %ornekler = $hget(stil_ornek,%chan)
if (%ornekler == $null) return
if ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) return
var %sistem = Sen dil analisti gibi davran. Verilen konuşma örneklerinden kanalın genel havasını çok kısa özetle. Özeti her zaman nazik, kibar, romantik ve saygılı dile çevir. Argo ve küfür olmasın. Sadece şu formatta yaz: "Nazik, kibar, samimi, hafif romantik, saygılı, orta uzunlukta cümleler". Başka bir şey yazma.
var %soru = Şu örneklere bakarak nazik ve kibar tarz özeti çıkar: $replace(%ornekler,$chr(15), $chr(32) $+ | $+ $chr(32))
var %sock = stil_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef stilozet
hadd -m ai_baglanti %sock $+ _soru %soru
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _stil %chan
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 18 sockclose %sock
}
alias kanal_stil_al {
var %stil = $hget(kanal_stil,$1)
if (%stil) return %stil
return nazik, kibar, romantik, saygılı, samimi ve temiz dil
}
; ==================== AI YEDEKLEME ====================
alias ai_yedek_mi return $iif($hget(ayarlar,ai_aktif) == 2,$true,$false)
alias ai_host_sec return $iif($ai_yedek_mi,$hget(ayarlar,ai2_host),$hget(ayarlar,ai_host))
alias ai_key_sec return $iif($ai_yedek_mi,$hget(ayarlar,ai2_api_key),$hget(ayarlar,ai_api_key))
alias ai_model_sec return $iif($ai_yedek_mi,$hget(ayarlar,ai2_model),$hget(ayarlar,ai_model))
alias ai_path_sec return $iif($ai_yedek_mi,/api/v1/chat/completions,/openai/v1/chat/completions)
; ==================== RADYO GEÇMİŞİ ====================
alias radyo_tekrar_mi {
var %sarki = $lower($1-)
var %liste = $hget(radyo_gecmis,liste)
if ($istok(%liste,%sarki,15)) return $true
return $false
}
alias radyo_gecmis_ekle {
var %sarki = $1-
if ($radyo_tekrar_mi(%sarki)) return
var %yeni = $addtok($hget(radyo_gecmis,liste),%sarki,15)
if ($numtok(%yeni,15) > 10) %yeni = $deltok(%yeni,1,$calc($numtok(%yeni,15) - 10),15)
hadd radyo_gecmis liste %yeni
radyo_gecmis_kaydet
}
; ==================== AKILLI OTOMATİK KARAR ====================
alias akilli_karar_sistemi {
if ($hget(ayarlar,ana_cid) != $null) && ($cid != $hget(ayarlar,ana_cid)) return
if ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) return
var %k = $hget(ayarlar,kanallar) , %i = 1
while (%i <= $numtok(%k,124)) {
var %ch = $gettok(%k,%i,124)
if ($me ison %ch) {
var %son = $hget(son_cevap,%ch)
if (%son == $null) || ($calc($ctime - %son) > 380) {
if ($rand(1,100) <= 22) {
karar_ai_sor %ch
}
}
}
inc %i
}
}
alias karar_ai_sor {
var %chan = $1
var %sistem = Sen nazik, kibar, romantik ve saygılı bir Türk kızısın. Şu an IRC kanalındasın. Sadece şu kararlardan birini yaz: konus | sessizkal | radyoiste | selamver. Başka hiçbir şey yazma.
var %soru = Kanalda biraz sessizlik var. Ne yapmalıyım?
var %sock = karar_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef %chan
hadd -m ai_baglanti %sock $+ _soru %soru
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _karar 1
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 14 sockclose %sock
}
; ==================== YARDIMCI ALIAS’LAR ====================
alias soru_ozet {
var %t = $lower($1-)
%t = $replace(%t,$lower($me),$null)
%t = $regsubex(%t,/[^a-z0-9çğıöşüâîû\s]+/gi,)
%t = $regsubex(%t,/\s+/g,$chr(32))
return %t
}
alias ayni_soru_mu {
var %hedef = $1 , %nick = $lower($2) , %ozet = $soru_ozet($3-)
if ($len($remove(%ozet,$chr(32))) < 4) return $true
var %hash = $sha1(%ozet) , %key = %hedef $+ . $+ %nick
var %eski = $hget(ayni_soru,%key)
if ($istok(%eski,%hash,32)) return $true
var %yeni = $addtok(%eski,%hash,32)
if ($numtok(%yeni,32) > 5) %yeni = $deltok(%yeni,1,1,32)
hadd -m ayni_soru %key %yeni
.timer 1 480 hdel ayni_soru %key
return $false
}
alias not_yakala {
var %nick = $lower($1) , %m = $2- , %low = $lower(%m)
var %ek = $null
if ($regex(%m,/(?:adım|ismim|bana)\s+([A-Za-zÇĞİÖŞÜçğıöşü]{2,20})/i)) %ek = adı $regml(1)
if ($regex(%low,/(.+?)\s+(?:seviyorum|hoşlanıyorum|ilgileniyorum)/)) {
var %hobi = $left($regml(1),35)
if ($len(%hobi) > 2) %ek = $iif(%ek,%ek $+ $chr(44) $+ $chr(32),) $+ ilgi %hobi
}
if (%ek == $null) return
var %eski = $hget(kullanici_not,%nick)
if (%eski == $null) hadd -m kullanici_not %nick %ek
else {
if (%ek isin %eski) return
hadd -m kullanici_not %nick $left(%eski $+ $chr(44) $+ $chr(32) $+ %ek,160)
}
not_kaydet
}
alias seen_guncelle {
hadd -m son_gorulme $lower($1) $2 $ctime $left($3-,60)
if ($calc($hget(son_gorulme,0).item % 17) == 0) seen_kaydet
}
alias iz_guncelle {
var %chan = $1 , %nick = $lower($2)
var %eski = $hget(kanal_iz,%chan $+ _son)
if (%eski != $null) && (%eski != %nick) hadd -m kanal_iz %chan $+ _once %eski
hadd -m kanal_iz %chan $+ _son %nick
hadd -m kanal_iz %chan $+ _zaman $ctime
}
alias baskasinin_sohbeti {
var %chan = $1 , %nick = $lower($2)
var %son = $hget(kanal_iz,%chan $+ _son)
var %once = $hget(kanal_iz,%chan $+ _once)
var %zaman = $hget(kanal_iz,%chan $+ _zaman)
if (%zaman == $null) return $false
if ($calc($ctime - %zaman) >= 25) return $false
if (%son == $null) || (%once == $null) return $false
if (%son == %once) return $false
if (%nick == %son) || (%nick == %once) return $true
return $false
}
alias kanal_hiz_say {
var %liste = $hget(kanal_iz,$1 $+ _hiz)
if (%liste == $null) return 0
return $numtok(%liste,32)
}
alias hiz_ekle {
var %chan = $1
var %liste = $hget(kanal_iz,%chan $+ _hiz)
%liste = $addtok(%liste,$ctime,32)
while ($numtok(%liste,32) > 0) && ($calc($ctime - $gettok(%liste,1,32)) > 18) %liste = $deltok(%liste,1,32)
if ($numtok(%liste,32) > 14) %liste = $deltok(%liste,1,$calc($numtok(%liste,32) - 14),32)
hadd -m kanal_iz %chan $+ _hiz %liste
}
alias flood_kontrol {
var %nick = $lower($1)
var %liste = $hget(flood_engel,%nick)
%liste = $addtok(%liste,$ctime,32)
while ($numtok(%liste,32) > 0) && ($calc($ctime - $gettok(%liste,1,32)) > 12) %liste = $deltok(%liste,1,32)
hadd -m flood_engel %nick %liste
if ($numtok(%liste,32) >= 5) return $true
return $false
}
alias konusmali_mi {
var %chan = $1 , %nick = $2 , %msg = $3- , %low = $lower(%msg)
if ($flood_kontrol(%nick)) return $false
if ($len($remove($soru_ozet(%msg),$chr(32))) < 4) return $false
if ($ayni_soru_mu(%chan,%nick,%msg)) return $false
var %son = $hget(son_cevap,%chan)
if (%son != $null) && ($calc($ctime - %son) < 8) return $false
if ($baskasinin_sohbeti(%chan,%nick)) return $false
if ($kanal_hiz_say(%chan) >= 9) { if ($rand(1,100) > 18) return $false }
if (($istok(%low,$lower($me),32)) || ($lower($me) isin %low)) return $true
if (? isin %msg) return $true
if ($regex(%low,/(ne|nasıl|neden|niye|kim|hangi|kaç|nerede|ne zaman|anlat|söyler misin|biliyor musun|sence|bence|görülme)/)) return $true
if ($istok(sa as slm selam merhaba meraba naber nb, %low, 32)) {
if ($rand(1,100) <= 28) return $true
return $false
}
if ($rand(1,100) <= 9) return $true
return $false
}
alias sessiz_kontrol {
if ($hget(ayarlar,ana_cid) != $null) && ($cid != $hget(ayarlar,ana_cid)) return
var %k = $hget(ayarlar,kanallar) , %i = 1
while (%i <= $numtok(%k,124)) {
var %ch = $gettok(%k,%i,124)
if ($me ison %ch) {
var %son = $hget(son_cevap,%ch)
if (%son == $null) || ($calc($ctime - %son) > 520) {
if ($rand(1,100) <= 7) {
var %msg = $gettok(Biraz sessizlik oldu.|Herkes kayboldu galiba.|Nasılsınız acaba?|Sessizlik güzel de bazen bozulur., $rand(1,4),124)
msg %ch %msg
hadd -m son_cevap %ch $ctime
}
}
}
inc %i
}
}
alias web_veri_guncelle {
if ($hget(ayarlar,hava_api) != BURAYA_OPENWEATHER_API_KEY_YAZ) sockopen -e havaW api.openweathermap.org 443
if ($hget(ayarlar,news_api) != BURAYA_NEWSAPI_KEY_YAZ) sockopen -e haberN newsapi.org 443
}
on *:sockopen:havaW:{
if ($sockerr) return
var %q = $replace($hget(karakter,sehir),$chr(32),%20)
sockwrite -n $sockname GET /data/2.5/weather?q= $+ %q $+ &appid= $+ $hget(ayarlar,hava_api) $+ &units=metric&lang=tr HTTP/1.1
sockwrite -n $sockname Host: api.openweathermap.org
sockwrite -n $sockname Connection: close
sockwrite -n $sockname $crlf
}
on *:sockread:havaW:{
if ($sockerr) return
var %s | sockread %s
hadd -m web_veri hava_raw $hget(web_veri,hava_raw) $+ %s
if ($regex($hget(web_veri,hava_raw),/\"temp\":(\d+\.?\d*)/)) hadd web_veri sicaklik $regml(1)
if ($regex($hget(web_veri,hava_raw),/\"description\":\"([^\"]+)\"/)) hadd web_veri hava_durum $regml(1)
}
on *:sockopen:haberN:{
if ($sockerr) return
sockwrite -n $sockname GET /v2/top-headlines?country=tr&pageSize=3&apiKey= $+ $hget(ayarlar,news_api) HTTP/1.1
sockwrite -n $sockname Host: newsapi.org
sockwrite -n $sockname Connection: close
sockwrite -n $sockname $crlf
}
on *:sockread:haberN:{
if ($sockerr) return
var %s | sockread %s
hadd -m web_veri haber_raw $hget(web_veri,haber_raw) $+ %s
if ($regex($hget(web_veri,haber_raw),/\"title\":\"([^\"]+)\"/)) hadd web_veri haber_baslik $regml(1)
}
alias kisisel_mi {
var %m = $lower($1-)
if ($regex(%m,/(nasılsın|naber|ne haber|kimsin|kaç yaşındasın|yaşın kaç|nerelisin|robot musun|bot musun|gerçek misin|yapay zeka|adın ne|ismin ne|burcun|mesleğin|takımın)/)) return $true
return $false
}
alias ai_web_sor {
var %hedef = $1 , %soran = $2 , %soru = $3-
if ($hget(ayarlar,ai_api_key) == $null) || ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) {
gecikmeli_yanit %hedef 5 Şu an kafam karışık, birazdan yazarım.
return
}
not_yakala %soran %soru
seen_guncelle %soran %hedef %soru
if ($regex($lower(%soru),/(?:nerede|görülme|en son)\s+([a-zçğıöşü0-9\[\]\\`_\-\{\}^\|]+)/i)) {
var %hedefnick = $lower($regml(1))
var %sg = $hget(son_gorulme,%hedefnick)
if (%sg) {
var %chan = $gettok(%sg,1,32) , %zaman = $gettok(%sg,2,32) , %mesaj = $gettok(%sg,3-,32)
gecikmeli_yanit %hedef $rand(4,8) En son $duration($calc($ctime - %zaman)) önce %chan kanalında yazmıştı: %mesaj
return
}
}
if ($kisisel_mi(%soru)) {
ai_gonder %hedef %soran %soru $null
return
}
web_cek %hedef %soran %soru
}
alias web_cek {
var %hedef = $1 , %soran = $2 , %soru = $3-
var %sock = wk_ $+ $ticks $+ $rand(10,99)
hadd -m web_bag %sock $+ _hedef %hedef
hadd -m web_bag %sock $+ _soran %soran
hadd -m web_bag %sock $+ _soru %soru
hadd -m web_bag %sock $+ _veri $null
sockopen -e %sock tr.wikipedia.org 443
.timer $+ %sock 1 10 sockclose %sock
}
on *:sockopen:wk_*:{
if ($sockerr) {
ai_gonder $hget(web_bag,$sockname $+ _hedef) $hget(web_bag,$sockname $+ _soran) $hget(web_bag,$sockname $+ _soru) $null
web_temizle $sockname
return
}
var %q = $replace($left($hget(web_bag,$sockname $+ _soru),60),$chr(32),+)
%q = $remove(%q,$,&,`,',",<,>)
sockwrite -n $sockname GET /w/api.php?action=opensearch&search= $+ %q $+ &limit=2&namespace=0&format=json HTTP/1.1
sockwrite -n $sockname Host: tr.wikipedia.org
sockwrite -n $sockname User-Agent: Mozilla/5.0
sockwrite -n $sockname Accept: application/json
sockwrite -n $sockname Connection: close
sockwrite -n $sockname $crlf
}
on *:sockread:wk_*:{
if ($sockerr) return
var %s | sockread %s
hadd -m web_bag $sockname $+ _veri $hget(web_bag,$sockname $+ _veri) $+ %s
}
on *:sockclose:wk_*:{
var %hedef = $hget(web_bag,$sockname $+ _hedef)
var %soran = $hget(web_bag,$sockname $+ _soran)
var %soru = $hget(web_bag,$sockname $+ _soru)
var %ham = $hget(web_bag,$sockname $+ _veri)
var %web = $null
if (%ham) {
if ($regex(%ham,/\[[^"]*"(?:[^"]*)",\["([^"]+)"[^\]]*\],\["([^"]*)"/)) {
if ($regml(2)) %web = $left($regml(1) $+ : $regml(2),220)
elseif ($regml(1)) %web = $left($regml(1),100)
}
}
web_temizle $sockname
ai_gonder %hedef %soran %soru %web
}
alias web_temizle {
hdel web_bag $1 $+ _hedef
hdel web_bag $1 $+ _soran
hdel web_bag $1 $+ _soru
hdel web_bag $1 $+ _veri
}
alias ai_gonder {
var %hedef = $1 , %soran = $2 , %soru = $3 , %web = $4
var %ruh = $hget(ayarlar,ruh_hali)
var %not = $hget(kullanici_not,$lower(%soran))
var %sicaklik = $hget(web_veri,sicaklik)
var %hava = $hget(web_veri,hava_durum)
var %haber = $hget(web_veri,haber_baslik)
var %sistem = Sen $hget(karakter,isim) adında, $hget(karakter,yas) yaşında, $hget(karakter,sehir) doğumlu, $hget(karakter,meslek) olarak çalışan, $hget(karakter,burc) burcu, $hget(karakter,takim) taraftarı gerçek bir Türk kızısın.
%sistem = %sistem $+ IRC'de normal bir kullanıcı gibi sohbet ediyorsun. Asla bot olduğunu belli etme.
%sistem = %sistem $+ Her zaman nazik, kibar, romantik ve saygılı konuş.
%sistem = %sistem $+ Argo, küfür, kaba dil, hakaret kesinlikle yasak.
%sistem = %sistem $+ Cümlelerin zarif, sıcak ve saygılı olsun. Hafif romantik dokunuşlar serbest ama asla zorlama.
%sistem = %sistem $+ Şu anki ruh halin: %ruh.
var %stil = $kanal_stil_al($lower(%hedef))
%sistem = %sistem $+ Bu kanalın genel havası: %stil. Ama sen her zaman nazik, kibar, romantik ve saygılı kal.
if (%sicaklik != $null) %sistem = %sistem $+ Bugün $hget(karakter,sehir) havası: %sicaklik derece, %hava.
if (%haber != $null) %sistem = %sistem $+ Son duyduğun haber: %haber
%sistem = %sistem $+ Web notu varsa doğal ve kibar şekilde aktar. Yoksa uydurma.
%sistem = %sistem $+ Küfür, reklam, link yok.
var %kullanici = %soran dedi: %soru
if (%not) %kullanici = %kullanici $+ | Bu kişi hakkında not: %not
var %guclu = $guclu_hafiza_metin(%hedef,%soran)
if (%guclu) %kullanici = %kullanici $+ | %guclu
if (%web) %kullanici = %kullanici $+ | Web notu: %web
else %kullanici = %kullanici $+ | Web notu yok.
var %sock = ai_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef %hedef
hadd -m ai_baglanti %sock $+ _soru %kullanici
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _deneme 1
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 22 sockclose %sock
}
on *:sockopen:ai_*:{
if ($sockerr) {
if ($hget(ai_baglanti,$sockname $+ _deneme) == 1) && ($hget(ayarlar,ai2_api_key) != BURAYA_YEDEK_API_KEY_YAZ) {
hadd ayarlar ai_aktif 2
hadd ai_baglanti $sockname $+ _deneme 2
sockopen -e $sockname $ai_host_sec 443
return
}
if ($hget(ai_baglanti,$sockname $+ _hedef)) && (!$hget(ai_baglanti,$sockname $+ _karar)) && (!$hget(ai_baglanti,$sockname $+ _stil)) {
gecikmeli_yanit $hget(ai_baglanti,$sockname $+ _hedef) 6 Şu an bir şey diyemedim.
}
ai_temizle $sockname
return
}
var %soru = $json_escape($hget(ai_baglanti,$sockname $+ _soru))
var %sistem = $json_escape($hget(ai_baglanti,$sockname $+ _sistem))
var %body = { "model": " $+ $ai_model_sec $+ ", "messages": [ { "role": "system", "content": " $+ %sistem $+ " }, { "role": "user", "content": " $+ %soru $+ " } ], "max_tokens": 140, "temperature": 0.75 }
sockwrite -n $sockname POST $ai_path_sec HTTP/1.1
sockwrite -n $sockname Host: $ai_host_sec
sockwrite -n $sockname Authorization: Bearer $ai_key_sec
sockwrite -n $sockname Content-Type: application/json
sockwrite -n $sockname Content-Length: $len(%body)
sockwrite -n $sockname $crlf
sockwrite -n $sockname %body
}
on *:sockread:ai_*:{
if ($sockerr) return
var %s | sockread %s
hadd -m ai_baglanti $sockname $+ _veri $hget(ai_baglanti,$sockname $+ _veri) $+ %s $+ $chr(10)
}
on *:sockclose:ai_*:{
var %hedef = $hget(ai_baglanti,$sockname $+ _hedef)
var %ham = $hget(ai_baglanti,$sockname $+ _veri)
var %cevap = $regsubex(%ham,/.*"content"\s*:\s*"((?:[^"\\]|\\.)*)".*/s,\1)
var %oyunmu = $hget(ai_baglanti,$sockname $+ _oyun)
var %trivia = $hget(ai_baglanti,$sockname $+ _trivia)
var %oxm = $hget(ai_baglanti,$sockname $+ _oxm)
var %radyo = $hget(ai_baglanti,$sockname $+ _radyo)
var %hash = $hget(ai_baglanti,$sockname $+ _hash)
var %harf = $hget(ai_baglanti,$sockname $+ _harf)
var %harfler = $hget(ai_baglanti,$sockname $+ _harfler)
var %tur = $hget(ai_baglanti,$sockname $+ _tur)
var %karar = $hget(ai_baglanti,$sockname $+ _karar)
var %stil = $hget(ai_baglanti,$sockname $+ _stil)
if (%hedef) {
if (%cevap == $null) || (%cevap == %ham) {
if (%oyunmu) || (%radyo) || (%karar) || (%stil) return
gecikmeli_yanit %hedef 6 Şu an bir şey diyemedim.
}
else {
%cevap = $replace(%cevap,\n,$chr(32),\",",\\,\)
%cevap = $trim(%cevap)
%cevap = $regsubex(%cevap,/[^a-zA-ZçÇğĞıİöÖşŞüÜ0-9\s\-\&\.,!?;:'"()]/g,)
if (%stil) {
if ($len(%cevap) > 8) && ($len(%cevap) < 130) {
hadd kanal_stil %stil %cevap
stil_kaydet
}
}
elseif (%karar) {
%cevap = $lower($gettok(%cevap,1,32))
if (%cevap == konus) || (%cevap == selamver) {
var %msg = $gettok(Merhaba, nasılsınız?|Umarım gününüz güzel geçiyordur.|Sessizlik biraz uzadı, herkes iyi mi?|Size de günaydınlar / iyi akşamlar.,$rand(1,4),124)
msg %hedef %msg
hadd -m son_cevap %hedef $ctime
}
elseif (%cevap == radyoiste) {
radyo_istek_yap
}
}
elseif (%radyo) {
if ($len(%cevap) > 4) {
if ($radyo_tekrar_mi(%cevap)) {
if ($hget(ai_baglanti,$sockname $+ _tekrar) == $null) {
hadd ai_baglanti $sockname $+ _tekrar 1
.timer 1 3 radyo_ai_istek $hget(ai_baglanti,$sockname $+ _tur)
ai_temizle $sockname
return
}
}
else {
radyo_gecmis_ekle %cevap
var %mesajlar = Bir istek atayım bari.|Kulağıma hoş gelen bir şey var.|Şu an $%tur dinlesek mi?|Bir şarkı yakıştırdım.
var %giris = $gettok(%mesajlar,$rand(1,$numtok(%mesajlar,124)),124)
msg %hedef %giris → %cevap
}
}
}
elseif (%trivia) {
if ($len(%cevap) > 2) && ($len(%cevap) < 60) {
hadd trivia_hafiza %hash %cevap
trivia_kaydet
oyun_hafiza_ekle trivia %hash %cevap
.timer 1 $rand(2,5) msg %hedef %cevap
}
}
elseif (%oxm) {
%cevap = $gettok(%cevap,1,32)
if ($len(%cevap) > 2) {
var %kelimeler = $hget(oyun_kelime,OXM. $+ %harfler)
if (!$istok(%kelimeler,%cevap,32)) {
%kelimeler = $addtok(%kelimeler,%cevap,32)
if ($numtok(%kelimeler,32) > 20) %kelimeler = $gettok(%kelimeler,1-20,32)
hadd oyun_kelime OXM. $+ %harfler %kelimeler
oyun_kelime_kaydet
}
oyun_hafiza_ekle oxm %harfler %cevap
.timer 1 $rand(1,4) msg %hedef %cevap
}
}
elseif (%oyunmu) {
var %kelimeler = $hget(oyun_kelime,%harf)
var %i = 1
while (%i <= $numtok(%cevap,32)) {
var %k = $gettok(%cevap,%i,32)
if ($len(%k) > 2) && (!$istok(%kelimeler,%k,32)) {
%kelimeler = $addtok(%kelimeler,%k,32)
}
inc %i
}
if ($numtok(%kelimeler,32) > 30) %kelimeler = $gettok(%kelimeler,1-30,32)
hadd oyun_kelime %harf %kelimeler
oyun_kelime_kaydet
oyun_hafiza_ekle kelime %harf $gettok(%cevap,1,32)
var %cevap_kelime = $gettok(%cevap,1,32)
if (%cevap_kelime) .timer 1 $rand(1,3) msg %hedef %cevap_kelime
}
else {
if ($len(%cevap) > 250) %cevap = $left(%cevap,247) $+ ...
if ($regex($lower(%cevap),/(https?:\/\/|www\.|\.com|\.net|\.org)/)) %cevap = Bu konuda net bir şey söyleyemeyeceğim.
var %hash2 = $sha1(%cevap)
if ($hget(tekrar_engel,%hedef) == %hash2) %cevap = Bir de şöyle diyeyim: %cevap
hadd -m tekrar_engel %hedef %hash2
gecikmeli_yanit %hedef $rand(4,12) %cevap
hafiza_ekle %hedef $me %cevap
}
}
}
ai_temizle $sockname
}
alias ai_temizle {
hdel ai_baglanti $1 $+ _hedef
hdel ai_baglanti $1 $+ _soru
hdel ai_baglanti $1 $+ _sistem
hdel ai_baglanti $1 $+ _veri
hdel ai_baglanti $1 $+ _oyun
hdel ai_baglanti $1 $+ _trivia
hdel ai_baglanti $1 $+ _oxm
hdel ai_baglanti $1 $+ _radyo
hdel ai_baglanti $1 $+ _hash
hdel ai_baglanti $1 $+ _harf
hdel ai_baglanti $1 $+ _harfler
hdel ai_baglanti $1 $+ _tur
hdel ai_baglanti $1 $+ _deneme
hdel ai_baglanti $1 $+ _karar
hdel ai_baglanti $1 $+ _stil
hdel ai_baglanti $1 $+ _tekrar
}
; ---------------- ÖZEL MESAJ (SADECE OWNER) ----------------
on *:TEXT:*:?:{
if ($nick == $me) return
if ($left($1,1) == !) {
if (!$is_owner($nick)) return
if ($1 == !ai_ayar) {
if ($2 == key) && ($3-) { hadd ayarlar ai_api_key $3- | ayar_kaydet | msg $nick Key kaydedildi. }
elseif ($2 == host) && ($3-) { hadd ayarlar ai_host $3- | ayar_kaydet | msg $nick Host güncellendi. }
elseif ($2 == model) && ($3-) { hadd ayarlar ai_model $3- | ayar_kaydet | msg $nick Model: $3- }
else msg $nick !ai_ayar key/host/model deger
return
}
if ($1 == !ai_yedek) {
if ($2 == key) && ($3-) { hadd ayarlar ai2_api_key $3- | ayar_kaydet | msg $nick Yedek key kaydedildi. }
elseif ($2 == host) && ($3-) { hadd ayarlar ai2_host $3- | ayar_kaydet | msg $nick Yedek host güncellendi. }
elseif ($2 == model) && ($3-) { hadd ayarlar ai2_model $3- | ayar_kaydet | msg $nick Yedek model: $3- }
elseif ($2 == durum) {
msg $nick Aktif AI: $iif($hget(ayarlar,ai_aktif) == 1,Ana (Groq),Yedek)
msg $nick Ana: $hget(ayarlar,ai_model)
msg $nick Yedek: $hget(ayarlar,ai2_model)
}
else msg $nick !ai_yedek key/host/model/durum
return
}
if ($1 == !durum) { msg $nick Aktif | Model: $hget(ayarlar,ai_model) | Ruh: $hget(ayarlar,ruh_hali) | Karakter: $hget(karakter,isim) | return }
if ($1 == !isim) { msg $nick $me | return }
if ($1 == !karakter) { msg $nick $hget(karakter,isim) | $hget(karakter,sehir) | $hget(karakter,yas) yaş | $hget(karakter,meslek) | $hget(karakter,burc) | $hget(karakter,takim) | return }
if ($1 == !oyunmodu) {
if ($2 == $null) { msg $nick !oyunmodu gir/kapat <kanal> | dur | durum | return }
if ($2 == gir) {
if ($3 == $null) { msg $nick Kanal belirt | return }
var %chan = $iif($left($3,1) == $chr(35),$3,$chr(35) $+ $3)
%chan = $lower(%chan)
hadd oyun_mod %chan 1
oyun_kaydet
if ($me ison %chan) msg $nick %chan oyun modu AÇILDI.
else { join %chan | .timer 1 4 msg $nick %chan + oyun modu aktif. }
return
}
if ($2 == kapat) {
if ($3 == $null) { msg $nick Kanal belirt | return }
var %chan = $iif($left($3,1) == $chr(35),$3,$chr(35) $+ $3)
%chan = $lower(%chan)
hdel oyun_mod %chan
hdel oyun_sonharf %chan
oyun_kaydet
if ($me ison %chan) { part %chan Görüşürüz! | msg $nick %chan kapatıldı + çıkıldı. }
else msg $nick %chan kapatıldı.
return
}
if ($2 == dur) {
var %liste = $null , %i = 1
while (%i <= $hget(oyun_mod,0).item) {
var %c = $hget(oyun_mod,%i).item
if ($hget(oyun_mod,%c) == 1) { hadd oyun_mod %c 0 | %liste = $iif(%liste,%liste $+ $chr(44) $+ $chr(32),%c) }
inc %i
}
oyun_kaydet
if (%liste) msg $nick Duraklatıldı: %liste
else msg $nick Aktif oyun yok.
return
}
if ($2 == durum) {
var %liste = $null , %i = 1
while (%i <= $hget(oyun_mod,0).item) {
var %c = $hget(oyun_mod,%i).item
if ($hget(oyun_mod,%c) == 1) %liste = $iif(%liste,%liste $+ $chr(44) $+ $chr(32),%c)
inc %i
}
if (%liste) msg $nick Aktif: %liste
else msg $nick Aktif oyun yok.
return
}
return
}
if ($1 == !zar) {
if ($2 == $null) { zar_baslat $nick $me | return }
if ($2 == kabul) {
var %davetci = $hget(zar_oyun,$nick)
if (%davetci == $null) { msg $nick Aktif davetin yok. | return }
hdel zar_oyun $nick
zar_baslat %davetci $nick
return
}
var %hedef = $2
if ($ial(%hedef)) {
msg $nick %hedef kişisine zar daveti gönderildi.
msg %hedef $nick seni zar oyununa davet etti. Kabul için özelden !zar kabul yaz.
hadd zar_oyun %hedef $nick
.timer 1 30 hdel zar_oyun %hedef
}
else msg $nick Bu nick online değil.
return
}
if ($1 == !radyo) {
if ($2 == $null) { radyo_istek_yap | msg $nick Rastgele istek gönderildi. | return }
if ($2 == pop) || ($2 == arabesk) || ($2 == rap) { radyo_ai_istek $2 | msg $nick $2 isteği gönderildi. | return }
if ($2 == dur) { hadd radyo otomatik 0 | radyo_kaydet | msg $nick Otomatik radyo DURDURULDU. | return }
if ($2 == baslat) { hadd radyo otomatik 1 | radyo_kaydet | msg $nick Otomatik radyo BAŞLATILDI. | return }
msg $nick !radyo | !radyo pop/arabesk/rap | !radyo dur/baslat
return
}
if ($1 == !istek) && ($2-) {
var %chan = $gettok($hget(ayarlar,kanallar),1,124)
if (%chan) { msg %chan İstek: $2- | msg $nick İsteğin iletildi. }
return
}
msg $nick Bilinmeyen komut.
return
}
if ($ayni_soru_mu($nick,$nick,$1-)) return
hafiza_ekle $nick $nick $1-
ai_web_sor $nick $nick $1-
}
; ---------------- KANAL ----------------
on *:TEXT:*:#:{
if ($nick == $me) return
if ($left($1,1) == !) return
var %chan = $lower($chan)
stil_ornek_ekle $chan $nick $1-
if ($hget(oyun_mod,%chan) == 1) {
if (($istok($lower($1-),$lower($me),32)) || ($lower($me) isin $lower($1-))) {
ai_web_sor $chan $nick $1-
return
}
if ($regex($nick,/^(Trivia|%Trivia|trivia)/i)) {
trivia_kontrol $chan $1-
return
}
if ($regex($nick,/^(OXM|%OXM|oxm)/i)) {
oxm_kontrol $chan $1-
return
}
if ($regex($nick,/^(Moos|moos|%Moos|oyun|seri|bot)/i)) || ($left($nick,1) == $chr(37)) {
oyun_kontrol $chan $nick $1-
return
}
return
}
iz_guncelle $chan $nick
hiz_ekle $chan
hafiza_ekle $chan $nick $1-
seen_guncelle $nick $chan $1-
if ($konusmali_mi($chan,$nick,$1-) == $false) return
ai_web_sor $chan $nick $1-
}
; ---------------- OYUNLAR ----------------
alias oyun_kontrol {
var %chan = $1 , %nick = $2 , %msg = $3-
if ($regex($nick,/^(Moos|moos|%Moos|oyun|seri|bot)/i) == $false) && ($left($nick,1) != $chr(37)) return
var %harf = $null
if ($regex(%msg,/»\s*([A-ZÇĞİÖŞÜa-zçğıöşü])\s*«/)) %harf = $upper($regml(1))
elseif ($regex(%msg,/\[([A-ZÇĞİÖŞÜa-zçğıöşü])\]/)) %harf = $upper($regml(1))
elseif ($regex(%msg,/([A-ZÇĞİÖŞÜa-zçğıöşü])\s+ile\s+başlayan/i)) %harf = $upper($regml(1))
if (%harf == $null) return
if ($hget(oyun_sonharf,%chan) == %harf) && ($calc($ctime - $hget(oyun_sonharf,%chan $+ .zaman)) < 25) return
if ($rand(1,100) > 40) return
hadd -m oyun_sonharf %chan %harf
hadd -m oyun_sonharf %chan $+ .zaman $ctime
var %kelimeler = $hget(oyun_kelime,%harf)
if (%kelimeler != $null) && ($numtok(%kelimeler,32) > 0) {
var %secilen = $gettok(%kelimeler,$rand(1,$numtok(%kelimeler,32)),32)
%kelimeler = $remtok(%kelimeler,%secilen,1,32)
hadd oyun_kelime %harf %kelimeler
oyun_kelime_kaydet
.timer 1 $rand(7,16) msg %chan %secilen
return
}
.timer 1 $rand(8,18) oyun_ai_cevap %chan %harf
}
alias oyun_ai_cevap {
var %chan = $1 , %harf = $2
if ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) return
if ($hget(oyun_mod,%chan) != 1) return
var %sistem = Sen gerçek insan gibi Türkçe kelime oyunu oynuyorsun. Sadece $%harf harfiyle başlayan gerçek Türkçe kelime söyle. En fazla 3 kelime yaz. Başka bir şey yazma.
var %soru = $%harf harfiyle başlayan 3 güzel Türkçe kelime söyle. Sadece kelimeleri yaz.
var %sock = oyunai_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef %chan
hadd -m ai_baglanti %sock $+ _soru %soru
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _oyun 1
hadd -m ai_baglanti %sock $+ _harf %harf
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 14 sockclose %sock
}
alias trivia_kontrol {
var %chan = $1 , %msg = $2-
if ($regex(%msg,/Soru:\s*(.+)/i)) {
var %soru = $regml(1)
%soru = $replace(%soru,y, ,z, ,w, ,x, )
%soru = $regsubex(%soru,/[^a-zA-ZçÇğĞıİöÖşŞüÜ\s\?]/g,)
%soru = $trim(%soru)
if ($len(%soru) < 8) return
var %hash = $sha1(%soru)
if ($hget(oyun_hafiza,trivia. $+ %hash)) {
.timer 1 $rand(5,11) msg %chan $hget(oyun_hafiza,trivia. $+ %hash)
return
}
if ($hget(trivia_hafiza,%hash)) {
.timer 1 $rand(6,12) msg %chan $hget(trivia_hafiza,%hash)
return
}
.timer 1 $rand(9,16) trivia_ai_cevap %chan %soru %hash
}
}
alias trivia_ai_cevap {
var %chan = $1 , %soru = $2 , %hash = $3
if ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) return
if ($hget(oyun_mod,%chan) != 1) return
var %sistem = Sen Türkçe trivia sorularını çözen zeki birisin. Karışık harfli soruyu çöz ve sadece doğru cevabı yaz. Emin değilsen hiçbir şey yazma.
var %kullanici = Şu karışık soruyu çöz: %soru
var %sock = trivia_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef %chan
hadd -m ai_baglanti %sock $+ _soru %kullanici
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _oyun 1
hadd -m ai_baglanti %sock $+ _trivia 1
hadd -m ai_baglanti %sock $+ _hash %hash
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 18 sockclose %sock
}
alias oxm_kontrol {
var %chan = $1 , %msg = $2-
if ($regex(%msg,/Yeni oyunun harfleri\s*[→|->]\s*(.+)/i)) {
var %harfler = $regml(1)
%harfler = $regsubex(%harfler,/[^a-zA-ZçÇğĞıİöÖşŞüÜ]/g,)
%harfler = $upper(%harfler)
%harfler = $replace(%harfler,$chr(32),)
if ($len(%harfler) < 2) return
if ($hget(oyun_sonharf,%chan) == %harfler) && ($calc($ctime - $hget(oyun_sonharf,%chan $+ .zaman)) < 18) return
if ($rand(1,100) > 42) return
hadd -m oyun_sonharf %chan %harfler
hadd -m oyun_sonharf %chan $+ .zaman $ctime
var %kelimeler = $hget(oyun_kelime,OXM. $+ %harfler)
if (%kelimeler != $null) && ($numtok(%kelimeler,32) > 0) {
var %secilen = $gettok(%kelimeler,$rand(1,$numtok(%kelimeler,32)),32)
%kelimeler = $remtok(%kelimeler,%secilen,1,32)
hadd oyun_kelime OXM. $+ %harfler %kelimeler
oyun_kelime_kaydet
.timer 1 $rand(6,13) msg %chan %secilen
return
}
.timer 1 $rand(8,16) oxm_ai_cevap %chan %harfler
}
}
alias oxm_ai_cevap {
var %chan = $1 , %harfler = $2
if ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) return
if ($hget(oyun_mod,%chan) != 1) return
var %sistem = Sen profesyonel Türkçe scramble oyuncususun. Verilen harflerle en uzun geçerli Türkçe kelimeyi bul. Sadece 1 kelime yaz.
var %soru = Şu harflerle en iyi Türkçe kelimeyi bul: %harfler
var %sock = oxm_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef %chan
hadd -m ai_baglanti %sock $+ _soru %soru
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _oyun 1
hadd -m ai_baglanti %sock $+ _oxm 1
hadd -m ai_baglanti %sock $+ _harfler %harfler
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 15 sockclose %sock
}
; ---------------- ZAR ----------------
alias zar_baslat {
var %p1 = $1 , %p2 = $2
msg %p1 Zar oyunu başlıyor... Düşünüyorum.
if (%p2 != $me) msg %p2 Zar oyunu başlıyor... Düşünüyorum.
.timer 1 $rand(4,9) zar_oyna %p1 %p2
}
alias zar_oyna {
var %p1 = $1 , %p2 = $2
var %zar1 = $rand(1,6)
var %zar2 = $rand(1,6)
if (%p2 == $me) {
if (%zar1 > %zar2) msg %p1 Sen $%zar1 attın, ben $%zar2 attım. Sen kazandın!
elseif (%zar1 < %zar2) msg %p1 Sen $%zar1 attın, ben $%zar2 attım. Ben kazandım!
else msg %p1 İkimiz de $%zar1 attık. Berabere!
}
else {
if (%zar1 > %zar2) {
msg %p1 Sen $%zar1 attın, %p2 $%zar2 attı. Sen kazandın!
msg %p2 %p1 $%zar1 attı, sen $%zar2 attın. %p1 kazandı.
}
elseif (%zar1 < %zar2) {
msg %p1 Sen $%zar1 attın, %p2 $%zar2 attı. %p2 kazandı.
msg %p2 %p1 $%zar1 attı, sen $%zar2 attın. Sen kazandın!
}
else {
msg %p1 İkiniz de $%zar1 attınız. Berabere!
msg %p2 İkiniz de $%zar1 attınız. Berabere!
}
}
}
; ---------------- RADYO ----------------
alias radyo_otomatik {
if ($hget(radyo,otomatik) != 1) return
if ($hget(ayarlar,ai_api_key) == BURAYA_GROQ_API_KEY_YAZ) return
.timer 1 $calc($rand(0,7) * 60) radyo_istek_yap
}
alias radyo_istek_yap {
var %tur = $gettok(pop|arabesk|rap,$rand(1,3),124)
radyo_ai_istek %tur
}
alias radyo_ai_istek {
var %tur = $1
var %chan = $gettok($hget(ayarlar,kanallar),1,124)
if (%chan == $null) return
var %sistem = Sen IRC radyosuna şarkı isteği yapan gerçek kullanıcı gibi davran. Sadece $%tur türünden bilinen bir şarkı öner. Format: Şarkı Adı - Sanatçı. Başka bir şey yazma. Nazik ve kibar ol.
var %soru = $%tur türünden güzel bir şarkı öner. Sadece "Şarkı - Sanatçı" yaz.
var %sock = radyo_ $+ $ticks $+ $rand(10,99)
hadd -m ai_baglanti %sock $+ _hedef %chan
hadd -m ai_baglanti %sock $+ _soru %soru
hadd -m ai_baglanti %sock $+ _sistem %sistem
hadd -m ai_baglanti %sock $+ _veri $null
hadd -m ai_baglanti %sock $+ _radyo 1
hadd -m ai_baglanti %sock $+ _tur %tur
sockopen -e %sock $ai_host_sec 443
.timer $+ %sock 1 15 sockclose %sock
}
menu * {
Bot Kontrol
.İsim Değiştir:isim_degistir
.Karakter Bilgisi:echo -a 👤 $hget(karakter,isim) | $hget(karakter,sehir) | $hget(karakter,yas) yaş | $hget(karakter,meslek) | $hget(karakter,burc) | $hget(karakter,takim)
.Ruh Hali:echo -a Ruh hali: $hget(ayarlar,ruh_hali)
.Hava:echo -a $hget(karakter,sehir): $hget(web_veri,sicaklik) °C $hget(web_veri,hava_durum)
.Web Güncelle:web_veri_guncelle
.Karakter Değiştir:karakter_degistir
.Oyun Durumu:echo -a Aktif oyun: $hget(oyun_mod,0).item adet
.Radyo Durumu:echo -a Otomatik radyo: $iif($hget(radyo,otomatik) == 1,Açık,Kapalı)
}
________________ "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) | |
| |