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/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Güncel Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır (https://www.ircforumlari.net/mirc-scripting-sorunlari/740657-ayni-dosyada-birden-fazla-join-eventi-nasil-calisir.html)

Askeribo 13 Mart 2016 13:46

Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Merhaba arkadaşlar...
Mirc script'imde ekli bir dosya içerisine birden fazla on *:join:#:{ eventi ile başlayan koruma veya uyarı remoteleri eklediğimde sadece dosyanın en başındaki on *:join:#:{ eventi harekete geçiyor, aynı dosya içerisindeki on *:join:#:{ eventi ile başlayan koruma veya uyarı amaçlı yazılan remoteleri okumuyor yani harakete geçmiyor.
Bu on *:join:#:{ eventi ile başlayan birçok koruma veya uyarı remotelerim var, ve ben bunların hepsini sadece birtek dosya içersinde toplamak istiyorum. Bunu nasıl yapabilirim bir kaç örnek ile izah edebilirmisiniz.

Toprak__ 13 Mart 2016 14:27

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

Askeribo Nickli Üyeden Alıntı (Mesaj 1041754411)
Merhaba arkadaşlar...
Mirc script'imde ekli bir dosya içerisine birden fazla on *:join:#:{ eventi ile başlayan koruma veya uyarı remoteleri eklediğimde sadece dosyanın en başındaki on *:join:#:{ eventi harekete geçiyor, aynı dosya içerisindeki on *:join:#:{ eventi ile başlayan koruma veya uyarı amaçlı yazılan remoteleri okumuyor yani harakete geçmiyor.
Bu on *:join:#:{ eventi ile başlayan birçok koruma veya uyarı remotelerim var, ve ben bunların hepsini sadece birtek dosya içersinde toplamak istiyorum. Bunu nasıl yapabilirim bir kaç örnek ile izah edebilirmisiniz.

İlk baştaki join eventi işlemi durduruyor olabilir.
Dilerseniz kodları komple paylaşın düzeltelim.

Askeribo 13 Mart 2016 15:27

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Kod:

on @*:join:#:{
  proxy
  badnick
  badident
}

#Proxy on
alias proxy {
    var %host $gettok($address($nick,5),2,64),2,33)
  if $hfind(proxy_hostLar,%host,1,W).data {
    ban # *!*@ $+ %host | .kick # $nick 4 Proxy
  }
}
#Proxy end


#BadNick on
alias badnick {
  if $hfind(k_nickler,$nick,1,W).data {
    ban # $nick $+ ! | .kick # $nick 4 Bad Nick
  }
}
#BadNick end





#Badident on
alias badident {
    var %ident $gettok($gettok($address($nick,5),2,33),1,64)
  if $hfind(k_identler,%ident,1,W).data {
    ban # *! $+ %ident | .kick # $nick 4 Bad Ident
  }
}
#Badident end

Daha önce belirttiğim gibi aynı dosya içerisine on @*:join:#:{ eventiyle başlayan korumaları alt alta yazınca en baştaki hariç diğerlerini okumuyor. Bende kendimce bu kopyaladığım kodları yazdım.
Bu kopyalamış olduğum kodlarda gayet güzel görevini yapıyor, Lakin bu
#Proxy off
#BadNick off
#Badident off
parametreleri off yani kapalı olduğunda kanallara her giren nicklerde ekranda şu yazılar çıkıyor
[15:00] PROXY Geçersiz Bir Komut!
[15:00] BADNICK Geçersiz Bir Komut!
[15:00] BADIDENT Geçersiz Bir Komut!

#Proxy on
#BadNick on
#Badident on
parametreleri on yani açık olunca hiç bir sıkıntı olmuyor uyarıda vermiyor.
[15:00] PROXY Geçersiz Bir Komut!
[15:00] BADNICK Geçersiz Bir Komut!
[15:00] BADIDENT Geçersiz Bir Komut! bu uyarılar sayfayı kaplıyor bundan nasıl kurtulurum acaba nerede bir hata yapıyorum.

