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/)
-   -   bot edit (https://www.ircforumlari.net/mirc-scripting-sorunlari/179229-bot-edit.html)

QkLa 11 Şubat 2009 19:05

bot edit
 
bu code'de soyle bir bolum var

msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...

bunu kaldirip komut uygulamada sinirlama olmamasi ve komutu sadece gorevliler ve izin verilen nickler kullanacak sekilde duzenlemek icin yardim edebilirmisiniz.

if ($nick isop $chan) || ($nick == QkLa) { bunun gibi bir sey.ben bir yere kadar duzenledim ama her komut icin gerceklestiremedim.

Kod:

alias bekle {
  mode # +m
}
alias sureler {
  set %t 1
  while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
    inc %t
  }
}
menu channel,menubar {  -
  Bot
  .Açik  :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
  .Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
  .Ayarlar:dialog -m BA BA
}
alias bulr {
  set %sureno $null
  set %curserver $server
  set %curchannel $chan
  if (($1 == $null) || ($2 == $null)) {
    msg #  Bul komutu formati:
    msg # !bul sureadi yada numarasi ayet [bitis ayeti]
    msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
    msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
    msg # Ör3:!bul 20 1 9  --> Taha [1-9].ayetleri gösterir.
    halt
  }
  else {
    set %sure $1
    set %ayet1 $2
  }
  if ($3 == $null) { set %ayet2 %ayet1 }
  else { set %ayet2 $3 }
  if ($calc(%sure + 1) != 0) {
    set %sureno $1
    set %sure $read(sureindex.txt,%sureno)   
    goto dosyabul
  }
  set %sayac 1
  set %topsat $lines(sureindex.txt)
  while (%sayac <= %topsat) {
    if (%sure == $read(sureindex.txt, %sayac)) {
      write temp.txt 0,4 Sure No: 4,1 %sayac
      set %sureno  %sayac 
    }
    inc %sayac
  }
  :dosyabul 
  if (%sureno == $null) {
    msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
    halt
  }
  set %sayiayet  $read(ayetsayisi.txt,%sureno) 
  if (%ayet2 > %sayiayet) {
    msg # Hatali Giris Yaptiniz
    msg # %sure Suresi %sayiayet ayettir...   
    halt
  }
  if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
    msg # Hatali Giris Yaptiniz...
    halt
  }
  if ($calc(%ayet4 - %ayet1 +1) > %mva) {
    msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...
    halt
  }
  set %d1 3 - $len(%sureno)
  set %dosya  sureler $+  \ $+ $str(0,%d1) $+ %sureno $+ .txt
  set %k 1 
  while (%ayet1 <= %ayet2) {
    if ((%sureno == 2) && (%ayet1 == 282)) {
      set %bkr 1
      while (%bkr <= $lines(sureler\bakara282.txt)) {
        set %sonuc $read(sureler\bakara282.txt,%bkr)     
        wordcheck   
        inc %bkr
      }
      goto art
    }
    set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
    if (%k != 1 ) goto gec
    write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
    write temp.txt Ayet: %ayet1 - %ayet2  $nick için yaziliyor...
    :gec
    wordcheck   
    :art 
    inc %k
    inc %ayet1
  }
  write temp.txt -------------------------------0000------------------------  12  [ %cp sn. durakladi ]
}
alias sureler {
  set %t 1
  while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
    inc %t
  }
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
  while (%botdurum == acik) {
    if ( %kul == ontanimli ) {
      set %usersay 1
      while (%usersay <= $lines(botusers.txt)) {
        if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
        inc %usersay       
      }
    }
    if ((%kim == $null) && (%kul == ontanimli)) { halt }
    else { set %kim $null }
    write -c temp.txt
    bulr $2 $3 $4
    if (%moderate == 1) { bekle }
    play $chan temp.txt $calc(%ds * 1000)
    set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
    set %zamandur $calc(%zaman / 1000) 
    ignore -u $+ %zamandur *!*@*
    halt   
  }
}
alias wordcheck {
  set %twords $calc($numtok(%sonuc,32) + 1)
  if (%twords > %mvg) {
    set %blok $calc(%twords / %mvg)
    set %tamblok $calc($int(%blok) + 1)
    set %dng 1
    set %baslangic 1
    set %bitis %mvg
    while (%dng <= %tamblok) {
      set %aralik  %baslangic $+ - $+ %bitis
      set %dizgi $gettok(%sonuc,%aralik,32)
      write temp.txt %dizgi
      set %baslangic $calc(%bitis + 1)
      set %bitis $calc(%bitis + %mvg )
      inc %dng
    }
  }
  else { write temp.txt %sonuc }
  return
}
alias defs {
  if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
    set %ds 3
    set %mvg 10
    set %mva 3
    set %cp 6
  }
}


QkLa 11 Şubat 2009 22:53

Cevap: bot edit
 
on *:text:!bul*:#: {
while (%botdurum == acik) {
if ( %kul == ontanimli ) {
set %usersay 1
while (%usersay <= $lines(botusers.txt)) {
if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
inc %usersay
}
}
bu kismi sadece gorevlilerin kullanabilmesi icin editledim,ama !bul komutu neticesinde cikan komutlar islem gormuyor.

uFuK 12 Şubat 2009 02:13

Cevap: bot edit
 
Sorunu tam olarak anlayamadım ama eğer bir kodda, erişimi sadece sizin belirlediğiniz nicklere vermek istiyorsan birçok yolu var bunun. İki seçenek sunayım sana.

if $read(zımbırtı.txt,w,$nick) {
kodlar ..
}
Event'n altına bunu eklersen zımbırtı.txt belgesinin içinde olan kişiler kullanabilir sadece komutları.
Örnek;
Alıntı:

on *:text:*:#: {
if $read(zımbırtı.txt,w,$nick) {
if ($1 == !oku) { echo -a oku, oku, oku, sonra kahveye git.. }
}
}
Bu kodu al mesela scriptine kopyala !oku yaz özelde hiçbir tepki vermeyecektir.
zımbırtı.txt dosyasının içine nickleri alt alta dizersen ve !oku kelimesini yazan nick buradaki bir rumuzsa tepki vericektir..

2.) if (ufuk isin $nick) || (QKLa isin $nick) || (bilmemne isin $nick) {
kodlar
}
buda kırmızı yerdeki nicklere göre işler yapar, diğerlerinde çalışmaz.

Örnek kod;
Alıntı:

on *:join:#: {
if (ufuk isin $nick) || (QkLa isin $nick) { msg $chan hoşgeldin abi, niye geldin? }
}

QkLa 12 Şubat 2009 03:54

Cevap: bot edit
 
ben codeyi vereyim daha iyi anlasilir belki.bu code iki sekilde uygulanabiliyor.birincisi mircinda yuklu sahis !bul sureismi yazarak @kuran penceresinde goruyor yazilari.bunun kaldirmak istiyorum.dialog var diloguda kaldirmak istiyorum.ikinci bir uygulamada bot seklinde,kanalda !bul yazdiklarinda kullanabilecekleri komutlar siralaniyor,ona gore kanalda islem yapiliyor.bu komutu sadece gorevliler kullanabilecek sekilde duzenlemek istiyorum.birde code de belirli bir kullanimdan sonra sahsa baska kullanma imkani vermiyor.mesela bir kisi kanalda uc kez komut uygulayabiliyor.bu kaldirip gorevlilerin surekli kullanabilecegi bir hale getirebilirsek hos olur.biraz kapsamli bir code ama kusura bakmayin.

simdiden tesekkur ederim

Kod:

