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/)
-   -   60 Sn sonra -v (https://www.ircforumlari.net/mirc-scripting-sorunlari/47139-60-sn-sonra-v.html)

lacremel 12 Ocak 2008 22:06

60 Sn sonra -v
 
Selam arkadaslar.

Baslık biraz anlamsız oldu.

Simdi #X kanalına user girdi Voice verdim sorununu sordum user 60 sn icinde konusmassa ben onu oto olarak -v yapıp gereksiz bekleme yaptınız sebebinden banlamak istiyorum...

Simdiden tsk.ler arkadaslar Kolay gelsin

MavipikSeL 12 Ocak 2008 22:28

Cevap: 60 Sn sonra -v
 
Onay kodunda kullandığım mantığı özetleyeceğim, forumdan el33t'in kodunu bularak istediğini yapabilirsin.

Öncelikle her voice verdiğin kişiye timer açıyorsun. Bu timer, kişiyi konuşmadığı için devoice edip, kanaldan uzaklaştırma komutunu içeriyor. Daha sonra #x kanalına text eventini açıyorsun, konuşanın voice verdiğin nick olup-olmadığını kontrol ettiriyorsun. O kişiyse onun için açılan timer'ı kapattırıyorsun, o kişi değilse zaten timer'ı kapatmayacaktır.

Mantığı anlamak kod yazmaktan daha zordur. Bu satırları anladığında, istediğin kodu kendi çabalarınla yazmış olacaksın.

Kolay gelsin.

lacremel 13 Ocak 2008 13:24

Cevap: 60 Sn sonra -v
 
Hocam tskler. ama yapamıyorum. Daha acık bir sekilde yardımcı olurmusunuz

MavipikSeL 13 Ocak 2008 13:39

Cevap: 60 Sn sonra -v
 
3 aşamalı birşey kurdum, uzun zamandır uğraşmadığım için birkaç hata yapmış olabilirim. Dene aşağıdaki kodu, hata verirse yardımcı olurum.

Kod:

on *:join:*:#help:{ msg # Merhaba $nick $+ , size nasıl yardımcı olabilirim? | mode # +v $nick }

on *:voice:*:#help:{ if $nick == $me { $+(.timer,$vnick) 1 60 ban -ku900 # $vnick 60 saniye içersinde birşey yazmadınız, sorununuz yok herhalde. } }

on *:text:*:#help:{ if $timer($vnick) { $+(.timer,$vnick) off } }


radiCOOL 13 Ocak 2008 14:04

Yanıt: 60 Sn sonra -v
 
Sanırım şu şekilde olacak ;

Kod:

on *:join:#help:{ msg # Merhaba $nick $+ , size nasıl yardımcı olabilirim? | mode # +v $nick }

on *:voice:#help: { if $nick == $me { $+(.timer,$vnick) 1 60 ban -ku900 # $vnick 60 saniye içersinde birşey yazmadınız, sorununuz yok herhalde. } }
on *:text:*:#help: { if $nick == $vnick &&  $timer($vnick) { $+(.timer,$vnick) off } }

Müsadenle üstad ..

lacremel 13 Ocak 2008 17:04

Cevap: 60 Sn sonra -v
 
[17:09] <+yolcu> kanal şifresi değiştirme
[17:09] <@osman> yolcu .* /Cs set #kanal password Yenişifre
[17:09] <+yolcu> ?
[17:09] <@osman> yolcu .* Farkli bir Sorunuz varmıydı ?
[17:09] <+yolcu> Ok ~
[17:09] *** Ayrıldı: +yolcu ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...])
[17:10] *** osman mod değiştirdi:+b [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

kullanıcı sorununu belirtti kanala yazdı yani :S ama gene banladı kod.

L4roXyL 13 Ocak 2008 17:13

Cevap: 60 Sn sonra -v
 
if $nick == $me olduğuna göre sadece senin için.

lacremel 13 Ocak 2008 17:59

Cevap: 60 Sn sonra -v
 
[17:09] <+yolcu> kanal şifresi değiştirme
[17:09] <@osman> yolcu .* /Cs set #kanal password Yenişifre
[17:09] <+yolcu> ?
[17:09] <@osman> yolcu .* Farkli bir Sorunuz varmıydı ?
[17:09] <+yolcu> Ok ~
[17:09] *** Ayrıldı: +yolcu ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...])
[17:10] *** osman mod değiştirdi:+b [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

kullanıcı sorununu belirtti kanala yazdı yani :S ama gene banladı kod.

L4roXyL 13 Ocak 2008 18:55

Cevap: 60 Sn sonra -v
 
on text event'inde $vnick identifier'ı geçersizdir, mavipiksel ve radicool.

on *:voice:#help:if ($nick == $me) $+(.timer,$vnick) 1 60 ban -k # $vnick 2 sebeb.
on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off

Şeklinde işini görür, lacremel.

MavipikSeL 13 Ocak 2008 18:59

Cevap: 60 Sn sonra -v
 
Alıntı:

L4roXyL Nickli Üyeden Alıntı
on text event'inde $vnick identifier'ı geçersizdir, mavipiksel ve radicool.

Ben de aşağıdaki gibi düzenlerim.

Kod:

on *:join:*:#help:{ msg # Merhaba $nick $+ , size nasıl yardımcı olabilirim? | mode # +v $nick }

on *:voice:*:#help:{ if $nick == $me { set %inick $vnick | $+(.timer,$vnick) 1 60 ban -ku900 # $vnick 60 saniye içersinde birşey yazmadınız, sorununuz yok herhalde. } }

on *:text:*:#help:{ if $timer(%inick) { $+(.timer,%inick) off } }


radiCOOL 14 Ocak 2008 03:14

Yanıt: 60 Sn sonra -v
 
Kod:

on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off
Esasında ben #help kanalına yazılan bir yazının o nicke ait olması durumuna göre düşünmüştüm .. Yani bir başkası yazsa da timerı kapar sanırım bu haliyle ..Bunun için nasıl bir identifier kullanalım?Yani nicki herhangi bir değere yazdırmadan direk identifierlarla nasıl halledilir bu ?..Ya da halledilebilir mi ?

KiLL 14 Ocak 2008 03:33

Cevap: 60 Sn sonra -v
 
on *:voice:*:#help:{ /set %voice $vnick | /timer $+ $vnick 1 60 /kick #help $vnick Gereksiz bekleme yapmayınız.| /unset %voice }

on *:text:*:#help:{ if $nick == %voice { /timer $+ $nick off | /unset %voice } }

radiCOOL 14 Ocak 2008 03:50

Yanıt: 60 Sn sonra -v
 
kiLL teskler .. ancak dediğim gibi herhangi bir değere yazdırmadan ( variable atamadan mesela) identifier ile yapılabilir mi onu sormuştum ... Bir de senin yazdığın şekliyle , diyelim birisi girdi kanala ; join eventi ile voice aldı ..Fakat yazıyı yazmadan diğer birisi girdi yine aynı iişlemle voice aldı ..set değeri değişiecek sanırım bu haliyLe .. O zaman da Alttaki text eventi için $nick identifierı pasif kalacak yani yine atılacak gibi geldi bana ..

KiLL 14 Ocak 2008 04:02

Cevap: 60 Sn sonra -v
 
Hergelene voice verecegını hesaba katmadım. Gelenlere tek tek voice verırsen sorun kalmaz. Obur cesıtte yapılır elbet. Identıfıer konusunda pek bısıy soyleyemeyecegım. Ama belkı olur. Oyle bsıy mumıunse l4roxyl hocam verıcektır cvbı

MavipikSeL 14 Ocak 2008 10:27

Cevap: Yanıt: 60 Sn sonra -v
 
Alıntı:

radiCOOL Nickli Üyeden Alıntı (Mesaj 324049)
Kod:

on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off
Esasında ben #help kanalına yazılan bir yazının o nicke ait olması durumuna göre düşünmüştüm .. Yani bir başkası yazsa da timerı kapar sanırım bu haliyle ..Bunun için nasıl bir identifier kullanalım?Yani nicki herhangi bir değere yazdırmadan direk identifierlarla nasıl halledilir bu ?..Ya da halledilebilir mi ?

Bir başkası yazsa kapatamaz. Yazan kişinin adına timer açıksa, o timer'a son verir. Düzeltmemde bunu değiştirmiştim, değer verince daha sağlıklı konuma geldi code.

Diğer sorunu da her girene voice vererek değil, kanalda 1'den çok voice varsa, 2. girene vermezsin ve ona bir değer atarsın. İlk giren adamı kick eventiyle attıktan sonra, atadığın değere voice verdirirsin.

L4roXyL 14 Ocak 2008 14:50

Cevap: 60 Sn sonra -v
 
RadiCOOL;
on *:voice:#help:if ($nick == $me) $+(.timer,$vnick) 1 60 ban -k # $vnick 2 sebeb.
on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off

Buradaki mantık, eğer #help kanal'ında voice veren nick ben isem;
Voice verilen nick adına bir timer açıyorum ve komut olarak /ban işlevini atıyorum.
Devamında, #help kanal'ına herhangi bir text gönderildiğinde, text'i gönderen rumuz için bir timer açılmışsa, ona ait olan timer'i kapatıyorum.
Ayrıca bir başkası yazdığı zaman timer'ın kapanması imkansız.
TEXT event'inde birebir eşleşmesi lazım'ki timer kapansın.
En sağlıklısı budur. Identifier derken, neyi kastediyorsun?
Tam olarak açıklarsan, ilgileniceğim.

MavipikSeL 14 Ocak 2008 15:14

Cevap: 60 Sn sonra -v
 
Alıntı:

KiLL Nickli Üyeden Alıntı
on *:voice:*:#help:{ /set %voice $vnick | /timer $+ $vnick 1 60 /kick #help $vnick Gereksiz bekleme yapmayınız.| /unset %voice }

on *:text:*:#help:{ if $nick == %voice { /timer $+ $nick off | /unset %voice } }

Kodlamalarda "/" kullanmana gerek yok, sadece fazlalık oluyor. Ne zamandır söyleyeceğim hep unutuyorum, bu mesaja kısmetmiş. :)

