mIRC Scripting

mIRC Scripting (https://www.mircscripting.net/)
-   Help - Yardım (https://www.mircscripting.net/help-yardym/)
-   -   socket bot listeden satırı okutup islem yapma (https://www.mircscripting.net/help-yardym/385-socket-bot-listeden-satyry-okutup-islem-yapma.html)

Oliver 28 Ağustos 2009 01:49

socket bot listeden satırı okutup islem yapma
 
burda ;
Kod:

    if (:.onay == $4) {
      var %oprnick $remove($gettok($1-,1,33),:)
      ock %oprnick
      if ($chr(35) !isin $5) { sw $sockname privmsg %::chan kanal onaylarken " $chr(35) " işaretini gir :) | halt }
      _islemyap $5

bu kod icin bi alias deniyorum ;

Kod:

alias _islemyap {
  var %n = $left($calc($ctime * $rand(1000,9999)),7)
  if ($hfind(onaybekleyen,$1-,0,W).data) { .sw $sockname PRIVMSG %::chan Belirttiginiz kanal listede yok. | halt }
  .sw $sockname PRIVMSG %::chan kanal acilip sahibine memo atıldı
  hadd -m chan %n $1-
  hsave -o chan chan.chc
  hdel onaybekleyen $hfind(bd,$1-,1,W).data
  hsave -o onaybekleyen onaybekleyen.chc
  .hfree -sw onaybekleyen
  hmake onaybekleyen
  hload onaybekleyen onaybekleyen.chc
}


.onay #kanal komutu verildiğinde onaybekleyen dosyasına bakıp listede yoksa yok deyip, varsa sahibine memo atıp kanalı kaydetmesi,
sonra bu kanalı chan.chc dosyasına kaydedip onaybekleyenden silmesi.

bu konuda yardımcı olabilirseniz sevinirim, herkese kolay gelsin

Onay bekleyen dosyası aşağıdaki gibidir.

6641356
#istanbul Cemil
3499016
#Sohbet Murat
6463885
#izmir Gizem
1158586
#chat Ali
3824388
#Sevgi Taner

L4roXyL 28 Ağustos 2009 05:17

İlk öncelikle /hsave komutunda "-o" anahtarı işlev görmez çünki böyle bir anahtar yok.
Ek olarak ben kodun tabanına inerek sana yardımcı olacağım.
Onaybekleyen tablosuna verileri #kanal(ITEM) nick(DATA) şeklinde kaydetmelisin.(/hadd -m onaybekleyen #kanal nick)

-

;_islemyap <#kanal(onaylanacak kanal)> <sockname> <aktif kanal(.onay #kanal komutu uygulanan kanal)>

Kod:

alias _islemyap {
  var %_n = $hget(onaybekleyen,$1),%s = sockwrite -n $2,%_t = $ticks
  if (!%_n) { %s PRIVMSG $3 belirttiğin $1 kanalı listede yok. | return }
  else {
    %s JOIN $1 | %s cs register $1 %_t $1 is open. | %s cs set $1 founder %_n | %s ms send %_n $1 kanalı adınıza kaydedildi. Kanal şifresi: %_t
    %s PRIVMSG $3 $1 kanalı açılıp sahibine( $+ %_n $+ ) memo atıldı.
    hdel onaybekleyen $1 | hsave -i onaybekleyen onay.hash
    hadd -m chan $1 ok | hsave -i chan chan.chc
  }
}

Şeklinde bir alias işini görür.
-
Bu alias-ın yaptığı işlevler;
Onaybekleyen tablosunda, kanal ismini search eder. Eğer search başarısız olursa, kanala uyarı mesajı gönderir. Eğer başarılı olursa;
1- Bot belirtilen kanala giriş yapar.
2- Kanalı kayıt eder(şifresi $ticks-den gelen veridir)
3- Kanalı kayıt etmek isteyen nick-in üzerine geçirir.
4- Kanalı kayıt etmek isteyen kullanıcıya memo gönderir(kanal şifresi içerisinde)
5- Onaybekleyen tablosundan işlem yapılan kanalı siler ve tekrar "ini" şeklinde save eder.(onay.hash dosyasına)
6- İşlem gören kanalı(kayıt tamamlanan kanalı) chan.chc dosyasına "ini" şeklinde kayıt eder.

Ek olarak şu kısmıda aşağıda verdiğim gibi değiştir.

Kod:

if (:.onay == $4) {
      var %oprnick $remove($gettok($1-,1,33),:)
      ock %oprnick
      if ($chr(35) !isin $5) { sw $sockname privmsg %::chan kanal onaylarken " $chr(35) " işaretini gir :) | halt }
    _islemyap $5 $sockname %::chan
}


Oliver 04 Eylül 2009 20:23

Eyv L4roXyL , istediğimden fazlasınıda vermişsin teşekkür ederim bitanesin:)

Oliver 26 Eylül 2009 11:46

merhaba , L4roXyL nin burda vermiş oldu kod çok güzel çalışıyor fakat benim başvuruları kayıt ederkenki şeklimdenmidir nedir kanal listeye #SohbetMehmet şeklinde yazılıyor yani kanal adı ve başvuran kişiyi yan yana bitişik veriyor ( ortada boşluk yok)

" hadd -m onaybekleyen $+($chr(35),$1) %::nick "

şeklinde eklememe rağmen..
Başvuru onaylarken herangi bir sorun yaşamıyorum fakat yinede sorayım istedim bunu ortada boşlukla nasıl kayıt ederim. Birde istediğim bu onaybekleyen tablosundaki verileri kanala okutmak istediğimde yani başvuruları listelemek istediğimde # işareti olanları (kanal isimlerini vermiyor) sadece başvuran kişileri veriyor. Bunun için ne yapabilirim, basit bi kodla yardımcı olabilirseniz çok sevinirim.

(.basvurular komutu için kullanmaya çalıştığım alias aşağıdaki gibidir )
Kod:

alias _basvurulist {
  var %i = 1, %t = $hget(onaybekleyen,0).data
  if (!%t) && (!$hget(onaybekleyen)) {
    hmake onaybekleyen 100
    hload  onaybekleyen onaybekleyen.txt
  }
  sw $sockname PRIVMSG%::chan basvuru listesi
  while (%i <= %t) {
    %d =  $hget(onaybekleyen,%i).data
    if (%d != $null) {
      sw $sockname PRIVMSG %::chan  %i - %d
    }
    inc %i
  }
  sw $sockname PRIVMSG $1- basvuru listesi sonu.
}

Herkese iyi çalışmalar.

L4roXyL 28 Eylül 2009 15:20

Oliver, tekrar hoşgeldin.
-
İlk öncelikle eklemeleri şu şekilde yapsan daha iyi olur.
//hadd -m onaybekleyen $iif($left($1,1) != $chr(35),$+($chr(35),$1),$1) %::nick

Hash table-ındaki mantık şudur: Ne tablo ismine, ne ITEM(parça) kısmına, nede DATA(değer) kısmına arada boşluk/white-space karakteri olan bir <veri> atayamazsın.
-
Senin veri eklemende problem yok. Sen sadece okutma olayını yanlış yapıyorsun. Vereceğim kod işini görecektir.

-

Kod:

alias _basvuru {
  var %1 = 1,%2 = $hget(onaybekleyen),%_o = onaybekleyen
  if (!%2) { hmake %_o 50 | hload -i %_o $+(%_o,.txt) }
  if ($hget(%_o,0).item >= 1) {
    sockwrite -n $1 privmsg $2 toplam $v1 kayıt listeleniyor.
    while ($hget(%_o,%1).item) {
      sockwrite -n $1 privmsg $2 $v1 $hget(%_o,$v1)
      inc %1
    }
    sockwrite -n $1 privmsg $2 liste sonu.
  }
}

Kullanım: /_basvuru socket-ismi #kanal-ismi(okutulacak kanal)
Ek açıklama: Hash table-deki verileri kayıt ederken(/hsave) -i anahtarını kullanmalısın.(/hsave -i table-name filename)

Oliver 28 Eylül 2009 16:03

hoşbulduk L4roXyL ,
Süper oldu bu, yaptığım yanlışlarıda görmüş oldum. Teşekkür ederim iyi çalışmalar.


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