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/)
-   -   Ekran kasmaması için kademeli döngü oluşturma [while] (https://www.ircforumlari.net/mirc-scripting-dersleri/1071219-ekran-kasmamasi-icin-kademeli-dongu-olusturma-while.html)

manikdepresif 28 Ekim 2025 16:19

Ekran kasmaması için kademeli döngü oluşturma [while]
 
Merhaba arkadaslar bazen while kullandigimiz zaman belirli bir döngü sayisindan sonra ekranda donma ve yavaslama olabiliyor, bunun icin su sekilde kademeli while kullanimini sizlerle paylasiyrum.
İki adet örnek kod paylasiminda bulunacagim.
1- Normal Döngü
2- Kademeli Döngü
Her iki kodu deneyin ve aradaki farki siz de goreceksiniz.
----------------------------------------------------------------------------
Kod:

alias normal-dongu {
  if !$window(@pen)  { window -e @pen }
  clear @pen
  var %toplam_doner_sayisi 15000
  var %hep_doner 1
  while (%hep_doner <= %toplam_doner_sayisi) {
    echo @pen %hep_doner
    inc %hep_doner
  }
}

-----------------------------------------------------------------------------
Yukaridaki kodda /normal-dongu komutu uyguladiginizda 2500 den sonra kasmaya ekran donmaya baslayacaktir.
-
Asagidaki kodda ise /kademeli-dongu komutu uygulandiginda herhangi bir donma veya yavaslama olmayacaktir.
Burada dikkat edilmesi gereken yer %kritik_doner_kademesi dir
Yazacaginiz kodda kasmaya basladigi sayiyi buraya yazabilirsiniz ve bunu kendiniz icin ayarlayabilirsiniz. Buradaki mantik şudur, degiskenler sabit olarak setlenir ve belirlii bir degere geldikten sonra ayni alias uzerinden timer ile calistirilir, degerler sabit kalacagi icin kod isleyisine devam eder ve sona yaklastiginda degerler sifirlanir ve timer durdurulur.
Saygilar. [jeun]

Kod:

alias kademeli-dongu {
  if !$window(@pen)  { window -e @pen }
  if (!%hep_doner) {  set -eu30 %hep_doner 1 |  clear @pen }
  if (!%toplam_doner_sayisi) { set -eu30 %toplam_doner_sayisi 15000 }
  if (!%kritik_doner_kademesi) { set -eu30 %kritik_doner_kademesi 2000 }
  if (!%doner_kademesi) {  set -eu30 %doner_kademesi 1 }
  while (%hep_doner <= %toplam_doner_sayisi) {
    if ($calc(%doner_kademesi * %kritik_doner_kademesi) == %hep_doner) {
      inc %doner_kademesi | .timerdongu -m 1 50 kademeli-dongu  | goto git
    }
    echo @pen %hep_doner
    inc %hep_doner
  }
  if (%hep_doner >= %toplam_doner_sayisi) {
    .timerdongu  off | unset %hep_doner | unset %toplam_doner_sayisi | unset %doner_kademesi | unset %kritik_doner_kademesi
  }
  :git
}


Gurkan 30 Ekim 2025 11:17

Cevap: Ekran kasmaması için kademeli döngü oluşturma [while]
 
Mükemmel, her 2000 olduğunda nefeslenip tekrar kaldığı yerden saymaya devam ediyor. Eline sağlık güzel düşünce.


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

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