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/)
-   IRCd Botlar (https://www.ircforumlari.net/ircd-botlar/)
-   -   Eggdrop botunuz saatli bombaya dönüşsün.. (https://www.ircforumlari.net/ircd-botlar/454911-eggdrop-botunuz-saatli-bombaya-donussun.html)

CLubber 20 Şubat 2012 19:15

Eggdrop botunuz saatli bombaya dönüşsün..
 
PHP- Kodu:

#
# Kullanılabilecek komutlar: !bomba nick - !kes renk
# Belirttiğiniz kanalda istediğiniz bir kullanıcının eline bombayı verebilirsiniz.
#

bind  pub   -   !bomba  doTimebomb
bind  pub   
-   !kes   doCutWire

#
# Bombayı kesme süresi saniye cinsinden
# Maksimum 60 sn - Minimum 20 sn içerisinde kesmelidir.
#
set gTimebombMinimumDuration 20
set gTimebombMaximumDuration 60

#
# Kablo renkleri ve maksimum kablo sayısı
# Ekleme yapmak isterseniz lütfen boşluk bırakınız.
#
set gWireChoices "Kırmızı Turuncu Sarı Yeşil Mavi Siyah Beyaz Gri Kahverengi Pembe Bej Fuşya Krem Lila Bordo Lacivert Gümüş Turkuaz"
set gMaxWireCount 3

#
# Botun bomba özelliğinin aktif olması opsiyonu
# Bu bölümü değiştirmeyiniz.
#
set gTimebombActive 0
set gTimerId 0
set gTimebombTarget 
""

#
# Botun çalışacağı kanalı belirtiyoruz.
# Eggdrop botunuzun yalnızca bir kanalda bomba özelliğini kullanabilirsiniz.
#
set gTimebombChannel "#Sohbet"
set gCorrectWire ""
set gNumberNames "sıfır bir iki üç dört beş altı yedi sekiz dokuz on onbir oniki"

#
# Buradan sonrasında dikkatli olmanız gerekli kick sebeplerini değiştirebilirsiniz.
# Kaydırma yaptığınızda botunuz düzgün çalışmayacaktır.
#

proc note {msg} {
  
putlog "% $msg"
}

proc IRCKick {theNick theChannel theReason} {
  
note "Kicking $theNick in $theChannel (Reason: $theReason)"
  
putserv "KICK $theChannel $theNick :$theReason"
}

proc IRCPrivMSG {theTarget messageString} {
  
putserv "PRIVMSG $theTarget :$messageString"
}

proc IRCAction {theTarget messageString} {
  
putserv "PRIVMSG $theTarget :\001ACTION $messageString\001"
}

proc MakeEnglishList {theList} {
  
set theListLength [llength $theList]
  
set returnString [lindex $theList 0]
  for {
set x 1} {$x $theListLength} {incr x} {
    if { 
$x == [expr $theListLength 1] } {
      
set returnString "$returnString ve [lindex $theList $x]"
      
} else {
      
set returnString "$returnString, [lindex $theList $x]"
    
}
  }
  return 
$returnString
}

proc SelectWires {wireCount} {
  global 
gWireChoices
  set totalWireCount 
[llength $gWireChoices]
  
set selectedWires ""
  
for {set x 0} {$x $wireCount} {incr x} {
    
set currentWire [lindex $gWireChoices [expr intrand() * $totalWireCount )]]
    if { [
lsearch $selectedWires $currentWire] == -} {
      
lappend selectedWires $currentWire
      
} else {
      
set x [expr $x 1]
    }
  }
  return 
$selectedWires
}

proc DetonateTimebomb {destroyTimer kickMessage} {
  global 
gTimebombTarget gTimerId gTimebombChannel gTimebombActive
  
if { $destroyTimer } {
    
killutimer $gTimerId
  
}
  
set gTimerId 0
  set gTimebombActive 0
  IRCKick $gTimebombTarget $gTimebombChannel $kickMessage
}

proc DiffuseTimebomb {wireCut} {
  global 
gTimerId gTimebombActive gTimebombTarget gTimebombChannel
  killutimer $gTimerId
  set gTimerId 0
  set gTimebombActive 0
  IRCPrivMSG $gTimebombChannel 
"$gTimebombTarget $wireCut kabloyu kesti, bomba etkisiz hale getirildi."
}

proc StartTimeBomb {theStarter theNick theChannel} {
  global 
gTimebombActive gTimebombTarget gTimerId gTimebombChannel gNumberNames gCorrectWire
  
global gMaxWireCount gTimebombMinimumDuration gTimebombMaximumDuration
  
if { $gTimebombActive == } {
    
note "Bomba aktif olduğu için, yeni bir bomba kurulamadı!"
    
if { $theChannel != $gTimebombChannel } {
      
IRCPrivMSG $theChannel "Bomba özelliğini bir kanalda kullanabilirsiniz."
      
} else {
    }
    } else {
    
set timerDuration [expr $gTimebombMinimumDuration + [expr int(rand() * ($gTimebombMaximumDuration $gTimebombMinimumDuration))]]
    
set gTimebombTarget $theNick
    set gTimebombChannel $theChannel
    set numberOfWires 
[expr 1 int(rand() * ( $gMaxWireCount ))]
    
set listOfWires [SelectWires $numberOfWires]
    
set gCorrectWire [lindex $listOfWires [expr intrand() * $numberOfWires )]]
    
set wireListAsEnglish [MakeEnglishList $listOfWires]
    
set wireCountAsEnglish [lindex $gNumberNames $numberOfWires]
    
IRCAction $theChannel "Bomba $gTimebombTarget nickinin elinde. $gTimebombTarget nickinin bombayı etkisiz hale getirebilmek için $timerDuration saniyesi var."
    
if { $numberOfWires == } {
      
IRCPrivMSG $theChannel "Doğru kabloyu keserek, bombayı etkisiz hale getirin! Sadece $wireCountAsEnglish tane kablonuz var. Kesebileceğiniz kablo renkleri: $wireListAsEnglish."
      
} else {
      
IRCPrivMSG $theChannel "Doğru kabloyu keserek, bombayı etkisiz hale getirin! Sadece $wireCountAsEnglish tane kablonuz var. Kesebileceğiniz kablo renkleri: $wireListAsEnglish."
    
}
    
note "Saatli bomba $theStarter tarafından başlatıldı! $theNick nickinin bombayı $timerDuration saniyede etkisiz hale getirmesi gerekiyor."
    
set gTimebombActive 1
    set gTimerId 
[utimer $timerDuration "DetonateTimebomb 0 {Süre bitti malesef bomba elinizde patladı. BOOOM!}"]
  }
}

