IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Bot Hakkında... (https://www.ircforumlari.net/mirc-scripting-sorunlari/6089-bot-hakkinda.html)

goXXip 04 Ağustos 2005 17:33

Alıntı:

Bleda Nickli Üyeden Alıntı
Eğer kod incelemek için yardım isteseydi direk kod istemeyeceğini düşünüyorum ve istesede açıklamalı bir biçimde istemesi gerektiğini düşünüyorum ;)

:) Hatırlatma

Alıntı:

goXXip Nickli Üyeden Alıntı
Amaç ne olursa olsun ya da ne şekilde olursa olsun benim ihtiyacım olduğunda bunu zamanında elde edebildiysem başka bir yerde başkası bu şekilde istediğinde geri çevirmemek gerekir.

;)

AsiLmavi 04 Ağustos 2005 18:33

Alevli Meva Tabagı Öneren Arkadaşım.. Bu Form Neden Kuruldu? Yardım amaclı Değilmi? Ben bir Soru Sordum Cevaplamak isteyen Cevaplar. + Ben Emeğe Her daim saygılıyımdır. Kodlayanın nickini Code yanına eklerim. sende Yardım etmeyi ören bence. goXXip in cok iyiliğini gördüm görücem de. Allah razı olsun. Kendine yakışanı yapıyor. cevap bekliyor olucam goXXip Şimdiden eline sağlık..

el33t 04 Ağustos 2005 20:28

1. sorun için, sen kanala girdiğinde 2 saniye aralıklı bir timer açıp o timerla bir aliası çağırıp kanalda kaç kişi olduğunu anlayıp, istediğini yapabilirsin, eğer 1'e eşitse ($nick(#kanal,0)) , sen op değilsen ve $usermode içinde o varsa samode'la kanalda op olunabilir, eğer 1'den büyükse ve sen o kanalda opsan kendini deop edebilirsin. Kanaldan çıktığında da güvenlik olsun diye timerı kapatabilirsin. Bunlar için bilmen gereken en önemli şeyler on JOIN, on PART, $nick(#kanal,0) (kanalda kaç kişi olduğu), $usermode..

on me:*:join:#deneme:{ $+(.timer,$chan) 0 2 kontrolet $chan }
on me:*:part:#deneme:{ if $timer($chan) { $+(.timer,$chan) off } }
alias kontrolet { if $1 ischan { if ($nick($1,0) = 1) && ($me !isop $1) && (o isin $usermode) { samode $1 +o $me } | elseif ($nick($1,0) > 1) && ($me isop $1) { mode $1 -o $me } } }

İkinci sorunu anlayamadım, botun olduğu kanallarda 15 dakika önce atılmış banları samode ile açacak demişsin, Bu biraz saçma olur çünkü her dakika kontrol edilse kaç dk önce atıldı banlar diye, her dakika ban atılabileceği için, her dakika ban açmak gereksiz yere flood olur, onun yerine her 15 dakikada bir tüm banlar açılabilir.

Üçüncü soruna gelince, sen servera bağlandığında her 20 dakikada bir tüm kanallara sırayla /who çekip, gelen who cevabına göre, 7. cümlede G harfi olanlara whois çekip, away mesajlarını kontrol edebilirsin, eğer away mesajlarında reklam varsa kline atabilirsin.. (Kalınla yazdığım yerler who çekilmesini istemediğin kanallar)