alias bekle {
  mode # +m
}
alias bul {
  set %sureno $null
  window  -e @KURAN 500 275 350 200
  if (($1 == $null) || ($2 == $null)) {
    ;echo 4 @kuran Hatali Giris Yaptiniz.
    echo 4 @kuran Bul komutu formati:
    echo 12 @kuran /bul sureadi yada numarasi ayet [bitis ayeti]
    echo 12 @kuran Ör1:/bul taha 114 --> Taha 114. ayeti gösterir.
    echo 12 @kuran Ör2:/bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
    echo 13 @kuran Ör3:/bul 20 1 9  --> Taha [1-9].ayetleri gösterir.
    halt
  }
  else {
    set %sure $1
    set %ayet1 $2
  }
  if ($3 == $null) { set %ayet2 %ayet1 }
  else { set %ayet2 $3 }
  if ($calc(%sure + 0) != 0) {
    set %sureno $1
    set %sure $read(sureindex.txt,%sureno)   
    goto dosyabul
  }
  set %sayac 1
  set %topsat $lines(sureindex.txt)
  while (%sayac <= %topsat) {
    if (%sure == $read(sureindex.txt, %sayac)) {
      echo 4 @kuran Sure No: %sayac
      set %sureno  %sayac 
    }
    inc %sayac
  }
  :dosyabul 
  if (%sureno == $null) {
    echo 4 @kuran %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
    halt
  }
  set %sayiayet  $read(ayetsayisi.txt,%sureno) 
  if (%ayet2 > %sayiayet) {
    echo 4 @kuran Hatali Giris Yaptiniz
    echo 12 @kuran %sure Suresi %sayiayet ayettir...   
    halt
  }
  if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
    echo 4 @kuran Hatali Giris Yaptiniz...
    halt
  }
  set %d1 3 - $len(%sureno)
  set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt

  echo @kuran %dosya
  set %k 1 
  set %renk 12
  while (%ayet1 <= %ayet2) {
    if ((%sureno == 2) && (%ayet1 == 282)) {
      set %bkr 1
      while (%bkr <= $lines(sureler\bakara282.txt)) {
        echo @kuran $read(sureler\bakara282.txt,%bkr)
        inc %bkr
      }
      goto art
    }
    set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
    if (%k != 1 ) goto gec
    echo 4 @kuran Sure: $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
    echo 4 @kuran Ayet: %ayet1 - %ayet2
    ECHO 3 @kuran -------------------
    :gec   
    echo %renk @kuran %sonuc
    ;echo @kuran -
    if (%renk == 12) { set %renk 4 } 
    else  { set %renk 12 }   
    :art 
    inc %k
    inc %ayet1
  }
  echo 12 @kuran ------------------------------------------0000-----------------------------------
}
alias sureler {
  set %t 1
  while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
    inc %t
  }
}
menu channel,menubar {
  -
  Bot
  .Açik  :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
  .Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
  .Ayarlar:dialog -m BA BA
}
 
 
alias bulr {
  set %sureno $null
  set %curserver $server
  set %curchannel $chan
  if (($1 == $null) || ($2 == $null)) {

    msg #  Bul komutu formati:
    msg # !bul sureadi yada numarasi ayet [bitis ayeti]
    msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
    msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
    msg # Ör3:!bul 20 1 9  --> Taha [1-9].ayetleri gösterir.
    halt
  }
  else {
    set %sure $1
    set %ayet1 $2
  }
  if ($3 == $null) { set %ayet2 %ayet1 }
  else { set %ayet2 $3 }
  if ($calc(%sure + 1) != 0) {
    set %sureno $1
    set %sure $read(sureindex.txt,%sureno)   
    goto dosyabul
  }
  set %sayac 1
  set %topsat $lines(sureindex.txt)
  while (%sayac <= %topsat) {
    if (%sure == $read(sureindex.txt, %sayac)) {
      write temp.txt Sure No: %sayac

      set %sureno  %sayac 
    }
    inc %sayac
  }
  :dosyabul 
  if (%sureno == $null) {
    msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
    halt
  }
  set %sayiayet  $read(ayetsayisi.txt,%sureno) 
  if (%ayet2 > %sayiayet) {
    msg # Hatali Giris Yaptiniz
    msg # %sure Suresi %sayiayet ayettir...   
    halt
  }
  if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
    msg # Hatali Giris Yaptiniz...
    halt
  }
  if ($calc(%ayet2 - %ayet1 +1) > %mva) {
    msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...
    halt
  }

  set %d1 3 - $len(%sureno)
  set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
 

  set %k 1 
  while (%ayet1 <= %ayet2) {
    if ((%sureno == 2) && (%ayet1 == 282)) {
      set %bkr 1
      while (%bkr <= $lines(sureler\bakara282.txt)) {
        set %sonuc $read(sureler\bakara282.txt,%bkr)     
        wordcheck       
        inc %bkr
      }
      goto art
    }

    set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
    if (%k != 1 ) goto gec
    write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
    write temp.txt Ayet: %ayet1 - %ayet2  $nick için yaziliyor...
    :gec
    wordcheck   
    :art 
    inc %k
    inc %ayet1
  }
  write temp.txt -------------------------------0000------------------------  12  [ %cp sn. durakladi ]
  -------------------------------0000-----------------------------------
}
alias sureler {
  set %t 1
  while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
    inc %t
  }
}

on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
  while (%botdurum == acik) {
    if ( %kul == ontanimli ) {
      set %usersay 1
      while (%usersay <= $lines(botusers.txt)) {
        if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
        inc %usersay       
      }
    }
    if ((%kim == $null) && (%kul == ontanimli)) { halt }
    else { set %kim $null }
    write -c temp.txt
    bulr $2 $3 $4
    if (%moderate == 1) { bekle }
    play $chan temp.txt $calc(%ds * 1000)
    set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
    set %zamandur $calc(%zaman / 1000)   
    ignore -u $+ %zamandur *!*@*
    halt   
  }
}

dialog BA {
  title "BOT AYARLARI"
  size -1 -1 380 280
  ;combo 1,128 176 89 100,size edit drop
  button "Duzenle",102,124 176 48 30
  radio " ÖnTanimli",2,24 176 97 25
  radio "Herkes",3,24 143 65 25
  edit "",4,304 80 25 19,autohs
  edit "",5,304 48 25 19,autohs
  edit "",6,112 80 25 19,autohs
  edit "",7,112 48 25 19,autohs
  box "Kullanici Tanimlari",8,16 128 160 81
  text "sn.",10,336 80 17 17
  text "Duraklama Süresi",11,192 80 89 17
  text " kelime",12,328 48 33 25
  text "Max. Veri Gönderme",13,192 48 97 25
  box " Veri ",14,178 32 193 73
  text "ayet",15,144 80 25 17
  text "Max. Ayet Araligi",16,24 80 86 17
  text "sn",17,144 48 25 17
  text "Cevap Periyodu ",18,24 48 81 25
  box " Bot ",19,16 32 161 73
  button "Tamam",100,126 225 50 30,ok
  button "Vazgeç",101,180 225 50 30,cancel
  box " Diger Ayarlar",20,179 128 193 82
  check "Moderate",30,190 150 65 11,
}
on *:dialog:ba:edit:*:{
  if ($did == 4) { set %ds $did(4).text }
  if ($did == 5) { set %mvg $did(5).text }
  if ($did == 6) { set %mva $did(6).text }
  if ($did == 7) { set %cp $did(7).text }
}
on *:DIALOG:ba:init:0:{
  if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
    did -ra ba 4 1
    set %ds 3
    did -ra ba 5 1
    set %mvg 10
    did -ra ba 6 1
    set %mva 3
    did -ra ba 7 1
    set %cp 6
  }
  if (%kul == $null) {
    did -c ba 3
    set %kul herkes
  }
  if (%kul == herkes) {
    did -c ba 3
  }
  else {
    did -c ba 2
    set %kul ontanimli
  }
  did -o ba 4 1 %ds
  did -o ba 5 1 %mvg
  did -o ba 6 1 %mva
  did -o ba 7 1 %cp
  ;did -ra ba 4 test
  if ( %moderate == 1 ) {
    did -c ba 30
  }
}
on *:dialog:ba:sclick:100: {
  set %cp $did(ba,7).text
  set %mva $did(ba,6).text
  set %mvg $did(ba,5).text
  set %ds $did(ba,4).text
  if ($did(ba,3).state == 1) { set %kul herkes }
  if ($did(ba,2).state == 1) { set %kul ontanimli }
  if ($did(ba,30).state == 1) { did -c ba 30 | set %moderate 1 }
  if ($did(ba,30).state == 0) { set %moderate 0 }

on *:dialog:ba:sclick:102: { run botusers.txt }
alias wordcheck {
  set %twords $calc($numtok(%sonuc,32) + 1)
  if (%twords > %mvg) {
    set %blok $calc(%twords / %mvg)
    set %tamblok $calc($int(%blok) + 1)
    set %dng 1
    set %baslangic 1
    set %bitis %mvg
    while (%dng <= %tamblok) {
      set %aralik  %baslangic $+ - $+ %bitis
      set %dizgi $gettok(%sonuc,%aralik,32)
      write temp.txt %dizgi
      set %baslangic $calc(%bitis + 1)
      set %bitis $calc(%bitis + %mvg )

      inc %dng
    }
  }
  else { write temp.txt %sonuc }
  return
}
alias defs {
  if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
    set %ds 3
    set %mvg 10
    set %mva 3
    set %cp 6
  }
}

