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 Dersleri (https://www.ircforumlari.net/mirc-scripting-dersleri/)
-   -   Timer(zamanlayıcı) hakkında bilgiler (https://www.ircforumlari.net/mirc-scripting-dersleri/14231-timerzamanlayici-hakkinda-bilgiler.html)

diEfoRyoU 18 Mart 2006 21:19

Timer(zamanlayıcı) hakkında bilgiler
 
/timer[N/name] [-ceomhipr] [time] <repetitions> <interval> <command>

Belli aralıklarlar yada belirlenen saatte yazılan komudu işleme sokmak için /timer Komudunu Rahatlıkla
kullanabiliriz.

Timer komutlarının kapatılması;

Tüm timerleri kapatmak istiyorsanız; /timers off

Belli bir timeri kapatmak istiyorsanız; timer ismini kullanarak kapatabiliriz...

Örnek : /timer1 1 1 /ame Ölümü özlemeyen a$kı anlamaz... şeklinde bir timer açıksa, bu timeri kapatmak için ( timerin adı /timer1 dir. ) --> /timer1 off komutunu yazarız..



/timer1 0 20 /ame awayım! bu komutla her 20 saniyede bir kez olmak şartıyla sonsuza kadar bulunduğum
bütün kanalla awayim! yazısını yollarız (tabi script kapatılmassa yada /timer1 off komutu girilmesse)

/timer5 10 60 /msg #ircforumlari Gelecem bekleyin beni Bu Timer'ıda #ircforumlari kanalına her 60 saniyede
toplam 10 adet mesaj atacak şekilde ayarladık

/timer 14:30 1 1 /echo -a Şimdi saat 14:30 Burda dedikki Saat 2 buçuk olduğu zaman beni bir kere uyar

/timer 10 20 /ame gelecem Bu komutla 20 saniyelik bir timer açtık bu işlem mesaj limitim 10'u bulana kadar
devam edecek

Bir sayıyı yada sözcük kullanarak bir zamanlayıcı için bir ismi
belirtebilirsiniz (örneğin /timer1 , /timer2 Yada /timerdie /timerirc ) gibi

Timer komutlarıyla kodlarda kullanılan identifier'ları da rahatlıkla kullanabiliriz
(örneğin: /timer 1 1 echo -a $nick $server $time ) gibi

/timer3? 30'dan 39'a tüm zamanlayıcıları gösterir

(-h) yada (-m) Parametresi: girilen saniye seviyesini milisaniyeye indirir (örnek /timer -h 10 20 /echo -a deneme 20 saniyede atılması gerekirdi mesajın eğer biz -h parametresini girmeseydik /timer 1 0 /echo -a deneme komutuyla eş değere sahiptir )

(-i) Parametresi: açılan ikinci server penceresindede komutu aktif kılar (örnek /timer -i mesajadeti süre /komut)

(-p) parametresi: Girilen Timer Komutunu Durdurur (örneğin timer1 komudunu durdurmak istersek /timer1 -p yapmamız gerekir)

(-r) Parametresi: -p Parametresi ile durdurulan timeri tekrar aktif kılar (örneğin timer1 komudunu /timer1 -p yazarak durdurmuştuk şimdi /timer1 -r yazarak tekrar aktifleştiriyoruz)

(-e) Parametresi: -e parametresi, aktif olan timer'ın süre bitimini beklemeden anında işleve geçmesini sağlar. Ekstra olarakta "wildcard" destekler.

* örneğin;
* /timer1 3 15 .echo -a naber " komutunu kullandık, biliyorsunuz ki bu komutta, her 15 saniyede 1 kez olmak şartı ile 3 defa " .echo -a naber " komutunu uygular.
* Bu timer işlev sırasındayken eğer biz, " /timer1 -e " komutunu uygularsak, " /timer1 3 15 " olarak ayarladığımız " 3 defa hakkından 1 tanesini " süre bitimini beklemeden uygulamaya alacaktır ve kalan hak " 3 den 2 ye " düşecektir. Eğer ki " /timer1 -e " komutunu, 3 kere uygularsak, bu timer'ı kapatacaktır. Eğer timer içerisinde her hangi bir " adet " girilmemiş ve bu sayı " 0 (yani sonsuz sayıda)" seçilmiş ise " /timer1 -e " komutu bu timer'ı kapatmadan sadece komutunu (.echo -a naber) anında uygulayacaktır.
* Ekstra olarak;
* Diyelim ki, açıkta çalışmakta olan timer1 timer2 timer3 isimli timerlarımız mevcut ve biz bu timerların hepsinin aynı anda işleve girmesini istiyoruz o halde, kullanmamız gereken komut " /timer* -e " olacaktır.

(-o) Parametresi: Bu parametre server'a bağlıyken açtığınız timer'ın server'dan disconnect olsanız bile devam etmesini, kapanmamasını sağlar, veya herhangi bir server'a bağlı olmadan açtığınız timer'ın herhangi bir server'a bağlandığınızda çalışmaya devam eder.

(-c) Parametresi: mIRC'iniz ola ki lag'a girerse -c parametresi ile çalışan ve ya normal olarak çalışan herhangi bir timer'ı timer adıyla birlikte -c ile tekrar aktif ederseniz, " LAG'a girmiş " esnada bu çalışan timerların çalışmasını etkileyip, herhangi bir timer'ı atlarsa bu atlanan timer'ı bir kez daha aktif etmeye çalışır.

(-d) Parametresi: Bu parametre ile çalıştırdığınız timer'ı veya bu parametre dahilinde ki bütün timer'ları, çalıştırdığınız sıraya göre aktif eder.
*örneğin;
Kod:

alias td {
  .timer -d 1 1 .echo -a naber?
  .timer -d 1 2 .echo -a iyi sen?
  .timer -d 1 4 .echo -a iyi, nerden?
  .timer -d 1 7 .echo -a izmir, sen?
  .timer -d 1 9 .echo -a istanbul ok.
}
 * /td

( $ltimer ) : Bu event ile açık olan kaç tane timer varsa, rakam olarak görebilirsiniz, eğer ki açık olan timer sadece bir (1) adet ise, açık olan timer'ın ismi yansıyacaktır.

*örneğin;
PHP- Kodu:

  /timer1 1 2 .echo -a naber
  
/timer1 1 1 .echo -a naber
  
/timer1 1 2 .echo -a naber 

Bu timer'lar aktif iken, " //echo -a $ltimer " dediğimizde, " 3 " olarak dönecektir.
Eğer ki sadece tek bir timer'ımız aktif ise; " /timerNABER 1 3 .echo -a iyi " gibi, " //echo -a $ltimer " , " naber " olarak dönecektir.

HaLiKaRNaSX 21 Mart 2006 19:29

hımmm güzel demekki bu scripting işinde öğreneceğim daha çok şey var benim gibi daha yolun başında olan arkadaşlar için güzel bir çalışma teşekkür ederim.

TrancEnergy 26 Mart 2006 07:24

güzeL eLİNE SağLıK..

Alchemist 29 Mart 2006 09:33

evet bence de güzel üstadlardan devamını bekliyoruz ;oki

RekorNET 16 Nisan 2006 01:34

Yanıt: Timer(zamanlayıcı) hakkında bilgiler
 
-c -o -e parametreleri ve $ltimer identifieri hakkında bilgi biliyorsanız yazın lütfen.

RekorNET 21 Nisan 2006 14:01

Yanıt: Timer(zamanlayıcı) hakkında bilgiler
 
eline sağlık saol

ReMEMBeR 21 Nisan 2006 14:48

Yanıt: Timer(zamanlayıcı) hakkında bilgiler
 
Alıntı:

RekorNET Nickli Üyeden Alıntı
eline sağlık saol

Mesajı yazan kişinin mesajı yazdıgı kutucuğuın sağ en alt ta bi teşekkğrler icon'u göreceksin oraya bir kez tıkladıgındada aynı mesajı ifade etmiş oluyorsun ok ?

BY_CAOS 20 Eylül 2006 23:54

Yanıt: Timer(zamanlayıcı) hakkında bilgiler
 
arkadasım timerla istedigin herseyin zamanını ayarlarsın wea alias kullanmadan ßır dongu acarsın
/timer (mıktar 0 yazıldıgında sonsuzluk ßıldırırır onun dısında lımıtı) (Kac Dakkada ßır tekrarlanacagı) we lımıt ßıtene kadar ßu sekılde devam eden ßır dongu acmıs oluyorsun chanservde we ßundan sonra /komut gelıyor mısal
/timer 0 600 /cs akick #kanal del 1-999 yaparsanız her 10 dakkada ßır akick listenizi temizlersiniz yani ßu ßıraz agır kacarda ıstedıgınız her komutu yaptıraßılırsınız demek ıstedım gerısı komut ßılgınıze ßaglı

Spectral 10 Ekim 2006 11:58

Yanıt: Timer(zamanlayıcı) hakkında bilgiler
 
Alıntı:

el33t Nickli Üyeden Alıntı
-o flagı ise: normal şartlarda servera bağlıyken /timer komutunu kullandığınızda, timerınız serverdan düştükten sonra kapatılır, -o flagını kullanırsak timer serverdan düşseniz bile çalışmaya devam eder.

Açılan timer serverdan düşünce çalışıyorsa nasıl düzeltilebilir ?
Eski haline yani düşünce timer kapansın şekline.

McKruGer 14 Ekim 2006 00:03

Yanıt: Timer(zamanlayıcı) hakkında bilgiler
 
Alıntı:

Spectral Nickli Üyeden Alıntı
Açılan timer serverdan düşünce çalışıyorsa nasıl düzeltilebilir ?
Eski haline yani düşünce timer kapansın şekline.

timer komutunda -o flagını kullanmasan zaten serverden düştüğün zaman timer çalışmaz. yani pasiftir.

IceR 07 Mart 2007 15:18

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Tşk kardeş ben saatlisini bilmiyodum işime yaradı script ime koydum :D
/timer1 $time 1 1 /msg # Saat şu an $time CaN Script

Regex 28 Ocak 2009 00:31

Timer (Zamanlayıcı) Hakkında Geniş Bilgi
 
Ders: Timer (Zamanlayıcı) Hakkında Geniş Bilgi
Tarih: 27.01.2009 Salı
Yazan: Regex
Kalite Kontrol: detay

-

Evet arkadaşlar, bu dersimizde /timer komutunu ele alacağız.

Bildiğiniz gibi timerı, yazdığımız birçok kodda kullanıyoruz ve çok kullanışlı bir komut. Kodlarda olmasa bile örneğin bir işlemi daha sonra otomatik olarak yapmak istersek de kullanıyoruz. Bu nedenle, sadece mIRC Scripting ile uğraşan arkadaşlarımızın değil tüm IRC kitlesinin bilmesi gereken bir komuttur.

Öncelikle, Khaled'ın timerı nasıl anlattığına (mIRC help dosyasında) bakalım:

Alıntı:

/timer[N/name] [-ceomhipr] [time] <repetitions> <interval> <command>

Size, bunları tek tek açıklayacağım ve açıklarken de bol örnekle, basite indirgeyerek, elimden geldiğince anlaşılır bir üslup kullanmaya çalışacağım. Aklınıza takılanları, yine bu başlık altından sorabilirsiniz.

Öncelikle basit bir komutla başlayalım. Örneğin; sonsuz sayıda, her beş saniyede bir /ame atarak "Denemedir yahu." yazalım.

Komut: /timer 0 5 ame Denemedir yahu.

Gördüğünüz gibi sunucudan bağlantınız kopmadığı sürece, her beş saniyede bir bütün kanallara "Denemedir yahu." şeklinde ame gönderilecektir.

Biz, bu komutta isimsiz bir timer açtık. Daha doğrusu, ismi mIRC'in rastgele ve kaçıncı timersa ona göre vermesine olanak tanıdık. Eğer komutu "/timerdene 0 5 ame Denemedir yahu." olarak yazsaydık, bu timerın ismi "dene" olacaktı.

Peki açılan bir timerı nasıl kapatırız?

Son derece basit: /timerzamanlayıcının-adı off

Burada zamanlayıcının-adı olan kısma, timerın ismini yazacaksınız. Eğer tüm timerları aynı anda kapatmak istiyorsanız da /timers off şeklinde kullanacaksınız. "s" takısı, zaten İngilizce'de çoğul anlamına gelmektedir; bizdeki lar-ler gibi.

Ayrıca timerlarda, whildcard da kullanabiliyoruz. Mesela; "a", "aa" ve "abc" adlarında üç timerımızın olduğunu varsayalım. /timera* off yazdığımızda, "a" ile başlayan tüm timerları kapatmış olacağız ve şu şekilde bir yanıtla karşılaşacağız:

Alıntı:

* 3 Zaman uyumluluğu a* durdu

Parametrelere ve timer hakkındaki identifierlara geçmeden önce, bu kısmı iyice kavramanız açısından kodlar içerisinde de timerın kullanımını anlatmak istiyorum. Yine fazla karışık olmayan, basit bir kod yazalım ki daha kolay bu işi kavrayın. Misal; "#Life" kanalına her girene, iki saniye gecikmeli olarak hoş geldin dedirtelim (açılan timerlar, giren kişilerin rumuzları olsun) ve yine bu kanalda Lifeman rumuzu, "!dur" komutunu kullandığında aktif olan tüm timerları kapatalım.

Kodumuz:

Kod:

on !*:join:#Life:$+(.timer,$nick) 1 2 .msg # Hoş geldin, $+($nick,.)
on *:text:!dur:#Life:if $nick == Lifeman { .timers off }


Bir de timerlarda zaman faktörü vardır. Mesela 12:00'de işlem yapacak bir timer oluşturabiliriz.

Örnek komut: /timer 12:00:00 1 1 echo Öğlen oldu.
Örnek komut: /timer 02:30:00 1 1 echo Saat gecenin iki buçuğu oldu. Yat artık yahu.

Tüm noktalar anlaşıldıysa, parametreleri açıklamaya başlıyorum.

Yukarıda help dosyasında, verildiği gibi /timer komutunun birçok parametresi mevcuttur.

Peki bu parametreler nelerdir ve ne işe yararlar?

-c: Bazı nedenlerden ötürü bir timer, normâl şartların dışında çalışıyorsa bu parametre kullanıldığında timer, işlemini hemen uygular. Aksi takdirde, herhangi bir işlem yapmaz.
-e: Timerı çağırmak için kullanılır. Yani normâlde timerın, daha işlem yapmasına zaman varken bu parametreyle bir timerı çağırdığınızda işlem hemen yapılacaktır. Örneğin: "örnk" adında, yedi (7) saniyeye ayarlı bir timerımız olsun. Biz, /timerörnk -e yazdığımızda bu timer, yapacağı işlemi derhâl uygulayacaktır.
-h: Altta açıklayacağım, -m parametresiyle aynıdır.
-i: Multi (çoklu) bir sunucuda bağlantı kuruluysa, timerı bu sunucuda da aktif kılar.
-m: Saniye bölümündeki rakamı, milisaniye olarak algılar. Yani "/timer -m 5 15 echo Deniyoruz." komutunu kullandığınızda, aynı saniye içerisinde (milisaniye en küçük zaman birimidir), beş defa "Deniyoruz." yazısının çıktığını göreceksiniz.
-o: Bu parametre girilmezse açılan timer, sunucuyla bağlantımız koptuğunda (disconnect) otomatik olarak kapatılır. Fakat bu parametre eklenirse, bağlantı kopsa da timer, çalışmaya devam eder.
-p: Belirtilen timerı durdurur (Örnek: /timerhedehödö -p).
-r: -p parametresiyle durdurulan timerı, yeniden çalıştırır (Örnek: /timerhedehödö -r).

Parametreleri de açıkladığıma göre şimdi sıra geldi, $timer() identifierına. Bu identifier, bu komutla işlem yapacakların bilmesi gereken en önemli noktalardan birisidir.

$timer() identifierı ne işlere yarar ve nasıl kullanılır?

Bu identifier, yukarıda da dediğim gibi /timer komutunda işlem yapmak isteyenler için olmazsa olmazdır. mIRC'de kaç adet timer olduğunu kontrol etmeye, verilen sıra numarasına ait timerın ismini almaya, verilen isimdeki timerın sıra numarasını almaya, ismi veya sıra numarası verilen timerın kaç kez tekrar edileceğine ve daha birçok işe daha yarar. Yeter ki siz öğrenmek isteyin.

Açıklamaya başlıyorum;

$timer(0): Toplam kaç adet timer olduğunu gösterir. Eğer hiç timer yoksa "0" olarak döner.
$timer(1): Bir numaralı timerın adını verir. Mesela hiçbir timerın açık olmadığını farz edelim ve /timeranla bilmem-ne gibi bir timer açmış olalım. $timer(1) yazıp, TAB'a bastığımızda "anla" şeklinde dönecektir.
$timer(2): İki numaralı timerın adını verir. Yukarıdaki gibi numaradan isim alıyoruz yani.
$timer(lfmn): "lfmn" isimli timerın, numarasını verir. Bu da yukarıdakilerin tam tersine bir iş yapar. Yani isim ver, numara al.:)

Proplarsa aşağıda;

$timer(<timer-ismi>|<timer-sıra-numarası>).com: İsmi veya sıra numarası verilen timera, girilen komutu verir. Örneğin: /timerpdnm 1 1 echo com propunu deniyorum. şeklinde bir timer açtığımızı farz edelim. $timer(pdnm).com yazdığımızda, "echo com propunu deniyorum." komutunu verecektir.
$timer(<timer-ismi>|<timer-sıra-numarası>).time: Eğer ismi veya sıra numarası verilen timer, bir saate tanımlandıysa bu saati verir. Yukarıda timerda saat kullanımını zaten açıkladım; bu nedenle örnek vermeye gerek duymuyorum.
$timer(<timer-ismi>|<timer-sıra-numarası>).reps: İsmi veya sıra numarası verilen timerın, kaç kez tekrarlanacağını verir. Örneğin: /timerpdnm 5 0 echo reps propunu deniyorum. şeklinde bir timer açtığımızı farz edelim. $timer(pdnm).reps yazdığımızda -pdnm olan yere timerın sıra numarası da yazılabilir- "5" olarak dönecektir.
$timer(<timer-ismi>|<timer-sıra-numarası>).delay: İsmi veya sıra numarası verilen timerın, kaç saniye sonra komut uygulamak için tanımlandığını verir. Örneğin: /timerpdnm 2 5 echo delay propunu deniyorum. şeklinde bir timer açtığımızı farz edelim. $timer(pdnm).delay yazdığımızda "5" olarak dönecektir.
$timer(<timer-ismi>|<timer-sıra-numarası>).type: Bu prop, iki şekilde dönecektir. Eğer belirtilen timerı, sunucuya bağlıyken açtıysak "online"; sunucuya bağlı değilken açtıysak da "offline" olarak dönüş yapacaktır. Oldukça basit olduğu için örnek vermeye gerek duymuyorum. İsterseniz siz, deneme yapabilirsiniz.
$timer(<timer-ismi>|<timer-sıra-numarası>).secs: Belirtilen timerın, komutunu uygulamasına ne kadar zaman kaldığını saniye (seconds) cinsinden belirtir. Örneğin: /timerpdnm 1 120 echo Bu proplar dene dene bitmiyor yahu. şeklinde bir timerımızın olduğunu farz edelim. Aradan yirmi saniye geçsin ve $timer(pdnm).secs yazalım; karşımıza "100" rakamının çıktığını göreceksiniz. Gayet basit.

$timer() identifierında birkaç prop daha mevcut fakat bunları anlatmaya gerek duymadım.

Ek bilgi: Bir de $ltimer identifierı mevcuttur. Hemen açıklayayım: Last (son) açılan timerın, ismini verir. Örneğin: /timerdenedimki 1 10 echo Ders biter, deneme bitmez. şeklinde bir timer açtığımızda, bu on saniye içerisinde $ltimer yazıp TAB'a basarsak ya da //echo $ltimer komutunu uygularsak "denedimki" yanıtını verecektir.

Bu identifierın ne kadar kullanışlı olduğunu anlatmak ve uygulamalı olarak göstermek için daha da pekiştirmenizi sağlayacak bir kod yazalım. Mesela /tmrbilgi diye bir aliasımız olsun; biz, bunu kullandığımızda mevcut timer sayısını, timerların adını, kaç kez işlem yapacaklarını, kaç saniye sonra işlem yapacaklarını ve işlem yapma sürelerine kalan süreyi göstertelim. İşte kod:

Kod:

tmrbilgi {
  echo mIRC timer bilgileri alınıyor.
  if !$timer(0) { echo Hiçbir timer yok. | return }
  echo Toplam timer sayısı: $timer(0)
  var %/ = 1
  while $timer(%/) {
    echo Ele alınan timer: $ifmatch
    echo Timerın uygulayacağı komut: $timer(%/).com
    echo Timerın tekrarlanma sayısı: $timer(%/).reps
    echo Timerın işlem yapması için belirtilen süre: $timer(%/).delay saniye
    echo Timerın işlem yapması için kalan süre: $timer(%/).secs saniye
    echo -
    inc %/
  }
}




Şey, aslında bu örnek bir kod olacaktı fakat ben koptum, gittim.:D Neyse dersin içinde de bu şekilde bir bilgi addonu sizlere hediyem olsun. Yukarıya, bu addonun vereceği bilgileri de ekliyorum. Yine iyisiniz.:)

Umarım bu dersten, birileri bir şeyler anlamıştır. Konu hakkındaki sorularınızı, başlık altından sorabilirsiniz.

Not: Birkaç eklememde yardımcı olan ve dersi inceleyip, onay veren (kalite kontrol) detay'a teşekkür ediyorum.

Hepinize iyi çalışmalar.

L4roXyL 04 Şubat 2009 13:31

Cevap: Timer (Zamanlayıcı) Hakkında Geniş Bilgi
 
Evet /timer güzel bir komutdur. İşlevsel olduğu kadar, uygulanan komutları sabitlediği içinde biraz kalıpsal olabiliyorda(kullanıma göre)
mIRCde bazı komutlar/işlevler internal olarak(siz göremezsiniz) /timer kullanır.
-
Birkaç bilgide ben vereyim /timer hakkında.
-
/timer komutu kendisine atanan işlevi/komutu(<command>) her zaman için SABİTLER.
Bakın bu sabitleme olayını basite almayalım, bunun üzerine düşmemin sebebini anlayacaksınız.
Örneğin: //.timer 3 1 inc %1 | .timer 3 1 echo - Değer: %1
Şeklinde bir komu uyguluyoruz. Uyguladığımız komut(lar);
Üç(3) defa uygulanmak üzere, saniyede bir(1) defa %1 değişkeninin değerini(ilk timerda) bir değer arttırmak.
İkinci(2.) timerda ise bu değişkenin değerini echo ile almak istiyoruz. Ve komutu uygulayalım bakalım sonuçlar ne olacak?
Sonuçlar;

