Kanala giripte 20 sn. konuşmayanı atmak S.aleyküm herkese kolay gelsin. Hash tablosu konusunda biraz çalışma yapayım dedim.Aklıma böylesi bir soru geldi,biraz çabaladım ama netice alamadım.Yardımlarınızı bekliyorum. "Kanala giren kişi,girdiği andan itibaren kanala 20 sn. boyunca bişi yazmazsa kanaldan atmak istiyorum" on *:join:#Kanal: { hinc -mu20 susma $+($nick,#Kanal) } on *:text:*:#Kanal: { if $hget(susma,$+($nick,#Kanal,$encode($1-))) !== 1 { kick #Kanal $nick Gereksiz bekleme yapmayın... } } Saygılar... |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak Kod: on *:part:#Kanal:if $timer($+(_,#,_ ,$nick)) { $+(.timer_,#,_ ,$nick) off } |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak ;Kanaldan çıkışta açılan timer var ise kapat(20 sn. beklemeyip çıkanlar için) on *:part:#Kanal:if $timer($+(_,#,_ ,$nick)) { $+(.timer_,#,_ ,$nick) off } on *:join:#Kanal: { ;eğer belirtilen tablo ve timer yoksa açılsın.Tabloda 0 (sıfır) deger açtık ki değer 1 olunca konuşmuş mu sayılacak?.Ve tabloya ekledigimiz parcacık 20 sn. süreyle(-u20) ekledin,Neden?Kanala girer girmez timer çalışıcak. if (!$hget(konusanlar,$nick) && !$timer($+(_,#,_ ,$nick))) { .hadd -mu20 konusanlar $nick 0 | $+(.timer_,#,_ ,$nick) 1 20 kick #Kanal $nick gereksiz bekleme } } on *:text:*:#Kanal: { ;Tabloda ilk açtığımız değer 0 (sıfır) ise [Neden halen sıfır?] ve girişteki timer varsa: timeri durdur ve tablodaki parcayı sil.[Bu timer nerde çalışıyor,timer uyarıcı bende cıkmadı?] if ($hget(konusanlar,$nick) == 0 && $timer($+(_,#,_ ,$nick))) { $+(.timer_,#,_ ,$nick) off | .hdel konusanlar $nick } } Öncelikle SpesifiC emeğiniz için çok çok tşk. ederim... Gerçekten çok güzel bir kombinasyonda hazırlamışsınız... Vermiş olduğunuz kod çalışıyor.Ben hash tablosundaki mantığı çözmeye çalışıyorum. Turuncu kısımda anlamaya çalıştıkları yazdım ama çözemediğim kısımlar oldu , bir kontrol edip Mantığı biraz daha açıklarsanız,konu hakkında daha çok aydınlanmış olurum. |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak kodu anlamadıysan sana anlatayım; nick kanaldan çıkınca kişi için açılan timer durduruluyor. kanala girdiğinde eğer hash tablosunda o nickin bir değeri yok ise ve timer açık değilse nick'i tabloya ekleyip 0 değerini veriyor (0 değeri herhangi birşey olabilir mantık o nick'in tabloda ekli olduğunu göstermek) sonrasında 20 saniyelik kick timeri açılıyor ve ardından eğer nick kanalda konuşursa tablo ve timer kontrol ediliyor eğer bunların ikiside mevcut ise nick'i tablodan silip timeride kapatıyor; tabi bunların diğer fonksiyonu olursa kanalda konuşmazsa 20 saniyelik timer hala devam ettiği için kişi kanaldan atılıyor. not : orada hash tablosu gereksiz gibi duruyor sadece timer ilede yapılabilirdi. [box=SpecifiC]@SpecifiC : Event Hash tablosunu kullanmak gereksiz sadece timer kullanılarak yapılabilir fakat arkadaş yukarıda hash tablosu çalışma biçimi hakkında pratik yapıyor olduğundan dolayı kullandım.[/box] |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak XcLusive anlatim için tşk. ederim... Kanalda konusma oldugunda tabloda ne gibi bir oluşma meydana geliyor veya konusma olduğunu\olmadığını koda nasıl yansıtıyoruz ? if ($hget(konusanlar,$nick) == 0 && $timer($+(_,#,_ ,$nick))) { Bu kısımda biraz takıldım... |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak Alıntı:
/* Eğer kanala yazı yazıldıgında TIMER açık ise ve HASH tablosunda bir değer var ise TIMER'ı kapat ve HASH değerini sil. Yani eğer kanala giren nick 20 saniye içerisinde konuşmaz ise JOIN eventi ile açılan 20 sn'lik timer ilerlemeye devam edecek ve kişiyi kanaldan atacaktır, eğer konuşursa açılan bu timeri kapatılacağı için kanaldan atılmayacak. */ if ($hget(konusanlar,$nick) == 0 && $timer($+(_,#,_ ,$nick))) { $+(.timer_,#,_ ,$nick) off | .hdel konusanlar $nick } } |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak Evet konuyu biraz daha iyi kavrayabildim,aşamaların bir biri ile olan bağlantılarını çok daha iyi çözdüm. İlginize çok tşk ederim... Sağolasınız SpecifiC , XcLusive |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak güzel anlatımlar elinize sağlık :D bişeyler kapmaya çalışıyoruz :D |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak Kanal Yetkililerinin Böyle BirŞEy Yapmaya HakKı Var Mı siZce ¿ Code YazaRken Egonuzu Tatmin Edecek ŞEyler YapmayıN Bence Kanala Giren User iLLaKi GeneLDe KonuŞacak Diye BirŞEy Yok.. O Zaman Bu Tür İşlerle Uğraşan Kişiler IRC nin Mantıgına iHanet Etmiş Olyr.. ÇıkaR AmaçLı KullanmaktanSa Bırakın Sloganlarınız Olan ArkadaŞlık Sohbet Samimiyet Sıcak Bir Ortam vs vs vs AnlayıŞınıza Göre Hareket EdiniZ.. |
Cevap: Kanala giripte 20 sn. konuşmayanı atmak Alıntı:
Arkadaşım mIRC Scripting'de varolan Hash tablosu çalışmasının join\text\part kombinasyonlarini denemek maksadıyla aklıma böyle bir soru geldi.Sanırım bu işlerde bilgi sahibi değilsin,ben soruda mantığı kavramak için kanaldan KICK edilmesini örnek gösterdim.Bu yönde sağolsun gerekli kişiler mantığı kavramamızda bize yardımcı oldular. Amacımız bu kombinasyondan birşeyler kapmak.Ben orda KICK yerine voice (+v) desem , sence bu işin mantığı ne olurdu ? Bence sen konuyla alakalı birisi değilsin.O yüzden başka konularla ilgilen arkadaşım ve unutmadan o iğrenç yazı stilini bir zahmet değişiver... |
Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 11:21. |
Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net