mIRC Scripting  


Geri dön   mIRC Scripting > mIRC Scripting > Help - Yardım

Help - Yardım mIRC Scripting hakkında her konuda yardım alabileceğiniz bölümdür.

Cevapla
 
LinkBack Seçenekler
  #1  
Alt 23 Eylül 2009, 21:16
Avatar Yok

mS Puan: 31
mS Derece: WeiLSiDe
 
Üyelik tarihi: 10 Temmuz 2009
Mesajlar: 119
Konular: 24
Eklentiler: 0
Alınan Teşekkür: 1
Yapılan Teşekkür: 0
Standart bi kaç soru

1. if ($ialchan($wildsite,#,0) > 1) { işlem } (kanala 1 clone girdiğinde)
Bunun kanal değilde sunucu şekli nasıl oluyo Snotice den belirlemek istiyorum yani..
if (sunucuya giren klon >= 1) { echo -a sunuya clon girdi nicki:? ip:? }

2. on *p:#:if ($opnick == $me) { işlem } (op olduğumda)
Bunda da admin olduğumda demek istiyorum...
if (admin olduğumda) { echo -a admin oldun }

3. if ($me isop #) { işlem } (operator isem)
Admin isem.. Aslında şöyle bişey denemiştim ama ne kadar doğru bilmiyorum if ($regex($usermode,O|A)) { işlem }
if (admin isem) { echo -a adminsin }

4. Bunu hiç bilmiyorum o yüzden direk sorcam. Eğer notify listemden birine Zline atılmışsa banını açabilir miyim?

5. Kullandığım scriptte 30 a yakın remote var (script1.mrc|script2.mrc .....) bunları tek bi dosyada birleştirsem.
Nasıl bi sonuçla karşılaşırım.
event çakışması felan bu konuda bilgilendirirseniz. Çok sevinirim. Ha birde Bi sayfaya yazılan remotenin yeterlilik ölçütü nedir. Bu kadar kod bu sayfaya yeter gibilerinden.

Belki çok şey istiyorum ama mazur görün merak işte... Şimdiden teşekkür ederim.
__________________
The end of Something...
Alıntı ile Cevapla
Sponsored Links
  #2  
Alt 24 Eylül 2009, 12:48
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 33
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Kadir az/çok kod yazabildiğini biliyorum. En azından kendini hızla geliştirdiğinide biliyorum. Ben sana şimdi mantıkları açıklayacağım sende yazmaya çalışacaksın. Takıldığın yerde bizde sana yardımcı olacağız.

-

1. Sorunun için:
Sunucu girişi için; $ialchan vb. gibi bir identifier yok weilside. Senin yapman gereken, sunucuya giren kişilerin IP adreslerini herhangi bir işlem tablosuna/dosyasına eklemen. Yani örneğin hash table-a eklersin, eğer aynı IP-den 2. bir giriş olursa, işlem yaparsın.
Örneğin: //if ($hget(_ips,IP-numarası)) { işlev } | hadd -m _ips IP-NUMARASI nick gibi.
Tabi, sunucuya girip sonra çıkan ve sonra tekrar gireni sunucudan atmamak için; client exiting mesajında hash table-ın içerisinden sunucudan çıkan nick-e ait ip adresini sildirmen lazım.
Örneğin: //if ($hget(_ips,IP-numarası)) { hdel _ips ip-numarası } şeklinde.

-

2. Sorunun için:
ON op/deop vs. events/olayları gibi on admin şeklinde bir event yok. Daha doğrusu admin olduğunu algılayan bir event yok. Bunu ya operator olduğunda gelen snotice bilgisi ile tesipt edersin, yada $usermode tanımının verdiği bilgiyi kontrol ederek.

-

3. Sorunun için:
Sorununda belirttiğin kullanım doğrudur. Yani $usermode tanımından alacağın veri ile bir kontrol yapabilirsin.
Örneğin: //if ($regex($usermode,A|O)) { işlev } gibi.

-

4. Sorunun için:
Burada kullanman gereken mantık; zline mesajında nick-i alıp notify listesinde olup olmadığını kontrol etmektir.. Tabi bunu snotice-den gelen zline mesajına ait veri ile yapacaksın.
Örneğin: //if ($notify(nick)) { zline $+(-*@,yakalanan-ip-adresi) }

-

5. Sorunun için:
1) Tüm scripts dosyalarını birleştirirsen %90 ihtimal çakışma olacaktır diye düşünüyorum. TEXT, INPUT vb. event-lar çakışabilir.
2) Bir scripts dosyasına istediğin uzunlukta kod yazabilirsin. Herhangi bir yeterlilik ölçüsü yok. 15.000 satırda olabilir yani.
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
  #3  
Alt 24 Eylül 2009, 18:17
Avatar Yok

mS Puan: 31
mS Derece: WeiLSiDe
 
Üyelik tarihi: 10 Temmuz 2009
Mesajlar: 119
Konular: 24
Eklentiler: 0
Alınan Teşekkür: 1
Yapılan Teşekkür: 0
Standart

Öncelikle teşekkür ederim Hasan yardımlarından ötürü evet bişeyler yapmak istiyorum hazıra konmak gibi bi maksadım yok bunu en iyi sen biliyosun amacım sadece öğrenmek.

Diğer bi husus on *:op:.... event' ının @ için olduğunu admin içinde benzer bi event olmadığını ve $ialchan gibi kullanımların sadece kanal içinde döndüğünü biliyorum. Bunları yazmakta ki amacım ne sorduğumu sizlere daha belirgin bi şekilde anlatmaktı. Ben biraz farklı bakıyorum scriptinge şunu kesinlikle söyleyebilirim bu konuyu açmadan yüzlerce kod, ders, makale vs. aradım yabancı siteler dahil ama bu soruların hiç birine cevap bulamadım. Ha benzer şeyler vardı ama benim aradığım bunlar değil herneyse... Aklımdan bi kaç şey geçiyo elbette ancak doğruluğunu teyit ettirmek ve sizlerinde görüşlerin almak istedim.
__________________
The end of Something...
Alıntı ile Cevapla
  #4  
Alt 24 Eylül 2009, 20:25
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 33
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Tamam sen yazmaya başla, takıldığın yerde ben buradayım kadir.
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
  #5  
Alt 27 Eylül 2009, 02:26
Avatar Yok

mS Puan: 31
mS Derece: WeiLSiDe
 
Üyelik tarihi: 10 Temmuz 2009
Mesajlar: 119
Konular: 24
Eklentiler: 0
Alınan Teşekkür: 1
Yapılan Teşekkür: 0
Standart

Kod:
On *:snotice:*client conn*: {
  var %ipp = $remove($gettok($10,2,64),$chr(41)))
  hinc -m %ipp $+(%ipp,$9) 1
  if ($hget(%ipp,$+(%ipp,$9)) == 2) { notice $9 Clone Limitine ulaştınız. Lütfen başka cLone bağlamayın }
  if ($hget(%ipp,$+(%ipp,$9)) == 3) { kill $9 Clone Yasak }
  hdel %ipp $+(%ipp,$9)
}
2

