| KivanC | 19 Ağustos 2026 23:13 | Nomercy botunuzun özeline not bırakın. ┌──────────────────────────────────────────── ─┐
│ NoMercy Bot - Şifreli Kişisel Not/Günlük │
│ Sistemi [mIRC Script] │
└──────────────────────────────────────────── ─┘
Selamlar,
NoMercy tabanlı botlarınız için geliştirdiğim, kullanıcıların
kendilerine özel, şifreli not/günlük bırakabildiği ve sunucuya
her girişlerinde bundan haberdar edildiği bir sistemi paylaşıyorum.
▌ ÖZELLİKLER
✔ Notlar $encrypt() ile şifrelenip .ini dosyasında saklanır
✔ İçerik ASLA listede gösterilmez — sadece ID, tarih ve
kelime sayısı görünür, gizlilik tam korunur
✔ Kalıcı ID sistemi — silme/düzenleme sırasında numaralar
kaymaz
✔ Günlük not limiti + bekleyen not limiti (spam/şişme önler)
✔ Komut flood/tekrar koruması (art arda yazamama)
✔ 30 günden eski notlar otomatik temizlenir (ayarlanabilir)
✔ @onemli etiketiyle öncelikli not işaretleme
✔ Not düzenleme (!notduzenle)
✔ Toplu okuma/silme (hepsi)
✔ İçerik içi kelime arama (!notara)
✔ Sunucuya girince NOTICE ile bildirim — aynı kişiye spam
bildirim gitmesin diye bekleme süresi var
✔ Kişi SADECE kendine not bırakabilir, başkasına yazamaz
▌ KOMUTLAR
!not [@onemli] <mesaj> → not ekler
!notlarim → ID'li liste (içerik gizli)
!notoku <id|hepsi> → notu okur (özelden)
!notsil <id|hepsi> → notu siler
!notduzenle <id> <mesaj> → notu günceller
!notara <kelime> → notlarında arama yapar
▌ KURULUM
1) Kodu yeni bir .mrc dosyasına kaydedin
2) Alt+R (Script Editor) > File > Load ile yükleyin
3) notanahtar alias'ındaki şifreyi MUTLAKA değiştirin
4) İsterseniz limitleri (günlük not, karakter, süre) en
üstteki alias'lardan ayarlayın
▌ NOT
Tüm işlemler özelden (query) ve NOTICE ile yürür, kanala
hiçbir içerik sızmaz. Kod tamamen açık kaynak, dilediğiniz
gibi düzenleyebilirsiniz.
Kodu aşağıya bırakıyorum, iyi forumlar!
; HTML-Kodu:
================================================
; NoMercy Bot - Kisisel Sifreli Not/Gunluk Sistemi (Tam Surum)
; !not [@onemli] <mesaj> -> not ekler (etiket opsiyonel)
; !notlarim -> ID'li liste (icerik gizli)
; !notoku <id|hepsi> -> notu/notlari ozelden gosterir
; !notsil <id|hepsi> -> notu/notlari siler
; !notduzenle <id> <mesaj> -> var olan notu gunceller
; !notara <kelime> -> notlar icinde arama yapar
; ================================================
alias notdosya { return $+($scriptdir,notlar.ini) }
alias notanahtar { return DEGISTIR_BU_GIZLI_ANAHTARI_2026 }
alias notbekleme { return 10 } ; komut spam korumasi (saniye)
alias notgunluklimit { return 15 } ; gunluk max not sayisi
alias nottoplamlimit { return 100 } ; bekleyen max not sayisi
alias notmaxkarakter { return 500 } ; tek not icin max karakter
alias notsuresi { return 30 } ; gun - bu sureden eski notlar otomatik silinir
alias notbildirimbekleme { return 3600 } ; ayni kisiye tekrar NOTIFY bildirimi icin bekleme (saniye)
; --- ID uretici: kullanicinin bir sonraki notu icin kalici artan numara ---
alias notyeniid {
var %kullanici = $1
var %mevcut = $readini($notdosya,n,IDSAYAC,%kullanici)
if (%mevcut == $null) { var %mevcut = 0 }
var %yeni = $calc(%mevcut + 1)
writeini $notdosya IDSAYAC %kullanici %yeni
return %yeni
}
on *:START: {
if ($hget(notflood)) { hfree notflood }
if ($hget(notsayac)) { hfree notsayac }
if ($hget(notbildirim)) { hfree notbildirim }
hmake notflood 100
hmake notsayac 100
hmake notbildirim 100
; notify listesine bekleyen notu olanlari ekle (IDSAYAC bolumunu atla)
var %i = 1
while ($ini($notdosya,%i)) {
var %hedef = $ini($notdosya,%i)
if (%hedef != IDSAYAC) {
if ($notify(%hedef) == 0) { notify +%hedef }
}
inc %i
}
; eski notlari periyodik temizleyen zamanlayici (her 6 saatte bir)
if ($timer(nottemizle)) { .timernottemizle off }
.timernottemizle 0 21600 nottemizlik
}
; --- Eski notlari otomatik temizleme ---
alias nottemizlik {
var %i = 1
while ($ini($notdosya,%i)) {
var %kullanici = $ini($notdosya,%i)
if (%kullanici != IDSAYAC) {
var %j = 1, %adet = $ini($notdosya,%kullanici,0)
while (%j <= %adet) {
var %anahtar = $ini($notdosya,%kullanici,%j)
var %veri = $readini($notdosya,n,%kullanici,%anahtar)
var %zaman = $gettok(%veri,1,1)
if ($calc($ctime - %zaman) > $calc($notsuresi * 86400)) {
remini $notdosya %kullanici %anahtar
}
else { inc %j }
}
if (!$ini($notdosya,%kullanici)) { notify -%kullanici }
}
inc %i
}
}
; --- !not [@onemli] <mesaj> ---
on *:TEXT:/^!not\s+(.+)$/i:?:{
var %kullanici = $lower($nick)
var %mesaj = $regml(1)
var %oncelik = 0
if ($regex(%mesaj,/^@onemli\s+(.+)$/i)) {
var %mesaj = $regml(1)
var %oncelik = 1
}
if ($len(%mesaj) > $notmaxkarakter) {
notice $nick Not cok uzun! Maksimum $notmaxkarakter karakter girebilirsiniz. ( $+ $len(%mesaj) $+ girdiniz )
halt
}
if ($hget(notflood,%kullanici)) {
var %kalan = $calc($hget(notflood,%kullanici) - $ctime)
if (%kalan > 0) {
notice $nick Lutfen bekleyin, tekrar not eklemek icin %kalan saniye sonra deneyin.
halt
}
}
var %veri = $hget(notsayac,%kullanici)
var %sayac = $iif(%veri,$gettok(%veri,1,32),0)
var %sifirlanma = $iif(%veri,$gettok(%veri,2,32),0)
if ($ctime > %sifirlanma) {
var %sayac = 0
var %sifirlanma = $calc($ctime + 86400)
}
if (%sayac >= $notgunluklimit) {
notice $nick Gunluk not limitine ulastiniz ( $notgunluklimit $+ /gun ). Sifirlanmasina kalan sure: $duration($calc(%sifirlanma - $ctime))
halt
}
var %bekleyen = $iif($ini($notdosya,%kullanici),$ini($notdosya,%kullanici,0),0)
if (%bekleyen >= $nottoplamlimit) {
notice $nick Bekleyen notlariniz doldu ( $nottoplamlimit $+ adet ). Once eskilerini !notsil ile silin.
halt
}
hadd notflood %kullanici $calc($ctime + $notbekleme)
hadd notsayac %kullanici $+($calc(%sayac + 1),$chr(32),%sifirlanma)
var %id = $notyeniid(%kullanici)
var %ayrac = $chr(1)
var %sifreli = $encrypt(%mesaj,1,$notanahtar)
var %hash = $md5(%mesaj)
var %kelime = $numtok(%mesaj,32)
writeini $notdosya %kullanici $+(id,%id) $+($ctime,%ayrac,%sifreli,%ayrac,%hash,%ayrac,%kelime,%ayrac,%oncelik,%ayrac,0)
if ($notify(%kullanici) == 0) { notify +%kullanici }
notice $nick Not #%id kaydedildi ve sifrelendi. $iif(%oncelik,[ONEMLI] ,) $+ ( $calc(%sayac + 1) $+ / $+ $notgunluklimit $+ bugun )
halt
}
; --- !notlarim : ID'li liste, icerik gizli ---
on *:TEXT:!notlarim:?:{
var %kullanici = $lower($nick)
if (!$ini($notdosya,%kullanici)) {
notice $nick Kayitli bir notunuz bulunmuyor.
halt
}
var %ayrac = $chr(1)
var %i = 1, %adet = $ini($notdosya,%kullanici,0)
notice $nick --- Notlariniz ( %adet $+ adet ) ---
while (%i <= %adet) {
var %anahtar = $ini($notdosya,%kullanici,%i)
var %veri = $readini($notdosya,n,%kullanici,%anahtar)
var %zaman = $gettok(%veri,1,%ayrac)
var %kelime = $gettok(%veri,4,%ayrac)
var %oncelik = $gettok(%veri,5,%ayrac)
var %duzenlendi = $gettok(%veri,6,%ayrac)
var %numara = $remove(%anahtar,id)
notice $nick $+(#,%numara) $+ $chr(32) $+ $asctime(%zaman,dd.mm.yyyy HH:nn) $+ $chr(32) $+ ( %kelime $+ kelime ) $+ $iif(%oncelik,$chr(32) $+ [ONEMLI],) $+ $iif(%duzenlendi != 0,$chr(32) $+ [duzenlendi],)
inc %i
}
notice $nick Oku: !notoku <id|hepsi> Sil: !notsil <id|hepsi> Duzenle: !notduzenle <id> <mesaj>
halt
}
; --- !notoku <id|hepsi> ---
on *:TEXT:/^!notoku\s+(id)?(\d+|hepsi)$/i:?:{
var %kullanici = $lower($nick)
var %hedef = $regml(2)
var %ayrac = $chr(1)
if (!$ini($notdosya,%kullanici)) {
notice $nick Kayitli bir notunuz bulunmuyor.
halt
}
if ($lower(%hedef) == hepsi) {
var %i = 1, %adet = $ini($notdosya,%kullanici,0)
while (%i <= %adet) {
var %anahtar = $ini($notdosya,%kullanici,%i)
var %veri = $readini($notdosya,n,%kullanici,%anahtar)
var %zaman = $gettok(%veri,1,%ayrac)
var %mesaj = $decrypt($gettok(%veri,2,%ayrac),1,$notanahtar)
var %numara = $remove(%anahtar,id)
notice $nick $+(#,%numara) $+ $chr(32) $+ $asctime(%zaman,dd.mm.yyyy HH:nn) $+ : %mesaj
inc %i
}
halt
}
var %anahtar = $+(id,%hedef)
var %veri = $readini($notdosya,n,%kullanici,%anahtar)
if (%veri == $null) {
notice $nick %hedef numarali not bulunamadi.
halt
}
var %zaman = $gettok(%veri,1,%ayrac)
var %mesaj = $decrypt($gettok(%veri,2,%ayrac),1,$notanahtar)
notice $nick $+(#,%hedef) $+ $chr(32) $+ $asctime(%zaman,dd.mm.yyyy HH:nn) $+ : %mesaj
halt
}
; --- !notsil <id|hepsi> ---
on *:TEXT:/^!notsil\s+(id)?(\d+|hepsi)$/i:?:{
var %kullanici = $lower($nick)
var %hedef = $regml(2)
if (!$ini($notdosya,%kullanici)) {
notice $nick Kayitli bir notunuz bulunmuyor.
halt
}
if ($lower(%hedef) == hepsi) {
var %adet = $ini($notdosya,%kullanici,0)
remini $notdosya %kullanici
notice $nick Tum notlariniz silindi. ( %adet $+ adet )
notify -%kullanici
halt
}
var %anahtar = $+(id,%hedef)
if ($readini($notdosya,n,%kullanici,%anahtar) == $null) {
notice $nick %hedef numarali not bulunamadi.
halt
}
remini $notdosya %kullanici %anahtar
notice $nick $+(#,%hedef) numarali not silindi.
if (!$ini($notdosya,%kullanici)) { notify -%kullanici }
halt
}
; --- !notduzenle <id> <yeni mesaj> ---
on *:TEXT:/^!notduzenle\s+(id)?(\d+)\s+(.+)$/i:?:{
var %kullanici = $lower($nick)
var %hedef = $regml(2)
var %yenimesaj = $regml(3)
var %ayrac = $chr(1)
if ($len(%yenimesaj) > $notmaxkarakter) {
notice $nick Not cok uzun! Maksimum $notmaxkarakter karakter girebilirsiniz.
halt
}
var %anahtar = $+(id,%hedef)
var %veri = $readini($notdosya,n,%kullanici,%anahtar)
if (%veri == $null) {
notice $nick %hedef numarali not bulunamadi.
halt
}
var %zaman = $gettok(%veri,1,%ayrac)
var %oncelik = $gettok(%veri,5,%ayrac)
var %sifreli = $encrypt(%yenimesaj,1,$notanahtar)
var %hash = $md5(%yenimesaj)
var %kelime = $numtok(%yenimesaj,32)
writeini $notdosya %kullanici %anahtar $+(%zaman,%ayrac,%sifreli,%ayrac,%hash,%ayrac,%kelime,%ayrac,%oncelik,%ayrac,$ctime)
notice $nick $+(#,%hedef) numarali not guncellendi.
halt
}
; --- !notara <kelime> ---
on *:TEXT:/^!notara\s+(.+)$/i:?:{
var %kullanici = $lower($nick)
var %aranan = $regml(1)
var %ayrac = $chr(1)
if (!$ini($notdosya,%kullanici)) {
notice $nick Kayitli bir notunuz bulunmuyor.
halt
}
var %i = 1, %adet = $ini($notdosya,%kullanici,0), %bulunan = 0
while (%i <= %adet) {
var %anahtar = $ini($notdosya,%kullanici,%i)
var %veri = $readini($notdosya,n,%kullanici,%anahtar)
var %mesaj = $decrypt($gettok(%veri,2,%ayrac),1,$notanahtar)
if ($instok(%mesaj,%aranan,0,32) || $pos(%mesaj,%aranan,1)) {
var %numara = $remove(%anahtar,id)
var %zaman = $gettok(%veri,1,%ayrac)
notice $nick $+(#,%numara) $+ $chr(32) $+ $asctime(%zaman,dd.mm.yyyy HH:nn) $+ : %mesaj
inc %bulunan
}
inc %i
}
if (%bulunan == 0) { notice $nick "%aranan" icin sonuc bulunamadi. }
else { notice $nick %bulunan sonuc bulundu. }
halt
}
; --- Sunucuya girince bildirim (spam korumali) ---
on *:NOTIFY: {
var %kullanici = $lower($nick)
if ($ini($notdosya,%kullanici)) {
if ($hget(notbildirim,%kullanici)) {
if ($ctime < $hget(notbildirim,%kullanici)) { halt }
}
hadd notbildirim %kullanici $calc($ctime + $notbildirimbekleme)
var %adet = $ini($notdosya,%kullanici,0)
notice $nick Notunuz var! ( %adet adet ) Gormek icin: !notlarim yaz.
}
} |