alias awaykontrol { var %ş = $chan(0) | while %ş { if !$istok(#deneme #help #operhelp,$chan(%ş),32) { who $chan(%ş) } | dec %ş } }
raw 352:*:{ if (G isincs $7) && ($6 isreg $2) { whois $6 | set -u60 $+(%,wcheck.,$6) $4 } }
raw 301:*:{
var %ğ = $remove($strip($3-),$chr(32))
if ($($+(%,wcheck.,$2),2)) && (*http:* iswm %ğ) || (*ftp:* iswm %ğ) || (*irc.* iswm %ğ) || (*/server* iswm %ğ) || (*.com iswm %ğ) || (*[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] iswm %ğ) {
kline $+(*@,$($+(%,wcheck.,$2),2)) Away mesajında reklam yapmak yasaktır.
}
}

Umarım anlamışsındır ve mIRC Scripting hakkında bir fikrin olmuştur.
(Not: kodların hiç birini denemedim.)

AsiLmavi 05 Ağustos 2005 10:46

SaolasıN Dostum. ikinci sorumun codesini alabilirmiyim?

MaeLStrOm 05 Ağustos 2005 11:42

on *:ban:#: { timer 1 900 samode $chan -b $banmask }
;atılan banları 15 dakka sonra acar kim tarafından atılırsa atılsın.denemedim ama calısır inş

el33t 05 Ağustos 2005 12:13

Alıntı:

el33t Nickli Üyeden Alıntı
İkinci sorunu anlayamadım, botun olduğu kanallarda 15 dakika önce atılmış banları samode ile açacak demişsin, Bu biraz saçma olur çünkü her dakika kontrol edilse kaç dk önce atıldı banlar diye, her dakika ban atılabileceği için, her dakika ban açmak gereksiz yere flood olur, onun yerine her 15 dakikada bir tüm banlar açılabilir.

Alıntı:

asilmavi Nickli Üyeden Alıntı
SaolasıN Dostum. ikinci sorumun codesini alabilirmiyim?

Çok zekice bir cevap gerçekten.. Ben ikinci sorunu anlayamadım demişim ve sana seçenekler sunmuşum, senin verdiğin cevapsa ikinci sorumun kodunu alabilir miyim? Anlama problemlerin mi var?

AsiLmavi 05 Ağustos 2005 14:00

Alıntı:

el33t Nickli Üyeden Alıntı
Çok zekice bir cevap gerçekten.. Ben ikinci sorunu anlayamadım demişim ve sana seçenekler sunmuşum, senin verdiğin cevapsa ikinci sorumun kodunu alabilir miyim? Anlama problemlerin mi var?

Tamam kendim hazırladım dostum saol. yani 15 da bir banları acan codeyi sormuştum. saolasın.

goXXip 05 Ağustos 2005 19:04

Kod:

alias _ban.chans { .whois $me | .timer.check 1 2 _ban.ccheck }

raw 353:*: { .set -u15 %::mchan $remove($4-,@) }

alias _ban.ccheck {
  if %::mchan {
        var %k = 1,%:mchan = $numtok(%::mchan,32)
        while %k <= %:mchan {
          _queue .names $gettok(%::mchan,%k,32)
          inc %k
        }
  }
}

raw 319:*: {
  if %::mchan {
        var %m = 1
        while %m <= $numtok($3-,32) {
          if *@* !iswm $gettok($3-,%m,32) && *o* iswm $usermode {
                _queue samode $gettok($3-,%m,32) +o $me
          }
          inc %m
        }
  }
}
alias _queue {
  inc %queue.count
  if ($timer(.queue) == $null) {
        hadd -m queue count 1
        hadd -m queue 1 $1-
        _doqueue 1
  }
  else {
        var %queue.count = $calc($hget(queue,count) + 1)
        hadd -m queue %queue.count $1-
        hadd -m queue count %queue.count
  }
}
alias _doqueue {
  if ($hget(queue,$1) != $null) {
        .timer.queue -mo 1 $calc((4 - $gettok(3 2 1,$1,32)) * 60) _doqueue $calc($1 + 1)
        $ifmatch
        .hdel -s queue $1
  }
  else hfree queue
}


Bu koda dokunmayın:) Akşam evde devam edeceğim. Sadece ulaşım kolaylığı olsun diye attım. Ayrıca bu kod Eğer Botun bulunduğu kanallarda op yoksa op olmayan kanallarda op a çıkar.

MaeLStrOm 05 Ağustos 2005 19:32

goxxip sen hash table kullanıyorsun sanırım kodlarda onları acıklamalı anlatırmısın bizde oğrenelim :)

goXXip 06 Ağustos 2005 09:31

Normalde hash table kullanırım ama bu kodda sadece komutları sıralamak için


alias _queue {
inc %queue.count
if ($timer(.queue) == $null) {
hadd -m queue count 1
hadd -m queue 1 $1-
_doqueue 1
}
else {
var %queue.count = $calc($hget(queue,count) + 1)
hadd -m queue %queue.count $1-
hadd -m queue count %queue.count
}
}
alias _doqueue {
if ($hget(queue,$1) != $null) {
.timer.queue -mo 1 $calc((4 - $gettok(3 2 1,$1,32)) * 60) _doqueue $calc($1 + 1)
$ifmatch
.hdel -s queue $1
}
else hfree queue
}


komut dizisini kullandım. Bu kod PnP 'den geliyor. Açıkçası bu siber2 de var. Ama multi Server kullanımını desteklemiyor malesef. Bu kodun asıl geldiği yer yani PnP de ise multi serverı destekliyor. O kodda şu şekilde


_linedance {
if ($timer(.line.dance. $+ $cid) == $null) {
hadd -m pnp.qcommand count. $+ $cid 1
hadd -m pnp.qcommand 1. $+ $cid $1-
_dolinedance 1
}
else {
hinc -m pnp.qcommand count. $+ $cid
hadd -m pnp.qcommand $hget(pnp.qcommand,count. $+ $cid) $+ . $+ $cid $1-
}
}
_dolinedance {
if ($hget(pnp.qcommand,$1 $+ . $+ $cid) != $null) {
var %data = $ifmatch
.timer.line.dance. $+ $cid -m 1 $calc(1500 - $gettok(1250 1000 750 500 250,$1,32)) _dolinedance $calc($1 + 1)
%data
}
else hdel -w pnp.qcommand *. $+ $cid
}


Bu multi Server kullanımını destekler. Elimin altında _queue(Sırala) olduğu için onu yazdım. :) Bu kodu excess flood dan düşmemek için komutların önüne koyduğunuzda komutları sıralar ve flood dan düşmezsiniz...


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 00:43.

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