Feragat 13 Mart 2016 15:51

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Bunu, aynı anda bir insana 10 kişinin seslenmesi gibi düşün, ya çok az anlarsın ya da hiç anlamazsın.
Bir sayfada pek çok aynı event olması da buna benzer.
Ya tek event altında koşullarla birleştireceksin, ya da ayrı remote sayfalarında işlem yaptırmayı deneyeceksin.

Askeribo 13 Mart 2016 16:01

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

Feragat Nickli Üyeden Alıntı (Mesaj 1041754458)
Bunu, aynı anda bir insana 10 kişinin seslenmesi gibi düşün, ya çok az anlarsın ya da hiç anlamazsın.
Bir sayfada pek çok aynı event olması da buna benzer.
Ya tek event altında koşullarla birleştireceksin, ya da ayrı remote sayfalarında işlem yaptırmayı deneyeceksin.

Tek event altında gerçekleştirmek istiyorum zaten, Lakin hata mesajları çıkıyor. Tek event altında koşullarla birleştireceksiniz demişsiniz bunu nasıl yapabilirim bir örnek ile gösterebilirmisiniz. Teşekkür ederim.

Feragat 13 Mart 2016 19:19

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
[15:00] PROXY Geçersiz Bir Komut!
[15:00] BADNICK Geçersiz Bir Komut!
[15:00] BADIDENT Geçersiz Bir Komut!


Üstteki hataları vermesinin sebebi, kapalı olan #group arasındaki kodları çalıştıramamasıdır.

Örneğin

Kod:

on *:join:#:{
/komut
/komut
/komut
}

#group off

alias komut {
kodlar
}

alias komut {
kodlar
}

#group end

Join eventı, aliasları çalıştırmayı denerken, böyle bir komut yoktur hatası alır, çünkü #group off olduğu için komutları yoksayar.

En sağlıklısı ayrı sayfalara yapman.

Tek event içinde olması için kodların hepsini incelemek gerek, ne derece sağlıklı çalışır bilemem.

Askeribo 13 Mart 2016 20:40

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
ilgin ve alakandan dolayı çok teşekkür ederim Feragat, istediğim şekilde olsaydı eğer bir event için düzünelerce ayrı ayrı dosya oluşturmama gerek kaLmicaktı. Neyse sağLık oLsun.

SuLh 13 Mart 2016 21:09

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Eğer aliaslarda group kullanımı yaptıysan, bu join eventinde sıkıntı olacaktır. Bunun için $group tanımlayıcısını kullanman gerekebilir. Veya join eventini de #group içine alman gerekir.

Aynı zamanda aliaslar $nick tanımlayıcısını tanımayacaktır. $nick tanımlayıcısı sadece -senin koduna göre- JOIN eventinin içinde geçerlidir. Bunun için ya Aliasda $1 tanımlayıcısı kullanacaksın, ya da join eventi içerisinde $nick tanımlayıcısını SET ile değişkene sabitleyeceksin.

Askeribo 13 Mart 2016 22:37

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

SuLh Nickli Üyeden Alıntı (Mesaj 1041754596)
Eğer aliaslarda group kullanımı yaptıysan, bu join eventinde sıkıntı olacaktır. Bunun için $group tanımlayıcısını kullanman gerekebilir. Veya join eventini de #group içine alman gerekir.

Aynı zamanda aliaslar $nick tanımlayıcısını tanımayacaktır. $nick tanımlayıcısı sadece -senin koduna göre- JOIN eventinin içinde geçerlidir. Bunun için ya Aliasda $1 tanımlayıcısı kullanacaksın, ya da join eventi içerisinde $nick tanımlayıcısını SET ile değişkene sabitleyeceksin.