Kod:

- Değer:
- Değer:
- Değer:

Gördüğünüz gibi herhangi bir değer alamadık. Bunun sebebi %1 değişkeninin daha önceden bir değere sahib olmaması değildir. Çünki /inc komutu değer oluşturulmamış olsa dahi, sıfırdan değeri oluşturur ve atdığınız değeri verir.
Bunun nedeni yukarıda dediğim gibi /timer komutunun veriyi SABİTLEMESİDİR.
Halbuki işlevler(açtığınız timer(lar)) sona erdiğinde; //echo - Değer: %1 yaptığınızda; (- Değer: 3) olarak yanıt alacaksınız.

Bir örnek daha verelim: //.timestamp hh:nn:ss | .timer 3 1 echo - Saat(SAAT:DAKİKA:SANİYE): $time

Uyguladığımız komut(lar);
Timestamp(saat gösterim bilgisini) "SAAT:DAKİKA:SANİYE" şeklinde ayarlıyoruz(bunu yapmak zorunda değiliz, lakin format bu şekilde değilse ayarlamak için kullandık)
Ve 3 defa uygulatmak üzere saniyede 1 defa, saat bilgisini alıyoruz. Komutu uygulayalım ve sonuçlara bakalım.
Sonuçlar;

Kod:

- Saat(SAAT:DAKİKA:SANİYE): 07:44:42
- Saat(SAAT:DAKİKA:SANİYE): 07:44:42
- Saat(SAAT:DAKİKA:SANİYE): 07:44:42