proc doCutWire {nick uhost hand chan arg} {
  global 
gTimebombActive gCorrectWire gTimebombTarget
  
if { $gTimebombActive == } {
    if { [
string tolower $nick] == [string tolower $gTimebombTarget] } {
      if { [
llength $arg] == } {
        if { [
string tolower $arg] == [string tolower $gCorrectWire] } {
          
DiffuseTimebomb $gCorrectWire
          
} else {
          
DetonateTimebomb 1 "Malesef yanlış kabloyu kestiniz. BOOOOM!"
        
}
      }
    }
  }
}

proc doTimebomb {nick uhost hand chan arg} {
  global 
botnick
  set theNick $nick
  
if { [llength $arg] == } {
    
set theNick [lindex [split $arg0]
  }
  if { [
string tolower $theNick] == [string tolower $botnick] } {
    
set theNick $nick
    IRCKick $theNick $chan 
"Beni bombalayamazsınız!"
    
return
  }
  if { [
validuser $theNick] == } {
    if { [
matchattr $theNick "+b"] == } {
      
set theNick $nick
      IRCKick $theNick $chan 
"Beni banlayamazsınız!"
      
return
    }
  }
  
StartTimeBomb $nick $theNick $chan


Belirlediğiniz kanal genelinde !bomba nick ve !kes renk komutlarını kullanarak oynayabileceğiniz güzel bir oyun.

Birçok kişinin bu botu aradığını fark ettim, sizler için türkçe'ye çevirdim.

TCL Çevirisi: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

saywhat 20 Şubat 2012 19:59

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
abi konu yanlış yerde sanki hı ? :)

CLubber 20 Şubat 2012 20:01

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
Botun bulunduğu kategoride herhangi bir sorun yok..

fLayer 02 Mart 2012 23:38

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
Renkleri çogaltabilirmiyiz bunda ornek
!bomba nick yazıyoruz Tek renk veriyor çogunlukla

CLubber 03 Mart 2012 00:11

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
PHP- Kodu:

set gMaxWireCount 3 

Bu sayıyı istediğiniz kadar yükseltebilirsiniz.

dirizit 18 Ekim 2012 11:57

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
şu konuyu bi açıklayın yahu

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 10:57 -->-> Daha önceki mesaj 10:57 --

bu botu nereye nasıl eklicez vs:s

saywhat 18 Ekim 2012 14:17

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

MyKraL 21 Haziran 2014 11:13

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
Alıntı:

CLubber Nickli Üyeden Alıntı (Mesaj 1041037360)
PHP- Kodu:

#
# Kullanılabilecek komutlar: !bomba nick - !kes renk
# Belirttiğiniz kanalda istediğiniz bir kullanıcının eline bombayı verebilirsiniz.
#

bind  pub   -   !bomba  doTimebomb
bind  pub   
-   !kes   doCutWire

#
# Bombayı kesme süresi saniye cinsinden
# Maksimum 60 sn - Minimum 20 sn içerisinde kesmelidir.
#
set gTimebombMinimumDuration 20
set gTimebombMaximumDuration 60

#
# Kablo renkleri ve maksimum kablo sayısı
# Ekleme yapmak isterseniz lütfen boşluk bırakınız.
#
set gWireChoices "Kırmızı Turuncu Sarı Yeşil Mavi Siyah Beyaz Gri Kahverengi Pembe Bej Fuşya Krem Lila Bordo Lacivert Gümüş Turkuaz"
set gMaxWireCount 3

#
# Botun bomba özelliğinin aktif olması opsiyonu
# Bu bölümü değiştirmeyiniz.
#
set gTimebombActive 0
set gTimerId 0
set gTimebombTarget 
""

#
# Botun çalışacağı kanalı belirtiyoruz.
# Eggdrop botunuzun yalnızca bir kanalda bomba özelliğini kullanabilirsiniz.
#
set gTimebombChannel "#Sohbet"
set gCorrectWire ""
set gNumberNames "sıfır bir iki üç dört beş altı yedi sekiz dokuz on onbir oniki"

#
# Buradan sonrasında dikkatli olmanız gerekli kick sebeplerini değiştirebilirsiniz.
# Kaydırma yaptığınızda botunuz düzgün çalışmayacaktır.
#

proc note {msg} {
  
putlog "% $msg"
}

proc IRCKick {theNick theChannel theReason} {
  
note "Kicking $theNick in $theChannel (Reason: $theReason)"
  
putserv "KICK $theChannel $theNick :$theReason"
}

proc IRCPrivMSG {theTarget messageString} {
  
putserv "PRIVMSG $theTarget :$messageString"
}

proc IRCAction {theTarget messageString} {
  
putserv "PRIVMSG $theTarget :\001ACTION $messageString\001"
}

proc MakeEnglishList {theList} {
  
set theListLength [llength $theList]
  
set returnString [lindex $theList 0]
  for {
set x 1} {$x $theListLength} {incr x} {
    if { 
$x == [expr $theListLength 1] } {
      
set returnString "$returnString ve [lindex $theList $x]"
      
} else {
      
set returnString "$returnString, [lindex $theList $x]"
    
}
  }
  return 
$returnString
}

proc SelectWires {wireCount} {
  global 
gWireChoices
  set totalWireCount 
[llength $gWireChoices]
  
set selectedWires ""
  
for {set x 0} {$x $wireCount} {incr x} {
    
set currentWire [lindex $gWireChoices [expr intrand() * $totalWireCount )]]
    if { [
lsearch $selectedWires $currentWire] == -} {
      
lappend selectedWires $currentWire
      
} else {
      
set x [expr $x 1]
    }
  }
  return 
$selectedWires
}

