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 Hazır Kodlar (https://www.ircforumlari.net/mirc-scripting-hazir-kodlar/)
-   -   Şişe Çevirme Oyunu (https://www.ircforumlari.net/mirc-scripting-hazir-kodlar/497437-sise-cevirme-oyunu.html)

OptiK 26 Temmuz 2012 07:38

Şişe Çevirme Oyunu (İstek)
 
Merhaba arkadaşlar. Ben bir sunucu üzerinde bu oyunu gördüm. Ve biraz takip ettim. Gerçi onlarda biraz abartıda vardı puanlama sistemi vs. gibi.
Script, kod, remote, bot vs. tarzı işlerden hiç anlamıyorum. O yüzden sizlerden böyle birşey istiyorum. Yapabilirseniz. Birine anlattım basit bişey ama zamanım yok dedi :) Yani bende anlamadığım kadarıyla hani işi gerçekten iyi bilen bir arkadaş sanırım 1-2 saatte çok kolayca çözer diye tahmin ediyorum. Şimdiden bana yardım edip yapan arkadaşa teşekkürlerimi sunarım. Bunu hiç bir sunucu için yada bir yerde kullanmak için istemiyorum. Şahsı olarak arkadaşlarım arasında kendi kanalımda kullanacağım gülerek vakit geçirmek için :) yapan arkadaş remotesini yada script olarak bot halini bana gönderebilirse sevinirim. Tekrar teşekkürler iyi çalışmalar.


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


Şişe Çevirmece Oyunu

İstediğim kodu anlatmak için oyunu oynuyormuş gibi yaparak anlatıcam.

#SiseCevir kanalına girdim
<Optik> !varim
- yazdım ve oyuna dahil oldum.
<%SiseCevir> Optik oyuna dahil oldu.
<Optik> !yokum
- yazdığımda ise oyundan ayrılmış olacağım.
<%SiseCevir> Optik oyundan ayrıldı.

!cevir - komutu X bir kişi tarafından yazılabilir ve bu komut yazıldığında.
<Turk> !cevir
<%SiseCevir> Optik soracak ---> Turk cevap verecek.

<Optik> !s Nerelisin?
<%SiseCevir> Soru - Optik : Nerelisin?
<Turk> !c Ankara
<%SiseCevir> Cevap - Turk : Ankara?
<%SiseCevir> Soru ve cevap işlemi tamamlandı, tekrar çevrilebilir.

Bundan sonra tekrar şişe çevrilecek. Ve oyun aynen böyle devam edecek.
Ama şimdi işin püf noktaları. !cevir yazıldı. Soru soracak ve cevap verecek nick açıklandı.
Soru sorulmuyorsa yada cevap verilmiyorsa,
Yani soru soracak yada cevap verecek nick away olmuş ve kanala bakmıyorsa.
!cevir tekrar çalışmayacak.

Örneğin;

<Lale> !cevir
<%SiseCevir> Optik soracak ---> Turk cevap verecek.
<Optik> !s Nerelisin?
<%SiseCevir> Soru - Optik : Nerelisin?
<Kerim> !cevir
<%SiseCevir> 
Soru ve cevap işlemi tamamlanmadıkça tekrar çevrilemez!

Bunu demeli. Çünkü oyun dönerken aptalın biri tekrar !cevir kesin yazar.
O yüzde bunu kapatıcaz. Yani soru ve cevap alınmadıkça !cevir çalışmayacak.
Ve dediğim gibi soruyu soran yada cevap verek away ise.
Kanalda % - @ - & yada ~ prefixe sahip birisi !reset yazdığında oyun sıfırlanmalı.
Böylece hem away olanları reset ile engellemiş olacağız. Hemde oyun oynanırken tekrar !cevir komutunu yasaklamış olacağız.

<@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]> !reset
<%SiseCevir>
Oyun sıfırlandı, tekrar çevrilebilir.Gibi...

!oyuncular
- Yazıldıgında ise oyundaki nickler listelenecek.
<Optik> !oyuncular
<%SiseCevir> Kamil
<%SiseCevir> Lale
<%SiseCevir> Optik
<%SiseCevir> Turk
<%SiseCevir> Kerim
Gibi...