Merhaba SuLh;
Evet aliaslarda group kullanımı yaptım, aliasın devamında gelen remoteyi aktif veya deaktif etmek için.
Join eventini group içine alırsam grouplardan 2 tanasinin açık oLması haLinde iLk baştaki join eventi harekete geçiyor sadece, diğerleri hareke geçmiyor. Neden illa sadece bir dosyada toplamak istediğime gelince aynı koruma veya bilgilendirme remotelerini farklı addonlarda kullanıyor olmamdır. join eventi ile başlayıp 2 satırlık remotelere tek tek dosya açmaktansa hepsini bir dosyada halletmek istiyorum. GünLerdir uğraşıyorum herşeyi denedim olmuyor bir türLü takıntıLı biri oLduğum içinde bu işi çözmeden rahata kavuşmam söz konusu oLmicak.

SuLh 13 Mart 2016 22:53

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Merhaba @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] , benim kasteddiğim şuydu.

Kod:

#deneme off
alias selam { echo -a selam }
#deneme end

#deneme2 on
alias selam2 { echo -a selam2 }
#deneme2 end

on *:join:#: {
  if $group(#deneme) = on { selam }
  if $group(#deneme2) = on { selam2 }
}

$group(#groupadi) şeklinde bir kullanım bize, aktif veya deaktif durumunu verir. Yukarıda ki kodda #deneme group olayının aktif/deaktif durumuna göre işlenmiş bir alias var. Umarım açıklayıcı olmuştur

Askeribo 13 Mart 2016 23:35

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
SevgiLi SuLh iLgin ve aLakandan doLayı çok teşekkür ederim.
Sayende amacıma uLaştım ALLah senden bin kere razı oLsun. Kod çok süper oLdu hiç bir hata vermiyor. ELine emeğine biLgine sağLık. TeşekkürLer...

Askeribo 14 Mart 2016 23:27

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
SuLh; hocam size birşey daha sormak istiyorum. Bu; on *:join:#:{ eventi çok güzeL oLdu da, aynı şekiLde on *:text:*:#:{ eventine uyguLuyorum koruma remoteLerini yine aLias a okutuyorum ama on *:text:*:#:{ eventi aLiası okumuyor. Yani aLias sıkıntı yaratıyor bir fikriniz varmı acaba...

SuLh 14 Mart 2016 23:36

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Merhaba @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] , TEXT eventi kanala/özele yazı yazıldığı anda tetiklenen eventtir. Koşul koymadığın sürece her yazı da tetiklenecektir. Hata verip/vermemesi eventi nasıl kullandığına bağlı, paylaşırsan daha net fikrimiz olabilir.

Askeribo 14 Mart 2016 23:56

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Kod:

#kufur on
alias o-kufur {
  if $hfind(k_keLimeLer,$1-,1,W).data {
    ban # $nick $+ ! | .kick # $nick 4 Küfür Yasak
  }
}
#kufur end


on @*:text:*:#:{
  if $group(#kufur) = on { o-kufur }
}

Kod böyLe...

SuLh 15 Mart 2016 00:02

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

Askeribo Nickli Üyeden Alıntı (Mesaj 1041755048)
Kod:

#kufur on
alias o-kufur {
  if $hfind(k_keLimeLer,$1-,1,W).data {
    ban # $nick $+ ! | .kick # $nick 4 Küfür Yasak
  }
}
#kufur end


on @*:text:*:#:{
  if $group(#kufur) = on { o-kufur }
}

Kod böyLe...

Öncelikle daha önce söylediğim gibi $tanımlayıcılar kullandığın event dışına çıkmazlar.

Yani aliasın hata vermesi normal, çünkü $nick $1- # gibi kullanımları görmüyor. Bunun için şöyle düzenleme yapman gerekiyor.

Kod:

#kufur on
alias o-kufur {
  if $hfind(k_keLimeLer,%data,1,W).data {
    ban %kchan %knick | .kick %kchan %knick 4 Küfür Yasak
  }
unset %knick
unset %kchan
unset %data
}
#kufur end


on @*:text:*:#:{
  if $group(#kufur) = on { set %knick $nick | set %kchan $chan | set %data $1- | o-kufur }
}


Askeribo 15 Mart 2016 00:26

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Tamamdır Hocam %data parametresini girmeyi unutmuşum iLgi aLaka ve emeğine sağLık ALLah razı oLsun. Teşekkür ederim.

Askeribo 11 Nisan 2016 22:50

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
SeLamün ALeyküm; SuLh hocam farkLı başLık aLtında konu açmaktansa buradan size birşey sormak istiyorum. Mirc Script'in Servere bağLandığında kanaLLara girmesiyLe birLikte açıLan Nick Listesini, Servere bağLanmadan hangi komutLa açabiLirim, böyLe birşey söz konusu oLabiLirmi acaba ?

Askeribo 13 Nisan 2016 01:55

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Bu soruma cevap verebiLecek başka biriLeri yokmu acaba...

SuLh 15 Nisan 2016 23:36

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Merhaba @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] böyle bir şey var mı bilmiyorum, dialog veya dll ile olabilir.

