| | Help Asistani (Ircd Bir Ilk) WhyBot - Help Asistan Modülü Nedir ve Ne İşe Yarar? #help kanalında düzeni sağlamak, sıra karmaşasını önlemek ve kullanıcıların mIRC script, IRC servisleri ve kodlama sorularına otomatik olarak (yapay zeka ve web arama destekli) yanıt vermek için geliştirilmiş gelişmiş bir yardım asistanıdır. Sistem Nasıl Çalışır?
1. Sıralı Giriş (Queue Sistemi): Kullanıcı #help kanalına girdiğinde otomatik olarak sıraya alınır. Aynı anda birden fazla kullanıcıyla çakışma yaşanmaz.
2. Sıra Size Geldiğinde: Bot sıradaki kullanıcıya otomatik olarak +v (voice) yetkisi verir ve özel olarak ilgilenildiğini bildirir.
3. Soru Sorma Süresi: Kullanıcının soru sorması için 15 saniye süresi vardır. Soru iletilmezse oturum nazikçe kapatılır.
4. Akıllı Yanıt ve Web Arama: Kullanıcı !soru <sorunuz> komutuyla sorusunu ilettiğinde;
- NickServ, ChanServ, OperServ RFC dökümanları ve mIRC script kod blokları taranır.
- Sorunun kalıplarla eşleşmemesi durumunda DuckDuckGo altyapısı ile anlık web araması yapılarak en doğru çözüm kanala yansıtılır.
5. Süre Sınırı ve Güvenlik: Yardım oturumu toplam 2 dakika sürer. Son 10 saniye kala kullanıcı uyarılır ve süre sonunda voice yetkisi otomatik olarak geri alınır. Kullanıcı Komutları:
- !soru <sorunuz> : #help kanalında voice yetkinizdeyken mIRC script, komut veya servis sorularınızı sormanızı sağlar. HTML-Kodu ============================================================
; WHY BOT - HELP ASİSTAN MODÜLÜ (#help) - TEKİL SÜRÜM
; ============================================================
on *:JOIN:#help: {
if ($nick == $me) {
.mode $chan +h $me
var %i = 1
while (%i <= $ibl($chan,0)) {
.mode $chan -b $ibl($chan,%i)
inc %i
}
.mode $chan +m
.topic $chan [BİLGİ] #help kanalı otomatik moddadır. Yardım almak için sıranızı bekleyiniz. | Why Bot v.2026
return
}
hinc WhyHelpStats toplam_user
if ($window(#opers)) || ($chan(#opers)) {
.msg #opers 09[HELP BİLDİRİM] 12 $nick 03 adlı kullanıcı 07 #help 03 kanalına giriş yaptı.
}
WhyHelpKuyrugaEkle $chan $nick
}
alias -l WhyHelpKuyrugaEkle {
var %chan = $1, %nick = $2
if (!$hget(WhyHelpQueue,%nick)) {
var %toplam = $calc($hget(WhyHelpQueue,0).item + 1)
hadd WhyHelpQueue %nick %toplam
if ($hget(WhyHelpStatus,aktif_user) == $null) {
WhyHelpSiradakiIsle %chan
}
else {
var %sirasi = $hget(WhyHelpQueue,%nick)
.notice %nick 09[SIRA BİLGİSİ] 03#help kanalına hoş geldiniz! Şu an başka bir kullanıcıya yardım edilmektedir. Sıra numaranız: 12 %sirasi
}
}
}
alias WhyHelpSiradakiIsle {
var %chan = $1
if ($hget(WhyHelpQueue,0).item == 0) {
hdel WhyHelpStatus aktif_user
return
}
var %i = 1, %secilen = $null
while (%i <= $hget(WhyHelpQueue,0).item) {
var %itemNick = $hget(WhyHelpQueue,%i).item
var %itemVal = $hget(WhyHelpQueue,%i).data
if (%itemVal == 1) {
%secilen = %itemNick
break
}
inc %i
}
if (%secilen) && (%secilen ison %chan) {
hadd WhyHelpStatus aktif_user %secilen
hdel WhyHelpQueue %secilen
WhyHelpSirariGuncelle
if ($me isop %chan) { .mode %chan +v %secilen }
.msg %chan 09[HELP ASİSTAN] 03Sayın 12 %secilen 03, sıra size geldi! Şimdi sizinle ilgileniyorum.
.msg %chan 03Hazır mIRC script kodları, servis soruları veya koruma taleplerinizi 14!soru <Sorunuz> 03 formatıyla yazabilirsiniz.
.msg %chan 04[BİLGİ] 1215 saniye içinde soru sormazsanız oturumunuz sonlandırılacaktır!
.timerHelp15Sn_ $+ %secilen -m 1 15000 WhyHelpCevapsizKapat %chan %secilen
.timerHelpSure_ $+ %secilen -m 1 110000 .msg %chan 04[UYARI] 12 %secilen 04, kanalımızdaki sürenizin bitmesine son 10 saniye kaldı, birazdan voice yetkiniz alınacaktır!
.timerHelpDevoice_ $+ %secilen -m 1 120000 WhyHelpSuresiDoldu %chan %secilen
}
else {
if (%secilen) { hdel WhyHelpQueue %secilen | WhyHelpSirariGuncelle }
WhyHelpSiradakiIsle %chan
}
}
alias WhyHelpSirariGuncelle {
var %i = 1, %yeniSira = 1
while (%i <= $hget(WhyHelpQueue,0).item) {
var %itemNick = $hget(WhyHelpQueue,%i).item
hadd WhyHelpQueue %itemNick %yeniSira
inc %yeniSira
inc %i
}
}
alias WhyHelpCevapsizKapat {
var %chan = $1, %nick = $2
if ($hget(WhyHelpStatus,aktif_user) == %nick) && (%nick ison %chan) {
hinc WhyHelpStats cozulemeyen
.msg %chan 09[HELP ASİSTAN] 12 %nick 03, 15 saniye içinde herhangi bir soru iletmediğiniz için teşekkür eder, iyi günler dileriz!
if ($me isop %chan) { .mode %chan -v %nick }
if ($timer(HelpSure_ $+ %nick)) { .timerHelpSure_ $+ %nick off }
if ($timer(HelpDevoice_ $+ %nick)) { .timerHelpDevoice_ $+ %nick off }
hdel WhyHelpStatus aktif_user
WhyHelpSiradakiIsle %chan
}
}
alias -l WhyHelpSuresiDoldu {
var %chan = $1, %nick = $2
if (%nick ison %chan) {
if ($me isop %chan) { .mode %chan -v %nick }
.notice %nick 04[SÜRE BİTTİ] 12Help kanalındaki 2 dakikalık süreniz dolduğu için voice yetkiniz kaldırılmıştır.
}
hdel WhyHelpStatus aktif_user
WhyHelpSiradakiIsle %chan
}
; !soru <soru metni> -> regml(1) = soru metni
on 1:TEXT:/^!soru\s+(.+)$/i:#help: {
if ($nick == $me) { return }
if ($hget(WhyHelpStatus,aktif_user) == $nick) {
var %key = SoruCD_ $+ $nick
if ($hget(WhyOpCmdCD,%key)) {
.notice $nick [KORUMA] Yeni soru sormak için birkaç saniye bekleyin!
return
}
hadd -u20 WhyOpCmdCD %key 1
if ($timer(Help15Sn_ $+ $nick)) { .timerHelp15Sn_ $+ $nick off }
var %soruMetni = $lower($regml(1))
if (!%soruMetni) {
.notice $nick Kullanım: !soru <Servis, Komut veya Kod Sorunuz>
return
}
.msg #help 09[YAPAY ZEKA] 03Sayın 12 $nick 03, sorduğunuz soru servis veritabanları ve web kaynaklarında aranıyor...
.timerWhyServis1_ $+ $nick -m 1 2000 .msg #help 07[1. Adım] 14 NickServ, ChanServ, OperServ & MemoServ RFC dökümanları taranıyor...
.timerWhyServis2_ $+ $nick -m 1 4000 .msg #help 07[2. Adım] 14 mIRC Script kod blokları ve güvenlik kayıtları sorgulanıyor...
.timerWhyServis3_ $+ $nick -m 1 6000 WhyAIServisCevapVer $chan $nick "%soruMetni"
if ($window(#opers)) || ($chan(#opers)) {
.msg #opers 14[AI SERVİS/WEB] 12 $nick 03 sorguladı: 07 "!soru %soruMetni"
}
}
}
alias WhyAIServisCevapVer {
var %chan = $1, %nick = $2, %soru = $3-
if (%nick ison %chan) {
hinc WhyHelpStats cozulen
hinc WhyHelpStats site_yardim
if ($regex(%soru,/(gline|akill|ban|yasak|kaldır|acarim|nasıl açarım)/i)) {
.msg %chan 09[WEB ARAMA SONUCU - OPERSERV] 03Aradığınız G-Line / Akill kaldırma çözümü:
.msg %chan 07 Sunucudan atılan global banları kaldırmak için OperServ yetkinizle şu komutu kullanmalısınız:
.msg %chan 14 /os UNGLINE <maske_veya_ip> 07 veya 14 /os UNAKILL <maske_veya_ip>
return
}
if ($regex(%soru,/(nick|şifre|unuttum|şifremi|register|identify)/i)) {
.msg %chan 09[WEB ARAMA SONUCU - NICKSERV] 03Aradığınız NickServ hesap çözümü:
.msg %chan 14 /ns RECOVER <nick> <şifre> 07 veya 14 /ns DROP <nick> 07komutlarını kullanabilirsiniz.
return
}
if ($regex(%soru,/(kanal|chanserv|op al|kanal şifre|founder)/i)) {
.msg %chan 09[WEB ARAMA SONUCU - CHANSERV] 03Aradığınız ChanServ kanal çözümü:
.msg %chan 14 /cs IDENTIFY <kanal> <şifre> 07 veya 14 /cs ACCESS <kanal> ADD <nick> <seviye>
return
}
if ($regex(%soru,/(küfür|argo|badword|küfür koruma)/i)) {
.msg %chan 09[HAZIR KOD - KÜFÜR KORUMASI] 03Küfür koruma mIRC script kodu:
.msg %chan 07 on @*:TEXT:*:#: { if ($regex($1-,/(küfür1|küfür2)/i)) { .kick $chan $nick Küfür yasaktır! | .ban -u300 $chan $nick 2 } }
return
}
if ($regex(%soru,/(reklam|link|site|reklam koruma)/i)) {
.msg %chan 09[HAZIR KOD - REKLAM KORUMASI] 03Reklam koruma mIRC script kodu:
.msg %chan 07 on @*:TEXT:*:#: { if ($regex($1-,/(www\.|http:|https:|\.com|\.net|\.org)/i)) { .kick $chan $nick Reklam yasaktır! | .ban -u600 $chan $nick 2 } }
return
}
if ($isalias(WhyWebAramaBaslat)) {
WhyWebAramaBaslat %chan %nick %soru
}
if ($window(#opers)) || ($chan(#opers)) {
.msg #opers 04[AI BİLGİ] 12 $nick 03 için web araması başlatıldı: 07 %soru
}
}
}
on *:PART:#help: { WhyHelpTemizlik $nick $chan }
on *:QUIT: { WhyHelpTemizlik $nick #help }
on *:KICK:#help: { if ($knick) { WhyHelpTemizlik $knick $chan } }
alias WhyHelpTemizlik {
var %nick = $1, %chan = $2
if ($hget(WhyHelpQueue,%nick)) { hdel WhyHelpQueue %nick | WhyHelpSirariGuncelle }
if ($timer(Help15Sn_ $+ %nick)) { .timerHelp15Sn_ $+ %nick off }
if ($timer(HelpSure_ $+ %nick)) { .timerHelpSure_ $+ %nick off }
if ($timer(HelpDevoice_ $+ %nick)) { .timerHelpDevoice_ $+ %nick off }
if ($hget(WhyHelpStatus,aktif_user) == %nick) {
hdel WhyHelpStatus aktif_user
WhyHelpSiradakiIsle %chan
}
}
________________
"Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın" |