proc DetonateTimebomb {destroyTimer kickMessage} {
  global 
gTimebombTarget gTimerId gTimebombChannel gTimebombActive
  
if { $destroyTimer } {
    
killutimer $gTimerId
  
}
  
set gTimerId 0
  set gTimebombActive 0
  IRCKick $gTimebombTarget $gTimebombChannel $kickMessage
}

proc DiffuseTimebomb {wireCut} {
  global 
gTimerId gTimebombActive gTimebombTarget gTimebombChannel
  killutimer $gTimerId
  set gTimerId 0
  set gTimebombActive 0
  IRCPrivMSG $gTimebombChannel 
"$gTimebombTarget $wireCut kabloyu kesti, bomba etkisiz hale getirildi."
}

proc StartTimeBomb {theStarter theNick theChannel} {
  global 
gTimebombActive gTimebombTarget gTimerId gTimebombChannel gNumberNames gCorrectWire
  
global gMaxWireCount gTimebombMinimumDuration gTimebombMaximumDuration
  
if { $gTimebombActive == } {
    
note "Bomba aktif olduğu için, yeni bir bomba kurulamadı!"
    
if { $theChannel != $gTimebombChannel } {
      
IRCPrivMSG $theChannel "Bomba özelliğini bir kanalda kullanabilirsiniz."
      
} else {
    }
    } else {
    
set timerDuration [expr $gTimebombMinimumDuration + [expr int(rand() * ($gTimebombMaximumDuration $gTimebombMinimumDuration))]]
    
set gTimebombTarget $theNick
    set gTimebombChannel $theChannel
    set numberOfWires 
[expr 1 int(rand() * ( $gMaxWireCount ))]
    
set listOfWires [SelectWires $numberOfWires]
    
set gCorrectWire [lindex $listOfWires [expr intrand() * $numberOfWires )]]
    
set wireListAsEnglish [MakeEnglishList $listOfWires]
    
set wireCountAsEnglish [lindex $gNumberNames $numberOfWires]
    
IRCAction $theChannel "Bomba $gTimebombTarget nickinin elinde. $gTimebombTarget nickinin bombayı etkisiz hale getirebilmek için $timerDuration saniyesi var."
    
if { $numberOfWires == } {
      
IRCPrivMSG $theChannel "Doğru kabloyu keserek, bombayı etkisiz hale getirin! Sadece $wireCountAsEnglish tane kablonuz var. Kesebileceğiniz kablo renkleri: $wireListAsEnglish."
      
} else {
      
IRCPrivMSG $theChannel "Doğru kabloyu keserek, bombayı etkisiz hale getirin! Sadece $wireCountAsEnglish tane kablonuz var. Kesebileceğiniz kablo renkleri: $wireListAsEnglish."
    
}
    
note "Saatli bomba $theStarter tarafından başlatıldı! $theNick nickinin bombayı $timerDuration saniyede etkisiz hale getirmesi gerekiyor."
    
set gTimebombActive 1
    set gTimerId 
[utimer $timerDuration "DetonateTimebomb 0 {Süre bitti malesef bomba elinizde patladı. BOOOM!}"]
  }
}

