![]() |
| Eggdrop, NeoStats, BNC Sunucu botları, kurulumları ve ayalarına bu başlık altından ulaşabilirsiniz. |
| | Seçenekler | Stil |
| | #1 |
| Temel Özellikler Otomatik Bağlanma Script açıldığı anda irc.deneme.com sunucusuna bağlanır, NickServ + Oper girişi yapar ve #sohbet kanalına girer. Anlık Deprem Bildirimi Kandilli + AFAD verilerini kullanarak Türkiye’deki depremleri takip eder. Belirlediğiniz minimum büyüklüğün üzerindeki depremleri kanala otomatik yazar. Komut Sistemi Kanalda kullanılabilen komutlar mevcuttur. Tekrar (Flood) Koruması Aynı kişi 10 saniye içinde tekrar komut yazarsa bot cevap vermez. Spam engellenir. Kalıcı Ayarlar Minimum büyüklük ve açık/kapalı durumu bot kapanıp açılsa bile hatırlanır. Hash Table Kullanımı Görülen depremler hash table’da tutulduğu için aynı deprem birden fazla kez bildirilmez (çok hızlı kontrol). Teknik Detaylar Bağlantı: Saf sockopen (IRC + API) Veri Kaynağı: api.orhanaydogdu.com.tr (Kandilli + AFAD birleşik) Tekrar Engelleme: Hash table (deprem.seen) Komut Koruması: Kullanıcı bazlı 10 saniyelik bekleme Renk Sistemi: 3.0–3.9 → Yeşil 4.0–4.9 → Turuncu 5.0+ → Kırmızı + özel uyarı yazısı Flood Koruması: Hem komutlarda hem otomatik bildirimlerde mevcut Nasıl Çalıştırılır? Kodu mIRC’e yükle. Scripti kaydet ve mIRC’i yeniden başlat (veya /load -rs deprem.mrc yaz). Bot otomatik olarak bağlanır ve #sohbet kanalına girer. İstersen bir sonraki adımda şunları da ekleyebilirim: Derinlik ve koordinat bilgisi Şehir filtresi (!deprem on 3 izmir) Log tutma Daha detaylı !deprem yardim komutu HTML-Kodu;=====================================================
; DEPREM SOCKET BOT v4.1
; Saf Socket + Hash Table + Komut Flood Koruması
;=====================================================
on *:start:{
hmake deprem.seen 5000
hmake deprem.ayar 30
hmake deprem.flood 100
if ($isfile(deprem.seen.db)) hload deprem.seen deprem.seen.db
if ($isfile(deprem.ayar.db)) hload deprem.ayar deprem.ayar.db
if (!$hget(deprem.ayar,minmag)) hadd deprem.ayar minmag 3.0
if (!$hget(deprem.ayar,aktif)) hadd deprem.ayar aktif 1
deprem baglan
}
on *:exit:{
hsave -i deprem.seen deprem.seen.db
hsave -i deprem.ayar deprem.ayar.db
}
alias deprem {
if ($1 == baglan) {
sockclose deprem
sockopen deprem irc.deneme.com 6667
echo -s [Deprem] Bağlanılıyor...
}
if ($1 == kapat) {
sockclose deprem
sockclose afad*
.timer depremcheck off
echo -s [Deprem] Kapatıldı.
}
}
on *:sockopen:deprem:{
if ($sockerr) {
echo -s Bağlantı hatası, 15 saniye sonra tekrar...
.timer 1 15 deprem baglan
return
}
sockwrite -n deprem NICK Deprem
sockwrite -n deprem USER Deprem 0 * :Türkiye Anlık Deprem Botu
}
on *:sockread:deprem:{
if ($sockerr) { deprem baglan | return }
var %data
sockread %data
tokenize 32 %data
if ($1 == PING) {
sockwrite -n deprem PONG $2
return
}
if ($2 == 001) {
sockwrite -n deprem PRIVMSG NickServ :IDENTIFY deneme123
.timer 1 1 sockwrite -n deprem OPER Deprem deneme123
.timer 1 2 sockwrite -n deprem OPER deneme123
.timer 1 3 sockwrite -n deprem JOIN #sohbet
echo -s [Deprem] #sohbet kanalına girildi.
.timer depremcheck 0 40 deprem.otomatik
}
if ($2 == 433) {
sockwrite -n deprem NICK Deprem $+ $rand(10,99)
}
; ==================== KOMUTLAR + TEKRAR KORUMASI ====================
if ($2 == PRIVMSG) && ($3 == #sohbet) {
var %nick = $remove($1,$chr(58))
var %text = $remove($4-,$chr(1))
var %cmd = $gettok(%text,1,32)
var %p1 = $gettok(%text,2,32)
var %p2 = $gettok(%text,3,32)
; Sadece !deprem ile başlayan komutlarda koruma uygula
if (%cmd != !deprem) return
; === TEKRAR KORUMASI ===
var %son = $hget(deprem.flood,%nick)
if (%son) && ($calc($ctime - %son) < 10) {
; 10 saniye dolmadan tekrar yazılmış → yok say
return
}
; Korumayı güncelle
hadd -m deprem.flood %nick $ctime
; 30 saniye sonra temizle
.timer 1 30 hdel deprem.flood %nick
; ---------------- Komutlar ----------------
if (%text == !deprem) {
deprem.api komut 1
return
}
if (%cmd == !deprem) && (%p1 == son) {
var %adet = $iif(%p2 isnum && %p2 >= 1 && %p2 <= 8,%p2,5)
deprem.api liste %adet
return
}
if (%cmd == !deprem) && (%p1 == on) {
if (%p2 isnum) && (%p2 >= 1.5) && (%p2 <= 8.0) {
hadd deprem.ayar minmag %p2
hadd deprem.ayar aktif 1
sockwrite -n deprem PRIVMSG #sohbet :Bildirimler açıldı. Minimum şiddet: $+ %p2 $+
}
else {
sockwrite -n deprem PRIVMSG #sohbet :Kullanım: !deprem on 3
}
return
}
if (%text == !deprem off) {
hadd deprem.ayar aktif 0
sockwrite -n deprem PRIVMSG #sohbet :Otomatik bildirimler kapatıldı.
return
}
if (%text == !deprem durum) {
var %durum = $iif($hget(deprem.ayar,aktif) == 1,Açık,Kapalı)
sockwrite -n deprem PRIVMSG #sohbet :Durum: $+ %durum $+ | Minimum: $+ $hget(deprem.ayar,minmag) $+
return
}
}
}
;=====================================================
; OTOMATİK KONTROL
;=====================================================
alias deprem.otomatik {
if (!$sock(deprem)) return
if ($hget(deprem.ayar,aktif) != 1) return
deprem.api otomatik 1
}
;=====================================================
; API
;=====================================================
alias deprem.api {
var %tip = $1
var %adet = $iif($2,$2,1)
var %sid = $ticks $+ $rand(100,999)
sockclose afad $+ %sid
sockopen afad $+ %sid api.orhanaydogdu.com.tr 443
sockmark afad $+ %sid %tip %adet 0
}
on *:sockopen:afad*:{
if ($sockerr) return
sockwrite -n $sockname GET /deprem HTTP/1.1
sockwrite -n $sockname Host: api.orhanaydogdu.com.tr
sockwrite -n $sockname User-Agent: DepremBot/4.1
sockwrite -n $sockname Connection: close
sockwrite -n $sockname $crlf
}
on *:sockread:afad*:{
if ($sockerr) return
var %line
sockread %line
if (*"earthquake_id"* iswm %line) && (*"mag"* iswm %line) {
var %id = $gettok($gettok(%line,2,34),1,34)
if ($hget(deprem.seen,%id)) return
hadd -m deprem.seen %id 1
var %mag = $gettok($remove($gettok(%line,2,58),$chr(44)),1,32)
if (%mag !isnum) return
var %title = $gettok($gettok(%line,4,34),1,34)
if (!$title) %title = Bilinmeyen Yer
var %saat = $gettok($gettok(%line,6,34),1,34)
var %tip = $gettok($sock($sockname).mark,1,32)
var %adet = $gettok($sock($sockname).mark,2,32)
var %say = $gettok($sock($sockname).mark,3,32)
var %min = $hget(deprem.ayar,minmag)
var %renk = 03
if (%mag >= 5.0) %renk = 04
elseif (%mag >= 4.0) %renk = 07
elseif (%mag >= 3.0) %renk = 08
var %mesaj = $chr(3) $+ %renk $+ ⚠️ DEPREM $chr(15) $chr(3) $+ %renk $+ $round(%mag,1) $+ $chr(15) | %title | %saat
if (%mag >= 5.0) {
%mesaj = $chr(3) $+ 04 $+ !!! YÜKSEK ŞİDDETLİ DEPREM !!! $chr(15) %mesaj
}
if (%tip == otomatik) {
if (%mag >= %min) {
sockwrite -n deprem PRIVMSG #sohbet :%mesaj
}
}
elseif (%tip == komut) {
sockwrite -n deprem PRIVMSG #sohbet :%mesaj
sockclose $sockname
}
elseif (%tip == liste) {
inc %say
sockmark $sockname %tip %adet %say
sockwrite -n deprem PRIVMSG #sohbet : $+ %say $+ . %mesaj
if (%say >= %adet) sockclose $sockname
}
}
} 👍 1
________________ "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) | |
| |