Askeribo 16 Nisan 2016 07:29

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
EyvaLLah tşk. ederim hocam. BöyLe birşey yoksa haLim harap vaLLa...

Feragat 16 Nisan 2016 13:55

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Sunucuya bağlanmadan nicklist i neden açmak istiyorsun. Alternatif yollar olabilir diye soruyorum.

uFuK 16 Nisan 2016 17:20

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

Askeribo Nickli Üyeden Alıntı (Mesaj 1041767193)
EyvaLLah tşk. ederim hocam. BöyLe birşey yoksa haLim harap vaLLa...


Sunucuya Bağlanmadan Sunucuda Bulunan Nick Listesini Alamazsiniz.

Zira Nick Listesini Siz Sunucuya Bağlandiğiniz Anda Server Size Gönderir, mIRC Onları İşler ve Sağ Tarafta Görülür.

Server İle Bir Bağlantı Kurulmaksizin Hiçbir Şekilde Nick Listesi Alınamaz. Fakat Siz Aktif Ekraninizda Bir Servera Bağlıyken, Alias Araciliğiyla Bir Socket Kodu Çalıştırıp Başka Bir Sunucuya Arka Planda Bağlanip Nick Listesini Alabilirsiniz.

Bunu Yapabilmek İçin Socket Bilgisi Şart.

IrCbaStarD 16 Nisan 2016 22:52

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

Askeribo Nickli Üyeden Alıntı (Mesaj 1041765639)
SeLamün ALeyküm; SuLh hocam farkLı başLık aLtında konu açmaktansa buradan size birşey sormak istiyorum. Mirc Script'in Servere bağLandığında kanaLLara girmesiyLe birLikte açıLan Nick Listesini, Servere bağLanmadan hangi komutLa açabiLirim, böyLe birşey söz konusu oLabiLirmi acaba ?

window -lN @Pencere

N = listin boyutudur. mesela; /window -l20 @Pencere yaparsan nicklistin daha büyük boyutlarda cıktıgını görürsün, sayi ile kücültüp büyütebilirsin. Aline -l @Pencere Veri. olarakda nick list'in icine veri yazdirabilirsin. Ufugunda dedigi gibi socket vs. bağlamalisin nick listesi icin, ondan sonrasida ne yapicagina kalmistir. :)

Askeribo 17 Nisan 2016 01:15

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
İLgi ve aLakanız için Tşk. ederim arkadaşLar. ÖyLe çok biLgim oLduğunu söyLeyemem, Lakin kendimce Sock Script yapayım demiştim herşey tamamda bu nick List işi oLmuyor bir türLü, açık kodu varsa yada ne biLiim scriptte normaL oLarak harici açabiLirmiyiz diye düşünmüştüm. NormaL diaLog oLarak yapıyorum NickListi Lakin bir dünya kafa karıştıran oLmayan yapamadığım yerLer oLduğu için varsa bir yoLu onu deneyeyim demiştim.