Gördüğünüz gibi, /echo mesajı ile aldığımız saat bilgisinde, saniye kısmı değişmedi.
İşte yine yukarıda dediğim gibi bunun olmasının sebebi, /timer komutunun <command> kısmını sabitlemesinden kaynaklanmaktadır.
Şimdi şu soruyu bana sorabilirsiniz: "Peki ne yapacağız?
Bu soruyu bana değil khaled'e sorun diyeceğim ama oda zaten bunun çözümünü bize vermiş.

Bakınız: You can force identifiers to be re-evaluated when used in a /timer command by using the format $!me or $!time.
Buradaki açıklamada $time ve $me identifierları sadece örnektir. Yani sadece bunları kapsamaz.
Peki ne yapacağınız? Sorusunun en kısa ve basit cevabı; "!" karakterini kullanacaksınız cevabıdır. .)
Tabiki ben basit cevap vermek istemiyorum açıklayalım.

"!" karakterini belirtilen şekilde kullandığınızda, /timer komutunun sabitleme olayını ortadan kaldırırsınız.
Bakın dikkat edin, <repetitions> <interval> kısımlarına bir etki yapmaz. Bu sadece <command>(komut) kısmına işlev yapar.
Şimdi yukarıda vermiş olduğumz örneği, "!" karakterini kullanarak uygulayalım ve bakalım sonuç ne olacak.