Kod:
raw 311:*: { echo -a admin oldun }
3
Kod:
if ($regex($usermode,A|O)) { komutlar }
4 üncüyü yapamadım malesef.

Hasan cLone için anlattığın şekilde yapmaya çalıştım umarım olmuştur. Tşk ederim kontrol edersen sevinirim....
__________________
The end of Something...

Konu WeiLSiDe tarafından (27 Eylül 2009 Saat 02:45 ) değiştirilmiştir.
Alıntı ile Cevapla
  #6  
Alt 29 Eylül 2009, 05:21
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 33
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Weilside, yeni müsait olabildim. İstediklerin;

1. sorunun için:

Kod:
on $*:snotice:/client\s(connecting|exiting)/Si: {
  var %_reg = $regml(1),%_ip = $remove($gettok($10,2,64),$chr(41))
  if ($(,%_reg) = connecting) { 
    hinc -m _ips %_ip 1
    if ($hget(_ips,%_ip) = 2) notice $9 vs.
    if ($hget(_ips,%_ip) = 3) { kill $9 :sebeb. | hdel _ips %_ip }
  }
  if ($(,%_reg) = exiting) $iif($hget(_ips,%_ip),hdec _ips %_ip 1)
}
-

4. sorunun için:

on *:snotice:*[z:line*:var %_ip = $remove($gettok($7,2,64),$chr(41)) | if ($notify($6)) { zline $+(-*@,%_ip) }
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
  #7  
Alt 29 Eylül 2009, 12:02
Avatar Yok

mS Puan: 31
mS Derece: WeiLSiDe
 
Üyelik tarihi: 10 Temmuz 2009
Mesajlar: 119
Konular: 24
Eklentiler: 0
Alınan Teşekkür: 1
Yapılan Teşekkür: 0
Standart

Teşekkür ederim Hasan. Ben hazır kod istememiştim aslında. Hazırcılıktan pek hazzetmiyorum kendim bişeyler yapmaya çalışmışımdır hep. Bunu en iyi sen bilirsin. Velhasıl kodları yazmışsın benim clon için yaptığım şey ile senin yazdığın kodu karşılaştırabilirmisin... Arasındaki farkı anlamak için soruyorum yanlış anlaşılmasın.. Hatamın ne olduğunu öğrenmek istiyorum. Bana vakit ayırdığın için ayrıca teşekkürler.
__________________
The end of Something...
Alıntı ile Cevapla
  #8  
Alt 29 Eylül 2009, 16:26
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 33
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Senin yazdığın kod-daki sorunları açıklayayım sana.

-
Kod:
On *:snotice:*client conn*: {
  var %ipp = $remove($gettok($10,2,64),$chr(41)))
  hinc -m %ipp $+(%ipp,$9) 1
  if ($hget(%ipp,$+(%ipp,$9)) == 2) { notice $9 Clone Limitine ulaştınız. Lütfen başka cLone bağlamayın. }
  if ($hget(%ipp,$+(%ipp,$9)) == 3) { kill $9 Clone Yasak }
  hdel %ipp $+(%ipp,$9)
}
-

