Bu kod, belirlediğiniz kanalda basit bir zar oyunu oluşturur. Temel olarak şu işlevleri gerçekleştirir:
1. Oyuncu Bilgileri ve Değişkenler: Kod, dört oyuncunun puanlarını, hedef toplamı, atma sayısını ve yeteneklerini içeren değişkenleri tanımlar.
2. Zar Oyunu Başlatma Komutu: `
!zaroyunu` komutu, kanalda oyunun başlatıldığını ve ayarların belirlendiğini duyurur.
3.
Zar Atma Komutu: `
!zar` komutu, oyuncuların zar atmasını ve puanlarının güncellenmesini sağlar. Her oyuncunun yeteneğine göre (örneğin, "Şanslı" olan oyuncunun 6 atması durumunda ekstra puan kazanması) özel durumlar da içerir.
4. Oyunun Sıfırlanması: `
resetzaroyunu` komutu, oyunun başlangıç durumuna dönmesini sağlar. Her oyuncunun puanlarını ve zar atma sayılarını sıfırlar.
Bu kod, oyuncuların zar atarak puan kazandığı ve bir hedef puanı geçen oyuncunun kazandığı basit bir oyunu simüle eder. Özelleştirme için oyuncu sayısını artırabilir, yeni yetenekler ekleyebilir veya oyun kurallarını değiştirebilirsiniz
Kod
; Oyuncular ve puanları
var %zar_oyuncu1_puan = 0
var %zar_oyuncu2_puan = 0
var %zar_oyuncu3_puan = 0
var %zar_oyuncu4_puan = 0
var %zar_hedef = 1000
var %zar_oyuncu_atma_sayisi = 3
var %zar_oyuncu1_yetenek = "Hızlı"
var %zar_oyuncu2_yetenek = "Şanslı"
var %zar_oyuncu3_yetenek = "Stratejik"
var %zar_oyuncu4_yetenek = "Dengeli"
; Zar oyununu başlatma komutu
on *:TEXT:!zaroyunu:#kanal:{
resetzaroyunu
msg #kanal * Zar Oyunu başlatıldı! Hedef toplam: %zar_hedef | Oyuncu Başına Atma Sayısı: %zar_oyuncu_atma_sayisi
msg #kanal * Oyuncuların Yetenekleri: %zar_oyuncu1_yetenek %zar_oyuncu2_yetenek %zar_oyuncu3_yetenek %zar_oyuncu4_yetenek
}
; Zar atma komutu
on *:TEXT:!zar:#kanal:{
var %zar = $r(1,6) ; Zar at
var %nick = $nick
if (!$ial(%nick,0)) {
msg #kanal * $nick, oyuncu değil!
return
}
var %oyuncu_puan = %zar_oyuncu $+($+(Nick,%nick),_puan)
var %oyuncu_yetenek = %zar_oyuncu $+($+(Nick,%nick),_yetenek)
var %oyuncu_atma_sayisi = %zar_oyuncu $+($+(Nick,%nick),_atma_sayisi)
if (%oyuncu_atma_sayisi == %zar_oyuncu_atma_sayisi) {
msg #kanal * $nick, zaten %zar_oyuncu_atma_sayisi zar attınız!
return
}
else {
inc %oyuncu_atma_sayisi
inc %oyuncu_puan %zar
msg #kanal * $nick, %oyuncu_atma_sayisi. zar: %zar | Toplam Puan: %oyuncu_puan | Yetenek: %oyuncu_yetenek
; Özel hamleler
if (%zar == 6) && (%oyuncu_yetenek == "Şanslı") {
inc %oyuncu_puan 2 ; Eğer oyuncu 6 atarsa bonus puan kazansın
msg #kanal * $nick, Şanslı! Bonus +2 puan kazandınız!
}
%zar_oyuncu $+($+(Nick,%nick),_atma_sayisi) = %oyuncu_atma_sayisi
%zar_oyuncu $+($+(Nick,%nick),_puan) = %oyuncu_puan
; Kazananı kontrol et
if (%oyuncu_puan >= %zar_hedef) {
msg #kanal * Kazanan: $nick! | Toplam Puan: %oyuncu_puan
resetzaroyunu
}
}
}
; Oyunu sıfırlama
alias resetzaroyunu {
var %i = 1
while (%i <= 4) {
var %player_puan = %zar_oyuncu $+(Nick,%i,_puan)
var %player_atma_sayisi = %zar_oyuncu $+(Nick,%i,_atma_sayisi)
unset %player_puan
unset %player_atma_sayisi
inc %i
}
}