KiLL 16 Ocak 2008 11:30

Cevap: 60 Sn sonra -v
 
Alıntı:

MavipikSeL Nickli Üyeden Alıntı (Mesaj 324257)
Kodlamalarda "/" kullanmana gerek yok, sadece fazlalık oluyor. Ne zamandır söyleyeceğim hep unutuyorum, bu mesaja kısmetmiş. :)

biliyorum. / veya . kullanabılırız ıstersek kullanmayadabiliriz. O olmayınca calısacagını bılıyourm ama alıskanlık ıste garanıtye almısım gıbı oluyor

lacremel 16 Ocak 2008 12:10

Cevap: 60 Sn sonra -v
 
[11:17] <@Osman> Günaydın suskun-v3 Size nasil yardımcı olabilirim ?
[11:17] *** Osman mod değiştirdi:+v suskun-v3
[11:17] <+suskun-v3> + için teşekkürler osman » Suskun Script v3 «

<+suskun-v3> + için teşekkürler Osman » Suskun Script v3 « bu mesajı yokdan sayabilirmiyiz.

radiCOOL 16 Ocak 2008 14:29

Yanıt: Cevap: 60 Sn sonra -v
 
Alıntı:

L4roXyL Nickli Üyeden Alıntı (Mesaj 324245)
RadiCOOL;
on *:voice:#help:if ($nick == $me) $+(.timer,$vnick) 1 60 ban -k # $vnick 2 sebeb.
on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off

Buradaki mantık, eğer #help kanal'ında voice veren nick ben isem;
Voice verilen nick adına bir timer açıyorum ve komut olarak /ban işlevini atıyorum.
Devamında, #help kanal'ına herhangi bir text gönderildiğinde, text'i gönderen rumuz için bir timer açılmışsa, ona ait olan timer'i kapatıyorum.
Ayrıca bir başkası yazdığı zaman timer'ın kapanması imkansız.
TEXT event'inde birebir eşleşmesi lazım'ki timer kapansın.
En sağlıklısı budur. Identifier derken, neyi kastediyorsun?
Tam olarak açıklarsan, ilgileniceğim.

timerın kapanmaması konusunda ben de kapanmaz diye düşünmüştüm ...Zaten denemedim gerçi ama Bir ara KILL için timerlarla epey uğraşmıştım ...

Sordugum sey su aslında .. Birisine voice verince $vnick gibi bir identifier olmaz demiştin ki ; olmaz diyorsan oLmaz ...Benim sordugum ise var ya da set ya da hash artık nasıl yapılırsa yapılsın bu şekilde bir değer atanmaksızın

Kod:

on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off
Bu evente if $nick == (+v yi alan nick) tarzında bir identifier atanabiliyor mu ? ..Epey bir yerde işime yarar asLında konu açılmasa aklıma gelmezdi belki de ama , Epey bi kısaltma olacak bana ..Özellikle oplar için ayarladıgım bi kac kodda ..


radiCOOL 16 Ocak 2008 14:34

Yanıt: 60 Sn sonra -v
 
Bu arada lacramel sanırım şu şekilde ayarlanabilir ;

Kod:

on *:text:*:#help: { if (*teşekkür* !iswm $1-) && (($timer($nick)) { $+(.timer,$nick) off } }

lacremel 16 Ocak 2008 14:48

Cevap: 60 Sn sonra -v
 
* /if: Geçersiz format
-
Ekledikten sonra hata vErdi dostum :S

radiCOOL 16 Ocak 2008 15:53

Yanıt: 60 Sn sonra -v
 
Kod:

on *:text:*:#help:if (*teşekkür* !iswm $1-) && ($timer($nick)) $+(.timer,$nick) off
Bu şekilde olacaktı özür ...

L4roXyL 17 Ocak 2008 00:08

Cevap: Yanıt: Cevap: 60 Sn sonra -v
 
Alıntı:

radiCOOL Nickli Üyeden Alıntı (Mesaj 325585)

timerın kapanmaması konusunda ben de kapanmaz diye düşünmüştüm ...Zaten denemedim gerçi ama Bir ara KILL için timerlarla epey uğraşmıştım ...

Sordugum sey su aslında .. Birisine voice verince $vnick gibi bir identifier olmaz demiştin ki ; olmaz diyorsan oLmaz ...Benim sordugum ise var ya da set ya da hash artık nasıl yapılırsa yapılsın bu şekilde bir değer atanmaksızın

Kod:

on *:text:*:#help:if ($timer($nick)) $+(.timer,$nick) off


Bu evente if $nick == (+v yi alan nick) tarzında bir identifier atanabiliyor mu ? ..Epey bir yerde işime yarar asLında konu açılmasa aklıma gelmezdi belki de ama , Epey bi kısaltma olacak bana ..Özellikle oplar için ayarladıgım bi kac kodda ..

Ya aslında öyle bir identifier yok.
Ama şu şekilde birşey yapabilirsin, if $count($nick(#help,nick).pnick,+) == 1
Bunun manası, $nick(#kanal,nick).pnick ,kanal'daki belirtilen nick'in prefix takılarını verir. $count identifier'ı metin'de belirtilenin var olup olmadığını veya kaç tane olduğunu vs. kontrol eder.
Burada mesela;
on *:text:*:#:if $count($nick(#,$nick).pnick,+) == 1 { işlevin devamı vs }
Ama tabi, senin voice verdiğin nick için bir identifier yok.(on text için) Yani illaki bir users list'e veya bir veriye keydetmek zorundasın(/timer haricinde)

lacremel 18 Ocak 2008 11:35

Cevap: 60 Sn sonra -v
 
on *:voice:#Help:if ($nick == $me) $+(.timer,$vnick) 1 30 ban -k # $vnick 2 Sorunsuz bekleme yaptiniz./ Hoş Sohbetler dileriz.
on *:text:*:#help:if (*teşekkür* !iswm $1-) && ($timer($nick)) $+(.timer,$nick) off

user part yapıncada banLıyor hocalar :S

bu sekil bisiler yaptım

on *:part:#Help:if ($nick == $me) $+(.timer,$vnick) $+(.timer,$nick) off

dogrumudur

L4roXyL 18 Ocak 2008 15:22

Cevap: 60 Sn sonra -v
 
on *:voice:#help:if ($nick == $me) $+(.timer,$vnick) 1 30 ban -k # $vnick 2 Sorunsuz bekleme yaptiniz./ Hoş Sohbetler dileriz.
on *:text:*teşekkür*:#help:if ($timer($nick)) $+(.timer,$nick) off
on *:part:#help:if ($timer($nick)) $+(.timer,$nick) off
on *:devoice:#help:if $nick == $me && $timer($vnick) { $+(.timer,$vnick) off }

Şeklinde yaparsan, daha iyi olur.

Regex 18 Ocak 2008 22:53

Cevap: Yanıt: Cevap: 60 Sn sonra -v
 
Alıntı:

L4roXyL Nickli Üyeden Alıntı (Mesaj 325978)
Ya aslında öyle bir identifier yok.
Ama şu şekilde birşey yapabilirsin, if $count($nick(#help,nick).pnick,+) == 1
Bunun manası, $nick(#kanal,nick).pnick ,kanal'daki belirtilen nick'in prefix takılarını verir. $count identifier'ı metin'de belirtilenin var olup olmadığını veya kaç tane olduğunu vs. kontrol eder.
Burada mesela;
on *:text:*:#:if $count($nick(#,$nick).pnick,+) == 1 { işlevin devamı vs }
Ama tabi, senin voice verdiğin nick için bir identifier yok.(on text için) Yani illaki bir users list'e veya bir veriye keydetmek zorundasın(/timer haricinde)



L4roXyL, bahsettiğini $nick identifierı ile daha basit yoldan yapmak mümkün.

Misal, if $nick(#,0,+) == 1 { işlev yap } gibi.
Yani, "kanalda bir adet voice (+) varsa işlev yap".

$count identifierının mantığını yanlış anlamadıysam, ikisi de aynı görevi yapıyor.

L4roXyL 19 Ocak 2008 00:13

Cevap: 60 Sn sonra -v
 
Amac burada kanal'da kaç adet voice olduğunu anlamak değil, HachLi.
ON TEXT event'inde if $count($nick(#,$nick).pnick,+) == 1 kullanmamızın sebebi, text'i gönderen nick'de + prefix'inin var olup olmadığını, kontrol etmek. Kanal'daki tüm +(voice) prefix'ine sahip olan nickleri kontrol ederek işlev yapmak değil.
Yani kısacası, $count identifier'ının mantığını, dediğin gibi yanlış anlamışsın.


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

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