![]() |
|
|
|||||||
| Help - Yardım mIRC Scripting hakkında her konuda yardım alabileceğiniz bölümdür. |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|||
|
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
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 |
|
|||
|
İ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
}
}
- 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
}
C/co/cod/code^man. Konu CoCoRiCo tarafından (09-26-2009 Saat 13:12 ) değiştirilmiştir. |
| L4roXyL kullanıcısının bu postunu beğenenler. | ||
Oliver (09-04-2009) | ||
|
|||
|
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.
}
Konu CoCoRiCo tarafından (09-26-2009 Saat 13:12 ) değiştirilmiştir. Sebep: lütfen kodları bbCode tagları içine alalım. |
|
|||
|
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.
}
}
Ek açıklama: Hash table-deki verileri kayıt ederken(/hsave) -i anahtarını kullanmalısın.(/hsave -i table-name filename)
C/co/cod/code^man. |
| L4roXyL kullanıcısının bu postunu beğenenler. | ||
Oliver (09-28-2009) | ||