Toplam olarak kullanılacak komutlar :
!cevir
ve !çevir : ikiside şişenin dönmesini sağlayacak.
!varim
ve !varım : Oyuna dahil olmak için kullanulacak.
!yokum
: Oyundan ayrılmak için kullanılacak.
!reset
: Kanaldaki yetkili kişiler oyunu sıfırlayacak. (% @ & ~)
!oyuncular
: Oyuna !varım diyen ve dahil olan oyuncular listelenecek.

Ve oyuncuları sadece !varım diyenler arasından periyodik olarak belirleyecek.
!yokum diyince seçilecekler listesinden çıkacak. Yani sürekli aynı kişiler değil. Oyuncular arasından dağıtacak sürekli.
Bir önemli yer daha. Soruyu soracak ve cevap verecek nick aynı olmamalı. Bu çakışmanın engellenmesi lazım.

Son olarak, kalandan part edince yada quit edince listeden otomatik olarak !varım diyen çıkmalı.
<%SiseCevir> Optik oyundan ayrıldı.
Gibi...

OptiK 26 Temmuz 2012 19:42

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Botun bittiği anda alacağı şekil bu. Ve şuan sağolsun GhoSt ile birlikte adım adım yapıyoruz. Tahminime göre bu gece sahurdan sonra bitecek.

Büyük emek verdiği için @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 'a ve deneme sürecinde oyuncu olarak kitlediğimiz @S[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] yada teşekkürler ;s4

Çalışmalar devam ediyor :)))

Şişe Çevirmece Oyunu

- Oyunda kullanılacak komutlar -

A) Oyuncuların kullanabileceği komutlar

1) !varım veya !varim : Oyuna dahil olmanızı sağlar.
2) !yokum : Oyundan ayrılmanızı sağlar.
3) !cevir veya !çevir : Oyunun başlamasını sağlar.
4) !s sorunuz : Soru sormanızı sağlar.
5) !c cevabınız : Cevap vermenizi sağlar.
6) !oyuncular : Oyucuların listesini verir.

B) Yetkililerin kullanabileceği komutlar ( % - @ - & - ~ )

1) !dis nick : Bir oyuncuyu 10 dakika boyunca diskalifiye etmenizi sağlar.
2) !reset : Oyunu resetlemenizi sağlar. (Oyuncu listesini, diskalifiyeli nickleri temizler ve oyunu başa alır.)

------------------------------------------------------------------------------------------------------------------------------------------------------------
Soru soracak ve cevap verecek nickler !oyuncular listesindeki nickler arasından karma olarak hiç bir düzen içermeden seçilmektedir. Yani oyuna dahil olan oyuncu sayısına orantılı olarak size uzun süre sırada gelmeyedebilir, sürekli sizin nickinizde çıkabilir. Şansınıza yani. Son olarak nick çakışmasıda olmayacaktır yani soru soran ve cevap veren nick aynı anda denk gelmeyecektir.
------------------------------------------------------------------------------------------------------------------------------------------------------------

ÖNEMLİ NOT : Bu botun yapımında emeği geçen ve gerçekten başını şişirdiğim halde herşeyi dört dörtlük ayarlayan GhoSt nickli arkadaşıma sonsuz teşekkürlerimi sunuyorum.

Mudin 26 Temmuz 2012 20:58

Cevap: Şişe Çevirme Oyunu
 
Konu uzamaması babından kilitlenmistir.

Toprak 27 Temmuz 2012 05:01

Cevap: Şişe Çevirme Oyunu
 
Evet arkadaşlar buyrun;

Kod:

