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/)
-   Soru - Cevap (https://www.ircforumlari.net/soru-cevap/)
-   -   Client Soru-Cevap Oyunu (https://www.ircforumlari.net/soru-cevap/51644-client-soru-cevap-oyunu.html)

xwerswoodx 14 Kasım 2011 19:07

Cevap: Client Soru-Cevap Oyunu
 
kanalımda 5 protect (+a) 20 aop (+o) ve 100 kullanıcı bulunmaktadır. Ben bu 20 aop ve 5 protect kullanıcıya "Slm!" geri kalan 100 kullanıcıya ise "Merhaba!" mesajı göndermek istiyorum?

SiyahKaR 14 Kasım 2011 20:36

Cevap: Client Soru-Cevap Oyunu
 
Cevap:
//var %i $nick($chan,0) | while (%i >= 1) { if ($nick($chan,%i) isop $chan) || ($nick($chan,%i) isprotect $chan) { msg $nick($chan,%i) Slm! } | else { msg $nick($chan,%i) Merhaba } | dec %i }

Minstrel 14 Kasım 2011 23:05

Cevap: Client Soru-Cevap Oyunu
 
Soru : 2,145667878 sayısını virgülden sonraki 3 basamağını alarak nasıl görebilirim?

Fromhell 15 Kasım 2011 12:02

Cevap: Client Soru-Cevap Oyunu
 
Identifier: $round(değişken,basamak)
Cevap: $round(2.145667878,3)

Dikkat edilmesi gereken unsur ise, sayı belirtilirken virgüllü kısım ,(virgül) ile değil de .(nokta) ile belirtilmelidir. Aksi halde sonuç alamayız. Bahsi geçen sayıda gerekli identifier uygulandığında ise 4. basamaktaki rakam 6 olduğu için, sayı 2.146 olarak yuvarlanarak gösterilir.

xwerswoodx 15 Kasım 2011 12:57

Cevap: Client Soru-Cevap Oyunu
 
Cevaplar güzel ama SiyahKar ceabında bir hata var, verdiğin komut ile, ben yani kanal founder'ına da mesaj gidecektir. Ancak ben founder mesaj alsın istemiyordum. Ama devam etmek açısından cevabı vereyim :) Doğu kabul ediyorum cevabını çünkü ufak bir ayrıntıydı.

kanalımda 5 protect (+a) 20 aop (+o) ve 100 kullanıcı bulunmaktadır. Ben bu 20 aop ve 5 protect kullanıcıya "Slm!" geri kalan 100 kullanıcıya ise "Merhaba!" mesajı göndermek istiyorum?

protect & op
$regex($nick(#,nick).pnick,/^(@|&)/i)

normal
$rnick(#,nick) veya $nick(#,nick,r) veya !$regex($nick(#,nick).pnick,/^(@|~|%|&|\+)/i)

//var %:mesaj $nick($chan,0) | while %:mesaj { msg $nick $iif(!$regex($nick(#,$nick).pnick,/^(@|~|%|&|\+)/i),merhaba,$iif($regex($nick(#,$nick).pnick,/^(@|&)/i),Selam)) | dec %:mesaj }

denemedim ama sorun olmaması lazım. Fromhell lütfen buyurun.

Fromhell 15 Kasım 2011 13:22

Cevap: Client Soru-Cevap Oyunu
 
Bir snippet ile devam edelim o halde.

SORU)
users listemde hellmaster olarak tanımlı nickler, #ctrl kanalında aşağıdakileri yapabilsinler istiyorum;
  1. *uygula <komut> yazdıklarında, "komut" kısmında belirtilen işlemi uygulamak, ilgili kanala "komut uygulandı ve arşivlendi" olarak cevap yazmak ve mIRC ana dizininde bulunan arşiv klasöründeki arşiv.txt dosyasına "GÜN/AY/YIL SAAT:DAKİKA:SANİYE - Komutu uygulatan nick: Nick - Uygulanan komut: /komut" şeklinde kayıt altına almak.
  2. *arşiv uygulandığında, mIRC ana dizinindeki arşiv\arşiv.txt dosyasındaki komut geçmişini belirtilen kanala sıralamak.
  3. *arşiv <tarih> uygulandığında ise, sadece belirtilen tarihe ait komut geçmişini belirtilen kanala sıralamak.
Başlık altındaki diğer sorulara göre biraz farklı ve/veya zor olabilir, farklı bir amaç gütmüyorum yanlış anlaşılmasını istemem. Gözlemlerime göre genel olarak while ve regex üzerine yoğunlaşılıyor, bunu event içerisine gömüp if/else vs. kullanmanın kimseye zararı olmaz, aksine bu tarz bir kod ihtiyacı olanlara bizden geliştirilebilir ve değiştirilebilir tarzda iyi bir hediye olacaktır. :)

xwerswoodx 15 Kasım 2011 13:50

Cevap: Client Soru-Cevap Oyunu
 
ON hellmaster:text:*:#ctrl: {
if $1 == *uygula && $2 {
$chr(47) $+ $2-
msg # Komut uygulandı ve arşivlendi
write arşiv/arşiv.txt $date $time - Komutu uygulatan nick: $nick - Uygulanan komut: / $+ $2
}
elseif $2 == *arşiv {
if !$3 {
var %:arşiv 1
while %:arşiv <= $lines(arşiv/arşiv.txt) {
msg # $read(arşiv/arşiv.txt,%:arşiv)
inc %:arşiv
}
}
elseif $gettok($3,0,47) == 3 {
var %:tarih 1
while %:tarih <= $lines(arşiv/arşiv.txt) {
if $regex($read(arşiv/arşiv.txt,%:tarih),$3) {
msg # $read(arşiv/arşiv.txt,$readn)
}
inc %:tarih
}
}
}
}

Fromhell 15 Kasım 2011 16:38

Cevap: Client Soru-Cevap Oyunu
 
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ufak tefek hatalar mevcut. Keşke deneyerek verseydin kardeşim, teşekkür emeğine. En azından uğraşmışsın. Ben kodu vereyim, siz sıradaki soru ile devam edin. Başlığı teslim almanın bir manası yok. :)

Kodda kullanabileceğiniz kullanımlar için örnekler:

Alıntı:

[16:25:22] <Fromhell> *uygula /nickserv info Fromhell
[16:25:22] <HelpCheck> Komut uygulandı ve arşivlendi.
[16:25:50] <Fromhell> *uygula /msg Fromhell selam
[16:25:51] <HelpCheck> Komut uygulandı ve arşivlendi.
Alıntı:

[16:26:09] <Fromhell> *arşiv
[16:26:10] <HelpCheck> Arşiv listeleniyor..
[16:26:10] <HelpCheck> 15/11/2011 16:25:22 - Komutu uygulatan nick: Fromhell - Uygulanan komut: /nickserv info Fromhell
[16:26:10] <HelpCheck> 15/11/2011 16:25:50 - Komutu uygulatan nick: Fromhell - Uygulanan komut: /msg Fromhell selam
[16:26:10] <HelpCheck> Listeleme tamamlandı.
Alıntı:

[16:26:22] <Fromhell> *arşiv 15/11/2011
[16:26:23] <HelpCheck> 15/11/2011 tarihine ait arşiv kayıtları listeleniyor..
[16:26:23] <HelpCheck> 15/11/2011 16:25:22 - Komutu uygulatan nick: Fromhell - Uygulanan komut: /nickserv info Fromhell
[16:26:23] <HelpCheck> 15/11/2011 16:25:50 - Komutu uygulatan nick: Fromhell - Uygulanan komut: /msg Fromhell selam
[16:26:23] <HelpCheck> Listeleme tamamlandı.
Alıntı:

[16:30:01] <Fromhell> *arşiv 14/11/2011
[16:30:02] <HelpCheck> 14/11/2011 tarihine ait arşiv kayıtları listeleniyor..
[16:30:02] <HelpCheck> Belirtilen tarihe ait arşiv kaydı bulunmamaktadır.
Kod:

on hellmaster:text:*:#ctrl: {
  if $1 == *uygula {
    if !$2 { msg # Hata! Uygulanacak komutu girmediniz. Doğru kullanım: *uygula /komut }
    else {
      $2-
      msg # Komut uygulandı ve arşivlendi.
      write arşiv/arşiv.txt $date $time - Komutu uygulatan nick: $nick - Uygulanan komut: $2-
    }
  }
  if $1 == *arşiv {
    if !$2 {
      msg # Arşiv listeleniyor..
      var %d 1
      while %d <= $lines(arşiv/arşiv.txt) {
        msg # $read(arşiv/arşiv.txt,%d)
        inc %d
      }
      msg # Listeleme tamamlandı.
    }
    if $2 {
      msg # $2 tarihine ait arşiv kayıtları listeleniyor..
      var %f 1
      while %f <= $lines(arşiv/arşiv.txt) {
        if $token($read(arşiv/arşiv.txt,%f),1,32) == $2 {
          msg # $read(arşiv/arşiv.txt,%f)
        }
        else { msg # Belirtilen tarihe ait arşiv kaydı bulunmamaktadır. | halt }
        inc %f
      }
      msg # Listeleme tamamlandı.
    }
  }
}

Bol paylaşımlı IF'ler dilerim.

Ayaz 16 Kasım 2011 18:23

Cevap: Client Soru-Cevap Oyunu
 
Soru hakkı devredilmiş.

Soru: #*** kanalında bulunan operatörlerden Asiyan nick'i #Help kanalında bulunuyorsa #Help kanalında akick almak istiyorum, nasıl yaparım?

Fromhell 16 Kasım 2011 21:14

Cevap: Client Soru-Cevap Oyunu
 
Kod:

//var %d 1 | while %d <= $nick(#***,0,o) { if $nick(#***,%d,o) == Asiyan && Asiyan ison #help { mode #help +b $nick(#***,%d,o) } | inc %d }


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

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