IrCbaStarD 17 Nisan 2016 20:10

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Su yolu izleyebilirsin; Socketi server'a bağlatip. Names'den nickleri prefix'leri cekip @Pencere acip oraya bi while döngüsü ile nick listesini yerlestirebilirsin. @Pencerede nick listesine ne yapicagin tamamen sana kalmis :)

Askeribo 18 Nisan 2016 03:21

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
if $2 == JOIN {
var %k $Remove($3,:)
var %n $gettok($gettok($1,1,33),1,58) , %host $gettok($1,2,33)
window -el15 @ $+ %k
aline -hp @ $+ %k 10 $+ $timestamp *** Giriş: %n ( $+ %host $+ )
aline -l @ $+ %k 0 $gettok($gettok($1,1,33),1,58) }
}

IrCbaStarD window -e [MENTION=77553]kanal[/MENTION] komutuyLa bot'um kanaL(Lara) giriyordu zaten, nick Listesi için senin önerdiğin yöntemi uyguLadım.
Yani window -el15 [MENTION=77553]kanal[/MENTION] bu komutLa hem [MENTION=77553]kanal[/MENTION] pencereLerim hemde nick Listem açıLıyor,
NickLer servere bağLandığımda Nick Listesindeki yerLerini aLıyor, buraya kadar hiçbir sıkıntı yok. Lakin
KanaLLardaki User modeLeri değiştiğinde Nick Listesindeki nickLer girdiği gibi öyLe kaLıyor, Nick başLarına veriLen
modeLeri @ %h +v vs. bunLarı uyguLatmak istiyorum oLmuyor.

if $2 == MODE {
if *MODE #* iswm $strip($1-) {
var %k $3
var %n $gettok($gettok($1,1,33),1,58)
var %y = 1
while $window(@ $+ %k,%y) { aline -l @ $+ %k -o %y $5 | Inc %y }
window -e @ $+ %k
aline -hp @ $+ %k 3 $+ $timestamp *** %n mod değiştirdi: $4- }
}

Bahsettiğim Mode aLan nickLerin başLarına aLdıkLarı modeyi böyLe değiştirmeye kaLkıyorum oLmuyor.
while döngüsünü normaL diaLogLarda uyguLayabiLiyorum Lakin bu [MENTION=77553]kanal[/MENTION] pencresinde bir türLü tutturamadım.
Bana yardımcı oLurmusun bu konu hakkında. Yani Modesi değişen yada Nick'i değişen birinin NickListesinde de değiştirmek istiyorum.
Umarım açıkLayabiLmişimdir sorunumu...

IrCbaStarD 18 Nisan 2016 09:31

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
window -e @pencere, bu editbox koymana yarar window pencereye :) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] dahada ham bilgi istiyorum diyorsan mirc.chm'i inceleyebilirsin adrics*line komutlarini test ederek kendin bulabilirsin.

Kod:

