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/)
-   -   Kanala giripte 20 sn. konuşmayanı atmak (https://www.ircforumlari.net/mirc-scripting-sorunlari/144194-kanala-giripte-20-sn-konusmayani-atmak.html)

Difuzyon 05 Ekim 2008 00:29

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...

SpecifiC 05 Ekim 2008 13:03

Cevap: Kanala giripte 20 sn. konuşmayanı atmak
 
Kod:

on *:part:#Kanal:if $timer($+(_,#,_ ,$nick)) { $+(.timer_,#,_ ,$nick) off }
on *:join:#Kanal: {
if (!$hget(konusanlar,$nick) && !$timer($+(_,#,_ ,$nick))) {
.hadd -mu20 konusanlar $nick 0 | $+(.timer_,#,_ ,$nick) 1 20 kick # $nick gereksiz bekleme
}
}
on *:text:*:#kanal: {
if ($hget(konusanlar,$nick) == 0 && $timer($+(_,#,_ ,$nick))) {
 $+(.timer_,#,_ ,$nick) off | .hdel konusanlar $nick
}
}


Difuzyon 05 Ekim 2008 15:43

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.

XcLusive 05 Ekim 2008 16:07

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]

Difuzyon 05 Ekim 2008 16:15

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...

SpecifiC 05 Ekim 2008 16:24

Cevap: Kanala giripte 20 sn. konuşmayanı atmak
 
Alıntı:

Difuzyon Nickli Üyeden Alıntı (Mesaj 565096)
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...

on *:text:*:#Kanal: {
/*
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
}
}

Difuzyon 05 Ekim 2008 16:53

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

sniper 05 Ekim 2008 19:11

Cevap: Kanala giripte 20 sn. konuşmayanı atmak
 
güzel anlatımlar elinize sağlık :D bişeyler kapmaya çalışıyoruz :D

Pentagram 06 Ekim 2008 16:14

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..

Difuzyon 06 Ekim 2008 18:20

Cevap: Kanala giripte 20 sn. konuşmayanı atmak
 
Alıntı:

FruKo Nickli Üyeden Alıntı (Mesaj 567624)
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..


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