Sonuç(lar);

Kod:

- Saat(SAAT:DAKİKA:SANİYE): 07:55:27
- Saat(SAAT:DAKİKA:SANİYE): 07:55:28
- Saat(SAAT:DAKİKA:SANİYE): 07:55:29

Gördüğünüz gibi sabitleme işlevi ortadan kalktı ve anlık veriyi alabildik.
Şimdi şöyle bir soruda gelebilir bana: "Tüm identifierlarda kullanabilirmiyiz?"
Cevabım: Evet kullanabilirsiniz. Hayır TÜM identifierlarda kullanmanız saçma olur. .)

Açalım biraz. Kullanmanız gereken identifierlar değişken identifier olmalıdır. Çünki zaten sabit bilgiyi almak istiyorsak kullanmamıza gerek yok.
Kullanacağınız identifierlar değişken veri verebilecek olan identifierlar olmalıdır.
Örneğin: $time - $nick(kullanıma göre) - $me - $eval - $evalnext - $rand vb.

Bana gelebilecek sorulardan bir tanesi daha: "Peki %değişkenler için nasıl kullanacağız? %!değişken şeklinde kullansak olurmu?"
Cevabım: Hayır asla olmaz. Çünki bu karakteri sadece $identifierlarda kullanabilirsiniz.
Bu cevabın arkasından gelecek olan soru: "Ee peki ne yapıcaz %değişkenler için?"
Cevabım: %Değişkenler için, değişken verisini alabilen/gösterebilen bir $identifier kullanıcaksınız. .)
Bu cevabın arkasından gelecek olan soru: "Hangi identifier'lar peki bunlar?"
Cevabım: $var - $(...) - $eval - $evalnext
Bu cevabın arkasından gelecek olan soru: "Örnek gösterebilirmisin?"
Cevabım: Tabiki buyrun örnekler.