alias bb if (!$sock(b)) sockopen b irc.trsohbet.com 6667
alias nk return $remove($gettok($1,1,33),:)
on *:sockopen:b:{
  var %s sockwrite -nt $sockname
  %s NICK $+(bot,$r(0,10000000000))
  %s USER $+(Ident,$chr(32),*,$chr(32),*,$chr(32),:,my bot)
}
on *:SOCKREAD:b:{
  var %b | sockread -f %b | tokenize 32 %b
  $iif(!$window(@b),window -zel20 @b)
  if ($regex($1,PING)) sockwrite -n $sockname PONG $2
  if $regex($2-,/privmsg .+ \:version/i) { sockwrite -n $sockname notice $nk($1) $+(:,$chr(1),VERSION mIRC v6.34 Khaled Mardam-Bey,$chr(1)) }
  if $regex(353,$2) {
    if $5 = #sohbet {
      var %s 1, %f $right($6-,-1), %q $numtok(%f,32) | while %s <= %q {
        if $regex($gettok(%f,%s,32),@) { set %op $addtok(%op,$gettok(%f,%s,32),32)  }
        elseif $regex($gettok(%f,%s,32),&) { set %sop $addtok(%sop,$gettok(%f,%s,32),32)  }
        elseif $regex($gettok(%f,%s,32),~) {  set %fo $addtok(%fo,$gettok(%f,%s,32),32)  }
        elseif $regex($gettok(%f,%s,32),%) { set %hop $addtok(%hop,$gettok(%f,%s,32),32)  }
        elseif $regex($gettok(%f,%s,32),\+) { set %voice $addtok(%voice,$gettok(%f,%s,32),32)  }
        else { hadd -m user $gettok(%f,%s,32) $me }
        inc %s
      }
    }
  }
  if $2 = mode && $istok(+v +o +oa +a +q +oq,$4,32) && $3 = #Sohbet { yenile $3 }
  if $2 $4 = 366 #sohbet { .nick-list-@b }
  if $2 = nick { yenile #sohbet }
  if $2 = privmsg && $3 = #sohbet { echo -t @b $+(<,$nk($1),>) $right($4-,-1)  }
}
alias yenile { if ($hget(user)) hfree user | unset %fo %op %sop %hop %voice | sockwrite -n b names $1 }
alias nick-list-@b {
  dline -l @b 1-9999
  var %s 1, %f $numtok(%fo,32) | while %s <= %f { aline -l @b 7 $+ $gettok(%fo,%s,32) | inc %s }
  var %s 1, %f $numtok(%sop,32) | while %s <= %f { aline -l @b 12 $+  $gettok(%sop,%s,32) | inc %s }
  var %s 1, %f $numtok(%op,32) | while %s <= %f { aline -l @b 4 $+  $gettok(%op,%s,32) | inc %s }
  var %s 1, %f $numtok(%hop,32) | while %s <= %f { aline -l @b 13 $+  $gettok(%hop,%s,32) | inc %s }
  var %s 1, %f $numtok(%voice,32) | while %s <= %f { aline -l @b 2 $+ $gettok(%voice,%s,32) | inc %s }
  ;var %s 1, %f $hget(user,0).item | while %s <= %f { aline -l @b $hget(user,%s).item | inc %s }
}


$window pencerede bildigim kadariyla $nick(#,$me) gibi bi identifier yok veya ben bilmiyorum varsada arastirdim fakat bulamadim olsaydi eğer rline ile cok basitti komut fakat suan icin anca nick listesini yenilemekden baska birsey gelmedi aklima. Bunun üzerinden devam edebilirsin, userlerin nicklerini almadim almak istersen " ;var %s 1, %f $hget(user,0).item | while %s <= %f { aline -l @b $hget(user,%s).item | inc %s }" önündeki ";" kaldirman yeterli olucak. Bu arada nickler alfabetik siraya göre değil, onun icin filter kullanabilirsin..

Askeribo 08 Mayıs 2016 09:29

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
IrCbaStarD hocam; bu fiLter komutunu nerede ve nasıL uyguLicamki kanaLa giren nickLer Nick Listesindeki yerini aLfabetik sıraya göre aLsın. MeseLa bu kodu; kodun neresine nasıL yazıcam.
aline -l @b $hget(user,%s).item Yardımcı oLursananız sevinirim.

IrCbaStarD 08 Mayıs 2016 17:43

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Farkli bi alias olusturup nickleri text'e yazdirip oradan düzenleme yapmalisin.

Askeribo 08 Mayıs 2016 23:23

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
YönLendirdiğin Linkteki konuyu 100 kere okumuşumdur hocam, Lakin benim istediğim işLem türü bu konuda yok. YapıLabiLecek her iŞlem için ayrı örnekLer veriLmiş ama ben istediğimi buLamadım. He sen ne istiyorsun diye sorararsanız, ben nickLeri txt dosyasına vs. bir yere yazdırmadan direkt nickListe aLfabetik sıraya göre çekmek istiyorum. NickLeri txt dosyasına yazdırıp o şekiLde denedim sorun yok Lakin ben bi işi doLayLı yönden değiLde en kestirme yoLdan haLLetmenin peşindeyim. Yokmu bu işin bir çözümü txt dosyasına yazdırmadan yapmanın yoLu...

Feragat 08 Mayıs 2016 23:42

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
.txt yerine "Gizli Pencere" ye de yazdırabilirsin. Bir gizli pencere oluşturup içine filter ile verileri atar, sonra o verileri tekrar dilediğin yere yazdırırsın. /window ile pencere oluştururken /window -parametreleri ile de pencereyi manipüle edebilirsin.
Şöyle düşün, .txt yerine bir gizli pencere. Tabi deneyip görmek gerek. Uzun zaman önce böyle bir şey denemiştim, o yüzden sana da önerdim.

Ayrıca .txt veya bir dosyaya yazdırmak istersen, mIRC'in üst versionlarında (7.42 ve üzeri)
Kod:

savebuf -l #kanal dosya.txt
komutuyla, belirttiğin kanal listesini .txt dosyasına olduğu gibi yani alfabetik olarak yazdırabilirsin. Belki ileride işine yarar.

Kolay gelsin.

Askeribo 09 Mayıs 2016 00:51

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Hocam sizin önerdiğiniz yoL çok doLambaçLı bir yoL, çünki kanaLLarda sürekLi Nick Listesi değişeceği için join, part, nick değişimi kicki, user modesi vs. bunLarı göz önünde buLundurduğun zaman script yine kasacak. Benim gayem bu sock scripti kasmasın çok daha hızLı oLsun diye böyLe bir çaLışma yapmak istememdir. VaLLa bu işLerden sizLerin kadar biLgim oLmasada baya bi yoL kat ettim, Forumdaki konuLarı inceLedim, deneme yanıLma yöntemiyLe kendi işimi tamamen kendim haLLetmeye çaLışıyorumda bu fiLter muhabbeti canımı sıkmaya başLadı içinden çıkamadığım tek konu şuan bu. Neymiş arkadaş bu fiLter komutu ne zor şeymiş yerLi yabancı bütün ırc forum siteLerini aLtını üstüne getirdim buLamadım aradığım cevabı. Şimdi bu bahsettiğim yöntemLe ben bu işi yapamayacak mıyım Hocam...?

IrCbaStarD 09 Mayıs 2016 18:49

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Alıntı:

Askeribo Nickli Üyeden Alıntı (Mesaj 1041775917)
Hocam sizin önerdiğiniz yoL çok doLambaçLı bir yoL, çünki kanaLLarda sürekLi Nick Listesi değişeceği için join, part, nick değişimi kicki, user modesi vs. bunLarı göz önünde buLundurduğun zaman script yine kasacak. Benim gayem bu sock scripti kasmasın çok daha hızLı oLsun diye böyLe bir çaLışma yapmak istememdir. VaLLa bu işLerden sizLerin kadar biLgim oLmasada baya bi yoL kat ettim, Forumdaki konuLarı inceLedim, deneme yanıLma yöntemiyLe kendi işimi tamamen kendim haLLetmeye çaLışıyorumda bu fiLter muhabbeti canımı sıkmaya başLadı içinden çıkamadığım tek konu şuan bu. Neymiş arkadaş bu fiLter komutu ne zor şeymiş yerLi yabancı bütün ırc forum siteLerini aLtını üstüne getirdim buLamadım aradığım cevabı. Şimdi bu bahsettiğim yöntemLe ben bu işi yapamayacak mıyım Hocam...?

Düz yoldan bunu zaten yapamazsin anca dolambaçli yollara basvurmalisin, @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] in dedigi komut 7.42 üzerinde var ama kanalda olmalisin. Socket icin gecersiz; suanda aklimdaki yol text'e yazdirip nickleri tekrar oradan islem yaptirtmak bu is seni zaten kasicaktir biraz. Filter'i incelersen bulabilirsin, biraz ufkunu acmalisin. :) Alfabetik siraya anca öyle sokabilirsin, belki baska yollarda vardir ama aklima gelen filter. :)