proc doCutWire {nick uhost hand chan arg} {
  global 
gTimebombActive gCorrectWire gTimebombTarget
  
if { $gTimebombActive == } {
    if { [
string tolower $nick] == [string tolower $gTimebombTarget] } {
      if { [
llength $arg] == } {
        if { [
string tolower $arg] == [string tolower $gCorrectWire] } {
          
DiffuseTimebomb $gCorrectWire
          
} else {
          
DetonateTimebomb 1 "Malesef yanlış kabloyu kestiniz. BOOOOM!"
        
}
      }
    }
  }
}

proc doTimebomb {nick uhost hand chan arg} {
  global 
botnick
  set theNick $nick
  
if { [llength $arg] == } {
    
set theNick [lindex [split $arg0]
  }
  if { [
string tolower $theNick] == [string tolower $botnick] } {
    
set theNick $nick
    IRCKick $theNick $chan 
"Beni bombalayamazsınız!"
    
return
  }
  if { [
validuser $theNick] == } {
    if { [
matchattr $theNick "+b"] == } {
      
set theNick $nick
      IRCKick $theNick $chan 
"Beni banlayamazsınız!"
      
return
    }
  }
  
StartTimeBomb $nick $theNick $chan


Belirlediğiniz kanal genelinde !bomba nick ve !kes renk komutlarını kullanarak oynayabileceğiniz güzel bir oyun.

Birçok kişinin bu botu aradığını fark ettim, sizler için türkçe'ye çevirdim.

TCL Çevirisi: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

emeğine saglık . !bomba nick komutunu sadece adminler kullansa yada belirledigimiz nickler nasıl olur . her usere kullanıma acık olmasın mesela :)

saywhat 21 Haziran 2014 15:26

Cevap: Eggdrop botunuz saatli bombaya dönüşsün..
 
kodun tepesine (bind satırlarının üstüne) :
Kod:

set agalar {
 "halamin-kizinin.kocasinin.ucuncu-kusaktan-kuzeninin-ilkokuldan-arkadasinin.babasinin-asker.arkadasi.com"
 "uy-topragim.net"
 "bubamin-oglu.com"
 "emcemin-kayni.info"
 }

komutları kullanma yetkisi verilecek kişilerin hostlarını girin ( alt alta " " tırnaklar içine alarak *!*@ gerek olmadan ,örneklerdeki gibi giriniz.) ( not: wildcard da kullanabilirsiniz .bu hostlarda ... sıkıntı olmaz...)

bind'lerin tetiklediği iki proc/prosedür var : doTimebomb ve doCutWire (kodun sonunda/altında yer alan iki proc/prosedür) bu iki "ana" proc üzerinden diğerlerine bağlanılıyor/işlem yaptırıyor.

bu her iki proc satırının bir altlarına gelecek şekilde :

Kod:

      set hostunuz [lindex [split $uhost "@"] 1]
 
      foreach kaytar $::agalar {
 if {![string match -nocase $hostunuz $kaytar]} {
      puthelp "notice $nick :$::lastbind komutunu kullanmaya yetkiniz yok..."
      return 0
      }
 }

satırlarını her iki proc doTimebomb ve proc doCutWire başına ekleyin.böylece bind'lerdeki komut/lar ile çağrılacak prosedürler ilk evvel ,komutu kullanan kişinin hostunu ,set agalar { ayarında ekli listelenmiş herbir hostla karşılaştıracak eşleşmiyorsa "yetkiniz yok" kişiye notice atacak ve prosedür sıfırlanacak/son bulacak...

Diğer deyişle ,sadece bu hostlara sahip kişiler prosedür/leri, komutla (bind) çağırıp/işletebilecek....

(doCutWire proc'una da eklenirse , komutları kullanma yetkisi verilmiş kişiler haricinde "ellerine bomba tutuşturulmuş kişilerin, doğru rengi seçipte kurtulma şansıda olmayacaktır. yani sadece ,yetki verilmiş kişilerin bu komuta erişimi olacaktır. o nedenle diğer kişilere (yetki verilmemiş kişilerin de doğru kabloyu bulma şansı olsun*) deniyorsa bu doCutWire proc'una yukardaki kodu eklemeyin.)


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

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