Senin yazdığın kod neler yapar?

Her giriş için ayrı bir tablo oluşturur. Tablonun ITEM(parça) kısmınada ip ile nick-i birleştirerek bir değer yükseltir. Kısacası senin yazdığın kod, bir kullanıcı(ki yazdığın kodda aynı kullanıcı oluyor bu, farklı kullanıcıda işlev yapmaz) sunucuya 2 veya 3 defa girip çıktığında işlev yapıyor. Ki bu işlevide hiçbir zaman yapmayacaktır. Çünki sen /if sorgularından bağımsız /hdel komutu ile parçayı sildiriyorsun. Kısacası bu kod sadece ayrı ayrı veriler ekler ve aynı zamanda eklediğin verileride siler. Hiçbir işlev yapmaz. Tablo-lar kalır, buda yoğun giriş/çıkışta RAM-ı zorlar.

-

Benim yazdığım kodu açıklayayım:

on $*:snotice:/client\s(connecting|exiting)/Si: {
;burada on snotice event-ı client connecting veya exiting mesajını algıladığında =>
var %_reg = $regml(1),%_ip = $remove($gettok($10,2,64),$chr(41))
;algılamayı regex kullanarak yaptığımız için $regml(1) giriş veya çıkışı belirler. bizde sonuçlanan işlevi %_reg değişkenine atıyoruz. ve aynı zamanda %_ip değişkeninede ip-i atıyoruz.
if ($(,%_reg) = connecting) {
;burada diyoruzki, eğer %_reg değişkeni connecting(giriş ise) =>
hinc -m _ips %_ip 1
;_ips ismindeki tabloya %_ip değişkenine atadığımız veriyi parça olarak ata ve bir değer yükselt.
if ($hget(_ips,%_ip) = 2) notice $9 vs.
;eğer _ips tablosundaki %_ip verisinin değeri 2-ye eşit olursa notice işlevini yap.
if ($hget(_ips,%_ip) = 3) { kill $9 :sebeb. | hdel _ips %_ip }
;eğer _ips tablosundaki %_ip verisinin değeri 3-e eşit olursa kullanıcıyı sunucudan kill ile kick-le. ve tablodaki değeri sil.(eğer burada tablodaki değeri silmezsek kullanıcı sunucuya giriş yaptığında (clone olsa dahi) hiçbir işlev gerçekleşmez.)
}
if ($(,%_reg) = exiting) $iif($hget(_ips,%_ip),hdec _ips %_ip 1)
;eğer %_reg değişkeni exiting ise(çıkış ise) =>
;eğer sunucudan çıkan kullanıcının ip numarası _ips tablosunda mevcut ise, o ip için atanan parçanın değerini bir değer düşür.
;bunu yapmamızın sebebi, kullanıcı(AYNI KULLANICI OLSA DAHİ) sunucuya 2 veya 2-den fazla giriş çıkış yaparsa yine işlev görmesin diye. çünki bu bir clone değildir. kısacası tekil hit-dir diyelim :)

}
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
Cevapla

Etiketler
kaç, soru

Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Kick Ban Mesajları hakkında soru Choice Help - Yardım 3 06 Eylül 2009 21:25
Söyleşi: med1kal mS-Desk Söyleşiler 21 04 Eylül 2009 13:40
Soru ? eXLove Help - Yardım 3 03 Eylül 2009 21:21


Yasal Uyarı

    5651 sayılı yasada belirtilen "Yer Sağlayıcı" olarak hizmet sunmaktadır. İlgili yasaya göre site yönetiminin tüm içerikleri kontrol etme yükümlülüğü yoktur. Bu sebep ile sitemiz, uyarıları dikkate alarak yasa dışı paylaşımlar hakkında gerekli işlemleri yapmaktadır. Oluşabilecek yasal sorumluluklar üyelerimize aittir. Gerekli şikayet bildirimleri yapabilmek için "burayı" tıklayarak gerekli alanları doldurup yapabilirsiniz.
mIRCScripting©
Powered by vBulletin®
Copyright © 2000-2015, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76