Izleyecegin yol: 353 names'de hadd -m user'leri ya direk orada text'e yazdiricaksin yada orasi bittikden sonra bi alias hazirlayip olan nickleri text'e yazdiricaksin. Text'e uyguluyacagin komut;
Kod:

//window -h @a | /filter -fwt 1 32 a.txt @a
Ondan sonra nickleri yerlestiren alias'a gelip $line identifier'ini kullanarak aline ile oraya aktarmak sirasiyla aktarabilirsin o sekilde.

Feragat 09 Mayıs 2016 19:04

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Ya savebuf u sadece listeyi kısa yoldan alabilmen için önerdim socket için değil, ama sercanında söylediği gibi en hafif yoldan yapmalısın. Ayrıca filterin neyini anlayamadın. Anlamadığın noktaları yaz yardımcı olalım. Ben gece 1 gibi geçecem eve cepteyim şuanda da, anlaşılır örnekler vermek isterdim ama vakit yok. Yinede fırsat olursa yazarım.

Askeribo 10 Mayıs 2016 00:32

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
Hocam bu fiLter kodu sadece bununLamı sınırLı, yani iLLa bir txt yada farkLı uzantıLı bir dosyaya yazdırmak, yada dosyadan okutarak mı oLuyor. Neden sockete geLen herhangi bir biLgiyi direkt oLarak işLeyemiyorum. Örneğin bağLı buLunduğum serverın herhangi bir kanaLındayım, kanaLa bir Nick giriş yaptı yada O nick'e mode veriLdi diyeLim ve bende bu değişime uğrayan nick'i, nickListesinde de aLdığı modeye göre tekrar işLem yaparak aLdığı modeyLe birLikte NickListesinde yer veriyorum. Fakat ben istiyorum ki NickLer, NickListesindeki yerini aLfabetik sıraya göre aLsın diyorum. Bu işLemi neden txt dosyasına yazdırıp, ondan sonra tekrar o yazdırdığım dosyadan kanaL nickListesi yazdırmam gerekiyor bunun daha koLay ve basit bir yöntemi yokmu. kanaLLarda sürekLi giriş çıkış, mode değişimi, nick değişimi, kicki vs. durumLar oLuyor, bu saydığım her işLem ardından bunLarı sürekLi oLarak dosyaya yazıp iLgiLi yerLere aktarması scripti ister istemez kasacak sizcede öyLe değiLmi. Yani benim anLadığım bu işLemi fiLter komutuyLa yapamicam anLaşıLan. Bu fiLter komutu iLe oLmayacak ise başka farkLı bir yöntemi vs. komutu, kodu yokmudur bu işin. sizLer bu işLerin sürekLi içinde oLduğunuz için daha iyi biLirsiniz, bana fiLter komutu öneriLdi ve onun üzerinde çaLışma yaptım oLmadı ve sizde yaptığımın ve biLdiğimin üzerinde farkLı bir yoL önermediniz. Bu fiLter komutunu anLamadım ve canımı sıkmaya başLadı dememin sebebi budur.

IrCbaStarD 10 Mayıs 2016 12:56

Cevap: Aynı dosyada birden fazla on *:join:#:{ eventi nasıl çalışır
 
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Ne yaparsan yap mirc'in kanaldaki nicklist'i kadar verim alamicaksin mirc'in kasmamasini istiyorsan 6.0 6.1 6.2 - 6.21 versionlari arasinda bi version dene. Tabi bi kac identifier calismicaktir bazi sorunlar olucaktir. 6.21 üstü exeler daha fazla kod satirindan olustuğu(Eski versionlardaki hatalar düzeltilip, yeni fonksionlar eklendigi) icin belirli bi islemden sonra kasma yapiyor lakin diğerleri kadar seni zorlamiyor kod yazarken.


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

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