Bir Çok Arkadaş Sanırım Arıyomuş Biyolog Tek Tık Sistemini İnşallah Bir Faydamız Dokunur.
Metin2 Biyolog Tek Tık Quest Sistemi: Gelişmiş Görev Mimarisi
Metin2 sunucularında oyun deneyimini artırmak için geliştirilen Biyolog Tek Tık Quest, oyuncuların görevleri daha hızlı ve akıcı bir şekilde tamamlamasını sağlar.
Biyolog Tek Tık Nedir?
Metin2 dünyasında görev sistemleri, oyuncuların hikaye akışına dahil olup ödüller kazanmasını sağlayan temel yapı taşlarıdır. Ancak bazı görevler tekrarlayan veya uzun adımlardan oluşabilir. İşte burada devreye Biyolog Tek Tık sistemi girer. Bu sistem, oyuncuların görevi başlatıp bitirmek için gereken süreyi minimuma indirir.
Quest Script Yapısı
Metin2 quest sistemleri genellikle Lua diliyle yazılmaktadır. Biyolog Tek Tık Quest sistemleri de bu yapıya dayanır. Lua scriptleri sayesinde görevler, NPC’ler aracılığıyla başlatılır ve görevin durumu (state), flag’ler ve timer’larla takip edilir. Quest yazımı sırasında dikkat edilmesi gereken en önemli konulardan biri, hata ayıklama (debug) sürecidir.
Teknik Özellikler
Biyolog Tek Tık sisteminde görev başlatıldığında, otomatik olarak hedef NPC veya mob’a yönlendirme yapılır. Oyuncu görevi tamamlamak için sadece bir kez tıklamalıdır. Bu sistem, hem daily quest hem de özel görevler için uygulanabilir. Sistem aynı zamanda görev zinciri (chain quest) mantığıyla da çalışabilir.
Özel Görev Geliştirme
Metin2 sunucularında özel görevler (custom quest) oluşturmak isteyen geliştiriciler, quest edit araçlarını kullanarak mevcut görevleri düzenleyebilir veya sıfırdan yeni görevler yazabilirler. Bu işlemler sırasında doğru reward (ödül) tanımlaması yapılmalıdır. Görev sonunda verilecek item, EXP veya para gibi ödüller, oyuncunun motivasyonunu doğrudan etkiler.
Geliştirme Sürecinde Dikkat Edilmesi Gerekenler
Quest geliştirirken en sık karşılaşılan sorunlardan biri quest hata oluşumudur. Hatalar genellikle Lua syntax hatası, yanlış flag kullanımı ya da trigger tanımlarında meydana gelir. Debug işlemleri sırasında log dosyaları incelenerek sorun çözülebilir. Ayrıca, görevin begin ve end fonksiyonları doğru tanımlanmalıdır.
Metin2Dev ve Martysama Üzerinden Geliştirilen Görevler
Metin2Dev ve Martysama gibi platformlar, gelişmiş quest sistemleri geliştiren topluluklardır. Biyolog Tek Tık Quest sistemi, bu toplulukların sunduğu örneklerden esinlenilerek geliştirilebilir. Sunuculara entegre edilen bu tür sistemler, oyuncuların deneyimini ciddi anlamda artırır.
Sonuç
Metin2 oyunlarında görev sistemleri, oyuncuların hikayeye bağlanmasını ve sunucuda aktif kalmasını sağlar. Biyolog Tek Tık gibi sistemler, bu süreci daha keyifli ve verimli hale getirir. Doğru yapılandırılmış quest sistemleri, hem oyuncular hem de sunucu sahipleri için büyük avantaj sağlar.
Metin2 Biyolog One Click Quest System: Advanced Quest Architecture
The Biyolog One Click Quest system, developed for Metin2 servers, allows players to complete quests faster and more fluidly.
What is Biyolog One Click?
In the world of Metin2, quest systems are fundamental elements that allow players to participate in the story flow and earn rewards. However, some quests can involve repetitive or lengthy steps. This is where the Biyolog One Click system comes into play. It minimizes the time required by players to start and finish quests.
Quest Script Structure
Metin2 quest systems are generally written in Lua language. The Biyolog One Click Quest systems also rely on this structure. Through Lua scripts, quests are initiated via NPCs and their states are tracked using flags and timers. One of the most important aspects during quest writing is debugging.
Technical Features
Within the Biyolog One Click system, once a quest is started, automatic redirection to the target NPC or monster occurs. Players only need to click once to complete the quest. This system can be applied to both daily quests and special quests. It can also operate under a quest chain logic.
Custom Quest Development
Developers who wish to create custom quests for Metin2 servers can use quest edit tools to modify existing quests or write entirely new ones from scratch. During these processes, correct reward definitions must be made. Rewards such as items, EXP, or gold given at the end of the quest directly affect player motivation.
Considerations During Development
One of the most common issues encountered during quest development is quest errors. These usually arise from Lua syntax errors, incorrect flag usage, or misconfigured triggers. Debugging can resolve these problems by examining log files. Additionally, the quest's begin and end functions must be properly defined.
Quests Developed via Metin2Dev and Martysama
Metin2Dev and Martysama are communities that develop advanced quest systems. The Biyolog One Click Quest system can be inspired by examples provided by these communities. Such systems, when integrated into servers, significantly enhance the player experience.
Conclusion
Quest systems in Metin2 games help players connect with the story and stay active on the server. Systems like Biyolog One Click make this process more enjoyable and efficient. Correctly configured quest systems provide significant advantages for both players and server owners.
Kod:
quest biyologgorevleriglory begin state start begin when login or levelup with pc.level>29 begin set_state(talk_to_disciple_lv30) end end state talk_to_disciple_lv30 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say("") end when __TARGET__.target.click or 20084.chat." Ork Dişi " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say("") say(" Merhaba , Ben Uriel'in Öğrencisi Biyolog Chaegirab") say(" Dünyanın 4 Bir Yanında Bitkilerle İlgili ") say(" Çalışmalar Yapıyorum. ") say("") wait() say_title(" Biyolog Chaegirab: ") say(" Ve Bu Aralar Çok Meşgulum ,") say(" Benim İçin Efsanevi Ork Dişlerini Ararmısın? ") say("") wait() say(" Biyolog Chaegirab: ") say(" Ork Dişlerini Seungryong Vadisinden, ") say(" Bulabilirsin.Dikkatli Ol! ") say("") set_state(collect_orcteeth) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_orcteeth begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Ork Dişi ") say("") say(" 10 Tane Ork Dişi Topla. ") say(" Her Yeni Bir Diş Bulduğunda Biyologun Yanına Git. ") say("") say_item_vnum(30006) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Diş Topladın! ") say("") end when 20084.chat." Ork Dişi " with pc.count_item(30006)>0 begin if get_time()>pc.getqf("duration") then say(" Tebrikler, ") say(" Yeni Bir Diş Bulmuşsun. ") say(" Onu İncelemem Gerekiyor... ") say("") pc.remove_item("30006", 1) pc.setqf("duration",get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say(" Biyolog Chaegirab: ") say(" Mükemmel. ") say(" Bana Daha Fazla Diş Gerekiyor, ") say(" Lütfen Onları Bul. ") say("") say_reward("Şu Ana Kadar "..pc.getqf("collect_count").." Diş Topladın!") say("") else say(" Biyolog Chaegirab: ") say(" Tebrikler. ") say(" 10 Tane Ork Dişi Topladın. ") say(" Araştırmamı Sonuna Geldim. ") say(" Jinunggy'nin Ruh Taşına İhtiyacım Var, ") say(" Onu Orklardan Bulabilirsin ... ") say("") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_jinunggyis) end else say(" Biyolog Chaegirab: ") say(" Üzgünüm ") say(" Bu Diş Çatlamış. ") say(" Yeni Bir Dişe İhtiyacım Var! ") say("") end else say(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Diş Getirebilirsin.") say("") end end end state collect_jinunggyis begin when letter begin send_letter(" Jinunggy'nin Ruh Taşı ") end when button or info begin say_title(" Jinunggy'nin Ruh Taşı ") say("") say(" Dişleri Topladın Sırada. ") say(" Jinunggy'nin Ruh Taşı Var Onu ") say(" ".. mob_name(635) .." , ".. mob_name(636) .." , ".. mob_name(637) .." ") say(" Adlı Orklardan Bulabilirsin. ") say_item_vnum(30220) say("") end when 635.kill or 636.kill or 637.kill begin if pc.count_item(30220)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30220, 1) end end end when 20084.chat." Jinunggy'nin Ruh Taşı " begin if pc.count_item(30220)>0 then say(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Efsanevi Jinunggy'nin Ruh Taşı'nı Buldun. ") say(" Gizemi Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30220,1) set_state(jinunggyis_reward) else say_title(" Jinunggy'nin Ruh Taşı ") say("") say(" Dişleri Topladın Sırada. ") say(" Jinunggy'nin Ruh Taşı Var Onu ") say(" ".. mob_name(635) .." , ".. mob_name(636) .." , ".. mob_name(637) .." ") say(" Adlı Orklardan Bulabilirsin. ") say_item_vnum(30220) say("") end end end state jinunggyis_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say(" Biyologun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say_title(" Baek-Go: ") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" Hareket Hızı +10% (Kalıcı) ve 20 Milyon Yang ve ") say_reward(" Kırmızı Abanoz Sandık ") say("") affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) pc.change_money(20000000) pc.give_item2("50109",1) set_state(collect_quest_lv40) end end ---------------------------------- -- LvL 40 / Lanet Kitabı / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv40 begin when login or levelup with pc.level>39 begin set_state(talk_to_disciple_lv40) end end state talk_to_disciple_lv40 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş ") say("") end when __TARGET__.target.click or 20084.chat." Lanet Kitabı " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" ... ") say(" Ork Dişi'nden Sonra Yeni Bir Araştırma Yapıyorum. ") say(" Lanetli Kitapları İnceliyorum. ") wait() say_title(" Biyolog Chaegirab: ") say(" Bu Kitapları Toplamam Çok Uzun Zamanımı Alıcak ") say(" Bunu Benim İçin Yaparsan, ") say(" Senin İçin Bir Süprizim Olabilir. ") wait() say_title(" Biyolog Chaegirab: ") say(" Benim İçin 15 Tane Lanet Kitabı Bul. ") say(" Dikkat Et Onlar Çok Hassastır, ") say("") set_state(collect_cursebook) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_cursebook begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Lanet Kitabı ") say("") say(" Biyologun İsteği Üzerine , ") say(" 15 Lanet Kitabı Bul. ") say(" Onları Vadinin İçindeki Tapınağın Etrafında Bulabilirsin. ") say(" Dikkatli Ol. ") say("") say_item_vnum(30047) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Kitap Topladın! ") say("") end when 20084.chat." Lanet Kitabı " with pc.count_item(30047)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Kitap Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30047", 1) pc.setqf("duration",get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika. ") say(" Bir Kitap Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Kitap Topladın! ") say("") else say_title(" Biyolog Chaegirab: ") say(" 15 Tane Lanetli Kitap Buldun. ") say(" Ve En Zor Kısmını Atlattın. ") say(" İncelememi Bitirmem İçin Tapınağın Ruh Taşı'na, ") say(" İhtiyacım Var. ") say("") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_templekey) end else say_title(" Biyolog Chaegirab: ") say(" Oh Nalet Olsun! ") say(" Bu Kitap Yıpranmış. ") say(" Hiç Bir Şey Anlaşılmıyor. ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Kitap Getirebilirsin. ") end end end state collect_templekey begin when letter begin send_letter(" Tapınağın Ruh Taşı ") end when button or info begin say_title(" Tapınağın Ruh Taşı ") say("") say(" 15 Tane Lanet Kitabı Topladın. ") say(" Şimdi Tapınağın Ruh Taşı'nı Bulmalısın, ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say(" ".. mob_name(635) .." , ".. mob_name(636) .." , ".. mob_name(637) .." ") say("") say_item_vnum(30221) say(" Dikkatli Ol. ") say("") end when 635.kill or 636.kill or 637.kill begin if pc.count_item(30221)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30221, 1) end end end when 20084.chat." Tapınağın Ruh Taşı " begin if pc.count_item(30221)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Efsanevi Tapınağın Ruh Taşı'nu Buldun. ") say(" Sayende Laneti Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30221,1) set_state(templekey_reward) else say("") say(" 15 Tane Lanet Kitabı Topladın. ") say(" Şimdi Tapınağın Ruh Taşı'nı Bulmalısın, ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say(" ".. mob_name(635) .." , ".. mob_name(636) .." , ".. mob_name(637) .." ") say("") say_item_vnum(30221) say(" Dikkatli Ol. ") end end end state templekey_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyoloğun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say_title(" Baek-Go: ") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" Saldırı Hızı +5%(Kalıcı) ve 20 Milyon Yang ve ") say_reward(" İhtişamlı Abanoz Sandık ") say("") affect.add_collect(apply.ATT_SPEED,5,60*60*24*365* 60) pc.give_item2("50110",1) pc.change_money(20000000) set_state(collect_quest_lv50) end end ---------------------------------- -- LvL 50 / Şeytan Hatırası / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv50 begin when login or levelup with pc.level>49 begin set_state(talk_to_disciple_lv50) end end state talk_to_disciple_lv50 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş. ") say("") end when __TARGET__.target.click or 20084.chat." Şeytan Hatırası " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" ... ") say(" Lanet Kitaplarından Sonra Yeni Bir Araştırmaya Başladım. ") say(" Şeytan Hatıralarını İnceliyorum. ") wait() say_title(" Biyolog Chaegirab: ") say(" Benim İçin Şeytan Hatıralari Toplarmısın? ") say("") wait() say_title(" Biyolog Chaegirab: ") say(" Benim İçin 15 Tane Şeytan Hatırası Bul. ") say(" Şeytanlar Çok Tehlikelidir Dikkat Et! ") say("") set_state(collect_deamonitem) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_deamonitem begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Şeytan Hatırası ") say("") say(" Biyologun İsteği Üzerine , ") say(" 15 Tane Şeytan Hatırası Bul. ") say(" Onları Şeytan Kulesinde Bulabilirsin. ") say(" Şeytanlar Çok Tehlikelidir Dikkat Et! ") say("") say_item_vnum(30015) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Hatıra Topladın! ") say("") end when 20084.chat." Şeytan Hatırası " with pc.count_item(30015)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Hatıra Getirmişsin. ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30015", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika. ") say(" Bir Hatıra Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward("Şu Ana Kadar "..pc.getqf("collect_count").." Hatıra Topladın!") else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'ın İhtiyacı Olan 15 Tane ") say(" Şeytan Hatırasını Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Sagyinin Ruh Taşı'na İhtiyacı Var. ") say("") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_sagyis) end else say_title(" Biyolog Chaegirab: ") say(" Oh Nalet Olsun ! ") say(" Bu Hatıra Eskimiş, ") say(" Hiç Birşey Anlaşılmıyor. ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Hatıra Getirebilirsin. ") end end end state collect_sagyis begin when letter begin send_letter(" Sagyinin Ruh Taşı ") end when button or info begin say_title(" Sagyinin Ruh Taşı ") say("") say(" Şeytan Hatıralarını Topladın. ") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Sagyinin Ruh Taşı'na İhtiyacı Var. ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say(" ".. mob_name(1031) .." , ".. mob_name(1032) .." , ".. mob_name(1033) .." ,".. mob_name(1034) .." ") say_item_vnum(30222) say("") end when 1031.kill or 1032.kill or 1033.kill or 1034.kill begin if pc.count_item(30222)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30222, 1) end end end when 20084.chat." Sagyinin Ruh Taşı " begin target.delete("__TARGET__") if pc.count_item(30222)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Sayende İncelememi Tamamladım. ") say(" Ve Şeytanların Sırrını Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30222,1) set_state(sagyis_reward) else say_title(" Biyolog Chaegirab: ") say("15 Tane Şeytan Hatırası Topladın.") say("Biyologun Onları Yorumlayabilmesi İçin,") say("Sagyinin Ruh Taşı na İhtiyacı Var") say("O Taşı Şu Yaratıklardan Bulabilirsin") say("".. mob_name(1031) .." , ".. mob_name(1032) .." , ".. mob_name(1033) .." ,".. mob_name(1034) .."") say_item_vnum(30222) end end end state sagyis_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyologun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say_title(" Baek-Go:") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" Savunma +60 (Kalıcı) ve 20 Milyon Yang ve") say_reward(" Sarı Abanoz Sandık ") say("") affect.add_collect(apply.DEF_GRADE_BONUS,60,60*60* 24*365*60) pc.give_item2("50111",1) pc.change_money(20000000) set_state(collect_quest_lv60) end end ---------------------------------- -- LvL 60 / Buz Topu / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv60 begin when login or levelup with pc.level>59 begin set_state(talk_to_disciple_lv60) end end state talk_to_disciple_lv60 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş. ") say("") end when __TARGET__.target.click or 20084.chat." Buz Topu " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" ... ") say(" Şeytan Hatırasından Sonra Yeni Bir Araştırmaya Başladım ") say(" Buz Toplarını İnceliyorum. ") wait() say_title(" Biyolog Chaegirab: ") say(" Benim İçin 15 Tane Buz Topu Toplarmısın? ") say("") set_state(collect_scoops) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_scoops begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Buz Topu ") say("") say(" Biyologun İsteği Üzerine 15 Tane Buz Topu Bul. ") say(" Onları Dağdan Bulabilirsin Dikkatli Ol. ") say("") say_item_vnum(30050) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Buz Topu Topladın! ") say("") end when 20084.chat." Buz Topu " with pc.count_item(30050)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Buz Topu Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30050", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika. ") say(" Bir Buz Topu Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Buz Topu Topladın! ") say("") else say_title(" Biyolog Chaegirab: ") say("15 Tane Buz Topu Topladın.") say("Biyologun Onları Yorumlayabilmesi İçin,") say("Aurtumryunun Ruh Taşı'na İhtiyacı Var") say("") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_aurtumryus) end else say_title(" Biyolog Chaegirab: ") say(" Oh Nalet Olsun ! ") say(" Bu Buz Topu Erimis ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Top Getirebilirsin. ") end end end state collect_aurtumryus begin when letter begin send_letter(" Aurtumryunun Ruh Taşı ") end when button or info begin say_title(" Aurtumryunun Ruh Taşı ") say("") say(" 15 Tane Buz Topu Topladın. ") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Aurtumryunun Ruh Taşı'na İhtiyacı Var. ") say("") say(" O Taşı Şu Yaratıklardan Bulabilirsin ") say("".. mob_name(1101) .." , ".. mob_name(1102) .." , ".. mob_name(1103) .." ,".. mob_name(1104) .."") say("".. mob_name(1105) .." , ".. mob_name(106) .." , ".. mob_name(1107) .."") say_item_vnum(30223) say("") end when 1101.kill or 1102.kill or 1103.kill or 1104.kill or 1105.kill or 1106.kill or 1107.kill begin if pc.count_item(30223)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30223, 1) end end end when 20084.chat." Aurtumryunun Ruh Taşı " begin if pc.count_item(30223)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Sayende İncelememi Tamamladım. ") say(" Buz Toplarındaki Gizli Bilgiyi Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30223,1) set_state(aurtumryus_reward) else say_title(" Biyolog Chaegirab: ") say("") say(" 15 Buz Topu Topladın.") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Aurtumryunun Ruh Taşı na İhtiyacı Var ") say("") say(" O Taşı Şu Yaratıklardan Bulabilirsin ") say("".. mob_name(1101) .." , ".. mob_name(1102) .." , ".. mob_name(1103) .." ,".. mob_name(1104) .."") say("".. mob_name(1105) .." , ".. mob_name(106) .." , ".. mob_name(1107) .."") say_item_vnum(30223) say("") say("") end end end state aurtumryus_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyologun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say_title(" Baek-Go: ") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" Saldırı Değeri +50 ve 20 Milyon Yang ve ") say_reward(" Açık Yeşil Abanoz Sandık ") say("") affect.add_collect(apply.ATT_GRADE_BONUS,50,60*60* 24*365*60) pc.change_money(20000000) pc.give_item2("50112",1) set_state(collect_quest_lv70) end end ---------------------------------- -- LvL 70 / Zelkova Dali / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv70 begin when login or levelup with pc.level>69 begin set_state(talk_to_disciple_lv70) end end state talk_to_disciple_lv70 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş. ") say("") end when __TARGET__.target.click or 20084.chat." Zelkova Dalı " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" ... ") say(" Buz Topundan Sonra Yeni Bir Araştırmaya Başladım, ") say(" Zelkova Dallarını İnceliyorum. ") say(" Benim İçin 25 Tane Zelkova Dalı Bul. ") say(" Dikkat Et Onlar Çok Kırılgandır, ") say("") set_state(collect_branches) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_branches begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Zelkova Dalı ") say("") say(" Biyologun İsteği Üzerine 15 Tane Zelkova Dalı Bul. ") say(" Onları Ormanda Bulabilirsin Dikkatli Ol. ") say("") say_item_vnum(30165) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Dal Topladın! ") say("") end when 20084.chat."Zelkova Dali" with pc.count_item(30165)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Dal Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30165", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika. ") say(" Bir Dal Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Dal Topladın! ") say("") else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'in İhtiyacı Olan 25 Tane ") say(" Zelkova Dalını Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Gyimokun Ruh Taşı'na İhtiyacı Var. ") say("") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_gyimoks) end else say_title(" Biyolog Chaegirab: ") say(" Oh Nalet Olsun! ") say(" Bu Dal Kırılmış. ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Dal Getirebilirsin.") end end end state collect_gyimoks begin when letter begin send_letter(" Gyimokun Ruh Taşı ") end when button or info begin say_title(" Gyimokun Ruh Taşı ") say(" 25 Tane Zelkova Dalı Topladın. ") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Gyimokun Ruh Taşı na İhtiyacı Var. ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say("".. mob_name(2301) .." , ".. mob_name(2302) .." , ".. mob_name(2303) .." ,".. mob_name(2304) .."") say("".. mob_name(2305) .." , ".. mob_name(2311) .." , ".. mob_name(2312) .." ,".. mob_name(2313) .."") say("".. mob_name(2314) .." , ".. mob_name(2315) .." , ".. mob_name(2306) .." ,".. mob_name(2307) .."") say_item_vnum(30224) say("") end when 2301.kill or 2302.kill or 2303.kill or 2304.kill or 2305.kill or 2311.kill or 2312.kill or 2313.kill or 2314.kill or 2315.kill or 2306.kill or 2307.kill begin if pc.count_item(30224)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30224, 1) end end end when 20084.chat." Gyimokun Ruh Taşı " begin target.delete("__TARGET__") if pc.count_item(30224)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Sayende İncelememi Tamamladım. ") say(" Ve Karanlık Ormanın Sırrını Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30224,1) set_state(gyimoks_reward) else say(" 25 Tane Zelkova Dalı Topladın. ") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Gyimokun Ruh Taşı na İhtiyacı Var. ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say("".. mob_name(2301) .." , ".. mob_name(2302) .." , ".. mob_name(2303) .." ,".. mob_name(2304) .."") say("".. mob_name(2305) .." , ".. mob_name(2311) .." , ".. mob_name(2312) .." ,".. mob_name(2313) .."") say("".. mob_name(2314) .." , ".. mob_name(2315) .." , ".. mob_name(2306) .." ,".. mob_name(2307) .."") say_item_vnum(30224) say("") end end end state gyimoks_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyologun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" Hareket Hızı +10% , +500 HP , 20 M Yang ve ") say_reward(" Yeşil Abanoz Sandık ") say("") affect.add_collect(apply.MOV_SPEED,10,60*60*24*365 *60) affect.add_collect(apply.MAX_HP,500,60*60*24*365*6 0) pc.change_money(20000000) pc.give_item2("50112",1) set_state(collect_quest_lv80) end end ---------------------------------- -- LvL 80 / Tugyis Tabelasi / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv80 begin when login or levelup with pc.level>79 begin set_state(talk_to_disciple_lv80) end end state talk_to_disciple_lv80 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş ") say("") end when __TARGET__.target.click or 20084.chat." Tugyis Tabelası " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" ... ") say(" Zelkova Dalindan Sonra Yeni Bir Araştırmaya Başladım ") say(" Tugyis Tabelalarını İnceliyorum. ") say(" Benim İçin 30 Tane Tugyis Tabelasi Bul, ") say(" Dikkat Et Onlar Çok Hassastır. ") say("") set_state(collect_plates) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_plates begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Tugyis Tabelası ") say("") say(" Biyologun İsteği Üzerine , ") say(" 30 Tane Tugyis Tabelası Bul. ") say(" Onları Yılan Vadisinden Bulabilirsin Dikkatli Ol. ") say("") say_item_vnum(30166) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Tabela Topladın! ") say("") end when 1401.kill or 1402.kill or 1403.kill or 1601.kill or 1602.kill or 1603.kill begin local rand = number(0,99) if rand<5 then pc.give_item2(30166, 1) end end when 20084.chat." Tugyis Tabelası " with pc.count_item(30166)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Tabela Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30166", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika.") say(" Bir Tabela Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Tabela Topladın! ") say("") else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'in İhtiyacı Olan 30 Tane ") say(" Tugyis Tabelasını Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Tugyinin Ruh Taşı'na İhtiyacı Var. ") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_tugyis) end else say_title(" Biyolog Chaegirab: ") say(" Oh Nalet Olsun ! ") say(" Bu Tabela Tozlanmış, ") say(" Hiç Birşey Anlaşılmıyor. ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Tabela Getirebilirsin. ") end end end state collect_tugyis begin when letter begin send_letter(" Tugyinin Ruh Taşı ") end when button or info begin say_title(" Tugyinin Ruh Taşı ") say(" 30 Tane Tugyis Tabelası Topladın. ") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Tugyinin Ruh Taşı'na İhtiyacı Var ") say(" O Taşı Şu Yaratıklardan Bulabilirsin ") say("".. mob_name(1401) .." , ".. mob_name(1402) .." , ".. mob_name(1403) .." ,".. mob_name(1601) .."") say("".. mob_name(1602) .." , ".. mob_name(1603) .."") say_item_vnum(30225) say("") end when 1401.kill or 1402.kill or 1403.kill or 1601.kill or 1602.kill or 1603.kill begin if pc.count_item(30224)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30225, 1) end end end when 20084.chat." Tugyinin Ruh Taşı " begin if pc.count_item(30225)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Sayende İncelememi Tamamladım. ") say(" Ve Tabelaların Sırrını Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30225,1) set_state(tugyis_reward) else say_title(" Biyolog Chaegirab: ") say(" 30 Tane Tugyis Tabelası Topladın. ") say(" Biyologun Onları Yorumlayabilmesi İçin, ") say(" Tugyinin Ruh Taşı'na İhtiyacı Var, ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say("".. mob_name(1401) .." , ".. mob_name(1402) .." , ".. mob_name(1403) .." ,".. mob_name(1601) .."") say("".. mob_name(1602) .." , ".. mob_name(1603) .."") say_item_vnum(30225) say("") end end end state tugyis_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyologun İsteği Üzerine, ") say(" Baek-Go İle Konuş. ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" Saldırı Hızı +15% Kalıcı , 20 Milyon Yang ve ") say_reward(" Mavi Abanoz Sandık") say("") pc.give_item2("50114",1) pc.change_money(2000000) affect.add_collect(apply.ATT_SPEED,15,60*60*24*365 *60) set_state(collect_quest_lv85) end end ---------------------------------- -- LvL 85 / Kırmızı Hayalet Ağacı Dalı / / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv85 begin when login or levelup with pc.level>84 begin set_state(talk_to_disciple_lv85) end end state talk_to_disciple_lv85 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var, ") say(" Onu Bul ve Onla Konuş. ") say("") end when __TARGET__.target.click or 20084.chat." Kırmızı Hayalet Ağacı Dalı " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" Uriel'in Öğrencisi Biyolog Chaegirab ,Kırmızı Orman ") say(" Hakkında Araştırma Yapıyor.40 Tane, ") say(" Kırmızı Hayalet Ağacı Dalına İhtiyacı Var. ") wait() say_title(" Biyolog Chaegirab: ") say(" Kırmızı Ormana Git Ve Dalları Topla, ") say(" 40 Tane Dalı Tek Tek Götür. ") set_state(collect_safa) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_safa begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Kırmızı Hayalet Ağacı Dalı ") say("") say(" Biyologun İsteği Üzerine ,") say(" 40 Tane Kırmızı Hayalet Ağacı Dalı Bul, ") say(" Onları Kızıl Ormandan Bulabilirsin Dikkatli Ol. ") say("") say_item_vnum(30167) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Dal Topladın! ") say("") end when 2311.kill or 2312.kill or 2313.kill or 2314.kill or 2315.kill begin local rand = number(0,99) if rand<5 then pc.give_item2(30167, 1) end end when 20084.chat." Kırmızı Hayalet Ağacı Dalı " with pc.count_item(30167)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Dal Getirmişsin, ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30167", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika. ") say(" Bir Dal Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward("Şu Ana Kadar "..pc.getqf("collect_count").." Dal Topladın!") say("") else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'in İhtiyacı Olan 40 Tane ") say(" Kırmızı Hayalet Ağacı Dalı Topladın. ") say(" Son Olarak Orman Ruhu Taşı'nı Bulmalısın. ") say("") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_safa2) end else say_title(" Biyolog Chaegirab: ") say(" Oh Lanet Olsun ! ") say(" Bu Dal Kırılmış, ") say(" Hiç Birşey Anlaşılmıyor. ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Dal Getirebilirsin. ") end end end state collect_safa2 begin when letter begin send_letter(" Orman Ruh Taşı ") end when button or info begin say_title(" Orman Ruh Taşı ") say(" Biyolog Chaegirab'in İhtiyacı Olan 40 Tane ") say(" Dalı Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Orman Ruh Taşı'na İhtiyacı Var. ") say(" Onu ".. mob_name(2307) .." Bulabilirsin. ") say_item_vnum(30226) say("") end when 2307.kill begin if pc.count_item(30226)<1 then local rand = number(0,99) if rand<15 then pc.give_item2(30226, 1) end end end when 20084.chat." Orman Ruh Taşı " begin if pc.count_item(30226)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Sayende İncelememi Tamamladım. ") say(" Ve Ormanın Büyüsünü Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var. ") say("") pc.remove_item(30226,1) pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(safa1_reward) else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'in İhtiyacı Olan 40 Tane ") say(" Dalı Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Orman Ruh Taşı'na İhtiyacı Var. ") say(" Onu ".. mob_name(2307) .."'den Bulabilirsin. ") say_item_vnum(30226) end end end state safa1_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyologun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" +10% Diğer Oyunculara Karşı Savunma (Kalıcı) ve ") say_reward(" Koyu Kırmızı Abanoz Sandık Ve 20 M Yang") say("") pc.give_item2("50115",1) pc.change_money(20000000) affect.add_collect(apply.RESIST_WARRIOR,10,60*60*2 4*365*60) affect.add_collect(apply.RESIST_ASSASSIN,10,60*60* 24*365*60) affect.add_collect(apply.RESIST_SURA,10,60*60*24*3 65*60) affect.add_collect(apply.RESIST_SHAMAN,10,60*60*24 *365*60) set_state(collect_quest_lv90) end end ---------------------------------- -- LvL 90 / Liderin Notu / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv90 begin when login or levelup with pc.level>89 begin set_state(talk_to_disciple_lv90) end end state talk_to_disciple_lv90 begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, "Biyolog Chaegirab") end send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Biyologun Araştırması ") say("") say(" Biyologun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş ") end when __TARGET__.target.click or 20084.chat." Liderin Notu " begin target.delete("__TARGET__") say_title(" Biyolog Chaegirab: ") say(" Uriel'in Öğrencisi Biyolog Chaegirab,") say(" Liderin Notu Hakkında Araştırma Yapıyor, ") say(" 50 Tane Liderin Notu Topla. ") wait() say_title(" Biyolog Chaegirab: ") say(" Bossları Öldür ve Notlarını Topla. ") say(" 50 Tane Liderin Notunu Tek Tek Götür. ") set_state(collect_notices) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_notices begin when letter begin send_letter(" Biyologun Araştırması ") end when button or info begin say_title(" Liderin Notu ") say("") say(" Biyologun İsteği Üzerine, ") say(" 50 Tane Liderin Notu Bul. ") say(" Onları Oyundaki Bosslardan Bulabilirsin, ") say(" Her Türlü Bossdan Çıkabilir. ") say("") say_item_vnum(30168) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Liderin Notu Topladın! ") say("") end when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1304.kill or 1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5001.kill or 5004.kill or 5161.kill or 5162.kill or 5163.kill begin local rand = number(0,99) if rand<5 then pc.give_item2(30168, 1) end end when 20084.chat." Liderin Notu " with pc.count_item(30168)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Not Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30168", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Biyolog Chaegirab: ") say(" Oh Harika.") say(" Bir Not Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Liderin Notu Topladın! ") say("") else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'in İhtiyacı Olan 50 Tane ") say(" Liderin Notunu Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Liderlerin Ruh Taşına İhtiyacı Var. ") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(collect_bossKey) end else say_title(" Biyolog Chaegirab: ") say(" Oh Nalet Olsun! ") say(" Bu Not Yırtılmış, ") say(" Hiç Birşey Anlaşılmıyor. ") end else say_title(" Biyolog Chaegirab: ") say(" Biraz Daha Bekledikten Sonra Yeni Not Getirebilirsin. ") end end end state collect_bossKey begin when letter begin send_letter(" Liderlerin Ruh Taşı ") end when button or info begin say_title(" Liderlerin Ruh Taşı ") say(" Biyolog Chaegirab'in İhtiyacı Olan 50 Tane ") say(" Liderin Notunu Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Liderlerin Ruh Taşına İhtiyacı Var. ") say(" Onu Herhangi Bir Bossdan Bulabilirsin. ") say_item_vnum(30227) say("") end when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1304.kill or 1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5001.kill or 5004.kill or 5161.kill or 5162.kill or 5163.kill begin if pc.count_item(30227)<1 then local rand = number(0,99) if rand<5 then pc.give_item2(30227, 1) end end end when 20084.chat." Liderlerin Ruh Taşı " begin if pc.count_item(30227)>0 then say_title(" Biyolog Chaegirab: ") say(" Yardımların İçin Minnettarım. ") say(" Sayende İncelememi Tamamladım. ") say(" Ve Patronların Sırrını Çözdüm. ") say(" Baek-Go'ya Git Ve Onunla Konuş, ") say(" Sana Bir Süprizi Var.") say("") pc.remove_item(30227,1) set_state(bossKey_reward) else say_title(" Biyolog Chaegirab: ") say(" Biyolog Chaegirab'in İhtiyacı Olan 50 Tane ") say(" Liderin Notunu Topladın. ") say(" Onları Yorumlaması İçin, ") say(" Liderlerin Ruh Taşına İhtiyacı Var. ") say(" Onu Herhangi Bir Bossdan Bulabilirsin. ") say_item_vnum(30227) end end end state bossKey_reward begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Biyologun İsteği Üzerine ") say(" Baek-Go İle Konuş ") say("") end when __TARGET__.target.click or 20018.chat." Biyolog Chaegirab ve Ödül " begin target.delete("__TARGET__") say_title(" Baek-Go: ") say(" ... ") say(" Biyolog Chaegirab'ın Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülün: ") say_reward(" +10% Diğer Oyunculara Karşı Güç ve") say_reward(" Mavi Abanoz Sandık") say("") pc.give_item2("50114",1) affect.add_collect(apply.ATT_BONUS_TO_WARRIOR,10,6 0*60*24*365*60) affect.add_collect(apply.ATT_BONUS_TO_ASSASSIN,10, 60*60*24*365*60) affect.add_collect(apply.ATT_BONUS_TO_SURA,10,60*6 0*24*365*60) affect.add_collect(apply.ATT_BONUS_TO_SHAMAN,10,60 *60*24*365*60) set_state(collect_quest_lv92) end end ---------------------------------- -- LvL 92 / Seon-Pyeongun Araştırması / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv92 begin when login or levelup with pc.level>91 begin set_state(talk_to_disciple_lv92) end end state talk_to_disciple_lv92 begin when letter begin local v = find_npc_by_vnum(20091) if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") end send_letter(" Seon-Pyeongun Araştırması ") end when button or info begin say_title(" Seon-Pyeongun Araştırması ") say("") say(" Seon-Pyeongun Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş. ") say("") end when __TARGET__.target.click or 20091.chat." Kem Göz Mücevheri " begin target.delete("__TARGET__") say_title(" Seon-Pyeong: ") say(" Seon-Pyeong , Kem Göz Mücevheri ") say(" Hakkında Araştırma Yapıyor.10 Tane Kem Göz Mücevheri Topla. ") wait() say(" Seon-Pyeong: ") say(" Kem Göz Mücevherini Aşağıdaki Canavarlardan Bulabilirsin ") say(" ".. mob_name(1137) .." , ".. mob_name(1135) ..". ") say(" 10 Tane Kem Göz Mücevherini Tek Tek Götür ") set_state(collect_kemgoz) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_kemgoz begin when letter begin send_letter(" Seon-Pyeongun Araştırması ") end when button or info begin say_title(" Kem Göz Mücevheri ") say("") say(" Seon-Pyeongun İstegi Üzerine, ") say(" 10 Tane Kem Göz Mücevheri Bul. ") say(" Kem Göz Mücevherini Asagidaki Canavarlardan Bulabilirsin, ") say(" ".. mob_name(2401) .." , ".. mob_name(2402) ..", ".. mob_name(2403) ..", ") say(" ".. mob_name(2404) .." , ".. mob_name(2411) ..", ".. mob_name(2412) ..", ") say(" ".. mob_name(2413) .." , ".. mob_name(2414) ..". ") say("") say_item_vnum(30251) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Kem Göz Mücevheri Topladın! ") say("") end when 20091.chat." Kem Göz Mücevheri " with pc.count_item(30251)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Mücevher Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30251", 1) pc.setqf("duration", get_time()+0) wait() local rand = number(0,99) if rand<49 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say(" Seon-Pyeong: ") say(" Oh Harika. ") say(" Bir Mücevher Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Kem Göz Mücevheri Topladın! ") say("") else say_title(" Seon-Pyeong: ") say(" Seon-Pyeong'in İhtiyacı Olan 10 Tane ") say(" Kem Göz Mücevherini Topladın. ") say(" Son Olarak, ") say(" Baek-Gonun Yanına Git. ") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(kemgozodul) end else say_title(" Seon-Pyeong: ") say(" Oh Lanet Olsun ! ") say(" Bu Mücevher Kararmış. ") say(" Hiç Birşey Anlaşılmıyor. ") end else say(" Seon-Pyeong: ") say(" Biraz Daha Bekledikten Sonra Yeni Mücevher Getirebilirsin. ") end end end state kemgozodul begin when letter begin send_letter(" Baek-Go İle Konuş ") local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, "Doktor") end end when button or info begin say_title(" Baek-Go İle Konuş ") say(" Seon-Pyeongun İstegi Üzerine, ") say(" Baek-Go İle Konuş. ") say("") end when __TARGET__.target.click or 20018.chat." Baek-Go Ödül " begin target.delete("__TARGET__") say_title(" Baek-Go:") say(" ... ") say(" Seon-Pyeong'un Verdiği Görevi Yaptığın İçin. ") say(" Bu Ödülleri Sana Veriyorum: ") say("") say_reward(" Ödülünü Sen Seçeceksin: ") local s = select (" +1000 HP ", " Savunma Değeri +100 ", " Saldırı Değeri +50 ") if s == 1 then affect.add_collect(apply.MAX_HP,1000,60*60*24*365* 60) set_state(collect_quest_lv94) elseif s == 2 then affect.add_collect(apply.DEF_GRADE_BONUS,150,60*60 *24*365*60) set_state(collect_quest_lv94) elseif s == 3 then affect.add_collect(apply.ATT_GRADE_BONUS,50,60*60* 24*365*60) set_state(collect_quest_lv94) end end end ---------------------------------- -- LvL 94 / Bilgelik Mücevheri / M2-GLORY / zehirci06 / ---------------------------------- state collect_quest_lv94 begin when login or levelup with pc.level>93 begin set_state(talk_to_disciple_lv94) end end state talk_to_disciple_lv94 begin when letter begin local v = find_npc_by_vnum(20091) if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") end send_letter(" Seon-Pyeong'un Araştırması ") end when button or info begin say_title(" Seon-Pyeong'un Araştırması ") say("") say(" Seon-Pyeong'un Sana İhtiyacı Var. ") say(" Onu Bul ve Onla Konuş ") say("") end when __TARGET__.target.click or 20091.chat." Bilgelik Mücevheri " begin target.delete("__TARGET__") say_title(" Seon-Pyeong : ") say(" ... ") say(" Kem Göz Mücevherinden Sonra ") say(" Bilgelik Mücevherlerini İnceliyorum. ") wait() say_title(" Seon-Pyeong : ") say(" Bu Mücevherleri Toplamam Çok Uzun Zamanımı Alıcak ") say(" Bunu Benim İçin Yaparsan, ") say(" Senin İçin Bir Süprizim Olacak. ") wait() say_title(" Seon-Pyeong : ") say(" Benim İçin 20 Tane Bilgelik Mücevheri Bul. ") say(" Dikkat Et Onlar Çok Hassastır, ") say("") set_state(collect_bilgelik) pc.setqf("duration",0) pc.setqf("collect_count",0) end end state collect_bilgelik begin when letter begin send_letter(" Seon-Pyeong'un Araştırması ") end when button or info begin say_title(" Bilgelik Mücevheri ") say("") say(" Seon-Pyeong'un İsteği Üzerine , ") say(" 20 Tane Bilgelik Mücevheri Bul. ") say(" Onları Sürgün Mağarasından Bulabilirsin. ") say(" Dikkatli Ol. ") say("") say_item_vnum(30252) say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Mücevher Topladın! ") say("") end when 20091.chat." Bilgelik Mücevheri " with pc.count_item(30252)>0 begin if get_time()>pc.getqf("duration") then say(" Bir Saniye ... ") say(" Yeni Bir Mücevher Getirmişsin ") say(" Bunu İncelemem Gerekiyor ... ") say("") pc.remove_item("30252", 1) pc.setqf("duration",get_time()+0) wait() local rand = number(0,99) if rand<50 then local count = pc.getqf("collect_count")+1 if count<1 then pc.setqf("collect_count", count) say_title(" Seon-Pyeong : ") say(" Oh Harika. ") say(" Bir Mücevher Daha Buldum Ama Daha Fazlasına, ") say(" İhtiyacım Var. ") say("") say_reward(" Şu Ana Kadar "..pc.getqf("collect_count").." Mücevher Topladın! ") say("") else say_title(" Seon-Pyeong : ") say(" 20 Tane Bilgelik Mücevherini Topladın. ") say(" Şimdi Beran-Setaou Ruh Taş'nı Bulmalısın, ") say(" "..mob_name(2493)..". ") pc.setqf("collect_count",0) pc.setqf("duration",0) set_state(safademirelberan) end else say_title(" Seon-Pyeong : ") say(" Oh Nalet Olsun! ") say(" Bu Mücevher Parçalanmış. ") say(" Hiç Bir Şey Anlaşılmıyor. ") end else say_title(" Seon-Pyeong : ") say(" Biraz Daha Bekledikten Sonra Yeni Mücevher Getirebilirsin. ") end end end state safademirelberan begin when letter begin send_letter(" Beran-Setaou Ruh Taşı ") end when button or info begin say_title(" Beran-Setaou Ruh Taşı ") say("") say(" 20 Tane Bilgelik Mücevherini Topladın. ") say(" Şimdi Beran-Setaou Ruh Taş'nı Bulmalısın, ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say(" "..mob_name(2493)..". ") say("") say_item_vnum(30228) say(" Dikkatli Ol. ") say("") end when 20091.chat." Beran-Setaou Ruh Taşı " begin if pc.count_item(30228)>0 then say(" Bu inanılmaz birşey! Ejderha'nın Ruh Taşı!") say(" Senin bu yeteneğine son derece saygı duyuyorum.") say(" Araştırmalarımı yapmak için hiçbir engel yok") say(" artık.Sana da hakkettiğin ödülü vereceğim.İşte") say(" seç ") local s = select (" +1100 HP ", " Savunma Değeri +120 ", " Saldırı Değeri +60 ") if s == 1 then affect.add_collect(apply.MAX_HP,1100,60*60*24*365* 60) set_state(bittizehirci06) elseif s == 2 then affect.add_collect(apply.DEF_GRADE_BONUS,200,60*60 *24*365*60) set_state(bittizehirci06) elseif s == 3 then affect.add_collect(apply.ATT_GRADE_BONUS,60,60*60* 24*365*60) set_state(bittizehirci06) end pc.remove_item(30228,1) else say("") say(" 15 Tane Lanet Kitabı Topladın. ") say(" Şimdi Tapınağın Ruh Taşı'nı Bulmalısın, ") say(" O Taşı Şu Yaratıklardan Bulabilirsin. ") say(" ".. mob_name(2493) ..". ") say("") say_item_vnum(30228) say(" Dikkatli Ol. ") end end end state bittizehirci06 begin end end
Metin2 Biyolog Tek Tık Quest Sistemi: Gelişmiş Görev Mimarisi
Metin2 sunucularında oyun deneyimini artırmak için geliştirilen Biyolog Tek Tık Quest, oyuncuların görevleri daha hızlı ve akıcı bir şekilde tamamlamasını sağlar.
Biyolog Tek Tık Nedir?
Metin2 dünyasında görev sistemleri, oyuncuların hikaye akışına dahil olup ödüller kazanmasını sağlayan temel yapı taşlarıdır. Ancak bazı görevler tekrarlayan veya uzun adımlardan oluşabilir. İşte burada devreye Biyolog Tek Tık sistemi girer. Bu sistem, oyuncuların görevi başlatıp bitirmek için gereken süreyi minimuma indirir.
Quest Script Yapısı
Metin2 quest sistemleri genellikle Lua diliyle yazılmaktadır. Biyolog Tek Tık Quest sistemleri de bu yapıya dayanır. Lua scriptleri sayesinde görevler, NPC’ler aracılığıyla başlatılır ve görevin durumu (state), flag’ler ve timer’larla takip edilir. Quest yazımı sırasında dikkat edilmesi gereken en önemli konulardan biri, hata ayıklama (debug) sürecidir.
Teknik Özellikler
Biyolog Tek Tık sisteminde görev başlatıldığında, otomatik olarak hedef NPC veya mob’a yönlendirme yapılır. Oyuncu görevi tamamlamak için sadece bir kez tıklamalıdır. Bu sistem, hem daily quest hem de özel görevler için uygulanabilir. Sistem aynı zamanda görev zinciri (chain quest) mantığıyla da çalışabilir.
Özel Görev Geliştirme
Metin2 sunucularında özel görevler (custom quest) oluşturmak isteyen geliştiriciler, quest edit araçlarını kullanarak mevcut görevleri düzenleyebilir veya sıfırdan yeni görevler yazabilirler. Bu işlemler sırasında doğru reward (ödül) tanımlaması yapılmalıdır. Görev sonunda verilecek item, EXP veya para gibi ödüller, oyuncunun motivasyonunu doğrudan etkiler.
Geliştirme Sürecinde Dikkat Edilmesi Gerekenler
Quest geliştirirken en sık karşılaşılan sorunlardan biri quest hata oluşumudur. Hatalar genellikle Lua syntax hatası, yanlış flag kullanımı ya da trigger tanımlarında meydana gelir. Debug işlemleri sırasında log dosyaları incelenerek sorun çözülebilir. Ayrıca, görevin begin ve end fonksiyonları doğru tanımlanmalıdır.
Metin2Dev ve Martysama Üzerinden Geliştirilen Görevler
Metin2Dev ve Martysama gibi platformlar, gelişmiş quest sistemleri geliştiren topluluklardır. Biyolog Tek Tık Quest sistemi, bu toplulukların sunduğu örneklerden esinlenilerek geliştirilebilir. Sunuculara entegre edilen bu tür sistemler, oyuncuların deneyimini ciddi anlamda artırır.
Sonuç
Metin2 oyunlarında görev sistemleri, oyuncuların hikayeye bağlanmasını ve sunucuda aktif kalmasını sağlar. Biyolog Tek Tık gibi sistemler, bu süreci daha keyifli ve verimli hale getirir. Doğru yapılandırılmış quest sistemleri, hem oyuncular hem de sunucu sahipleri için büyük avantaj sağlar.
Metin2 Biyolog One Click Quest System: Advanced Quest Architecture
The Biyolog One Click Quest system, developed for Metin2 servers, allows players to complete quests faster and more fluidly.
What is Biyolog One Click?
In the world of Metin2, quest systems are fundamental elements that allow players to participate in the story flow and earn rewards. However, some quests can involve repetitive or lengthy steps. This is where the Biyolog One Click system comes into play. It minimizes the time required by players to start and finish quests.
Quest Script Structure
Metin2 quest systems are generally written in Lua language. The Biyolog One Click Quest systems also rely on this structure. Through Lua scripts, quests are initiated via NPCs and their states are tracked using flags and timers. One of the most important aspects during quest writing is debugging.
Technical Features
Within the Biyolog One Click system, once a quest is started, automatic redirection to the target NPC or monster occurs. Players only need to click once to complete the quest. This system can be applied to both daily quests and special quests. It can also operate under a quest chain logic.
Custom Quest Development
Developers who wish to create custom quests for Metin2 servers can use quest edit tools to modify existing quests or write entirely new ones from scratch. During these processes, correct reward definitions must be made. Rewards such as items, EXP, or gold given at the end of the quest directly affect player motivation.
Considerations During Development
One of the most common issues encountered during quest development is quest errors. These usually arise from Lua syntax errors, incorrect flag usage, or misconfigured triggers. Debugging can resolve these problems by examining log files. Additionally, the quest's begin and end functions must be properly defined.
Quests Developed via Metin2Dev and Martysama
Metin2Dev and Martysama are communities that develop advanced quest systems. The Biyolog One Click Quest system can be inspired by examples provided by these communities. Such systems, when integrated into servers, significantly enhance the player experience.
Conclusion
Quest systems in Metin2 games help players connect with the story and stay active on the server. Systems like Biyolog One Click make this process more enjoyable and efficient. Correctly configured quest systems provide significant advantages for both players and server owners.