Kod:

//.timer 3 1 inc %1 | .timer 3 1 echo - Değer: $!eval(%1,2)
//.timer 3 1 inc %1 | .timer 3 1 echo - Değer: $!evalnext(%1)
//.timer 3 1 inc %1 | .timer 3 1 echo - Değer: $!(%1,2)
//.timer 3 1 inc %1 | .timer 3 1 echo - Değer: $var(%1,1)

Not: $var identifierında "!" kullanmadım, çünki /timer komutunun sabitleme işlevi, $var identifierında geçersizdir. Kullanmanıza gerek yok.
Sanırım anlaşılmayan birşey yok.

Şimdi diğer bilgilere gelelim.

-

/timer komutu ile 1'den fazla komutu aynı anda aktif etmek?

Şimdi aklınıza şu gelmesin hemen: //timer 1 1 komut1 | komut2 | komut3
Hayır bu geçersizdir, burada /timer komutunun uygulayacağı tek komut "komut1" komutudur. Diğer komut(ları) siz ayrı olarak uygularsınız.
Peki ne yapmalıyız? Ne yapabiliriz /timer komutunda birden fazla komutu aktif hale getirmek için?
Sizin vereceğiniz ve benim en nefret ettiğim cevap şu olacak:
"alias oluştururuz, komutların hepsini alias içerisine atarız. Sonra oba /timer ? ? aliasismi yaparız"
Evet böylede yapabilirsiniz. Ama çok basit işlevler için gidipde alias oluşturursanız bu komiklikten öte daha çok profesyonellik dışı olur.