alias ara {
  window  -e @ARAMA 500 275 350 200
  clear @arama
  set %l 1 
  SET %phrase * $chr(32) $+ $1- $+ *
  ;set %md $mid(%phrase,2,1)
  ;$replace (%phrase ,%md , $upper( %md ))
  ;SET %phrase  * $+ $1-
  echo @ARAMA 4,8 ARANAN KELIME: 1,8 %PHRASE
  echo @arama 8,7 Dikkat:Bulunan Sonuçlar Kelime Düzeyinde Kesin Sonuçlar Olmayabilir.Bu çalisma sadece fikir vermesi bakimindan hazirlanmistir...
  while (%l < 115) {
    set %d1 3 - $len(%l)
    set %dosya sureler $+ \ $+ $str(0,%d1) $+ %l $+ .txt
    ;echo -a %dosya   
    ;filter -pfw %dosya @ARAMA %phrase
    filter -fwbp %dosya @arama %phrase
    if ($filtered != 0) {
      echo  @arama 4 $read(sureindex.txt,%l) ( %l )
      echo 4 @arama ---------------------------------------------------------------------------------------
      set %adet $calc(%adet + $filtered)
    }
    ;if ($filtered =! 0) echo @arama %dosya
    inc %l
  }
  echo @arama 1,8 %phrase ibaresi  %adet adet sayildi.(Bu sonuç kelime düzeyinde kesin sonuç olmayabilir)
  set %adet 0
}


uFuK 12 Şubat 2009 12:24

Cevap: bot edit
 
Alıntı:

1.)!bul sureismi yazarak @kuran penceresinde goruyor yazilari.bunun kaldirmak istiyorum.dialog var diloguda kaldirmak istiyorum
Kaldırıldı..

Alıntı:

ikinci bir uygulamada bot seklinde,kanalda !bul yazdiklarinda kullanabilecekleri komutlar siralaniyor,ona gore kanalda islem yapiliyor.bu komutu sadece gorevliler kullanabilecek sekilde duzenlemek istiyorum
Sadece kanalda @'ta olan kişiler kullanabilecek şekilde ayarlandı. İsteğine göre bir txt belgesinden nick okutacak şekilde ayarlarım, yada %,voice'lerde kullanıcak şekilde ayarlarım yazman yeterli dost.

Alıntı:

.birde code de belirli bir kullanimdan sonra sahsa baska kullanma imkani vermiyor.mesela bir kisi kanalda uc kez komut uygulayabiliyor.bu kaldirip gorevlilerin surekli kullanabilecegi bir hale getirebilirsek
O özellik durduruldu. Artık 3'den fazla yazanları ignore etmeyecek.

Kod Aşağıda;

Alıntı:

alias bekle {
mode # +m
}
alias sureler {
set %t 1
while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
inc %t
}
}
menu channel,menubar {
-
Bot
.Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
.Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
.Ayarlar:dialog -m BA BA
}

alias bulr {
set %sureno $null
set %curserver $server
set %curchannel $chan
if (($1 == $null) || ($2 == $null)) {
msg # Bul komutu formati:
msg # !bul sureadi yada numarasi ayet [bitis ayeti]
msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
halt
}
else {
set %sure $1
set %ayet1 $2
}
if ($3 == $null) { set %ayet2 %ayet1 }
else { set %ayet2 $3 }
if ($calc(%sure + 1) != 0) {
set %sureno $1
set %sure $read(sureindex.txt,%sureno)
goto dosyabul
}
set %sayac 1
set %topsat $lines(sureindex.txt)
while (%sayac <= %topsat) {
if (%sure == $read(sureindex.txt, %sayac)) {
write temp.txt Sure No: %sayac
set %sureno %sayac
}
inc %sayac
}
:dosyabul
if (%sureno == $null) {
msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
halt
}
set %sayiayet $read(ayetsayisi.txt,%sureno)
if (%ayet2 > %sayiayet) {
msg # Hatali Giris Yaptiniz
msg # %sure Suresi %sayiayet ayettir...
halt
}
if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
msg # Hatali Giris Yaptiniz...
halt
}
if ($calc(%ayet2 - %ayet1 +1) > %mva) {
msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...
halt
}
set %d1 3 - $len(%sureno)
set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt

set %k 1
while (%ayet1 <= %ayet2) {
if ((%sureno == 2) && (%ayet1 == 282)) {
set %bkr 1
while (%bkr <= $lines(sureler\bakara282.txt)) {
set %sonuc $read(sureler\bakara282.txt,%bkr)
wordcheck
inc %bkr
}
goto art
}
set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
if (%k != 1 ) goto gec
write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
:gec
wordcheck
:art
inc %k
inc %ayet1
}
write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
-------------------------------0000-----------------------------------
}
alias sureler {
set %t 1
while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
inc %t
}
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
if ($nick isop #) {
while (%botdurum == acik) {
if ( %kul == ontanimli ) {
set %usersay 1
while (%usersay <= $lines(botusers.txt)) {
if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
inc %usersay
}
}
if ((%kim == $null) && (%kul == ontanimli)) { halt }
else { set %kim $null }
write -c temp.txt
bulr $2 $3 $4
if (%moderate == 1) { bekle }
play $chan temp.txt $calc(%ds * 1000)
set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
set %zamandur $calc(%zaman / 1000)
halt
}
}
}
dialog BA {
title "BOT AYARLARI"
size -1 -1 380 280
;combo 1,128 176 89 100,size edit drop
button "Duzenle",102,124 176 48 30
radio " ÖnTanimli",2,24 176 97 25
radio "Herkes",3,24 143 65 25
edit "",4,304 80 25 19,autohs
edit "",5,304 48 25 19,autohs
edit "",6,112 80 25 19,autohs
edit "",7,112 48 25 19,autohs
box "Kullanici Tanimlari",8,16 128 160 81
text "sn.",10,336 80 17 17
text "Duraklama Süresi",11,192 80 89 17
text " kelime",12,328 48 33 25
text "Max. Veri Gönderme",13,192 48 97 25
box " Veri ",14,178 32 193 73
text "ayet",15,144 80 25 17
text "Max. Ayet Araligi",16,24 80 86 17
text "sn",17,144 48 25 17
text "Cevap Periyodu ",18,24 48 81 25
box " Bot ",19,16 32 161 73
button "Tamam",100,126 225 50 30,ok
button "Vazgeç",101,180 225 50 30,cancel
box " Diger Ayarlar",20,179 128 193 82
check "Moderate",30,190 150 65 11,
}
on *:dialog:ba:edit:*:{
if ($did == 4) { set %ds $did(4).text }
if ($did == 5) { set %mvg $did(5).text }
if ($did == 6) { set %mva $did(6).text }
if ($did == 7) { set %cp $did(7).text }
}
on *:DIALOG:ba:init:0:{
if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
did -ra ba 4 1
set %ds 3
did -ra ba 5 1
set %mvg 10
did -ra ba 6 1
set %mva 3
did -ra ba 7 1
set %cp 6
}
if (%kul == $null) {
did -c ba 3
set %kul herkes
}
if (%kul == herkes) {
did -c ba 3
}
else {
did -c ba 2
set %kul ontanimli
}
did -o ba 4 1 %ds
did -o ba 5 1 %mvg
did -o ba 6 1 %mva
did -o ba 7 1 %cp
;did -ra ba 4 test
if ( %moderate == 1 ) {
did -c ba 30
}
}
on *:dialog:ba:sclick:100: {
set %cp $did(ba,7).text
set %mva $did(ba,6).text
set %mvg $did(ba,5).text
set %ds $did(ba,4).text
if ($did(ba,3).state == 1) { set %kul herkes }
if ($did(ba,2).state == 1) { set %kul ontanimli }
if ($did(ba,30).state == 1) { did -c ba 30 | set %moderate 1 }
if ($did(ba,30).state == 0) { set %moderate 0 }
}
on *:dialog:ba:sclick:102: { run botusers.txt }
alias wordcheck {
set %twords $calc($numtok(%sonuc,32) + 1)
if (%twords > %mvg) {
set %blok $calc(%twords / %mvg)
set %tamblok $calc($int(%blok) + 1)
set %dng 1
set %baslangic 1
set %bitis %mvg
while (%dng <= %tamblok) {
set %aralik %baslangic $+ - $+ %bitis
set %dizgi $gettok(%sonuc,%aralik,32)
write temp.txt %dizgi
set %baslangic $calc(%bitis + 1)
set %bitis $calc(%bitis + %mvg )
inc %dng
}
}
else { write temp.txt %sonuc }
return
}
alias defs {
if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
set %ds 3
set %mvg 10
set %mva 3
set %cp 6
}
}
alias ara {
window -e @ARAMA 500 275 350 200
clear @arama
set %l 1
SET %phrase * $chr(32) $+ $1- $+ *
;set %md $mid(%phrase,2,1)
;$replace (%phrase ,%md , $upper( %md ))
;SET %phrase * $+ $1-
echo @ARAMA 4,8 ARANAN KELIME: 1,8 %PHRASE
echo @arama 8,7 Dikkat:Bulunan Sonuçlar Kelime Düzeyinde Kesin Sonuçlar Olmayabilir.Bu çalisma sadece fikir vermesi bakimindan hazirlanmistir...
while (%l < 115) {
set %d1 3 - $len(%l)
set %dosya sureler $+ \ $+ $str(0,%d1) $+ %l $+ .txt
;echo -a %dosya
;filter -pfw %dosya @ARAMA %phrase
filter -fwbp %dosya @arama %phrase
if ($filtered != 0) {
echo @arama 4 $read(sureindex.txt,%l) ( %l )
echo 4 @arama ---------------------------------------------------------------------------------------
set %adet $calc(%adet + $filtered)
}
;if ($filtered =! 0) echo @arama %dosya
inc %l
}
echo @arama 1,8 %phrase ibaresi %adet adet sayildi.(Bu sonuç kelime düzeyinde kesin sonuç olmayabilir)
set %adet 0
}


uFuK 12 Şubat 2009 12:25

Cevap: bot edit
 
Yalnız kodu ben denemedim, sen dene bahsettiğin fonksiyonlardan gerçekleşmeyeni varsa buraya yaz. Yada ekstra birşey istiyorsan onuda yaz.
Herzaman yardımcı olurum sana..

QkLa 12 Şubat 2009 16:56

Cevap: bot edit
 
ben soyle duzenledim. @arama window'unu acilan bot ayar dialoglarini kaldirdim,komutu uygulamaya yetkilileride su sekilde yaptim.

if ($nick isop $chan) || ($nick == r) {

buradaki yetkili daha sonradan !ekle yetkili !sil yetkili seklinde uygulatabilirmiyiz.mesela $nick == QkLa yerine bir txt konucak bunada,

var %yetkilier.nr $r(0,10000),%yetkililer.item $2
hadd -m yetkililer %yetkililer.nr %yetkililer.tem
hsave yetkililer yetkililer.txt
msg $chan nick eklenmistir
gibi birsey

ikincisi ise code'de bulunan

if ($calc(%ayet2 - %ayet1 +1) > %mva) {
msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...
halt
}
bu kismi kaldirabilirmiyiz.suan icin zarari yok ama codeyi elimden geldigi kadar gereksiz fazlaliklardan kurtarmaya calisiyorum.

ilginiz icin tesekkur ederim

Kod:

alias bekle {
  mode # +m
}
alias sureler {
  set %t 1
  while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
    inc %t
  }
}
menu channel,menubar {
  -
  Bot
  .Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
  .Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
  .Ayarlar:dialog -m BA BA
}
alias bulr {
  set %sureno $null
  set %curserver $server
  set %curchannel $chan
  if (($1 == $null) || ($2 == $null)) {
    msg # Bul komutu formati:
    msg # !bul sureadi yada numarasi ayet [bitis ayeti]
    msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
    msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
    msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
    halt
  }
  else {
    set %sure $1
    set %ayet1 $2
  }
  if ($3 == $null) { set %ayet2 %ayet1 }
  else { set %ayet2 $3 }
  if ($calc(%sure + 1) != 0) {
    set %sureno $1
    set %sure $read(sureindex.txt,%sureno)
    goto dosyabul
  }
  set %sayac 1
  set %topsat $lines(sureindex.txt)
  while (%sayac <= %topsat) {
    if (%sure == $read(sureindex.txt, %sayac)) {
      write temp.txt Sure No: %sayac
      set %sureno %sayac
    }
    inc %sayac
  }
  :dosyabul
  if (%sureno == $null) {
    msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
    halt
  }
  set %sayiayet $read(ayetsayisi.txt,%sureno)
  if (%ayet2 > %sayiayet) {
    msg # Hatali Giris Yaptiniz
    msg # %sure Suresi %sayiayet ayettir...
    halt
  }
  if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
    msg # Hatali Giris Yaptiniz...
    halt
  }
  if ($calc(%ayet2 - %ayet1 +1) > %mva) {
    msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...
    halt
  }
  set %d1 3 - $len(%sureno)
  set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
  set %k 1
  while (%ayet1 <= %ayet2) {
    if ((%sureno == 2) && (%ayet1 == 282)) {
      set %bkr 1
      while (%bkr <= $lines(sureler\bakara282.txt)) {
        set %sonuc $read(sureler\bakara282.txt,%bkr)
        wordcheck
        inc %bkr
      }
      goto art
    }
    set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
    if (%k != 1 ) goto gec
    write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
    write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
    :gec
    wordcheck
    :art
    inc %k
    inc %ayet1
  }
  write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
}
alias sureler {
  set %t 1
  while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
    inc %t
  }
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
  if ($nick isop #) {
    while (%botdurum == acik) {
      if ( %kul == ontanimli ) {
        set %usersay 1
        while (%usersay <= $lines(botusers.txt)) {
          if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
          inc %usersay
        }
      }
      if ((%kim == $null) && (%kul == ontanimli)) { halt }
      else { set %kim $null }
      write -c temp.txt
      bulr $2 $3 $4
      if (%moderate == 1) { bekle }
      play $chan temp.txt $calc(%ds * 1000)
      set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
      set %zamandur $calc(%zaman / 1000)
      halt
    }
  }
}
alias wordcheck {
  set %twords $calc($numtok(%sonuc,32) + 1)
  if (%twords > %mvg) {
    set %blok $calc(%twords / %mvg)
    set %tamblok $calc($int(%blok) + 1)
    set %dng 1
    set %baslangic 1
    set %bitis %mvg
    while (%dng <= %tamblok) {
      set %aralik %baslangic $+ - $+ %bitis
      set %dizgi $gettok(%sonuc,%aralik,32)
      write temp.txt %dizgi
      set %baslangic $calc(%bitis + 1)
      set %bitis $calc(%bitis + %mvg )
      inc %dng
    }
  }
  else { write temp.txt %sonuc }
  return
}
alias defs {
  if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
    set %ds 3
    set %mvg 10
    set %mva 3
    set %cp 6
  }
}


uFuK 12 Şubat 2009 19:59

Cevap: bot edit
 
Alıntı:

buradaki yetkili daha sonradan !ekle yetkili !sil yetkili seklinde uygulatabilirmiyiz.mesela $nick == QkLa yerine bir txt konucak bunada,
Halledildi.. Artık yetkililer.txt üzerinden işlem yapıcak kod.. öncelikle //run $mircdir yazıp ana dizine yetkilier.txt oluştur sonra buraya /ekle nick /sil nick /listele nick şeklindeki parametrelerle işlem yaptırabilirsin.

Alıntı:

if ($calc(%ayet2 - %ayet1 +1) > %mva) {
msg # $nick Simdiki ayarlara göre bir seferde en fazla %mva ayet isteyebilirsniz...
halt
}
Bunu zaten halletmiştim ben kod'ta ignoreyi devre dışı bırakarak. Belirttiğin bölgedeki kodu sildim.

Kod'n tamamlanmış hali aşağıda..

Alıntı:

alias bekle {
mode # +m
}
alias sureler {
set %t 1
while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
inc %t
}
}
alias ekle {
write yetkililer.txt $2
}
alias sil {
write -d yetkililer.txt $2
}
alias listele {
var %i 1
while (%i <= $lines(yetkililer.txt)) {
/msg $active $read(yetkililer.txt,%i)
inc %i
}
}

menu channel,menubar {
-
Bot
.Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
.Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
.Ayarlar:dialog -m BA BA
}
alias bulr {
set %sureno $null
set %curserver $server
set %curchannel $chan
if (($1 == $null) || ($2 == $null)) {
msg # Bul komutu formati:
msg # !bul sureadi yada numarasi ayet [bitis ayeti]
msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
halt
}
else {
set %sure $1
set %ayet1 $2
}
if ($3 == $null) { set %ayet2 %ayet1 }
else { set %ayet2 $3 }
if ($calc(%sure + 1) != 0) {
set %sureno $1
set %sure $read(sureindex.txt,%sureno)
goto dosyabul
}
set %sayac 1
set %topsat $lines(sureindex.txt)
while (%sayac <= %topsat) {
if (%sure == $read(sureindex.txt, %sayac)) {
write temp.txt Sure No: %sayac
set %sureno %sayac
}
inc %sayac
}
:dosyabul
if (%sureno == $null) {
msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
halt
}
set %sayiayet $read(ayetsayisi.txt,%sureno)
if (%ayet2 > %sayiayet) {
msg # Hatali Giris Yaptiniz
msg # %sure Suresi %sayiayet ayettir...
halt
}
if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
msg # Hatali Giris Yaptiniz...
halt
}
set %d1 3 - $len(%sureno)
set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
set %k 1
while (%ayet1 <= %ayet2) {
if ((%sureno == 2) && (%ayet1 == 282)) {
set %bkr 1
while (%bkr <= $lines(sureler\bakara282.txt)) {
set %sonuc $read(sureler\bakara282.txt,%bkr)
wordcheck
inc %bkr
}
goto art
}
set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
if (%k != 1 ) goto gec
write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
:gec
wordcheck
:art
inc %k
inc %ayet1
}
write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
}
alias sureler {
set %t 1
while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
inc %t
}
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
if $read(yetkilier.txt,w,$nick) {
while (%botdurum == acik) {
if ( %kul == ontanimli ) {
set %usersay 1
while (%usersay <= $lines(botusers.txt)) {
if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
inc %usersay
}
}
if ((%kim == $null) && (%kul == ontanimli)) { halt }
else { set %kim $null }
write -c temp.txt
bulr $2 $3 $4
if (%moderate == 1) { bekle }
play $chan temp.txt $calc(%ds * 1000)
set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
set %zamandur $calc(%zaman / 1000)
halt
}
}
}
alias wordcheck {
set %twords $calc($numtok(%sonuc,32) + 1)
if (%twords > %mvg) {
set %blok $calc(%twords / %mvg)
set %tamblok $calc($int(%blok) + 1)
set %dng 1
set %baslangic 1
set %bitis %mvg
while (%dng <= %tamblok) {
set %aralik %baslangic $+ - $+ %bitis
set %dizgi $gettok(%sonuc,%aralik,32)
write temp.txt %dizgi
set %baslangic $calc(%bitis + 1)
set %bitis $calc(%bitis + %mvg )
inc %dng
}
}
else { write temp.txt %sonuc }
return
}
alias defs {
if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
set %ds 3
set %mvg 10
set %mva 100
set %cp 6
}
}

QkLa 13 Şubat 2009 08:49

Cevap: bot edit
 
oncelikle ilginiz icin cok tesekkur ederim.

if $read(yetkililer.txt,w,$nick) {

kismini kanalda hem yetkililer hemde txt icerisindekiler komutu kullanabilecek sekilde degistirdim.code bot'a eklenecegi icin /ekle nick ters oluyordu, bunu !ekle nick seklinde duzenledim.tek sorunum.kanalda !bul komutunu uygulayan sahis yetkili degilse yada txt icerisinden birisi degilse ona komutu uygulamaya yetkili degilsiniz uyarisini gonderemedim.bunuda su sekilde denedim

else {
if !bul* iswm $1 {
msg $chan ..
}

ama bunu nereye koydu isem calismadi

uFuK 13 Şubat 2009 11:31

Cevap: bot edit
 
Alıntı:

alias bekle {
mode # +m
}
alias sureler {
set %t 1
while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
inc %t
}
}
alias ekle {
write yetkililer.txt $2
}
alias sil {
write -d yetkililer.txt $2
}
alias listele {
var %i 1
while (%i <= $lines(yetkililer.txt)) {
/msg $active $read(yetkililer.txt,%i)
inc %i
}
}

menu channel,menubar {
-
Bot
.Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
.Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
.Ayarlar:dialog -m BA BA
}
alias bul {
if $read(yetkililer.txt,w,$nick) {

set %sureno $null
set %curserver $server
set %curchannel $chan
if (($1 == $null) || ($2 == $null)) {
msg # Bul komutu formati:
msg # !bul sureadi yada numarasi ayet [bitis ayeti]
msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
halt
}
else {
set %sure $1
set %ayet1 $2
}
if ($3 == $null) { set %ayet2 %ayet1 }
else { set %ayet2 $3 }
if ($calc(%sure + 1) != 0) {
set %sureno $1
set %sure $read(sureindex.txt,%sureno)
goto dosyabul
}
}
set %sayac 1
set %topsat $lines(sureindex.txt)
while (%sayac <= %topsat) {
if (%sure == $read(sureindex.txt, %sayac)) {
write temp.txt Sure No: %sayac
set %sureno %sayac
}
inc %sayac
}
:dosyabul
if (%sureno == $null) {
msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
halt
}
set %sayiayet $read(ayetsayisi.txt,%sureno)
if (%ayet2 > %sayiayet) {
msg # Hatali Giris Yaptiniz
msg # %sure Suresi %sayiayet ayettir...
halt
}
if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
msg # Hatali Giris Yaptiniz...
halt
}
set %d1 3 - $len(%sureno)
set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
set %k 1
while (%ayet1 <= %ayet2) {
if ((%sureno == 2) && (%ayet1 == 282)) {
set %bkr 1
while (%bkr <= $lines(sureler\bakara282.txt)) {
set %sonuc $read(sureler\bakara282.txt,%bkr)
wordcheck
inc %bkr
}
goto art
}
set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
if (%k != 1 ) goto gec
write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
:gec
wordcheck
:art
inc %k
inc %ayet1
}
write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
}
alias sureler {
set %t 1
while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
inc %t
}
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
if $read(yetkilier.txt,w,$nick) {
while (%botdurum == acik) {
if ( %kul == ontanimli ) {
set %usersay 1
while (%usersay <= $lines(botusers.txt)) {
if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
inc %usersay
}
}
if ((%kim == $null) && (%kul == ontanimli)) { halt }
else { set %kim $null }
write -c temp.txt
bulr $2 $3 $4
if (%moderate == 1) { bekle }
play $chan temp.txt $calc(%ds * 1000)
set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
set %zamandur $calc(%zaman / 1000)
halt
}
}
}
alias wordcheck {
set %twords $calc($numtok(%sonuc,32) + 1)
if (%twords > %mvg) {
set %blok $calc(%twords / %mvg)
set %tamblok $calc($int(%blok) + 1)
set %dng 1
set %baslangic 1
set %bitis %mvg
while (%dng <= %tamblok) {
set %aralik %baslangic $+ - $+ %bitis
set %dizgi $gettok(%sonuc,%aralik,32)
write temp.txt %dizgi
set %baslangic $calc(%bitis + 1)
set %bitis $calc(%bitis + %mvg )
inc %dng
}
}
else { write temp.txt %sonuc }
return
}
alias defs {
if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
set %ds 3
set %mvg 10
set %mva 100
set %cp 6
}
}
Üstad, şöyle düşün bir event kullanıcaksın, text,join vs. eğer bundan sadece if $read(yetkililer.txt,w,$nick) {'n faydalanmasını istiyorsan, eventi açtığın başlıgın hemen altına koyucaksınki eventin altına koydugun tüm komutlar bundan etkilensin. Ortasına yada sonuna koyarsan çalışmayacaktır.
Alias'lardada bu böyle alias'n hemen altına ekleyeceksin.

QkLa 14 Şubat 2009 08:57

Cevap: bot edit
 
birinci sorunum bot kanala girdiginde,code'yi acmadan islem gormuyor.

menu channel,menubar {
-
Bot
.Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
.Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
.Ayarlar:dialog -m BA BA
}
bu kisimdaki Acik buttonuna ihtiyac duymadan code kendiliginden aktif hale gelebilmesi icin code'nin basina sunu ekledim.bu sorun teskil edermi fikrinizi almak istiyorum.

on *:connect: {
.timer 1 10 /set %botdurum acik
}

ikincisi ben hem yetkililer dosyasindaki nicklerin hemde kanaldaki gorevlilerin !bul komutunu kullanmalari icin soyle denedim ama olmadi,

if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {

!bul komutunu kullanan sahis kanalda gorevli degilse ve yetkililer listesinde ismi yokda ona kullanmaya yetkili olmadigina dair uyari gonderemedim.ben yetkili ekleyip silmek icin codenin altina bir eklenti yaptim.ama mirc kapanip tekrar acildiginda yetkililer listesi bosaliyor.bir yerde hata yaptim sanirim.

Kod:

alias bekle {
  mode # +m
}
alias sureler {
  set %t 1
  while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
    inc %t
  }
}
menu channel,menubar {
  -
  Bot
  .Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
  .Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
  .Ayarlar:dialog -m BA BA
}
alias bulr {
  if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {
    set %sureno $null
    set %curserver $server
    set %curchannel $chan
    if (($1 == $null) || ($2 == $null)) {
      msg # Bul komutu formati:
      msg # !bul sureadi yada numarasi ayet [bitis ayeti]
      msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
      msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
      msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
      halt
    }
    else {
      set %sure $1
      set %ayet1 $2
    }
    if ($3 == $null) { set %ayet2 %ayet1 }
    else { set %ayet2 $3 }
    if ($calc(%sure + 1) != 0) {
      set %sureno $1
      set %sure $read(sureindex.txt,%sureno)
      goto dosyabul
    }
    set %sayac 1
    set %topsat $lines(sureindex.txt)
    while (%sayac <= %topsat) {
      if (%sure == $read(sureindex.txt, %sayac)) {
        write temp.txt Sure No: %sayac
        set %sureno %sayac
      }
      inc %sayac
    }
    :dosyabul
    if (%sureno == $null) {
      msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
      halt
    }
    set %sayiayet $read(ayetsayisi.txt,%sureno)
    if (%ayet2 > %sayiayet) {
      msg # Hatali Giris Yaptiniz
      msg # %sure Suresi %sayiayet ayettir...
      halt
    }
    if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
      msg # Hatali Giris Yaptiniz...
      halt
    }
    set %d1 3 - $len(%sureno)
    set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
    set %k 1
    while (%ayet1 <= %ayet2) {
      if ((%sureno == 2) && (%ayet1 == 282)) {
        set %bkr 1
        while (%bkr <= $lines(sureler\bakara282.txt)) {
          set %sonuc $read(sureler\bakara282.txt,%bkr)
          wordcheck
          inc %bkr
        }
        goto art
      }
      set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
      if (%k != 1 ) goto gec
      write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
      write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
      :gec
      wordcheck
      :art
      inc %k
      inc %ayet1
    }
    write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
  }
  alias sureler {
    set %t 1
    while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
      inc %t
    }
  }
  on *:playend:if (%moderate == 1) { /mode %curchannel -m }
  on *:exit:unsetall
  on *:disconnect:server %curserver
  on *:CONNECT:/join # $+ %curchannel
  on *:text:!bul*:#: {
    if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {
      while (%botdurum == acik) {
        if ( %kul == ontanimli ) {
          set %usersay 1
          while (%usersay <= $lines(botusers.txt)) {
            if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
            inc %usersay
          }
        }
        if ((%kim == $null) && (%kul == ontanimli)) { halt }
        else { set %kim $null }
        write -c temp.txt
        bulr $2 $3 $4
        if (%moderate == 1) { bekle }
        play $chan temp.txt $calc(%ds * 1000)
        set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
        set %zamandur $calc(%zaman / 1000)
        halt
      }
    }
  }
  alias wordcheck {
    set %twords $calc($numtok(%sonuc,32) + 1)
    if (%twords > %mvg) {
      set %blok $calc(%twords / %mvg)
      set %tamblok $calc($int(%blok) + 1)
      set %dng 1
      set %baslangic 1
      set %bitis %mvg
      while (%dng <= %tamblok) {
        set %aralik %baslangic $+ - $+ %bitis
        set %dizgi $gettok(%sonuc,%aralik,32)
        write temp.txt %dizgi
        set %baslangic $calc(%bitis + 1)
        set %bitis $calc(%bitis + %mvg )
        inc %dng
      }
    }
    else { write temp.txt %sonuc }
    return
  }
  alias defs {
    if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
      set %ds 3
      set %mvg 10
      set %mva 100
      set %cp 6
    }
  }
}
on *:text:*:#: {
  if $chan == # {
    if ($nick isop $chan) || ($nick == Q) {
      if $1 == !yetkiliekle {
        if $2 == $null {
          msg $chan 
          halt
        }
        if $hfind(yetkililer,$2,1,W).data {
          msg $chan yetkili eklendi
          halt
        }
        else {
          var %kotu.nr $r(0,10000),%kotu.item $2
          hadd -m yetkililer %kotu.nr %kotu.item
          hsave yetkililer yetkililer.txt
          msg $chan eklenen nick        }
      }
      if $1 == !yetkilisil {
        if $2 == $null {
          msg $chan listeden kim cikacak
          halt
        }
        else {
          if $hfind(yetkililer,$2,1,W).data {
            hdel -s yetkililer $ifmatch $2
            hsave yetkililer yetkililer.txt
            msg $chan listeden cian nick          }
          else {
            msg $chan boyle bir nick yok
            halt
          }
        }
      }
      if $1 == !yetkililist {
        listele
      }
    }
    else {
      if !yetkili* iswm $1 {
        msg $chan komutu uygulayamassin yetkili degilsin
      }
    }
  }
}
alias listele {
  msg $chan  listeleniyor
  var %azi = 1 
  while (%azi <= $hget(yetkililer,0).data) { 
    msg $chan $hget(yetkililer,%azi).data 
    inc %azi
  }
  if $hget(yetkililer,%azi).data == $null {
    haltdef
  }
  msg $chan  finish
}


uFuK 14 Şubat 2009 16:19

Cevap: bot edit
 
Kodu inceledim, kodda zaten yetkili nick eklendiğinde yetkililer.txt'e ekliyormuş tabi bizde $read komutunu o txt üzerine okutunca yetkiliyi ekledimi bizim acc nickleri gidiyormuş komuta erişim için kullandığımız.

yetkililers.txt yaptım ben $read(yetkililers.txt,w,$nick) komutunu böyle uygulattım o sorun ortadan kalktı.

Kodu açmadan işlem görme olayını kaldırdım, artık istediğin komutu direkt girebilirsin. Botun açık yada kapalı olması önem taşımayacak
sen kodda;

|| kullanmıştın. Bu işaret "veya" bağlacı anlamı taşımaktadır. Yani kısacası kod nick yetkililers.txt'de veya kanalda opsa çalış demişsin ben bunu;

&& "ve" bağlacıyla düzelttim. Yani nick hem yetkililers.txt içerisinde bulunacak hemde kanalda op pozisyonunda olacak ki kod çalışsın.

Kolay gelsin..

uFuK 14 Şubat 2009 16:24

Cevap: bot edit
 
Kodu vermeyi unutmuşum iyimi :D

Alıntı:

alias bekle {
mode # +m
}
alias sureler {
set %t 1
while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
inc %t
}
}
menu channel,menubar {
-
Bot
.Açik :set %botdurum acik | echo -a bot açik | notice # Meal BOTu Kullanima Hazir | defs
.Kapali:set %botdurum kapali | echo -a Bot Kapali | notice # Meal BOTu Kapatildi
.Ayarlar:dialog -m BA BA
}
alias bulr {
if $read(yetkililers.txt,w,$nick) && ($nick isop $chan) {
set %sureno $null
set %curserver $server
set %curchannel $chan
if (($1 == $null) || ($2 == $null)) {
msg # Bul komutu formati:
msg # !bul sureadi yada numarasi ayet [bitis ayeti]
msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
halt
}
else {
set %sure $1
set %ayet1 $2
}
if ($3 == $null) { set %ayet2 %ayet1 }
else { set %ayet2 $3 }
if ($calc(%sure + 1) != 0) {
set %sureno $1
set %sure $read(sureindex.txt,%sureno)
goto dosyabul
}
set %sayac 1
set %topsat $lines(sureindex.txt)
while (%sayac <= %topsat) {
if (%sure == $read(sureindex.txt, %sayac)) {
write temp.txt Sure No: %sayac
set %sureno %sayac
}
inc %sayac
}
:dosyabul
if (%sureno == $null) {
msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
halt
}
set %sayiayet $read(ayetsayisi.txt,%sureno)
if (%ayet2 > %sayiayet) {
msg # Hatali Giris Yaptiniz
msg # %sure Suresi %sayiayet ayettir...
halt
}
if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
msg # Hatali Giris Yaptiniz...
halt
}
set %d1 3 - $len(%sureno)
set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
set %k 1
while (%ayet1 <= %ayet2) {
if ((%sureno == 2) && (%ayet1 == 282)) {
set %bkr 1
while (%bkr <= $lines(sureler\bakara282.txt)) {
set %sonuc $read(sureler\bakara282.txt,%bkr)
wordcheck
inc %bkr
}
goto art
}
set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
if (%k != 1 ) goto gec
write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
:gec
wordcheck
:art
inc %k
inc %ayet1
}
write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
}
alias sureler {
set %t 1
while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
inc %t
}
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
if $read(yetkililers.txt,w,$nick) && ($nick isop $chan) {
if ( %kul == ontanimli ) {
set %usersay 1
while (%usersay <= $lines(botusers.txt)) {
if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
inc %usersay
}
if ((%kim == $null) && (%kul == ontanimli)) { halt }
else { set %kim $null }
write -c temp.txt
bulr $2 $3 $4
if (%moderate == 1) { bekle }
play $chan temp.txt $calc(%ds * 1000)
set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
set %zamandur $calc(%zaman / 1000)
halt
}
}
}
alias wordcheck {
set %twords $calc($numtok(%sonuc,32) + 1)
if (%twords > %mvg) {
set %blok $calc(%twords / %mvg)
set %tamblok $calc($int(%blok) + 1)
set %dng 1
set %baslangic 1
set %bitis %mvg
while (%dng <= %tamblok) {
set %aralik %baslangic $+ - $+ %bitis
set %dizgi $gettok(%sonuc,%aralik,32)
write temp.txt %dizgi
set %baslangic $calc(%bitis + 1)
set %bitis $calc(%bitis + %mvg )
inc %dng
}
}
else { write temp.txt %sonuc }
return
}
alias defs {
if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
set %ds 3
set %mvg 10
set %mva 100
set %cp 6
}
}
}
on *:text:*:#: {
if $read(yetkililers.txt,w,$nick) && ($nick isop $chan) {
if $chan == # {
if $1 == !yetkiliekle {
if $2 == $null {
msg $chan
halt
}
if $hfind(yetkililer,$2,1,W).data {
msg $chan yetkili eklendi
halt
}
else {
var %kotu.nr $r(0,10000),%kotu.item $2
hadd -m yetkililer %kotu.nr %kotu.item
hsave yetkililer yetkililer.txt
msg $chan eklenen nick $qt($2) }
}
if $1 == !yetkilisil {
if $2 == $null {
msg $chan listeden kim cikacak
halt
}
else {
if $hfind(yetkililer,$2,1,W).data {
hdel -s yetkililer $ifmatch $2
hsave yetkililer yetkililer.txt
msg $chan listeden cian nick }
else {
msg $chan boyle bir nick yok
halt
}
}
}
if $1 == !yetkililist {
listele
}
}
else {
if !yetkili* iswm $1 {
msg $chan komutu uygulayamassin yetkili degilsin
}
}
}
}
alias listele {
msg $chan listeleniyor
var %azi = 1
while (%azi <= $hget(yetkililer,0).data) {
msg $chan $hget(yetkililer,%azi).data
inc %azi
}
if $hget(yetkililer,%azi).data == $null {
haltdef
}
msg $chan finish
}

QkLa 15 Şubat 2009 08:38

Cevap: bot edit
 
asagidaki code !bul tarik 4 uyguladigimda ne kadar sure varsa isimlerini kanala yaziyor.onun disinda hersey istedigim gibi.bu surelerin kanala gonderilmesi icin gereken yeride code'den cikarabilirsek daha iyi olacak.komutu uyguladigimda tum sure isimleri kanala yansiyor.sure isimleri yansidiktan sonra statusteki uyari

* Playing 'temp.txt' to #dura with 0ms delay
-©-
* Playback of 'temp.txt' complete

Kod:

