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/)
-   -   kanal genelinden kendim texten egitim verebilmem (https://www.ircforumlari.net/mirc-scripting-sorunlari/31081-kanal-genelinden-kendim-texten-egitim-verebilmem.html)

AyEsBiBe 06 Mayıs 2007 05:40

Cevap: kanal genelinden kendim texten egitim verebilmem
 
Hem bu alias uyumsuzluğunu ortadan kaldırmak, hemde kod uzunluğunu ortadan kaldırma için tüm aliaslarını tek 1 aliasta topladım ve "on TEXT" eventini daha uygun kısalttım. Dialogda bi kaç düzensizlik vardı onları hallettim. Kodu denedim gayet iyi ve sorunsuz çalışıyor..


Kod:


alias egitim {
  if (!$istok(egitim.chanserv.nickserv.memoserv.akick.Bkanalkipi.ChanServLevels.ChanServSet.fkanalkipi.nickmodeleri.ignore.KanalModeleri.list.version.who.wildcard.client.ilkemiz.karsılama,$1,46)) { echo -a " $1 " Böyle Bir Eğitim Dosyası Bulunamadı.. | halt }
  set %egitimtxt $1 $+ .txt
  set %satir 1
  .timeroku 0 2 egitimdvm
}
alias egitimdvm {
  if (%satir > $lines(egitim\ $+ %egitimtxt)) { .timeroku off | unset %satir }
  else { msg %egitim $read(egitim\ $+ %egitimtxt,%satir) | inc %satir }
}
on *:text:*:%egitim: {
  if ($left($1,1) == $chr(33)) && ($istok(egitim.chanserv.nickserv.memoserv.akick.Bkanalkipi.ChanServLevels.ChanServSet.fkanalkipi.nickmodeleri.ignore.KanalModeleri.list.version.who.wildcard.client.ilkemiz.karsılama,$right($1,$calc($len($1) -1)),46)) {
    .egitim $right($1,$calc($len($1) -1))
  }
}
dialog egitim {
  title "IRCd/Services Eğitim Botu"
  size -1 -1 140 144
  option dbu
  text "Nick", 1, 10 33 35 8
  text "Şifre [ Varsa ]", 2, 10 57 35 8
  text "Fullname", 3, 10 45 35 8
  text "Eğitim Kanalı", 4, 10 72 35 8
  text "Sunucu Adı", 5, 10 89 35 8
  edit "", 6, 65 32 50 10, autohs
  edit "", 7, 65 45 50 10, autohs
  edit "", 8, 65 59 50 10, autohs, pass
  edit "", 9, 65 73 50 10, autohs
  edit "", 10, 65 88 50 10, autohs
  button "Tamam", 11, 49 108 37 12, default, flat, ok
}
on *:dialog:egitim:*:*:{
  if $devent == edit {
    set %nick $did(6)
    set %fullname $did(7)
    set %pass $did(8)
    set %egitim $did(9)
    set %serv $did(10)
  }
  if $devent == init {
    if (%nick != $null) { did -a $dname 6 %nick }
    if (%fullname != $null) { did -a $dname 7 %fullname }
    if (%pass != $null) { did -a $dname 8 %pass }
    if (%egitim != $null) { did -a $dname 9 %egitim }
    if (%serv != $null) { did -a $dname 10 %serv }
  }
  if ($devent == sclick) {
    if ($did == 11) {
      .nick %nick
      .fullname %fullname
      .timer 1 3 /server %serv
    }
  }
}
on *:start:{ .timer 1 2 /dialog -m egitim egitim }
on *:connect:{ .identify %pass | join %egitim }
on *:join:%egitim:{
  if ($nick == $me) {
    .topic %egitim 12,0 Arkadaşlar hoş geldiniz eğitimlerimize
  }
}
menu channel {
  <- Egitim->
  .Nickserv
  ..Baslat:/egitim nickserv
  .Chanserv
  ..Baslat:/egitim chanserv
  .memoserv
  ..Baslat:/egitim memoserv
  .akick
  ..Baslat:/egitim akick
  .Bkanalkipi
  ..Baslat:/egitim Bkanalkipi
  .ChanservLevels
  ..Baslat:/egitim ChanservLevels
  .ChanservSET
  ..Baslat:/egitim ChanservSET
  .fkanalkipi
  ..Baslat:/egitim fkanalkipi
  .ignore
  ..Baslat:/egitim ignore
  .Nickmodeleri
  ..Baslat:/egitim Nickmodeleri
  .Kanalmodeleri
  ..Baslat:/egitim Kanalmodeleri
  .List
  ..Baslat:/egitim List
  .Version
  ..Baslat:/egitim Version
  .Who
  ..Baslat:/egitim Who
  .wildcard
  ..Baslat:/egitim wildcard
  .Client
  ..Baslat:/egitim Client
  .ilkemiz
  ..Baslat:/egitim ilkemiz
  .karsılama
  ..Baslat:/egitim karsılama
  .Aktif Eğitimi Duraklat:/timeroku -p
  .Eğitime Devam:/timeroku -r
}

Not: Kendi editlediğin kodda herhangi bir sorun yok sadece alias isimlerini değişmekte yeterli olucaktı fakat bence bu kod biraz daha uygun.
Çalıştırma şekli değişti sadece eğitimi kendin başlatırken /egitim Eğitimadı yazıcaksın
Örneğin;
/Egitim nickserv
/Egitim akick
/Egitim egitim v.s. v.s.

Anlamadığın yer olursa sorman yeterli..

SaintCty 06 Mayıs 2007 21:48

Cevap: kanal genelinden kendim texten egitim verebilmem
 
Alıntı:

AyEsBiBe Nickli Üyeden Alıntı
Koda bir hatan yok. Sadece Sanırım scriptinde otoidentify var veya olmasa dahi sen nickini identify ettiğinde veya nickserve herhangi bir komut gönderdiğinde eğitim başlicaktır. Çünkü;

/nickserv identify 123456 komutunu girdiğinde "/nickserv" girdiğin için eğitim başlaması talimatini veriyoruz;
Kod:

alias Nickserv {
msg %egitim $read(egitim\nickserv.txt,1)
set %satir $readn
.timeroku 0 5 nickserv1
}

Umarım anlamışsındır bu sadece nickserv için değil Chanserv ve memoserv içinde geçerli;)
Kodda bazı gereksiz uzun yerler var biraz editleyip açıklamaları ile vericem.

dostum öncelikle ilgin alakan için cok tşk ederim dogru bende oto idenfiy var zaten oto identify bu adnonların kendi yapıyor bugün bişi daha dikkatimi cekti /ingore yazdım bire komut verdim başladı /ingore komutlarını anlatmaya bu adnonu düzenleyip bana böyle hatalar veremeycek şekilde ayarlarsan memnun olurum emegine ve eline saglık tekrardan sagol varol


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

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