Balık event questi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 87

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Bir arkadaş için yazmıştım paylaşmak istedim. Düzenlemeleri yaparsınız istediğiniz gibi kullanırsınız.
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.
163091_bd8e7e7c33cf8bc626e36074f2d6ee9e.png

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.
163093_beb5af26788954101fbc4bda53a818bb.png



1701515720980-png.14472


1701515620381-png.14469


1701515650372-png.14470


Etkinlik ayarları için
Aşağıdaki Ayarlar butonuna tıklıyoruz.
QIMNk9b0TE-fCS9FlOO4CA.jpeg

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)
163095_cac247f6cf1194298ca9efab7d73158c.png


Aşağıdaki ekranda kaç adet itemVnum veriliceği değeri giriceğiz. Örn: n+1n yani 1 ve katları

163097_23bb6379897e34d75b35a8aceeb380f5.png


aşağıdaki ekranda hangi balığı getiriceği zaman ödülü alabilicek onu giriceğiz. Örnek: 27811
163099_a25c46f80d1856cbd2c2acc3568983f9.png


Aşağıdaki ekranda kaç adet balik isteneceğini soruyoruz fakat oraya şimdilik 1 yazınız.(İşlevi yok)

163105_2299d89fa0a081e1d95b2281ee6e121f.png

aşağıdaki sonuç ekranı gelecektir.
163107_44d25a2b2dbb10aeadd1ad811c289206.png


Test yapalım.

886ffa337f669e5932d33a3433744d07.gif


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.

163109_cdb3e997a6dc37243f49b37bd8fe5ef0.png

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.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt