IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Eggdrop, NeoStats, BNC (https://www.ircforumlari.net/eggdrop-neostats-bnc/)
-   -   Useri kanala almak (https://www.ircforumlari.net/eggdrop-neostats-bnc/550414-useri-kanala-almak.html)

ReaLUnReaL 12 Ekim 2013 17:03

Useri kanala almak
 
Merhaba arkadaşlar epey aradım ama bulamadım. yardımcı olabilecek varsa şimdiden teşekkür ederim.

Belirlediğim bir kanaldan user part yapsa bile tekrar o kanala geri sajoin ile geri alınmasını istiyorum.

Entrance 12 Ekim 2013 17:32

Cevap: Useri kanala almak
 
Alıntı:

ReaLUnReaL Nickli Üyeden Alıntı (Mesaj 1041350895)
Merhaba arkadaşlar epey aradım ama bulamadım. yardımcı olabilecek varsa şimdiden teşekkür ederim.

Belirlediğim bir kanaldan user part yapsa bile tekrar o kanala geri sajoin ile geri alınmasını istiyorum.

Alıntı:

#Global Kanal Yetkililerinin Sajoinle Alınacakları Kanal İsmi
set opkanal "#Ops"
channel add $opkanal
#Burdan Sonrası için Edit'e Gerek Yok.
bind mode - "*+oa*" op:yonlendir
#kanalda op oldugunda Bu Islemi yap
proc op:yonlendir {nick uhost hand chan mc kimdir} {
global opkanal
putquick "sajoin $kimdir $opkanal"
}
#Yetkili Kişi Op Kanalında mı ? Kontrol Et...
bind time - "* * * * *" time:optara
proc time:optara {min hour day month year} {
global opkanal botnick
foreach kanallar [channels] {
if {$kanallar == $opkanal} { continue }
foreach opcuk [chanlist $kanallar] {
if {[onchan $opcuk $opkanal]} { continue }
if {[isop $opcuk $kanallar] && $opcuk != $botnick} {
putquick "sajoin $opcuk $opkanal"
}
}
}
}
Bu işini görür diye umuyorum, AOP(@) operatörleri için yapılmış normâl kullanıcılara göre düzenlersen veya düzenleyen olur ise, işine yarar..

İyi forumlar.

saywhat 12 Ekim 2013 18:33

Cevap: Useri kanala almak
 
eggdrop tcl komutları/bind türleri arasında "bind part" belirtilen kanalda "part" edildiğinde prosedürü oto tetikleyen bir bind türü de var ki buda tam olarak sizin sorduğunuz gibi bir işe /duruma uygun düşüyor...
-> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

bind satırında belirtilen: #partkanal yerine işlem yapılacak kanal adını giriniz.


Kod:

bind part -|- "#partkanal *" part:knl

proc part:knl {nick uhost hand chan {msg ""}} {
 putquick "sajoin $nick $chan"
return 0
}


ReaLUnReaL 13 Ekim 2013 15:10

Cevap: Useri kanala almak
 
#Userin Kanaldan cikmasini yasaklamak

bind part -|- "#Sohbet *" part:knl

proc part:knl {nick uhost hand chan {msg "#Sohbet Kanalından Çıkış Yapmak Yasaklanmiştır."}} {
putquick "sajoin $nick $chan"
return 0
}





şeklinde tcl yaptım sajoin yetkisi olan botlardan birinin confunna ekledim. ama caliştirmadı. yanliş bişimi var yoksa benmi yanliş anlayıp yanliş yaptım.

saywhat 13 Ekim 2013 16:35

Cevap: Useri kanala almak
 
Kod:

bind part -|- "#Sohbet *" part:knl

proc part:knl {nick uhost hand chan {msg ""}} {
 if {![isbotnick $nick]} {
  putquick "SAJOIN $nick $chan"
  puthelp "privmsg $nick :$chan Kanalından Çıkış Yapmak Yasaklanmiştır."
  return 0
  }
}

kişiye özel mesaj değilde notice olarak gönderilmek isteniyorsa:
Kod:

puthelp "privmsg $nick :$chan Kanalından Çıkış Yapmak Yasaklanmiştır."
satırını:
Kod:

puthelp "notice $nick :$chan Kanalından Çıkış Yapmak Yasaklanmiştır."
olarak değişmelisiniz.

proc satırındaki {msg ""} kısmı çıkan kişinin part mesajını yakalamak için kullanılabilir ancak. kişiye mesaj atmak için değildir..

kodu bir txt editörüne kopyala-yapıştırla alın misal part.tcl gibi bi isim verip kaydedin .(masaüstüne vs..) botunuzun /scripts/ klasörü içine sFtp ile gönderin. botunuzun .conf dosyasına (tercihen alt taraflarında bir satıra.)

source scripts/part.tcl

(script adını .conf'ta girerken harf uyumuna dikkat edin. bot içindekiyle bire bir aynı olmalı .conf'a yazdığınız script ismi)
gibi bir satırla scripti .conf'ta gösterin.

sonra ya kanal üstünde /msg botun-nicki rehash sahip-şifresi

gibi bi komutla yada bota telnet/dcc ile bağlanıp .rehash komutuyla botun kendini yeniden yükleyip yeni ayarları görmesini sağladığınızda ,yeni eklenmiş kod çalışmaya başlar...

ReaLUnReaL 15 Ekim 2013 02:55

Cevap: Useri kanala almak
 
saywhat ilgine tşk ederim.. tcl gayet güzel calişti ama bir sıkıntı ile karşilaştım.. bu tclye muaf host yada ip ekleyebilirmiyiz.

saywhat 15 Ekim 2013 03:34

Cevap: Useri kanala almak
 
bu "muaf tutma" işini yapmanın birden fazla yolu vardır... (ancak kendi fikrimce) en sağlıklı/sağlam yöntemi:
botun kullanıcıyı tanıdığı/bildiği yolla muaf tutmak/kayırmak olabilir.
eggdrop unreal'deki gibi kendi içinde bir access/kullanıcı flag sistemine sahiptir. Şöyleki eggdrop ilk olarak EFnet'te geliştirilmiş/düşünülmüş bir bot,bunun en başlıca nedenide EFnet'in ta kuruluşundan bu yana herhangi bir services kullanmıyor oluşu,kanal içi yönetimin tamamen o kanalın kullanıcılarının bilgi ve becerilerine bırakılmış olması,eggdrop gibi kanal içindeki işlerin yönetimini en iyi şekilde yapabilecek bir botun/yazılımın geliştirilmesine önayak/sebep olmuştur.

bu nedenledir ki eggdrop botu geliştirilirken services'lerin sağladığı/yapabildiği pek çok iş/özellik bota entegre edilmiştir.

kullanıcı seviyeleri/flagları sistemide bunlardan biridir.

burda görebileceğiniz üzere -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] hemen her türde bota erişim/kullanıcı tanımları flaglar yardımıyla bot'un kaynak kodları içinde tanımlanmıştır.

uzun sözün kısası,botunuza bağlanıp (dcc chat yada telnet üzerinden)
.+user kullanıcı (kullanıcı bota tanımlanmış kullanıcı hesap adı gibi düşünülebilir illa nick/rumuz demek değildir.(ancak olsada/eşleşsede daha iyi olabilir.) bu handle" diyede tabir edilir.) şeklinde kullanıcı botun .botunuz.user dosyasına eklenmiş olur.

(kullanıcı eklenirken bu kişiye şifrede verilebilir bota kendini auth etmekte kullanabilir ki bu sayede bot üzerinde bir kanala yada kanallara access'li olarak eklenmiş/tanımlanmışsa bota kendini o kullanıcı tanıttığı anda aynı services'e kendini identify/auth ettiğinizde kayıtlı olduğunuz access'i almanız gibi bot o kişiye ekli access'i verir. ancak zaruri değildir ayrıca sonradanda eklenebilir değiştirilebilinir.) bu komut hakkında botun help/yardım dosyasından bilgi almak için bota bağlıyken .help +user komutu size detaylı yardım içeriğini gösterecektir.

daha sonra bu kullanıcıyı tanıyabilmesi için bota kullanıcının *!ident@*.hostu şeklinde eklenir.. -> .+host kullanıcı *!identim@*.hostumun-bi.kısmı

bu güvenlik için,botun kişiyi diğerlerinden ayırd edebilmesi ,karıştırmaması için gereklidir.(host olurda ilerde değişir bota ekli olandan farklı bir hale gelirse yeni hostuda bu şekilde tanıtabilir,eski hostu .-host kullanıcı *!ident@*.hostu ..şeklinde silebilirsiniz.) yardım içeriği için bota : .help +host


bu şekilde kullanıcı botun user/kullanıcı dosyasına(farklı bir yer tanımlanmamışsa botun ana dizininde olur) kayıt edilir.

bu bota eklenmiş/tanımlanmış kullanıcıya access/flag vermek içinse :
.chattr kullanıcı +flag-flag #kanal yada .chattr kullanıcı global-flag|kanal-flag #kanal .. şeklinde kullanıcıya erişim/seviye eklemiş olursunuz...tüm bunlar botun user/kullanıcı dosyasına kayıt edilir.bot kişi/leri bu şekilde görür tanır.

buna göre kod içinde kullanıcıyı bota ekli flaglarına göre muaf tutabiliriz artık.

Kod:

set globflags "mnf"

set kanalflags "aof"

bind part -|- "#Sohbet *" part:knl

proc part:knl {nick uhost hand chan {msg ""}} {
 if {![isbotnick $nick] || ![matchattr [nick2hand $nick] $::globflags|$::kanalflags $chan]} {
  putquick "SAJOIN $nick $chan"
  puthelp "privmsg $nick :$chan Kanalından Çıkış Yapmak Yasaklanmiştır."
  return 0
  }
}

global-flaglar botun olduğu tüm kanallar üzerindeki kullanıcı'nın haklarını/erişimini temsil eder.kanal flaglarıysa kodun işlediği kanal üzerindeki kullanıcıların haklarını/erişimini gösterir.

ReaLUnReaL 15 Ekim 2013 04:24

Cevap: Useri kanala almak
 
(file "scripts/zorlajoin.tcl" line 7)
invoked from within

şeklinde bir hata alıyorum :S tcl aşşağıdaki gibidir.

Alıntı:

set globflags "OAN"

set kanalflags "OAN"

bind part -|- "#Sohbet *" part:knl

proc part:knl {nick uhost hand chan {msg ""}} {
if {![isbotnick $nick] || ![matchattr [nick2hand $nick] $::globflags|$::kanalflags $chan]} {
putquick "SAJOIN $nick $chan"
puthelp "privmsg $nick :$chan Kanalından Çıkış Yapmak Yasaklanmiştır."
return 0
}
acıkcası sunucudaki oyun botlarını felan sajoin yapmasını istemiyorun. butun botlar oper pass girdiği içi 0AF Kullandım :S

saywhat 15 Ekim 2013 04:57

Cevap: Useri kanala almak
 
eklediğiniz kod aynen bu şekildeyse göze çarpan iki hata var...

birincisi :

kod satırlarının sonlarına baktığınızda toplamda iki açık { ayraç" var ancak sonda kapalı toplamda tek bir "}" olarak eklenmiş ki buda kopyala-yapıştırda hata/eksik yapıldığını gösteriyor.

ikincisi:

bu-> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] dökümandaki kullanıcı flagları içersinde sizin kod içinde gösterdiğiniz gibi "OAN" gibi user flagları listelenmemiş/yok..

yazılımlar/bilgisayarlar siz onlara ne gösterir/tanımlarsanız ancak onu size geri verebilir. bizlerden en büyük eksikleri O ile o arasındaki farkı dahi birinin kodlarla anlatması/tanımlaması olmaksızın anlayamaması/kavrayamamalarıdır. o nedenle :
harf uyumuna (büyük/küçük) dikkat buyurunuz...



aynen şimdi tarif ediceğim şekilde yapın:

set globflags "mnf" ;# m = bot-masteri n=botun sahibi f=friends/dostlar

set kanalflags "oaf" ;# o= kanal opu a=kanalda oto op alanlar f=dostlar

bota bağlanın..

muaf tutmak istediğiniz bot örnek:

botum = nicki

*!bottur@ = identi

*@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].bir-botum = hostu olsun ....

botuma bağlandım (telnet yada dcc chat)

.+user botum <-- kullanıcı olarak eklendi ilk adım.
.+host botum *!bottur@*.bir-botum <-- ident/hostuyla tanımlandı..
.chattr botum +f|+f #Sohbet <-- #Sohbet kanalında ve tüm benim olduğum yerlerde bu adam benim dostumdur....işlem tamamdır...

herkimi/leri muaf tutmak istiyorsanız bu şekilde sırayla yukardaki şekilde işlemleri yapıp botunuza/kullanıcı dosyasına kullanıcıları/muaf tutulacakları tanımlamış olacaksınız...

No_FeaR 15 Kasım 2013 18:44

Cevap: Useri kanala almak
 
Bende Denedim Kodu Fakat Her Hangi Bir İşlem Görünmüyor, Aynı Yani /part yapsa Bile Geri Almıyor User'i Kanala..


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

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk