![]() |
kontrol edip op ekletme hk. S.a arkadaşlar bi konuda yardımınıza ihtiyacım var. şimdi mesela !opekle nick yaptıgımızda nicki kanala op olarak ekliyoruz buraya kadar güzel peki eger nick sifresizse dogal olarak eklenmiyor. !opekle nick yapıldıgında eger nick sifresiz ise Kod: ChanServ- AOP, SOP, HOP ve VOP listelerine sadece kayitli nickler eklenebilir. |
Cevap: kontrol edip op ekletme hk. Kod: on *:input:*: { Kod: raw 352:*: { |
Cevap: kontrol edip op ekletme hk. Alıntı:
peki şunu nasıl yapabilirim. mesela ben webten php ile form text e nick i giriyorum gondere bastıgımda AKillat: nick seklinde gidiyor onuda bota okutup işlem yaptırıyorum nick sunucudaysa sıkıntı yokta nick sunucuda degilse. Kod: if $1 == AkillAt: { |
Cevap: kontrol edip op ekletme hk. Kod: on *:text:!opekle &:#admin:{ Düzeltme: Ben kodu yazana kadar farklı bir yoldan @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] da yazmış. İkisi de çalışır. |
Cevap: kontrol edip op ekletme hk. Bu da benden olsun baya detaylı oldu =) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Kod: on *:text:*:#:{ |
Cevap: kontrol edip op ekletme hk. Alıntı:
Kod: on $*:text:/^(!opekle)/iS:#:{ Not: @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bana ulaşarak mantığı anlamak istediğini, aynı kodu akill vb. farklı varyasyonlara uyarlamak istediğini söylediği için yazdığım kodda fazla $regex kullanmamaya çalışmıştım. Aynı işlemi yapan, farklı yollardan gidilen farklı farklı kodlar ortaya çıkarttığımız için şimdi de nasıl daha kısa kod yazabilirizi tartışmak adına kodu düzenledim. Yanlış anlaşılmamasını diliyorum. |
Cevap: kontrol edip op ekletme hk. Alıntı:
- Bu isteğini gerçekleştirmek için 401 numaralı whois rawına bakmamız gerekli. Benim, @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]'un ve @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]'ın op eklemeyle ilgili yazdığımız kodlarda olduğu gibi yine /set komutuyla bazı verileri kaydedip bu raw üzerinden gelecek bilgiler doğrultusunda işlem yapacağız. Şöyle: Kod: on *:text:!akill &:#admin:set %nck $2 | .enable #w | whois $2 |
Cevap: kontrol edip op ekletme hk. Webten editbox'a girdiğin veriye kill attırıyorsan sunucuda, o veriyi işlediğin bot muhtemelen socket bottur. Gönderdiğin veriden nicki socketin sistemine göre sorgulayacaksın. |
Cevap: kontrol edip op ekletme hk. Başta söyleyeyim amaç "bilgi paylaşmak". Ara sıra tekrar etmekte fayda var. Kısa ve daha düzenli yazmak açısından.. Kod: raw 318:*:if (%hmm == ok) { unset %hmm | .disable #w | return } | elseif (%nck) { operserv killclones %nck | msg #admin Bilgi: %nck sunucudan uzaklaştırıldı. | unset %nck | .disable #w } (%hmm == ok) yerine %hmm = ok kullanılabilir. mirc.chm de yer almasada == operatörü = ile aynı işlemi görmektedir. 2- if (koşul) { kodlar } elseif (koşul) { kodlar } Bu mantıkta return edip, boş sonuç döndürüp sonlandırmaya gerek yok. Sadece uyan koşulu çalıştırır. Eğer if (koşul) { kodlar } if (koşul) { kodlar } if (koşul) { kodlar } yapılmış olsaydı sonunda return veya halt edebilirdiniz. 3- Eğer byte olarak kısa kod yazmak istiyorsanız { komut | komut | komut | komut | komut } yerine { komut komut komut komut } kullanın. yan yana yazdığınız da komut(boşluk)(ayırıcı karakter)(boşluk)komut düzeninde byte miktarı fazla olacaktır. 4- regex'te /i kullanıyorsanız [a-zA-Z yerine [a-z veya [A-Z yeteri olacaktır. İkisinin yazılmasına gerek yok. 5- burada herhangi bir stringi modifiye etmeyecekseniz (/ixsmgAZ vs.) $regex(text,/regex/) yerine sadece $regex(text,regex) kullanabilirsiniz. (!$regex($2,/^#)) yerine !$regex($2,^#) gibi. (sadece /() başlangıç kullanılmış bu da hatalı.) Eğer daha kısa yazmaksa maksat #* !iswm $2 veya $2 !ischan (ischan'ı denemek lazım :p) kullanabilirsiniz. 6- on $*:text:/^(!opekle)/iS:#:{ gereksiz Back Reference (Geriye Dönük Referans) kullanmaya da gerek yok (yakalamak yerine eşleştirmek yeterli). /(!opekle)/ yerine /!opekle/ gibi. 7- Bilindiği üzere pek çok event'ta matchtext aranan/yakalanan veri kısmı mevcut. Onu kullanmak sizi gereksiz bir veya bir çok koşuldan kurtarır. on *:notice:*:?:{ if (!$regex($nick,/^ChanServ$/i)) return if ($regex($1-,/kanal[ıiİ]\skayitl[ıiİ]\sde[gğĞ][ıiİ]l/Si) || $regex($1-,/erisim\slistesi.+kayitli.+nick/Si) || $regex($1-,/Erisim\sseviyesi.+ve.+arasinda/Si) || $regex($1-,/nick.+kanalindaki\serisim.+zaten/Si) || $regex($1-,/nick.+kanalindaki\serisim\sseviyesi.+degisti/Si) || $regex($1-,/nick.+kanalinin\serisim.+seviyeden.+eklendi/Si) { msg %kanal $1- | .disable #opekle } } Bunun yerine on $*:notice:/kanal[ıiİ]\skayitl[ıiİ]\sde[gğĞ][ıiİ]|erisim\slistesi.+kayitli.+nick|Erisim\sseviyesi.+ ve.+arasinda/Si:*: şeklinde bir matchtext işi kısaltır gibi. Khaled amca 7.42 de regex kütüphanesini güncellemiş - Kod: 11.Updated libraries to PCRE v8.37. - Güzel işler çıkar bundan :) Şuan iş yerinde olduğum için fazlaca örneklendirme ve detaylama fırsatım olmadı. Yardım edilen kodları elinizden geldiğince açıklayın. Kullanıcı sadece hazırı alıp gitmesin, alırken öğrensin. Başta söylediğim gibi bu anlatımın amacı bilgi paylaşmak ve bunun kimseye zararı olacağını düşünmüyorum. Kolay gele. |
Cevap: kontrol edip op ekletme hk. Güzel dostlar hepinize teşekkür ediyorum. işin Mantıgını anladım sayenizde. özellikle pc me teamviver ile baglanıp bana yardımcı olan SuLh ve bizzat konusmaya gittigim regex e ayrı ayrı teşekkürlerimi bildiriyorum. |
Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 12:13. |
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