Başlatma (GM)
Yönetici, panel üzerinden satmak istediği eşyanın kodunu ve başlangıç fiyatını girerek müzayedeyi başlatır. Etkinlik başladığında tüm sunucuya duyuru gider.Teklif Verme
Oyuncular NPC (20087) üzerinden teklif verirler. Her yeni teklif, bir öncekinden en az %10 daha yüksek olmak zorundadır. Teklif veren kişinin parası o an hesabından düşer.Son Dakika Rekabeti (Anti-Snipe)
Müzayedenin bitmesine 1 dakikadan az kalmışken yeni bir teklif gelirse, sistem süreyi otomatik olarak 30 saniye uzatır. Bu sayede "son saniyede itemi kaptım" hilesi yapılamaz, rekabet devam eder.Kazananın Belirlenmesi
10 dakikalık süre (veya uzatmalar) bittiğinde, en yüksek teklifi veren oyuncu eşyanın sahibi olur. Sistem kazananı tüm servera duyurur ve eşyayı oyuncuya teslim eder.Kısacası: En yüksek parayı veren nadir eşyayı kapar; hem Yang piyasası dengelenir hem de oyuncular arasında büyük bir rekabet oluşur.
Kod:
quest seumondizayn_muzayede begin state start begin when letter with pc.is_gm() begin send_letter("GM: Müzayede Paneli") end when button or info begin say_title("SeumonDizayn - Müzayede Yönetimi") local s = select("Yeni Müzayede Başlat", "Müzayedeyi İptal Et", "Kapat") if s == 1 then if game.get_event_flag("muzayede_aktif") == 1 then say_reward("Hata: Zaten aktif bir müzayede var.") return end say("İtem Vnum girin:") local item_vnum = tonumber(input()) say("Başlangıç fiyatı girin:") local baslangic_fiyat = tonumber(input()) if item_vnum == nil or baslangic_fiyat == nil then say_reward("Hata: Geçersiz giriş.") return end game.set_event_flag("muzayede_aktif", 1) game.set_event_flag("muzayede_item", item_vnum) game.set_event_flag("muzayede_fiyat", baslangic_fiyat) game.set_event_flag("muzayede_bitis", get_global_time() + 600) game.set_event_flag("son_teklif_id", 0) notice_all("SeumonDizayn: Müzayede Başladı!") notice_all("Ürün: " .. item_name(item_vnum) .. " | Başlangıç: " .. baslangic_fiyat .. " Yang") notice_all("NPC 20087 üzerinden teklif verebilirsiniz. Süre: 10 Dakika.") elseif s == 2 then game.set_event_flag("muzayede_aktif", 0) notice_all("SeumonDizayn: Müzayede iptal edildi.") end end when 20087.chat."Müzayede Sistemi" begin say_title("SeumonDizayn - Açık Artırma") if game.get_event_flag("muzayede_aktif") == 0 then say("Aktif müzayede yok.") return end local kalan_sure = game.get_event_flag("muzayede_bitis") - get_global_time() if kalan_sure <= 0 then seumondizayn_muzayede.muzayede_bitir() return end local su_an_fiyat = game.get_event_flag("muzayede_fiyat") local min_teklif = math.floor(su_an_fiyat + (su_an_fiyat * 10 / 100)) local son_teklif_isim = game.get_event_flag("son_teklif_id") == 0 and "Yok" or game.get_event_flag("son_teklif_isim_flag") say_item_vnum(game.get_event_flag("muzayede_item")) say_reward("Mevcut Teklif: " .. su_an_fiyat .. " Yang") say_reward("Lider: " .. son_teklif_isim) say("Kalan Süre: " .. kalan_sure .. " sn.") say("Min. Teklif: " .. min_teklif .. " Yang") if select("Teklif Ver", "Kapat") == 1 then if pc.get_gold() < min_teklif then say_reward("Yetersiz Yang.") return end if pc.get_player_id() == game.get_event_flag("son_teklif_id") then say_reward("Zaten en yüksek teklif senin.") return end pc.change_gold(-min_teklif) game.set_event_flag("muzayede_fiyat", min_teklif) game.set_event_flag("son_teklif_id", pc.get_player_id()) game.set_event_flag("son_teklif_isim_flag", pc.get_name()) if kalan_sure < 60 then game.set_event_flag("muzayede_bitis", game.get_event_flag("muzayede_bitis") + 30) notice_all("SeumonDizayn: Son saniye teklifi! Süre 30 saniye uzatıldı.") end notice_all("Müzayede: " .. pc.get_name() .. " yeni lider! Fiyat: " .. min_teklif) end end function muzayede_bitir() local kazanan_id = game.get_event_flag("son_teklif_id") local urun = game.get_event_flag("muzayede_item") if kazanan_id == 0 then notice_all("SeumonDizayn: Müzayede bitti. Ürün satılamadı.") else notice_all("SeumonDizayn: Müzayede bitti! Kazanan: " .. game.get_event_flag("son_teklif_isim_flag")) if pc.get_player_id() == kazanan_id then pc.give_item2(urun, 1) end end game.set_event_flag("muzayede_aktif", 0) end end end
Yeni Quest I Müzayede
Metin2 Lobby olarak, oyuncularımıza sunduğumuz quest sistemlerinden biri olan Yeni Quest I Müzayede konusunu detaylıca ele alacağız. Bu özel quest, Metin2 sunucularında oynarken hem eğlenceli hem de ödüllendirici bir deneyim sunar. Oyuncuların belirli görevleri yerine getirmesiyle ilerleyen bu sistem, lua tabanlıdır ve Metin2 geliştiricilerinin custom quest oluşturma becerilerini sergilediği örneklerden biridir.
Yeni Quest I Müzayede Nedir?
Yeni Quest I Müzayede, oyuncuların belirli NPC’lerle etkileşim kurarak başlattığı, görev zincirleriyle şekillenen ve farklı ödüllerle sonuçlanan bir quest türüdür. Bu quest, Metin2 oyununda daily quest mantığıyla da çalışabilirken, aynı zamanda özel etkinliklerde de kullanılabilir. Lua dilinde yazılmış bu quest scripti, Metin2 geliştiricileri tarafından kolayca özelleştirilebilir ve sunucuya entegre edilebilir.
Quest Başlatma ve Trigger Mekanizması
Yeni Quest I Müzayede’ye başlamak için oyuncular, belirlenmiş bir NPC’ye gitmeli ve onunla konuşmalıdır. Bu noktada quest begin komutu tetiklenir ve oyuncuya görevler listelenir. Trigger yapıları sayesinde, oyuncunun haritadaki belirli mob’ları öldürmesi, item toplaması veya belirli bir süre boyunca görevi sürdürebilmesi gibi mekanikler aktif hale gelir. Timer sistemleri de görev süresini sınırlamak veya bonus ödüller sunmak için kullanılır.
Ödül Sistemi ve Quest Bitiş Mekanizması
Yeni Quest I Müzayede tamamlandığında, oyunculara reward olarak özel itemler, EXP puanı ya da para ödülü verilir. Quest end işlemi sırasında sistem, oyuncunun görevi başarıyla tamamlıp tamamlamadığını kontrol eder. Eğer tüm koşullar sağlanmışsa, ödül otomatik olarak envanterine aktarılır. Bu süreçte flag ve state sistemleri, oyuncunun hangi aşamada olduğunu takip etmek için kullanılır.
Hata Ayıklama ve Debug İşlemleri
Quest sistemlerinde, özellikle lua tabanlı olanlarda, hatalar oluşabilir. Metin2 geliştiricileri, quest debug araçlarını kullanarak bu hataları tespit edebilir ve giderilebilir. Yeni Quest I Müzayede’nin sorunsuz çalışabilmesi için, quest script dosyasında trigger, timer, flag, state gibi yapıların doğru tanımlandığından emin olunmalıdır. Ayrıca, quest zinciri sırasında beklenmedik durumlar için error handling mekanizmaları da eklenmelidir.
Geliştirme ve Özelleştirme İpuçları
Metin2 geliştiricileri, Yeni Quest I Müzayede’yi kendi sunucularına uyarlamak istediklerinde, lua bilgisi ve Metin2 sunucu yapısı hakkında detaylı bilgiye sahip olmalıdırlar. Quest editörleri kullanılarak görsel arayüz üzerinden de quest oluşturulabilir ancak daha gelişmiş sistemler için doğrudan lua kodları üzerinde değişiklik yapılması önerilir. Martysama, Metin2Dev gibi topluluklar, quest geliştirme sürecinde destek sağlayabilir.
Sonuç
Yeni Quest I Müzayede, Metin2 oyununda görev sistemlerinin keyfini çıkarmak isteyen oyuncular için ideal bir örnektir. Hem eğlenceli mekanikleri hem de ödüllendirici yapısıyla dikkat çeker. Geliştiriciler için ise, lua script bilgisiyle özelleştirilebilir ve sunucuya entegre edilebilir bir yapı sunar. Metin2Lobby olarak, quest sistemlerinin gelişimini ve toplulukla paylaşımını destekliyoruz.
New Quest I Auction
At Metin2 Lobby, we will examine in detail the New Quest I Auction, one of our quest systems provided to players. This special quest offers both fun and rewarding experiences while playing on Metin2 servers. Based on lua, this system is an example showcasing the custom quest creation skills of Metin2 developers, where players advance by completing certain tasks.
What Is New Quest I Auction?
New Quest I Auction is a type of quest that begins when players interact with specific NPCs, progresses through quest chains, and ends with various rewards. While this quest can operate under the daily quest logic in Metin2, it can also be used during special events. Written in lua, this quest script can easily be customized and integrated into servers by Metin2 developers.
Starting the Quest and Trigger Mechanism
To start New Quest I Auction, players must visit a designated NPC and speak with them. At this point, the quest begin command is triggered and the tasks are displayed to the player. With trigger mechanisms, gameplay elements such as killing specific mobs on the map, collecting items, or continuing the task for a certain duration become active. Timer systems are also used to limit the quest duration or provide bonus rewards.
Reward System and Quest Completion Mechanism
Upon completion of New Quest I Auction, players receive special items, EXP points, or money as reward. During the quest end process, the system checks whether the player has successfully completed the quest. If all conditions are met, the reward is automatically transferred to their inventory. Throughout this process, flag and state systems track which stage the player is at.
Debugging and Error Handling
Errors may occur in quest systems, especially those based on lua. Metin2 developers can use quest debug tools to detect and resolve these errors. To ensure New Quest I Auction runs smoothly, structures like trigger, timer, flag, and state must be correctly defined within the quest script file. Additionally, error handling mechanisms should be included to address unexpected situations during the quest chain.
Development and Customization Tips
Metin2 developers who wish to adapt New Quest I Auction to their own servers should have detailed knowledge of lua and the Metin2 server structure. While quests can be created visually using quest editors, direct modifications to lua code are recommended for more advanced systems. Communities such as Martysama and Metin2Dev can offer support during the development process.
Conclusion
New Quest I Auction is an ideal example for players wanting to enjoy the quest systems in Metin2. It stands out with its entertaining mechanics and rewarding nature. For developers, it provides a customizable and integrable structure using lua scripting. At Metin2Lobby, we support the advancement and sharing of quest systems within the community.
