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/)
-   -   away scan (https://www.ircforumlari.net/mirc-scripting-sorunlari/173390-away-scan.html)

QkLa 21 Ocak 2009 01:42

away scan
 
S.a

elimdeki /awayscan seklinde calisan bu code'yi bot'a ekleyip yarim saatte bir oto awayscan yapmasini ve neticesini benim belirledigim bir kanala msg atmasini saglayabilirmiyiz..

#awayscan on
alias awayscan {
var %chan
if ($hget(awayscan)) { hfree awayscan }
if ((!$1) && ($active !ischan)) { echo -a - | echo -a * /awayscan: you are not on a channel | echo -a - | halt }
if ($1) { %chan = $1 }
else { %chan = $active }
hmake awayscan $nick(%chan,0)
hadd awayscan chan %chan
hadd awayscan scan 1
hadd awayscan away 0
.who $hget(awayscan,chan)
echo -a Awayscan in %chan 
}
raw 352:*:{
if (($hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
if ($left($7,1) == G) {
hinc awayscan away 1
if (!$hget(awayscan,names)) { hadd awayscan names $6 }
else {
var %names = $hget(awayscan,names)
hadd awayscan names $+(%names,$chr(32),$6)
}
}
haltdef
}
}
raw 315:*:{
if (($hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
var %away
echo -a Totally found $+(,$hget(awayscan,away),) away users
if ($hget(awayscan,away) > 0) {
%away = $hget(awayscan,names)
echo -a Away Users: %away
}
hfree awayscan
echo -a End of awayscan
haltdef
}
}
#awayscan end

AzuLa 21 Ocak 2009 02:06

Cevap: away scan
 
Doğruluğundan tam emin olmamakla beraber;

PHP- Kodu:

on *:connect: {
  .
timer 0 1800 /awayscan
}

#awayscan on
alias awayscan {
  var %
chan
  
if ($hget(awayscan)) { hfree awayscan }
  if ((!$
1) && ($active !ischan)) { msg $chan(#AzuLa) - | msg $chan(#AzuLa) * /awayscan: you are not on a channel | msg $chan(#AzuLa) - | halt }
  
if ($1) { %chan = $}
  else { %
chan $active }
  
hmake awayscan $nick(%chan,0)
  
hadd awayscan chan %chan
  hadd awayscan scan 1
  hadd awayscan away 0
  
.who $hget(awayscan,chan)
  
msg $chan(#AzuLa) Awayscan in %chan 
}
raw 352:*:{
  if ((
$hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
    if (
$left($7,1) == G) {
      
hinc awayscan away 1
      
if (!$hget(awayscan,names)) { hadd awayscan names $}
      else {
        var %
names $hget(awayscan,names)
        
hadd awayscan names $+(%names,$chr(32),$6)
      }
    }
    
haltdef
  
}
}
raw 315:*:{
  if ((
$hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
    var %
away
    msg $chan
(#AzuLa) Totally found $+(,$hget(awayscan,away),) away users
    
if ($hget(awayscan,away) > 0) {
      %
away $hget(awayscan,names)
      
msg $chan(#AzuLa) Away Users: %away
    
}
    
hfree awayscan
    msg $chan
(#AzuLa) End of awayscan
    
haltdef
  
}
}
#awayscan end 

connect eventine timer koydum; 30 dakikada bir /awayscan taraması yapacak.
codda echo -a olan yerleri msg $chan(#AzuLa) olarak değiştirdim. sonucları #AzuLa kanalına yansıtacak. kodu 15 saniyede bir olarak denedim bende calıstı. Kendi belirlediğiniz knala gitmesi için #AzuLa kısımlarını #kanalım şeklinde değiştirmeniz yeterli olacaktır.

Fakat bot komutları aynı olur mu bilemiyorum.



calıstıgına dair;

Alıntı:

[01:49] <@aLias> Awayscan in #Radyo
[01:49] <@aLias> Totally found 1 away users
[01:49] <@aLias> Away Users: aLias
[01:49] <@aLias> End of awayscan
[01:50] <@aLias> -
[01:50] <@aLias> * /awayscan: you are not on a channel
[01:50] <@aLias> -
[01:50] <@aLias> -
[01:50] <@aLias> * /awayscan: you are not on a channel
[01:50] <@aLias> -
[01:50] <@aLias> Awayscan in #AzuLa
[01:50] <@aLias> Totally found 1 away users
[01:50] <@aLias> Away Users: aLias
[01:50] <@aLias> End of awayscan
log buradadır.

herhangi bir sorun ile karsılasırsanız yardımcı olmaya calısırım.

Difuzyon 21 Ocak 2009 02:13

Cevap: away scan
 
Kod:

#awayscan on
alias awayscan {
  var %chan
  if ($hget(awayscan)) { hfree awayscan }
  if ((!$1) && ($active !ischan)) { msg #KANAL - | msg #KANAL * /awayscan: you are not on a channel(Hata) | msg #KANAL - | halt }
  if ($1) { %chan = $1 }
  else { %chan = $active }
  hmake awayscan $nick(%chan,0)
  hadd awayscan chan %chan
  hadd awayscan scan 1
  hadd awayscan away 0
  .who $hget(awayscan,chan)
  msg #KANAL Awayscan in %chan 
}
raw 352:*:{
  if (($hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
    if ($left($7,1) == G) {
      hinc awayscan away 1
      if (!$hget(awayscan,names)) { hadd awayscan names $6 }
      else {
        var %names = $hget(awayscan,names)
        hadd awayscan names $+(%names,$chr(32),$6)
      }
    }
    haltdef
  }
}
raw 315:*:{
  if (($hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
    var %away
    msg #KANAL Totally found $+(,$hget(awayscan,away),) away users
    if ($hget(awayscan,away) > 0) {
      %away = $hget(awayscan,names)
      msg #KANAL Away Users: %away
    }
    hfree awayscan
    msg #KANAL End of awayscan
    haltdef
  }
}
#awayscan end
on *:connect:{
  if $group(#awayscan) == on {
    .timerawayss 0 1790 window -a #KontrolEdilecekKanalİsmi
    .timerscanss 0 1800 awayscan #KontrolEdilecekKanalİsmi
  }
}

#KontrolEdilecekKanalİsmi yerine away kontrolünü yapmak istediğiniz kanalın ismini, #KANAL yerine ise mesajların gönderileceği kanalın ismini yazmalısınız.(Botun #kontroledilecekkanalismi'nde bulunma ve o anki aktif ekranın o kanal olma zorunluluğu var.)

QkLa 21 Ocak 2009 02:34

Cevap: away scan
 
hata benden kaynaklaniyor herhalde.bes alti kere denedim /awayscan yazmadan taramiyor.bunu !awayscan seklinde oplar kullanacak sekilde editlesek.komut uygulandiktan sonra tarasa, /1awayscan uygulanmadigi takdirde de kendisi yarim saatte bir tarasa mumkun mu.

AzuLa 21 Ocak 2009 02:40

Cevap: away scan
 
benim kodumda awayscan'ı start eventine koymuşum; sonradan farkedip düzelttim, eğer onu kullandıysanız o yüzden kaynaklanıyor olabilir. bu arada kodu ekledikten sonra tekrar server'a baglanmayı deneyiniz, connect eventine baglı oldugu için baglantıdan sonra aktiflesmesi gerekiyor.

QkLa 21 Ocak 2009 02:59

Cevap: away scan
 
code gayet guzel calisiyor.ama /awayscan yapabilmesi icin aktif pencerede olmasi gerekir.bunu bot'a ekleyecegim icin.aktif penceresi surekli degisecektir.bu durumda da soyle bir uyari gelecektir kanala..

* /awayscan: you are not on a channel

buda hos gorunmeyecektir.buna bir cozum bulunamaz mi.yeterince ilgilendiniz zaten tesekkur ederim.bot scani diyelimki 'a kanalinda gerceklestirecek.ama aktif penceresi #b kanali.bot'un aktif penceresini #a kanalina almak icin /awayscan'dan once bir sey yapilamaz mi..

AzuLa 21 Ocak 2009 08:52

Cevap: away scan
 
kodu bir deneyiniz. eğer sorun çıkarsa başlık altında belirtiniz.

PHP- Kodu:

#awayscan off
alias awayscan {
  var %
chan
  
if ($hget(awayscan)) { hfree awayscan }
  if ((!$
1) && ($active !ischan)) { msg #AzuLa - | msg #AzuLa * /awayscan: you are not on a channel(Hata) | msg #AzuLa - | halt }
  
if ($1) { %chan = $}
  else { %
chan $active }
  
hmake awayscan $nick(%chan,0)
  
hadd awayscan chan %chan
  hadd awayscan scan 1
  hadd awayscan away 0
  
.who $hget(awayscan,chan)
  
msg #AzuLa Awayscan in %chan 
}
raw 352:*:{
  if ((
$hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
    if (
$left($7,1) == G) {
      
hinc awayscan away 1
      
if (!$hget(awayscan,names)) { hadd awayscan names $}
      else {
        var %
names $hget(awayscan,names)
        
hadd awayscan names $+(%names,$chr(32),$6)
      }
    }
    
haltdef
  
}
}
raw 315:*:{
  if ((
$hget(awayscan,scan) == 1) && ($hget(awayscan,chan) == $2)) {
    var %
away
    msg 
#AzuLa Totally found $+(,$hget(awayscan,away),) away users
    
if ($hget(awayscan,away) > 0) {
      %
away $hget(awayscan,names)
      
msg #AzuLa Away Users: %away
    
}
    
hfree awayscan
    msg 
#AzuLa End of awayscan
    
haltdef
  
}
}
#awayscan end

on *:text:*:*: {
  if 
$chan == #AzuLa && $nick isop $chan { 
    
if $== !awaytara {
      if 
$group(#awayscan) == on {
        
timer 1 2 window -#Kanal
        
timer 1 5 awayscan #Kanal
      
}
      if 
$group(#Awayscan) == off {
        
msg $chan(#AzuLa) Şu an bu komutu kullanamazsınız. Away tarama modu kapalıdır.
      
}
    }
    if $
== !awayon {
      
enable #awayscan
      
msg $chan(#AzuLa) Away Tarama modu açılmıştır.
    
}
    if $
== !awayoff {
      
disable #awayscan
      
msg $chan(#AzuLa) Away Tarama modu kapatılmıştır.
    
}
    if $
== !awaykomut {
        
msg $chan(#AzuLa) Kullanabileceğiniz komutlar; !awaytara , !awayon , !awayoff olarak belirlenmiştir.
    
}
  }



Kodun çalışma mantığı ;

#AzuLa kanalında !awaykomut yazdığınızda kullanabileceginiz komutları görebilirsiniz.

#AzuLa kanalında !awayon yazdığınızda, away tarama modunu aktif hale getirecektir. Durum bilgisini #AzuLa kanalına yansıtacaktır.

#AzuLa kanalında !awayoff yazdığınızda, away tarama modunu deaktif hale getirecektir. Durum bilgisini #AzuLa kanalına yansıtacaktır.

#AzuLa kanalında !awaytara yazdığınızda, eğer away tarama modu aktif ise; belirlediğiniz kanalda away taraması yapıp bilgileri #AzuLa kanalına yansıtacaktır. Eğer away tama modu deaktif ise taramayı yapmayacaktır, modun aktif olmadığını belirten bir mesaj yansıtacaktır.

Not: Komutları kullanacak kişinin #AzuLa kanalında Op ( @ ) yetkisinde olması gerekiyor.

Açıklama:
Kodu ekledikten sonra #Kanal olan yerleri tarama yapmasını istediğiniz kanalın adıyla değiştirin.
#AzuLa olan yerleri ise; komutların hangi kanalda kullanılmasını istiyorsanız o kanalın adıyla değiştirin.

kodun çalıştığına dair log:


Alıntı:

[08:24:47] <aSra> !awaytara
[08:24:48] <nickyaziniz> Şu an bu komutu kullanamazsınız. Away tarama modu kapalıdır.
[08:24:57] <aSra> !awayon
[08:24:57] <nickyaziniz> Away Tarama modu açılmıştır.
[08:25:00] <aSra> !awaytara
[08:25:06] <nickyaziniz> Awayscan in #Arkadas
[08:25:07] <nickyaziniz> Totally found 0 away users
[08:25:07] <nickyaziniz> End of awayscan
[08:25:10] <aSra> !awayoff
[08:25:10] <nickyaziniz> Away Tarama modu kapatılmıştır.
[08:25:14] <aSra> !awaytara
[08:25:15] <nickyaziniz> Şu an bu komutu kullanamazsınız. Away tarama modu kapalıdır.
[09:16:50] <aSra> !awaykomut
[09:16:50] <nickyaziniz> Kullanabileceğiniz komutlar; !awaytara , !awayon , !awayoff olarak belirlenmiştir.
iyi forumlar.


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

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