on *:text:*:#Sisecevir: {
  if $1 == !varim || $1 == !varım {
    if %disc. [ $+ [ $nick ] ] {  msg $chan Oyundan uzaklaştırıldınız, lütfen ceza sürenizin dolmasını bekleyiniz. | return }
    if (!$istok($hget(Oyun,Başlayanlar),$nick,32))  {
      hadd -ms Oyun Başlayanlar $hget(Oyun,Başlayanlar) $nick
      msg $chan 4 $nick oyuna dahil oldu.
    }
  else { msg $chan 4 $nick 1zaten oyuna dahil olmuşsunuz. } }
  if $1 == !yokum {
      if (!$istok($hget(Oyun,Başlayanlar),$nick,32))  {  msg $chan Siz zaten oyuna dahil olmamışsınız. | return }
    var %. $remtok($hget(oyun,Başlayanlar),$nick,32)
    hdel -ms Oyun Başlayanlar
    hadd -ms Oyun Başlayanlar %.
    msg $chan 2 $nick oyundan ayrıldı.
    if ($istok($hget(Oyun,SoruNick),$nick,32))  { msg $chan Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz. | hdel -ms Oyun SoruNick | hdel -ms Oyun SoruCevap  |  hadd -ms Oyun Durum 0 |  hadd -ms Oyun Soruldu 0 | $+(timer,soru) off | return }
    if ($istok($hget(Oyun,SoruCevap),$nick,32))  { msg $chan Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz. | hdel -ms Oyun SoruNick | hdel -ms Oyun SoruCevap  |  hadd -ms Oyun Durum 0 |  hadd -ms Oyun Soruldu 0 | $+(timer,soru) off | return }
  }
  if $1 == !cevir || $1 == !çevir {
if (!$istok($hget(Oyun,Başlayanlar),$nick,32)) { msg $chan Oyuna dahil olmadığınız için !cevir yapamazsınız. | return }
    if ($token($hget(oyun,Başlayanlar),0,32) == $null) { msg $chan Oyuncu bulunmadığı için !cevir komutunu kullanamazsınız. | return }
    if ($token($hget(Oyun,Başlayanlar),0,32) == 1) { msg $chan Şuan oyunda sadece bir kişi dahil olmuştur ve oyun en az iki kişi ile oynanmaktadır. | return }
    if $hget(Oyun,Durum) == 1 {  msg $chan Soru ve cevap işlemi tamamlanmadıkça şişe tekrar çevrilemez! | return }
    msg $chan 10Şişe dönüyor bekleyiniz..
    var %tab = $hget(oyun,başlayanlar)
    var %s = $numtok(%tab,32)
    var %q = $token(%tab,$r(1,$(%s,2)),32)
    var %a = $remtok(%tab,%q,32)
    var %k = $token(%a,$r(1,$calc($(%s,2) -1)),32)
    msg $chan 4 %q soracak ---> 2 %k cevap verecek.
    hadd -m Oyun Durum 1
    hadd -m Oyun SoruNick %q
    hadd -m Oyun SoruCevap %k
    .$+(timer,soru) 1 180 sıfırla $chan
  }
  if $1 == !s {
    if $hget(Oyun,Durum) != 1 {  msg $chan !s ve !c komutları şişe çevrilmeden kullanılamaz. | return }
    if (!$istok($hget(Oyun,SoruNick),$nick,32))  { msg $chan Sadece 4 $hget(Oyun,SoruNick) 1soru sorabilir ve 2 $hget(Oyun,SoruCevap) 1cevap verebilir. | return }
    if $hget(Oyun,Soruldu) == 1 {  msg $chan Sadece bir defa soru sorabilirsiniz. | return }
    if !$2 { msg $chan Sorunuzu tam olarak belirtiniz. | return }
  else { $+(timer,soru) 1 180 sıfırla $chan | msg $chan 4Soru - $hget(Oyun,SoruNick) : $2- | hadd -m Oyun Soruldu 1 } }
  if $1 == !c {
    if $hget(Oyun,Durum) != 1 {  msg $chan !s ve !c komutları şişe çevrilmeden kullanılamaz. | return }
    if (!$istok($hget(Oyun,SoruCevap),$nick,32))  { msg $chan Sadece 4 $hget(Oyun,SoruNick) 1soru sorabilir ve 2 $hget(Oyun,SoruCevap) 1cevap verebilir. | return }
    if $hget(Oyun,Soruldu) != 1 {  msg $chan Sorunuz henüz sorulmadı, lütfen bekleyiniz. | return }
    if !$2 { msg $chan Cevapınızı tam olarak belirtiniz. | return }
    else {
      $+(timer,soru) off
      msg $chan 2Cevap - $hget(Oyun,SoruCevap) : $2-
      msg $chan Soru ve cevap işlemi tamamlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
    }
  }
  if $1 == !oyuncular {
    if !%oyuncular. [ $+ [ $chan ] ] {
      inc -u120 %oyuncular. [ $+ [ $chan ] ]
      if ($token($hget(oyun,başlayanlar),0,32) == $null) { msg $chan Oyuna dahil olan hiç kimse yoktur. | return }
      msg $chan 5 $replace($hget(oyun,başlayanlar),$chr(32),$+($chr(32),-,$chr(32))) şuan oyundadır.
    }
    else {
      msg $chan 5!oyuncular komutunu sürekli kullanamazsınız. (2 dakikada bir defa oyuncular listelenir.)
    }
  }
  if $1 == !dis {
    if $nick !isop $chan && $nick !ishop $chan { msg $chan !dis ve !reset komutunu sadece kanal yetkilileri kullanabilir. | return }
    if !$2 { msg $chan Lütfen diskalifiye edeceğiniz nicki belirtiniz. Kullanımı : !dis nick | return }
    if ($token($hget(oyun,başlayanlar),0,32) == $null) { msg $chan Şuan oyun listesinde kimse bulunmamaktadir. | return }
    if (!$istok($hget(Oyun,Başlayanlar),$2,32)) { msg $chan $2 Oyuncular listesinde bulunmamaktadir. | return }
    var %. $remtok($hget(oyun,Başlayanlar),$2,32)
    hdel -ms Oyun Başlayanlar
    hadd -ms Oyun Başlayanlar %.
    msg $chan  2 $2 1nicki, 4 $nick  1tarafından oyundan diskalifiye edildi ve 10 dakika boyunca !varim komutuyla oyuna dahil olamayacak.
    inc -u600 %disc. [ $+ [ $2 ] ]
    if ($istok($hget(Oyun,SoruNick),$2,32))  {
      msg $chan Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      return
    }
    if ($istok($hget(Oyun,SoruCevap),$2,32))  {
      msg $chan Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      return
    }
  }
  if $1 == !reset {
    if $nick !isop $chan && $nick !ishop $chan { msg $chan !dis ve !reset komutunu sadece kanal yetkilileri kullanabilir. | return }
    else {
      msg $chan Oyun sıfırlanmıştır. !varım komutu ile oyuna tekrar dahil olup, şişeyi çevirebilirsiniz.
      hdel -ms Oyun Başlayanlar
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      unset %disc.*
      unset %oyuncular*
    }
  }
}
 
