mIRC Scripting

mIRC Scripting (https://www.mircscripting.net/)
-   Help - Yardım (https://www.mircscripting.net/help-yardym/)
-   -   bi kaç soru (https://www.mircscripting.net/help-yardym/417-bi-kac-soru.html)

WeiLSiDe 23 Eylül 2009 21:16

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 *:op:#: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.

L4roXyL 24 Eylül 2009 12:48

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.

WeiLSiDe 24 Eylül 2009 18:17

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

L4roXyL 24 Eylül 2009 20:25

Tamam sen yazmaya başla, takıldığın yerde ben buradayım kadir.

WeiLSiDe 27 Eylül 2009 02:26

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

L4roXyL 29 Eylül 2009 05:21

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) }

WeiLSiDe 29 Eylül 2009 12:02

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.

L4roXyL 29 Eylül 2009 16:26

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 :)

}


++ mIRCScripting.net hakkında kısaca:

mS; "Gayri resmi mIRC" kullanıcı ve tasarımcı topluluğudur.
2009 yılında kurulan mS; tasarımcı ve geliştiricileri bir araya getiren etkileşim ve iletişim sağlayan bir platformdur.
mS; tasarım, programlama, geliştirme, düzenleme vb. pek çok konu etrafında bir araya gelmiş "mIRC" meraklısı bir çok insan tarafından yaratılan içeriğiyle; kullanıcı dostu, özgün elit, nitelikli kişi ve konularla hizmet sunan mIRC Scripting platformudur.

Özgün içerikten onay almaksızın içeriği yaratan kullanıcılarımız tamamen yada kısmen sorumludur, aynı zamanda söz konusu içerik mS yetkilileri izni olmaksızın, kaynak gösterilse dahi(!) kopyalanamaz ve/ya paylaşılamaz.   Site/içerik hakkında görüş, öneri ve şikayetleriniz için sikayet[at]mircscripting[dot]net e-posta ve ya İletişim adresinden bizlere ulaştırabilirsiniz.



mIRC mIRC Orjinal mIRC İndir mIRC Download mIRC Tutorials mIRC Socket mIRC Commands mIRC Komutlar mIRC Yükle mIRC Dersler mIRC Hazır Kodlar mIRC Classentifier mIRC DLL mIRC Dialog mIRC IRC mIRC FTP mIRC Telnet mIRC Help
mIRC Yardım mIRC Iconlar mIRC Com Object mIRC Binary Files mIRC Picture Windows mIRC Unicode mIRC Forum mIRC Hazır Kodlar mIRC Kod mIRC Script mIRC File Handling mIRC Scripting Language mIRC Scripting Dili mIRC Scripting Info
mIRC Scripting Tutorials



User Alert System provided by Advanced User Tagging v3.1.3 (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd. Runs best on HiVelocity Hosting.

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

SEO by vBSEO 3.6.1