Örneğin:
Kod:

alias deneme echo -Deneme1 | echo -Deneme2 | echo -Deneme3
/timer ? ? deneme

Yaparsanız bu olur, ama etik olmaz.


Bunları okuduktan sonra gelebilecek olan sorular:
  • E peki ne yapacağız o zaman?
  • Hem bu şekilde kullansak ne olurki?
  • Çok biliyorsan anlatda öğrenelim(!) o zaman?
-

Cevablarım:

1- E peki ne yapacağız o zaman?

Yukarıda anlattığım o kadar şeyi cidden okuduysan ve algılamaya çalıştıysan, bu sorunun cevabını % 78.6 (:)) ihtimal ile kendin verebilirsin aslında.
Çünki demiştimki /timer komutu, <command> kısmını sabitler.

Birinci yol: $chr
"|" karakterinin ascii numarasını bul. ve bu numarayı $chr identifierı içine girerek birden fazla komut uyglatabil. .)
Şöyleki: "|" karakteri dediğim gibi yeni komut uygulatma karakteridir. Ve ascii numarası 124dür.

Uygulayabileceğimiz komut: //.timer 1 0 echo - Deneme1 $chr(124) echo - Deneme2 $chr(124) echo - Deneme3
Aldığımız cevap(lar):

Kod:

- Deneme1
- Deneme2
- Deneme3

Demekki aynı anda birden fazla komutu aktif edebiliyormuşuz /timer komutunda.
Not: Birden fazla komutu aynı anda aktif etmek, hepsini aynı anda kullanmak demek değildir. Yine sırası ile kullanmaktır. mIRC bir komut uygulanmadan ikinci komutu uygulamaz.

İkinci yol: $(...)

$(...) identifierını kullanırsınız. Nasılmı?

Örnek: //.timer 1 0 echo - Deneme1 $(|) echo - Deneme2 $(|) echo - Deneme3

Yukarıdaki ile aynı işlevi görür. mIRCin "|" karakterini <yeni komut-sonraki> komut sıfatından kaldırır.(/timer haricinde)
-
2- Hem bu şekilde kullansak ne olurki?
Hiçbirşey olmaz. Ama yine dediğim gibi basit komut(lar) için gereksiz alias(yeni komut) uygulamasından kurtulursunuz.
Yani bir nevi kısacası komut uygulatmak için, ayrı bir komut oluşturmuş olmazsınız. .)
-
3- Çok biliyorsan anlatda öğrenelim(!) o zaman?
Hayır çok bilmiyorum. Sadece doğru olanı biliyorum ve bildiklerimi anlattım.
Umarım öğrenmişsin(iz)dir.
-
Kolay gelsin.

Minstrel 10 Temmuz 2011 21:46

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Mirc help dosyasında timerde bir de d anahtarından bahsediliyor. Ben araştırdım denedim bulamadım. Bu konuda yardımcı olursanız sevinirim..

WingmaN 11 Temmuz 2011 05:32

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Ders, bütün parametreleri kapsayacak şekilde, detaylı anlatım olarak yenilenmiştir.

İyi dersler.

OzeL 08 Ocak 2012 14:57

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
1 Saatte ßir Oto Msj Timer zamanını Yazarmısınız ArkadasLar ?

Minstrel 08 Ocak 2012 16:44

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Timeri genelde saniye cinsinden kullanıyoruz. Bir saat ;
//echo $calc(60*60)
3600
saniyedir. Timerin sürekli çalışması için tekrar aralığını 0 alıyoruz.
/timer 0 3600
Sonra da asıl yapmak istediğimiz durumun komutunu ekliyoruz.
/timer 0 3600 msg #kanal mesajınız
(Eğer kanala atacaksanız oto mesajı)

Bu eğitim dökümanı çok iyi, ek olarak

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

bunu da okuyarak kendiniz de bulabilirsiniz basit komutları.
İyi forumlar.

nikotin 10 Ocak 2017 16:45

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Bazı remote kodlara eklenen timerler var.

mesela X kanalına kullanıcı girdigi zaman baska bir islem icin timer devreye giriyor diyelim.
bu timer yalnızca 1 kez calıstırmak istersen ne yazmamız gerekir ?
veya timer aktif olduktan belli bir süre deaktif kalacak sekilde nasıl bi timer yazabiliriz.

nikotin 10 Ocak 2017 16:45

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Bazı remote kodlara eklenen timerler var.

mesela X kanalına kullanıcı girdigi zaman baska bir islem icin timer devreye giriyor diyelim.
bu timer yalnızca 1 kez calıstırmak istersen ne yazmamız gerekir ?
veya timer aktif olduktan belli bir süre deaktif kalacak sekilde nasıl bi timer yazabiliriz.

Feragat 21 Ocak 2017 23:46

Cevap: Timer(zamanlayıcı) hakkında bilgiler
 
Alıntı:

nikotin01 Nickli Üyeden Alıntı (Mesaj 1041834619)
Bazı remote kodlara eklenen timerler var.

mesela X kanalına kullanıcı girdigi zaman baska bir islem icin timer devreye giriyor diyelim.
bu timer yalnızca 1 kez calıstırmak istersen ne yazmamız gerekir ?
veya timer aktif olduktan belli bir süre deaktif kalacak sekilde nasıl bi timer yazabiliriz.

Anladığım kadarıyla açıklıyorum,
Timer komutunda bunu tekrar sayısını belirleyerek yapabilirsin.

Kalıp-
/timer [Tekrar] [Süre] /komut

Örnek-
/timer 1 5 echo -a selam (1 defa, 5 saniye sonra aktif ekrana selam yaz)

/timer 1 1 echo -a deneme (1 defa, 1 saniye sonra aktif ekrana deneme yaz)

/timer 2 1 echo -a heyy (2 defa, 1'er saniye arayla aktif ekrana heyy yaz)

/timer 2 5 echo -a heyyo (2 defa, 5'er saniye arayla aktif ekrana heyyo yaz)


Timer komutu mirc.chm açıklaması Link: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


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

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