on *:quit: {
  if ($istok($hget(Oyun,Başlayanlar),$nick,32))  {
    var %. $remtok($hget(oyun,Başlayanlar),$nick,32)
    hdel -ms Oyun Başlayanlar
    hadd -ms Oyun Başlayanlar %.
    msg #Sisecevir 2 $nick oyundan ayrıldı.
    if ($istok($hget(Oyun,SoruNick),$nick,32))  {
      msg #Sisecevir Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      return
    }
    if ($istok($hget(Oyun,SoruCevap),$nick,32))  {
      msg  #Sisecevir Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      return
    }
  }
}
on *:part:#Sisecevir: {
  if $nick == $me {
    hdel -ms Oyun Başlayanlar
    hdel -ms Oyun SoruNick
    hdel -ms Oyun SoruCevap 
    hadd -ms Oyun Durum 0
    hadd -ms Oyun Soruldu 0
    $+(timer,soru) off
    unset %disc.*
    unset %oyuncular*
  }
  if ($istok($hget(Oyun,Başlayanlar),$nick,32))  {
    var %. $remtok($hget(oyun,Başlayanlar),$nick,32)
    hdel -ms Oyun Başlayanlar
    hadd -ms Oyun Başlayanlar %.
    msg #Sisecevir 2 $nick oyundan ayrıldı.
    if ($istok($hget(Oyun,SoruNick),$nick,32))  {
      msg #Sisecevir Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      return
    }
    if ($istok($hget(Oyun,SoruCevap),$nick,32))  {
      msg  #Sisecevir Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
      hdel -ms Oyun SoruNick
      hdel -ms Oyun SoruCevap 
      hadd -ms Oyun Durum 0
      hadd -ms Oyun Soruldu 0
      $+(timer,soru) off
      return
    }   
  }
}
on *:nick: {
  if ($istok($hget(Oyun,Başlayanlar),$nick,32))  {
    var %. $remtok($hget(oyun,Başlayanlar),$nick,32)
    hdel -ms Oyun Başlayanlar
    hadd -ms Oyun Başlayanlar %.
    hadd -ms Oyun Başlayanlar $hget(Oyun,Başlayanlar) $newnick
    msg #Sisecevir 2 $nick oyundan ayrıldı.
    msg #Sisecevir 4 $newnick oyuna dahil oldu.
    if ($istok($hget(Oyun,SoruNick),$nick,32))  {
      hadd -ms Oyun SoruNick  $newnick
    }
    if ($istok($hget(Oyun,SoruCevap),$nick,32))  {
      hadd -ms Oyun SoruCevap  $newnick
    }
  }
}
on *:kick:#: {
  if $knick == $me {
    hdel -ms Oyun Başlayanlar
    hdel -ms Oyun SoruNick
    hdel -ms Oyun SoruCevap 
    hadd -ms Oyun Durum 0
    hadd -ms Oyun Soruldu 0
    $+(timer,soru) off
    unset %disc.*
    unset %oyuncular*
  }
  var %. $remtok($hget(oyun,Başlayanlar),$knick,32)
  hdel -ms Oyun Başlayanlar
  hadd -ms Oyun Başlayanlar %.
  msg #Sisecevir 2 $knick oyundan atıldı.
  if ($istok($hget(Oyun,SoruNick),$knick,32))  {
    msg #Sisecevir Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
    hdel -ms Oyun SoruNick
    hdel -ms Oyun SoruCevap 
    hadd -ms Oyun Durum 0
    hadd -ms Oyun Soruldu 0
    $+(timer,soru) off
    return
  }
  if ($istok($hget(Oyun,SoruCevap),$knick,32))  {
    msg #Sisecevir Oyun sıfırlandı, şişeyi tekrar çevirebilirsiniz.
    hdel -ms Oyun SoruNick
    hdel -ms Oyun SoruCevap 
    hadd -ms Oyun Durum 0
    hadd -ms Oyun Soruldu 0
    $+(timer,soru) off
    return
  }
}
alias sıfırla {
  hdel -ms Oyun SoruNick
  hdel -ms Oyun SoruCevap 
  hadd -ms Oyun Durum 0
  hadd -ms Oyun Soruldu 0
  msg $1 Süre zaman aşımına uğradı, 3 dakika içersinde soru cevap tamamlanmadığından oyun sıfırlanmıştır. Şişeyi tekrar çevirebilirsiniz.
}
alias hs {
  if (!$1) {
    var %1 = 1
    while ($hget(%1)) { echo -: TABLO: $v1 | inc %1 }
  }
  var %1 = 1
  while ($hget($1,%1).item) {
    echo -a Tablo: $hget($1) - ITEM: $v1 - DATA: $hget($1,%1).data
    inc %1
  }
}
on *:start:{
  emailaddr mIRCBiz@
  fullname Şişe Cevirmece Botu
  nick SiseCevir
  anick SiseCevir1
  server irc.mIRCBiz.Com:6667
}
on *:connect:{
  if $server == irc.mIRCBiz.Com {
    hfree -sw *
    oper opernick operpass
    nickserv ghost SiseCevir nickşifresi
    nickserv release SiseCevir nickşifresi
    join 0,0
    nick SiseCevir
    nickserv identify nickşifresi
    .timer 1 2 join #Sisecevir
  }
}

Bu bölümleri kendi sunucunuza göre ayarlayınız,

Kod:

on *:start:{
  emailaddr mIRCBiz@
  fullname Şişe Cevirmece Botu
  nick SiseCevir
  anick SiseCevir1
  server irc.mIRCBiz.Com:6667
}
on *:connect:{
  if $server == irc.mIRCBiz.Com {
    hfree -sw *
    oper opernick operpass
    nickserv ghost SiseCevir nickşifresi
    nickserv release SiseCevir nickşifresi
    join 0,0
    nick SiseCevir
    nickserv identify nickşifresi
    .timer 1 2 join #Sisecevir
  }
}

mIRC halinde indirmek isderseniz alt'daki link'den indirebilirsiniz. mIRC'dede alt+r yapınız ve en alt kısımda yukardakı kod'ları kendi sunucunuza göre ayarlayınız.


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

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