on *:start: { hmake yetkililer 1000 | hload yetkililer yetkililer.txt }
on *:connect: {
  .timer 1 10 /set %botdurum acik
}
alias bekle {
  mode # +m
}
alias sureler {
  set %t 1
  while (%t < 115) { echo 4 @kuran %t - $read(sureindex.txt,%t)
    inc %t
  }
}
alias bulr {
  if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {       
    set %sureno $null
    set %curserver $server
    set %curchannel $chan
    if (($1 == $null) || ($2 == $null)) {
      msg # Bul komutu formati:
      msg # !bul sureadi yada numarasi ayet [bitis ayeti]
      msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
      msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
      msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
      halt
    }
    else {
      set %sure $1
      set %ayet1 $2
    }
    if ($3 == $null) { set %ayet2 %ayet1 }
    else { set %ayet2 $3 }
    if ($calc(%sure + 1) != 0) {
      set %sureno $1
      set %sure $read(sureindex.txt,%sureno)
      goto dosyabul
    }
    set %sayac 1
    set %topsat $lines(sureindex.txt)
    while (%sayac <= %topsat) {
      if (%sure == $read(sureindex.txt, %sayac)) {
        write temp.txt Sure No: %sayac
        set %sureno %sayac
      }
      inc %sayac
    }
    :dosyabul
    if (%sureno == $null) {
      msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
      halt
    }
    set %sayiayet $read(ayetsayisi.txt,%sureno)
    if (%ayet2 > %sayiayet) {
      msg # Hatali Giris Yaptiniz
      msg # %sure Suresi %sayiayet ayettir...
      halt
    }
    if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
      msg # Hatali Giris Yaptiniz...
      halt
    }
    set %d1 3 - $len(%sureno)
    set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
    set %k 1
    while (%ayet1 <= %ayet2) {
      if ((%sureno == 2) && (%ayet1 == 282)) {
        set %bkr 1
        while (%bkr <= $lines(sureler\bakara282.txt)) {
          set %sonuc $read(sureler\bakara282.txt,%bkr)
          wordcheck
          inc %bkr
        }
        goto art
      }
      set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
      if (%k != 1 ) goto gec
      write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
      write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
      :gec
      wordcheck
      :art
      inc %k
      inc %ayet1
    }
    write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
  }
  alias sureler {
    set %t 1
    while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
      inc %t
    }
  }
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
  if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {   
    while (%botdurum == acik) {
      if ( %kul == ontanimli ) {
        set %usersay 1
        while (%usersay <= $lines(botusers.txt)) {
          if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
          inc %usersay
        }
      }
      if ((%kim == $null) && (%kul == ontanimli)) { halt }
      else { set %kim $null }
      write -c temp.txt
      bulr $2 $3 $4
      if (%moderate == 1) { bekle }
      play $chan temp.txt $calc(%ds * 1000)
      set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
      set %zamandur $calc(%zaman / 1000)
      halt
    }
  }
}
alias wordcheck {
  set %twords $calc($numtok(%sonuc,32) + 1)
  if (%twords > %mvg) {
    set %blok $calc(%twords / %mvg)
    set %tamblok $calc($int(%blok) + 1)
    set %dng 1
    set %baslangic 1
    set %bitis %mvg
    while (%dng <= %tamblok) {
      set %aralik %baslangic $+ - $+ %bitis
      set %dizgi $gettok(%sonuc,%aralik,32)
      write temp.txt %dizgi
      set %baslangic $calc(%bitis + 1)
      set %bitis $calc(%bitis + %mvg )
      inc %dng
    }
  }
  else { write temp.txt %sonuc }
  return
}
alias defs {
  if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
    set %ds 3
    set %mvg 10
    set %mva 100
    set %cp 6
  }
}


uFuK 15 Şubat 2009 13:12

Cevap: bot edit
 
Sureler sen hangi komutu yazdıktan sonra kanala yansıyor?

QkLa 15 Şubat 2009 18:21

Cevap: bot edit
 
!bul taha 5 sadece tek sure icin degil surelerin hepsinde yansiyor.sure isimlerinden sonra en altta yazdigim komuta ait ayette yer aliyor

uFuK 16 Şubat 2009 03:38

Cevap: bot edit
 
Alıntı:

on *:start: { hmake yetkililer 1000 | hload yetkililer yetkililer.txt }
on *:connect: {
.timer 1 10 /set %botdurum acik
}
alias bekle {
mode # +m
}

alias bulr {
if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {
set %sureno $null
set %curserver $server
set %curchannel $chan
if (($1 == $null) || ($2 == $null)) {
msg # Bul komutu formati:
msg # !bul sureadi yada numarasi ayet [bitis ayeti]
msg # Ör1:!bul taha 114 --> Taha 114. ayeti gösterir.
msg # Ör2:!bul taha 1 9 --> Taha [1-9]. ayetleri gösterir.
msg # Ör3:!bul 20 1 9 --> Taha [1-9].ayetleri gösterir.
halt
}
else {
set %sure $1
set %ayet1 $2
}
if ($3 == $null) { set %ayet2 %ayet1 }
else { set %ayet2 $3 }
if ($calc(%sure + 1) != 0) {
set %sureno $1
set %sure $read(sureindex.txt,%sureno)
goto dosyabul
}
set %sayac 1
set %topsat $lines(sureindex.txt)
while (%sayac <= %topsat) {
if (%sure == $read(sureindex.txt, %sayac)) {
write temp.txt Sure No: %sayac
set %sureno %sayac
}
inc %sayac
}
:dosyabul
if (%sureno == $null) {
msg # %sure bulunamadi.Sure ismini farkli bir isimle ya da sure numarasi kullanarak belirtiniz.Tüm surelerin listesi için /sureler yaziniz...
halt
}
set %sayiayet $read(ayetsayisi.txt,%sureno)
if (%ayet2 > %sayiayet) {
msg # Hatali Giris Yaptiniz
msg # %sure Suresi %sayiayet ayettir...
halt
}
if ((%ayet1 < 1) || (%sureno > 114) || (%ayet1 > %ayet2)) {
msg # Hatali Giris Yaptiniz...
halt
}
set %d1 3 - $len(%sureno)
set %dosya sureler $+ \ $+ $str(0,%d1) $+ %sureno $+ .txt
set %k 1
while (%ayet1 <= %ayet2) {
if ((%sureno == 2) && (%ayet1 == 282)) {
set %bkr 1
while (%bkr <= $lines(sureler\bakara282.txt)) {
set %sonuc $read(sureler\bakara282.txt,%bkr)
wordcheck
inc %bkr
}
goto art
}
set %sonuc $read(%dosya,w,%ayet1 $+ . $+ *)
if (%k != 1 ) goto gec
write temp.txt $upper(%sure) -- Toplam Ayet Sayisi: %sayiayet
write temp.txt Ayet: %ayet1 - %ayet2 $nick için yaziliyor...
:gec
wordcheck
:art
inc %k
inc %ayet1
}
write temp.txt -------------------------------0000------------------------ 12 [ %cp sn. durakladi ]
}
alias sureler {
set %t 1
while (%t < 115) { msg # %t - $read(sureindex.txt,%t)
inc %t
}
}
}
on *:playend:if (%moderate == 1) { /mode %curchannel -m }
on *:exit:unsetall
on *:disconnect:server %curserver
on *:CONNECT:/join # $+ %curchannel
on *:text:!bul*:#: {
if $read(yetkililer.txt,w,$nick) || ($nick isop $chan) {
while (%botdurum == acik) {
if ( %kul == ontanimli ) {
set %usersay 1
while (%usersay <= $lines(botusers.txt)) {
if ( $nick == $read(botusers.txt,%usersay)) { set %kim 1 }
inc %usersay
}
}
if ((%kim == $null) && (%kul == ontanimli)) { halt }
else { set %kim $null }
write -c temp.txt
bulr $2 $3 $4
if (%moderate == 1) { bekle }
play $chan temp.txt $calc(%ds * 1000)
set %zaman $calc(%ds * 1000 * $lines(temp.txt) + %cp * 1000)
set %zamandur $calc(%zaman / 1000)
halt
}
}
}
alias wordcheck {
set %twords $calc($numtok(%sonuc,32) + 1)
if (%twords > %mvg) {
set %blok $calc(%twords / %mvg)
set %tamblok $calc($int(%blok) + 1)
set %dng 1
set %baslangic 1
set %bitis %mvg
while (%dng <= %tamblok) {
set %aralik %baslangic $+ - $+ %bitis
set %dizgi $gettok(%sonuc,%aralik,32)
write temp.txt %dizgi
set %baslangic $calc(%bitis + 1)
set %bitis $calc(%bitis + %mvg )
inc %dng
}
}
else { write temp.txt %sonuc }
return
}
alias defs {
if ((!%ds) || (!%mvg) || (!%mva) || (!%cp)) {
set %ds 3
set %mvg 10
set %mva 100
set %cp 6
}
}
/sureler
alias'ı devre dışı bırakıldı. !bul* yazıldıgında /sureler devreye giriyordu kapatıldı..


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

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