Bir arkadaş için yazmıştım paylaşmak istedim. Düzenlemeleri yaparsınız istediğiniz gibi kullanırsınız.
Aşağıda görünen Etkinlik durum bilgisi Kapalı veya Açık şeklinde görünücektir.
1. Sıradaki buton if sorugusu ile döngülediği için duruma göre flag kontrolü yapar ve aç veya kapat şeklinde buton değişicektir.
Aşağıdaki resimde sadece etkinlik kapalı konumda olduğu zaman görünen buton ve açıldığı zaman görünen buton gözükmektedir.
Etkinlik ayarları için
Aşağıdaki Ayarlar butonuna tıklıyoruz.
Aşağıdaki resimde görünen ekranda oyuncumuza görevi yerine getirdiği zaman vereceği ödülün itemVnum değeri giriyoruz.(örn:299)
Aşağıdaki ekranda kaç adet itemVnum veriliceği değeri giriceğiz. Örn: n+1n yani 1 ve katları
aşağıdaki ekranda hangi balığı getiriceği zaman ödülü alabilicek onu giriceğiz. Örnek: 27811
Aşağıdaki ekranda kaç adet balik isteneceğini soruyoruz fakat oraya şimdilik 1 yazınız.(İşlevi yok)
aşağıdaki sonuç ekranı gelecektir.
Test yapalım.
Ayalar kısmında 1 adet yazdık fakat 5 adet balık sildi gördüğünüz gibi
onun ayarı şu kısımda yapılıcaktır.
kırmızı kutu içerisindeki sayıları istediğiniz şekilde değiştiriniz.
Metin2 Balık Event Quest Sistemi Nedir?
Metin2 sunucularında oyun deneyimini zenginleştirmek amacıyla birçok özel etkinlik (event) düzenlenir. Bu etkinliklerden biri olan Balık Event Quest, oyuncuların balık tutarak belirli ödüller kazanmalarını sağlar. Bu sistem, hem eğlenceli hem de oyuncuların sunucuya olan bağlılığını artıran etkileyici bir.quest sistemidir.
Balık Event Quest Nasıl Çalışır?
Metin2 Balık Event Quest, genellikle bir NPC üzerinden başlatılır. Oyuncu, belirlenen konumda balık tutarak questin ilerlemesini sağlar. Bu süreçte farklı balıklar yakalanabilir ve her balık türü farklı ödüllere yol açabilir. Questin amacı, belirli bir sayıda balık tutulması veya belirli bir türün ele geçirilmesidir.
Quest Script Yapısı ve Lua Kullanımı
Metin2 quest sistemleri genellikle Lua dilinde yazılmaktadır. Balık event quest de bu yapıya uymaktadır. Quest dosyası (.lua uzantılıdır) ve doğru trigger mekanizması ile başlatılır. Oyuncunun balık tuttuğu anda tetiklenen fonksiyonlar, questin durumunu kontrol eder ve gerekli ödülleri dağıtır.
Örnek olarak bir quest başlangıcı şöyle olabilir:
Balık Event Quest Reward (Ödül) Sistemi
Balık yakalama sırasında oyunculara verilecek ödüller, quest sistemi tarafından tanımlanır. Bu ödüller arasında para, özel itemler, 경험 puanı ve hatta nadir eşyalar bulunabilir. Quest reward sistemi, oyuncuların tekrar tekrar katılmalarını teşvik eder.
Event Zamanlayıcısı ve Timer Ayarları
Balık event, belirli zaman aralıklarında aktif olacak şekilde ayarlanabilir. Timer ve flag sistemleri kullanılarak eventin başlama ve bitiş zamanları belirlenir. Bu sayede sunucuda düzenli etkinlikler yapılabilir.
Kod:
quest deneme begin state start begin --when etkinlik_sure.timer begin --notice_all("Balikcilik etkinliği süresi bitti.") --- tüm haritalarda duyuru geçtik --game.set_event_flag("timer_test_deneme",0) -- etkinlik süresi dolduğu için etkinliği pasif hale getirdik. --end--when timer end when 9009.chat."Etkinlik Ayarlari" with pc.is_gm() begin ---gm ayar--sadece gm olan hesaplar görebilir. local secimyap = select("Etkinlik Bilgi","Hicbiri") if secimyap == 1 then local balik_adasi_aktif1 = game.get_event_flag("balik_adasi_aktif") if balik_adasi_aktif1 == 1 then say("Etkinlik durumu: |cff07eb96Açık!") say("Aşağıdan işlem seçiniz") local etkinlik_kapat = select("Etkinlik Kapat","Ayarlar","Bilgi Al","Zaman Ayarla","İptal") if etkinlik_kapat == 1 then game.set_event_flag("balik_adasi_aktif",0) syschat("Etkinlik durumu: |cffff9999Kapalı!") elseif etkinlik_kapat == 2 then say("Hoşgeldin.") say("") say("Odul itemini değiştirmek istiyorsanız.") say("Bigileri eksiksiz doldurunuz.") say("") say("|cff07eb96Etkinlik Odulu İtem Vnum()") etkinlik_odul_item = tonumber(input()) or nil if etkinlik_odul_item == 0 then say("İtem Kod'u Yanlış!") return end say(" Odul için istenilicek adet sayısı giriniz. ") say("|cff07eb96 Odul Adet Sayısı(Rakam)") etkinlik_odul_adet = tonumber(input()) or nil if etkinlik_odul_adet == 0 then say("Adet Sayısı, Hatalı!") return end-- etkinlik odul adet end say("Hoşgeldin.") say("") say("Balık ayarını değiştirmek istiyorsanız.") say("Bigileri eksiksiz doldurunuz.") say("") say("|cff07eb96Balık item kodu İtem Vnum()") etkinlik_balik_item = tonumber(input()) or nil if etkinlik_balik_item == 0 then say("İtem Kod'u Yanlış!") return end say(" Balık için istenilicek adet sayısı giriniz. ") say("|cff07eb96 Balık Adet Sayısı(Rakam)") etkinlik_balik_adet = tonumber(input()) or nil if etkinlik_balik_adet == 0 then say("Adet Sayısı, Hatalı!") return end syschat("Etkinlik Odul: |cff07eb96"..item_name(etkinlik_odul_item).." ") syschat("Odul Adet Sayısı: |cff07eb96"..etkinlik_odul_adet.." ") syschat("Secilen Balik: |cff07eb96"..item_name(etkinlik_balik_item).." ") syschat("Balik Adet Sayısı: |cff07eb96"..etkinlik_balik_adet.." ") elseif etkinlik_kapat == 3 then say("Etkinlik Odul: |cff07eb96"..item_name(etkinlik_odul_item).." ") say("Odul Adet Sayısı: |cff07eb96"..etkinlik_odul_adet.." ") say("Secilen Balik: |cff07eb96"..item_name(etkinlik_balik_item).." ") say("Balik Adet Sayısı: |cff07eb96"..etkinlik_balik_adet.." ") elseif etkinlik_kapat == 4 then if game.set_event_flag(timer_test_deneme) == 0 then say("Zaman zatan ayarlanmış") else pc.setqf("ticaret_sure",get_time() + 1800) game.set_event_flag("timer_test_deneme",1) --timer("etkinlik_sure",3600) --game.set_event_flag("timer_test_deneme",1) end --etkinlik_kapat end --etkinlik_kapat elseif balik_adasi_aktif1 == 0 then say("Etkinlik durumu: |cffff9999Kapalı!") say("Aşağıdan işlem seçiniz") local etkinlik_ac = select("Etkinlik Ac","İptal") if etkinlik_ac == 1 then game.set_event_flag("balik_adasi_aktif",1) syschat("Etkinlik durumu: |cff07eb96Açık!") end --etkinlik_ac end end end--secim yap when 9009.chat."Balikcilik Adasi" with game.get_event_flag("balik_adasi_aktif") == 1 begin --- oyuncular görücek ve etkinlik aktif mi kuralı ekledik say("Etlinlik haritası aktif edilmiştir. Etlinlik haritasında geçireceğiniz süre toplam 1 saat olacaktır.") say("Etlinlik haritasında vaktin kısıtlı aşağıdan bir işlem seçmelisin") local harita_git = select("Etkinliğe Katıl","Bilgi","İptal") if harita_git == 1 then pc.warp(474200,954400)--harita için kordinat girilicek elseif harita_git == 2 then say("Etkinlik Odul: |cff07eb96"..item_name(etkinlik_odul_item).." ") say("Odul Adet Sayısı: |cff07eb96"..etkinlik_odul_adet.." ") say("Secilen Balik: |cff07eb96"..item_name(etkinlik_balik_item).." ") say("Balik Adet Sayısı: |cff07eb96"..etkinlik_balik_adet.." ") end--harita_git end ---map index when 9009.take with game.get_event_flag("balik_adasi_aktif") == 1 and item.vnum == etkinlik_balik_item begin -- etkinlik aktif mi kontrol ve item kontrol if pc.count_item(etkinlik_balik_item) < 5 then --- 5 yazan yere sayı eklenecek bu adet sorgulanacak balik sayısıdır syschat("item eksik") -- item sorgusu için text bilgisi else pc.remove_item(etkinlik_balik_item,5) -- 5 yazan yere yukarıda yazdığınız sayının aynısını yazıcaksın pc.give_item2(etkinlik_odul_item, etkinlik_odul_adet) --- ödül ve adet verdik dokunmayın end end --when 9009.take end end end
Aşağıda görünen Etkinlik durum bilgisi Kapalı veya Açık şeklinde görünücektir.
1. Sıradaki buton if sorugusu ile döngülediği için duruma göre flag kontrolü yapar ve aç veya kapat şeklinde buton değişicektir.
Aşağıdaki resimde sadece etkinlik kapalı konumda olduğu zaman görünen buton ve açıldığı zaman görünen buton gözükmektedir.
Etkinlik ayarları için
Aşağıdaki Ayarlar butonuna tıklıyoruz.
Aşağıdaki resimde görünen ekranda oyuncumuza görevi yerine getirdiği zaman vereceği ödülün itemVnum değeri giriyoruz.(örn:299)
Aşağıdaki ekranda kaç adet itemVnum veriliceği değeri giriceğiz. Örn: n+1n yani 1 ve katları
aşağıdaki ekranda hangi balığı getiriceği zaman ödülü alabilicek onu giriceğiz. Örnek: 27811
Aşağıdaki ekranda kaç adet balik isteneceğini soruyoruz fakat oraya şimdilik 1 yazınız.(İşlevi yok)
aşağıdaki sonuç ekranı gelecektir.
Test yapalım.
Ayalar kısmında 1 adet yazdık fakat 5 adet balık sildi gördüğünüz gibi
onun ayarı şu kısımda yapılıcaktır.
kırmızı kutu içerisindeki sayıları istediğiniz şekilde değiştiriniz.
Metin2 Balık Event Quest Sistemi Nedir?
Metin2 sunucularında oyun deneyimini zenginleştirmek amacıyla birçok özel etkinlik (event) düzenlenir. Bu etkinliklerden biri olan Balık Event Quest, oyuncuların balık tutarak belirli ödüller kazanmalarını sağlar. Bu sistem, hem eğlenceli hem de oyuncuların sunucuya olan bağlılığını artıran etkileyici bir.quest sistemidir.
Balık Event Quest Nasıl Çalışır?
Metin2 Balık Event Quest, genellikle bir NPC üzerinden başlatılır. Oyuncu, belirlenen konumda balık tutarak questin ilerlemesini sağlar. Bu süreçte farklı balıklar yakalanabilir ve her balık türü farklı ödüllere yol açabilir. Questin amacı, belirli bir sayıda balık tutulması veya belirli bir türün ele geçirilmesidir.
Quest Script Yapısı ve Lua Kullanımı
Metin2 quest sistemleri genellikle Lua dilinde yazılmaktadır. Balık event quest de bu yapıya uymaktadır. Quest dosyası (.lua uzantılıdır) ve doğru trigger mekanizması ile başlatılır. Oyuncunun balık tuttuğu anda tetiklenen fonksiyonlar, questin durumunu kontrol eder ve gerekli ödülleri dağıtır.
Örnek olarak bir quest başlangıcı şöyle olabilir:
Kod:
[BR][/BR]quest fish_event begin[BR][/BR] state start begin[BR][/BR] when login with pc.get_level() >= 30 begin[BR][/BR] say_title('Balık Tutma Etkinliği')[BR][/BR] say('Bugün özel balık tutma etkinliği var!')[BR][/BR] end[BR][/BR] end[BR][/BR]end[BR][/BR]
Balık Event Quest Reward (Ödül) Sistemi
Balık yakalama sırasında oyunculara verilecek ödüller, quest sistemi tarafından tanımlanır. Bu ödüller arasında para, özel itemler, 경험 puanı ve hatta nadir eşyalar bulunabilir. Quest reward sistemi, oyuncuların tekrar tekrar katılmalarını teşvik eder.
Event Zamanlayıcısı ve Timer Ayarları
Balık event, belirli zaman aralıklarında aktif olacak şekilde ayarlanabilir. Timer ve flag sistemleri kullanılarak eventin başlama ve bitiş zamanları belirlenir. Bu sayede sunucuda düzenli etkinlikler yapılabilir.
